@lemoncloud/ssocio-stacks-api 0.23.1212 → 0.24.106

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -10,13 +10,13 @@
10
10
  * Copyright (C) 2020 LemonCloud Co Ltd. - All Rights Reserved.
11
11
  */
12
12
  import { CoreModel, NextIdentityAccess } from 'lemon-model';
13
- import { BillingType, DeviceType, GenderType, MonthType, PaymentType, ProgramStartType, RefundType, ServiceStatus, ComissionRate, PeriodInfo, DayOfTheWeekPolicy, BaseTimeType, TimeBlock, ManagementStereoType, CategoryStereoType, GuideLine, CardType, WeekDayType, AgreedType, SeatStatusType, User, ProdType, CancelPeriodType, PushTargetType } from './backend-types';
14
- import { CategoryNode, StockNode, TicketNode } from '../lib/types';
13
+ import { BillingType, DeviceType, GenderType, MonthType, PaymentType, ProgramStartType, RefundType, ServiceStatus, ComissionRate, PeriodInfo, DayOfTheWeekPolicy, BaseTimeType, TimeBlock, ManagementStereoType, CategoryStereoType, GuideLine, CardType, WeekDayType, AgreedType, User, CancelPeriodType, PushTargetType, Instructor, BoolFlag, Segment, SeatStereoType, TimeElement$, ReserveLimitTargetType, ProgramStereoType, PassStereoType, PassOperationType, PassStateType } from './backend-types';
14
+ import { SeatUnitType, SeatStereo, CategoryNode, StockNode, TicketNode, SeatStateType } from '../lib/types';
15
15
  /**
16
16
  * type: model-type
17
17
  * - use this type to make pkey per data.
18
18
  */
19
- export declare type ModelType = 'category' | 'program' | 'option' | 'agreed' | 'zone' | 'payment' | 'policy' | 'cancel' | 'display' | 'application' | 'push' | 'operator' | 'stock' | 'ticket' | 'tile' | 'fault' | 'room' | 'limit' | 'guideline' | 'test' | 'mock';
19
+ export declare type ModelType = 'category' | 'program' | 'option' | 'agreed' | 'zone' | 'payment' | 'policy' | 'cancel' | 'display' | 'application' | 'push' | 'operator' | 'stock' | 'ticket' | 'tile' | 'fault' | 'room' | 'limit' | 'guideline' | 'seat' | 'pass' | 'ops' | 'test' | 'mock';
20
20
  /**
21
21
  * type: `Model`: common model
22
22
  */
@@ -57,6 +57,16 @@ export interface CategoryModel extends Model, CategoryNode {
57
57
  channel?: string;
58
58
  /** 카테고리 (메뉴) 연결 링크 (url) */
59
59
  link?: string;
60
+ /** 카테고리 (메뉴) 백업용 연결 링크 (url) */
61
+ fallbackUrl?: string;
62
+ /**
63
+ * 오픈 링크 (url) - ios용
64
+ */
65
+ iosLink?: string;
66
+ /**
67
+ * 오픈 링크 (url) - android용
68
+ */
69
+ androidLink?: string;
60
70
  /** 카테고리 (메뉴) 탭 메뉴 ex) ['키즈 프로그램', '여성 프로그램'] */
61
71
  tapMenu?: string[];
62
72
  /** 카테고리 보여주기 순서 */
@@ -65,14 +75,28 @@ export interface CategoryModel extends Model, CategoryNode {
65
75
  hidden?: number;
66
76
  }
67
77
  /**
68
- * Type : `ProgramModel`
69
- * - 프로그램 등록 모델
78
+ * type: `ProgramHead`
79
+ * - common head of program-model
70
80
  */
71
- export interface ProgramModel extends Model {
81
+ export interface ProgramHead {
72
82
  /** id: <auto-seq> */
73
83
  id?: string;
74
- /** 상품 타입 (프로그램, 좌석) */
75
- stereo?: CategoryStereoType;
84
+ /** name of program */
85
+ name?: string;
86
+ /** stereo */
87
+ stereo?: ProgramStereoType;
88
+ }
89
+ /**
90
+ * Type : `ProgramModel`
91
+ * - 프로그램 등록 모델
92
+ */
93
+ export interface ProgramModel extends Model, ProgramHead {
94
+ /** 상품 타입 (프로그램, 좌석, 게스트룸, 이용권) */
95
+ stereo?: ProgramStereoType;
96
+ /**
97
+ * 좌석형 프로그램 세부 타입
98
+ */
99
+ seatType?: SeatStereoType;
76
100
  /** 카테고리 id */
77
101
  categoryId?: string;
78
102
  /** name of parent Category */
@@ -81,10 +105,12 @@ export interface ProgramModel extends Model {
81
105
  categoryPath?: string;
82
106
  /** no of Segment */
83
107
  noOfSegment?: number;
84
- /** name of program */
85
- name?: string;
86
108
  /** 프로그램 운영 요일 */
87
109
  dayOfOperation?: WeekDayType[];
110
+ /**
111
+ * 좌석형 프로그램의 운영 시간
112
+ */
113
+ seatTime$?: TimeElement$;
88
114
  /** 목록 노출 여부 (must be isDisplay=1) */
89
115
  isDisplay?: number;
90
116
  /** 강사 프로필 노출 여부 */
@@ -131,8 +157,6 @@ export interface ProgramModel extends Model {
131
157
  interval?: number;
132
158
  /** 상품 (메뉴) 이용 안내 */
133
159
  guideLines?: GuideLine[];
134
- /** 매칭 기간 정보 */
135
- matchingPeriod?: PeriodInfo;
136
160
  /** 게스트룸 - 기본 금액 */
137
161
  roomPrice?: number;
138
162
  /** 게스트룸 - 입실 시간 */
@@ -157,34 +181,57 @@ export interface ProgramModel extends Model {
157
181
  applicationId?: string;
158
182
  /** 프로그램 신청 관리 모델 */
159
183
  application$?: ApplicationManagementModel;
160
- /** 고장 관리 모델 */
161
- faultId?: string;
162
- /** 고장 관리 모델 */
163
- fault$?: FaultModel;
184
+ /** 이용권 운영 모델 ID */
185
+ passOpsId?: string;
186
+ /** 이용권 운영 모델 */
187
+ passOps$?: PassOpsHead;
164
188
  /** 부모 프로그램 id */
165
189
  parent?: string;
166
190
  /** 구역 id */
167
191
  zoneId?: string;
168
192
  /** 구역 이름 */
169
193
  zoneName?: string;
194
+ /**
195
+ * (optional) 좌석형 프로그램에 매핑된 구역 정보
196
+ */
197
+ assignedZones?: Segment[];
170
198
  /** 유닛 id (only stereo = 'program') */
171
199
  unitId?: string;
172
200
  /** 이용 안내 모델 id */
173
201
  guideId?: string;
174
202
  /** 이용 안내 */
175
203
  guide$?: GuidelineHead;
176
- /** 업체/강사 관리 id */
204
+ /**
205
+ * (optional) 강사 id
206
+ * - linked `ssocio2-backend-api`
207
+ */
208
+ instructorId?: string;
209
+ /**
210
+ * (optional) 강사 정보
211
+ * - linked `ssocio2-backend-api`
212
+ */
213
+ instructor$?: Instructor;
214
+ /**
215
+ * 업체/강사 관리 id
216
+ * @deprecated
217
+ */
177
218
  operatorId?: string;
178
- /** 업체/강사 관리 모델 */
219
+ /**
220
+ * 업체/강사 관리 모델
221
+ * @deprecated
222
+ */
179
223
  readonly operator$?: ProgramOperatorModel;
180
224
  /** 재고 관리 id */
181
225
  stockId?: string;
182
226
  /** 재고 모델 */
183
227
  readonly stock$?: StockModel;
184
- /** (optional) tile model (only use seat-program) */
185
- readonly tile$?: TileModel[];
186
228
  /** (optional) room model (only use room-program) */
187
229
  readonly room$?: RoomModel[];
230
+ /**
231
+ * (internal) the linked pass operation model.
232
+ * - 이용권 운영 정보
233
+ */
234
+ readonly $passOps?: PassOpsModel;
188
235
  }
189
236
  /**
190
237
  * Type : `OptionModel`
@@ -247,6 +294,12 @@ export interface AgreedModel extends Model {
247
294
  export interface PaymentHead {
248
295
  /** auto sequence */
249
296
  id?: string;
297
+ /** 청구 방식 */
298
+ billingMethod?: BillingType;
299
+ /**
300
+ * 해당 부가일(월) (ex: 2024-01-01)
301
+ */
302
+ targetDate?: string;
250
303
  /** parent program model id */
251
304
  programId?: string;
252
305
  }
@@ -264,9 +317,10 @@ export interface PaymentModel extends Model, PaymentHead {
264
317
  agreedIds?: string[];
265
318
  /** 결제방식 */
266
319
  paymentMethod?: PaymentType;
267
- /** 청구 방식 */
268
- billingMethod?: BillingType;
269
- /** 해당 부가월 */
320
+ /**
321
+ * @deprecated
322
+ * 해당 부가월
323
+ */
270
324
  targetMonth?: MonthType;
271
325
  /** 할인 가격 */
272
326
  discountPrice?: number;
@@ -304,6 +358,8 @@ export interface PolicyModel extends Model {
304
358
  minNumOfPeople?: number;
305
359
  /** 취소 사유 */
306
360
  cancellationReason?: string[];
361
+ /** (optional) 옵션 상품 환불 가능 여부 */
362
+ useOptionRefund?: number;
307
363
  }
308
364
  /**
309
365
  * Type: `CancelHead`
@@ -313,6 +369,10 @@ export interface CancelHead {
313
369
  id?: string;
314
370
  /** 취소 정책 이름 */
315
371
  name?: string;
372
+ /** 취소 기간 사용 (허용) 타입 */
373
+ periodType?: CancelPeriodType;
374
+ /** 취소 가능 기간*/
375
+ cancellationPeriod?: PeriodInfo;
316
376
  /** 취소 정책 id*/
317
377
  policyId?: string;
318
378
  /** parent program model id */
@@ -324,10 +384,6 @@ export interface CancelHead {
324
384
  * - 프로그램 생성 시 같이 생성! (단독 생성 x)
325
385
  */
326
386
  export interface CancelModel extends CancelHead, PolicyModel {
327
- /** 취소 기간 사용 (허용) 타입 */
328
- periodType?: CancelPeriodType;
329
- /** 취소 가능 기간*/
330
- cancellationPeriod?: PeriodInfo;
331
387
  }
332
388
  /**
333
389
  * Type: `DisplayHead`
@@ -341,8 +397,12 @@ export interface DisplayHead {
341
397
  serviceStatus?: ServiceStatus;
342
398
  /** 카드 유형 */
343
399
  cardType?: CardType;
344
- /** parent program model id */
345
- programId?: string;
400
+ /** 메뉴 */
401
+ tapMenu?: string[];
402
+ /** 대분류 카테고리 */
403
+ mainCategory?: string;
404
+ /** 중분류 카테고리 */
405
+ middleCategory?: string;
346
406
  }
347
407
  /**
348
408
  * Type: `DisplayModel`
@@ -352,24 +412,27 @@ export interface DisplayHead {
352
412
  export interface DisplayModel extends Model, DisplayHead {
353
413
  /** 기기 종류 */
354
414
  device?: DeviceType;
355
- /** 대분류 카테고리 */
356
- mainCategory?: string;
357
- /** 중분류 카테고리 */
358
- middleCategory?: string;
359
- /** 탭 메뉴 */
360
- tapMenu?: string[];
415
+ /** parent program model id */
416
+ programId?: string;
361
417
  }
362
418
  /**
363
419
  * Type: `ApplicationManagementHead`
420
+ * - common head of ApplicationManagementModel
364
421
  */
365
422
  export interface ApplicationManagementHead {
366
423
  /** auto-sequence */
367
424
  id?: string;
425
+ /** stereo */
426
+ stereo?: ManagementStereoType;
368
427
  /** parent program model id */
369
428
  programId?: string;
370
- /** 기간 신청 관리 - 월권 신청 사용 여부 (1: 사용함, 0: 사용안함) */
429
+ /** 기간 신청 관리 - 월권 신청 사용 여부 (1: 사용함, 0: 사용안함)
430
+ * @deprecated
431
+ */
371
432
  useMonthly?: number;
372
- /** 기간 신청 관리 - 일권 신청 사용 여부 (1: 사용함, 0: 사용안함) */
433
+ /** 기간 신청 관리 - 일권 신청 사용 여부 (1: 사용함, 0: 사용안함)
434
+ * @deprecated
435
+ */
373
436
  useDaily?: number;
374
437
  /** 기간 신청 관리 - 월권 금액 (원) */
375
438
  monthlyPrice?: number;
@@ -377,14 +440,25 @@ export interface ApplicationManagementHead {
377
440
  dailyPrice?: number;
378
441
  /** 시간 신청 관리 - 시간 신청 관리 금액 (원) */
379
442
  timePrice?: number;
380
- /** 매칭 상품 - 이용 금액 */
381
- matchPrice?: number;
443
+ /**
444
+ * 기간 신청 관리 - 월권 시작일자 정보
445
+ * - 월권 시작 일자 타입이 기간 설정일 경우.
446
+ */
447
+ monthlyStartDate?: PeriodInfo;
448
+ /** 기간 신청 관리 - 월권 예약 기간 정보 */
449
+ monthlyReservePeriod?: PeriodInfo;
450
+ /** 기간 신청 관리 - 우선 등록 기간 정보 */
451
+ earlyRegisterPeriod?: PeriodInfo;
452
+ /**
453
+ * 일권 신청 관리 - 예약 가능(노출) 기간 정보.
454
+ * - 예약 가능 일자 타입이 기간 설정(period)일 경우.
455
+ */
456
+ dailyAvailableReservePeriod?: PeriodInfo;
382
457
  }
383
458
  /**
384
459
  * Type: `ApplicationManagementModel`
385
460
  * - 신청 관리 모델.
386
- * - stereo type에 따라, 기간, 시간, 쿠폰 신청 관리 모델로 나뉨.
387
- * - 쿠폰 구현 x
461
+ * - stereo type에 따라, 기간, 일자, 시간 신청 관리 모델로 나뉨.
388
462
  */
389
463
  export interface ApplicationManagementModel extends Model, ApplicationManagementHead {
390
464
  /** stereo */
@@ -397,37 +471,24 @@ export interface ApplicationManagementModel extends Model, ApplicationManagement
397
471
  * - 오늘 날짜 + 월권 예약 가능 일자까지 예약 가능하게 됨.
398
472
  */
399
473
  monthlyAvailableReserveRange?: number;
400
- /**
401
- * 기간 신청 관리 - 월권 시작일자 정보
402
- * - 월권 시작 일자 타입이 기간 설정일 경우.
403
- */
404
- monthlyStartDate?: PeriodInfo;
405
- /** 기간 신청 관리 - 월권 예약 기간 정보 */
406
- monthlyReservePeriod?: PeriodInfo;
407
474
  /** 기간 신청 관리 - 우선 등록 여부 (1: 사용함, 0: 사용안함) */
408
475
  useEarlyRegister?: number;
409
- /** 기간 신청 관리 - 우선 등록 기간 정보 */
410
- earlyRegisterPeriod?: PeriodInfo;
411
476
  /** 기간 신청 관리 - 자동 연장 사용 여부 (1: 사용함, 0: 사용안함) */
412
477
  useAutoExtension?: number;
413
478
  /** 기간 신청 관리 - 자동 연장 기간 정보 */
414
479
  autoExtensionPeriod?: PeriodInfo;
415
- /** 기간 신청 관리 - 일권 시작일자 타입 */
416
- dailyStartType?: ProgramStartType;
480
+ /** 일권 신청 관리 - 예약 가능(노출) 일자 타입 */
481
+ dailyReserveType?: ProgramStartType;
417
482
  /**
418
- * 기간 신청 관리 - 일권 예약 가능 일자
483
+ * 일권 신청 관리 - 예약 가능 일자
419
484
  * - 일권 시작 일자 타입이 오늘 기준일 경우.
420
485
  * - 오늘 날짜 + 일권 예약 가능 일자까지 예약 가능하게 됨.
421
486
  */
422
487
  dailyAvailableReserveDate?: number;
423
- /** 기간 신청 관리 - 일권 시작 일자 정보
424
- * - 일권 시작일자 타입이 기간 설정일 경우.
425
- */
426
- dailyStartDate?: PeriodInfo;
427
- /** 기간 신청 관리 - 일권 예약 가능 범위 (일) */
428
- dailyAvailableReserveRange?: number;
429
488
  /** 기간 신청 관리 - 일권 예약 불가 범위 (일) */
430
489
  dailyInAvailableReserveRange?: number;
490
+ /** 캘린더 금액 노출 여부 */
491
+ usePriceDisplay?: BoolFlag;
431
492
  /** 시간 신청 관리 - 예약 가능 일자 타입 */
432
493
  timeReserveType?: ProgramStartType;
433
494
  /**
@@ -441,42 +502,49 @@ export interface ApplicationManagementModel extends Model, ApplicationManagement
441
502
  * - 예약 가능 일자 타입이 기간 설정(period)일 경우.
442
503
  */
443
504
  timeAvailableReservePeriod?: PeriodInfo;
444
- /** 시간 신청 관리 - 예약 가능 범위 기준 (시간 or 분) */
505
+ /** 시간 신청 관리 - 예약 가능 범위 기준 (시간 or 분)
506
+ * @deprecated
507
+ */
445
508
  timeAvailableType?: BaseTimeType;
446
- /** 시간 신청 관리 - 예약 가능 범위 */
509
+ /** 시간 신청 관리 - 예약 가능 범위
510
+ * @deprecated
511
+ */
447
512
  timeAvailableRange?: number;
448
513
  /** 시간 신청 관리 - 시간 간격 기준 (시간 or 분) */
449
514
  timeBaseOfTimeInterval?: BaseTimeType;
450
515
  /** 시간 신청 관리 - 시간 간격 */
451
516
  timeInterval?: number;
517
+ /**
518
+ * 예약 제한 대상 타입
519
+ * - 시간 신청 관리
520
+ */
521
+ reserveLimitTarget?: ReserveLimitTargetType;
522
+ /**
523
+ * 예약 제한 횟수 (1일 별)
524
+ * - 시간 신청 관리
525
+ */
526
+ reserveLimitCount?: number;
527
+ /**
528
+ * 1회 연속 예약 범위 횟수
529
+ * - 시간 신청 관리
530
+ */
531
+ oneTimeSelectableCount?: number;
452
532
  /** 시간 신청 관리 - 예약 불가 범위 간격 기준 (시간 or 분) */
453
533
  timeInAvailableType?: BaseTimeType;
454
534
  /** 시간 신청 관리 - 예약 불가 범위 (Today 기준) */
455
535
  timeInAvailableRange?: number;
456
- /** 시간 신청 관리 - 시간 제한 사용 여부 */
536
+ /** 시간 신청 관리 - 시간 제한 사용 여부
537
+ * @deprecated
538
+ */
457
539
  useTimeLimit?: number;
458
- /** 시간 신청 관리 - 시간 제한 (시간 범위) */
540
+ /** 시간 신청 관리 - 시간 제한 (시간 범위)
541
+ * @deprecated
542
+ */
459
543
  timeLimits?: TimeBlock[];
460
544
  /** 시간 신청 관리 - 요일 정책 사용 여부 */
461
545
  useDayOfTheWeekPolicy?: number;
462
546
  /** 시간 신청 관리 - 요일 정책 */
463
547
  dayOfTheWeekPolicies?: DayOfTheWeekPolicy[];
464
- /** 매칭 상품 - 이용 기간 사용 여부 */
465
- useMatchPeriod?: number;
466
- /** 매칭 상품 - 이용 기간 정보 */
467
- matchUsePeriod?: PeriodInfo;
468
- /** 매칭 상품 - 이용 가능 횟수 */
469
- matchNoOfAvailable?: number;
470
- /** 매칭 상품 - 예약 가능 범위 */
471
- matchAvailableRange?: number;
472
- /** 매칭 상품 - 이용 제한 사용 여부 */
473
- useMatchLimit?: number;
474
- /** 매칭 상품 - 이용 제한 일수 */
475
- matchLimitDays?: number;
476
- /** 매칭 상품 - 이용 제한 횟수 */
477
- matchLimitCount?: number;
478
- /** 매칭 상품 - 구매 횟수 */
479
- matchPurchaseCount?: number;
480
548
  /** 게스트룸 - 예약 가능 일자 */
481
549
  roomReserveAvailableDate?: number;
482
550
  /** 게스트룸 - 예약 가능 범위 */
@@ -486,6 +554,59 @@ export interface ApplicationManagementModel extends Model, ApplicationManagement
486
554
  /** 게스트룸 - 당일 예약 허용 */
487
555
  useSameDayReservation?: number;
488
556
  }
557
+ /**
558
+ * Type: `PassOpsHead`
559
+ * - common head of PassOpsModel
560
+ */
561
+ export interface PassOpsHead {
562
+ /** id of model (= <auto-seq>) */
563
+ id?: string;
564
+ /** 이용권 타입 */
565
+ stereo?: PassOperationType;
566
+ /** 금액 */
567
+ price?: number;
568
+ /** 판매 시작 시각 */
569
+ saleFrom?: number;
570
+ /** 판매 종료 시각 */
571
+ saleTo?: number;
572
+ /** 사용 시작 시각 */
573
+ usageFrom?: number;
574
+ /** 사용 종료 시각 */
575
+ usageTo?: number;
576
+ /** 총 이용 횟수 */
577
+ noOfPass?: number;
578
+ /** 예약 제한 횟수 (1일 별) */
579
+ noOfReservationLimit?: number;
580
+ /** 횟수 노출 여부 */
581
+ useCountDisplay?: BoolFlag;
582
+ /** 이용권 사용이 허용된 프로그램 ID 항목 */
583
+ allowedProgramIds?: string[];
584
+ }
585
+ /**
586
+ * Type: `PassOpsModel`
587
+ * - Pass Operations Model
588
+ * - 이용권의 권한 관리 모델
589
+ */
590
+ export interface PassOpsModel extends Model, PassOpsHead {
591
+ /** this stereo */
592
+ stereo?: PassOperationType;
593
+ /** 구매 횟수 노출 사용 여부
594
+ * @deprecated
595
+ */
596
+ usePurchaseLimit?: BoolFlag;
597
+ /** 구매 제한 대상 타입 */
598
+ purchaseLimitTarget?: ReserveLimitTargetType;
599
+ /** 구매 제한 횟수 */
600
+ noOfPurchaseLimit?: number;
601
+ /** 예약 제한 대상 타입 */
602
+ reserveLimitTarget?: ReserveLimitTargetType;
603
+ /** id of program */
604
+ programId?: string;
605
+ /**
606
+ * 이용권 사용이 허용된 프로그램 목록
607
+ */
608
+ allowedPrograms$?: ProgramHead[];
609
+ }
489
610
  /**
490
611
  * Type: `PushNotificationHead`
491
612
  */
@@ -568,63 +689,133 @@ export interface TicketModel extends Model, TicketNode {
568
689
  /** 티켓 취소 (릴리즈) 시간 */
569
690
  canceledAt?: number;
570
691
  }
571
- /** type: `TileModel`
572
- * - 프로그램과 매핑된 zone-id로 `ssocio-zacs-api`를 통해 데이터 동기화
573
- * - 타석 및 좌석의 기본 정보
692
+ /**
693
+ * Type: `SeatHead`
574
694
  */
575
- export interface TileModel extends Model {
576
- /** id (= zacs-api/tiles/<id>) */
695
+ export interface SeatHead {
696
+ /** id of model */
577
697
  id?: string;
578
- /** stereo type */
579
- stereo?: ProdType;
580
- /** name of tile */
698
+ /** this name */
581
699
  name?: string;
582
- /** 해당 좌석 가격 */
700
+ /** 좌석 예약 해당 일자 */
701
+ fullDate?: string;
702
+ /** 해당 예약 인스턴스의 시작 시각 정보 */
703
+ seatStartTime?: number;
704
+ /** 해당 예약 인스턴스의 종료 시각 정보 */
705
+ seatEndTime?: number;
706
+ /**
707
+ * reserve available flag
708
+ * - 해당 예약 인스턴스의 예약 가능 여부
709
+ */
710
+ isAvailable?: BoolFlag;
711
+ }
712
+ /**
713
+ * Type: `SeatModel`
714
+ */
715
+ export interface SeatModel extends Model, SeatHead {
716
+ /**
717
+ * local id of seat
718
+ */
719
+ id?: string;
720
+ /**
721
+ * stereo types
722
+ */
723
+ stereo?: SeatStereo;
724
+ /**
725
+ * (optional) type of seat-unit
726
+ */
727
+ unitType?: SeatUnitType;
728
+ /** (optional) type of prod */
729
+ prodType?: ManagementStereoType;
730
+ /**
731
+ * parent-id (:= id of seat-group)
732
+ */
733
+ parent?: string;
734
+ /** option-id (which is unique in option-model) */
735
+ oid?: string;
736
+ /** (TODO) item-id linked */
737
+ iid?: string;
738
+ /** (TODO) prod-id linked */
739
+ pid?: string;
740
+ /** 해당 날짜의 요일 */
741
+ dayOfAWeek?: number;
742
+ /** 설정된 시분할 기준값 (분) */
743
+ duration?: number;
744
+ /** (optional) 좌석 예약 종료 일자 */
745
+ endDate?: string;
746
+ /**
747
+ * 해당 예약 인스턴스의 시작 구간 텍스트 타입
748
+ * - ex) "20:00"
749
+ */
750
+ seatT1?: string;
751
+ /**
752
+ * 해당 예약 인스턴스의 종료 구간 텍스트 타입
753
+ * - ex) "21:00"
754
+ */
755
+ seatT2?: string;
756
+ /**
757
+ * price of seat
758
+ */
583
759
  price?: number;
584
- /** tile start time */
585
- time1?: string;
586
- /** tile end time */
587
- time2?: string;
588
- /** target date */
589
- date?: string;
590
- /** date of expired for monthly pass */
591
- expiredDate?: string;
592
- /** 할당된 시각 */
760
+ /**
761
+ * possible stocks (integer)
762
+ */
763
+ stock?: number;
764
+ /**
765
+ * business day flag
766
+ * - 해당 예약 인스턴스의 판매일 여부
767
+ */
768
+ isBusinessDay?: BoolFlag;
769
+ /**
770
+ * holiday flag
771
+ * - 해당 예약 인스턴스의 공휴일 여부
772
+ */
773
+ isHoliday?: BoolFlag;
774
+ /**
775
+ * sale day flag
776
+ * - 해당 예약 인스턴스의 할인일 여부
777
+ */
778
+ isSaleDay?: BoolFlag;
779
+ /**
780
+ * disabled day flag
781
+ * - 해당 예약 인스턴스의 예약제한 여부
782
+ */
783
+ isDisableDay?: BoolFlag;
784
+ /**
785
+ * assigned day flag
786
+ * - 해당 예약 인스턴스의 재고 점유 여부
787
+ */
788
+ isAssigned?: BoolFlag;
789
+ /**
790
+ * invalid flag
791
+ */
792
+ invalid?: BoolFlag;
793
+ /** (extended) 좌석 상태 */
794
+ status?: SeatStateType;
795
+ /** (optional) 좌석 할당 시각 */
593
796
  assignedAt?: number;
594
- /** timestamp of time of use (:= date + time1) */
595
- usedAt?: number;
596
- /** 좌석 서비스 상태 */
597
- status?: SeatStatusType;
598
- /** id of program */
599
- programId?: string;
600
- /** id of stock */
797
+ /** (optional) 좌석 취소 시각 */
798
+ canceledAt?: number;
799
+ /**
800
+ * (optional) 주문자 정보
801
+ */
802
+ orderer?: User;
803
+ /** (optional) the assignd stock-id */
601
804
  stockId?: string;
602
- /** id of ticket */
805
+ /** (optional) the assignd ticket-id */
603
806
  ticketId?: string;
604
- /** id of order */
807
+ /** (linked) the target program-id */
808
+ programId?: string;
809
+ /** (linked) the origin orider-id via `ssocio-orders-api` */
605
810
  orderId?: string;
606
- /** id of zone */
811
+ /** (linked) the target zone-id via `ssocio-zacs-api` */
607
812
  zoneId?: string;
608
- /** 주문자 정보 */
609
- orderer?: User;
610
- }
611
- /**
612
- * type: `FaultModel`
613
- * - 좌석 고장 등록 모델
614
- */
615
- export interface FaultModel extends Model {
616
- /** id (auto-seq) */
617
- id?: string;
618
- /** 예약 불가 시작 시각 (timestamp) */
619
- time1?: number;
620
- /** 예약 불가 마감 시각 (timestamp) */
621
- time2?: number;
622
- /** 고장 등록 시각 (timestamp) */
623
- disableAt?: number;
624
- /** 고장 해제 시각 (timestamp) */
625
- activeAt?: number;
626
- /** id of program */
627
- programId?: string;
813
+ /** (optional) 그룹에 매핑된 좌석 유닛 ID 항목 */
814
+ unitIds?: string[];
815
+ /**
816
+ * (optional) 한 그룹에 매핑된 좌석 유닛 정보들.
817
+ */
818
+ units?: SeatHead[];
628
819
  }
629
820
  /**
630
821
  * type: `RoomModel`
@@ -660,6 +851,61 @@ export interface RoomModel extends Model {
660
851
  /** (optional) 이용 제한시, 이용 제한 목록을 보여줌 */
661
852
  limit$?: LimitModel[];
662
853
  }
854
+ /**
855
+ * type: `PassModel`
856
+ * - 이용권 관리을 위한 모델
857
+ */
858
+ export interface PassModel extends Model, StockNode {
859
+ /** id of model
860
+ * - parent: (= program-id:<user-id>)
861
+ * - child: (= parent-id:<no>)
862
+ */
863
+ id?: string;
864
+ /** this name */
865
+ name?: string;
866
+ /** id of parent-pass */
867
+ parent?: string;
868
+ /** stereo */
869
+ stereo?: PassStereoType;
870
+ /** (optional) 이용권 적용 가능 여부 */
871
+ status?: PassStateType;
872
+ /** 이용권의 종류 */
873
+ usageType?: PassOperationType;
874
+ /** start time of pass */
875
+ usageFrom?: number;
876
+ /** end time of pass */
877
+ usageTo?: number;
878
+ /** (optional) 1일 예약제한 사용 여부 */
879
+ useOneDayLimit?: BoolFlag;
880
+ /** (optional) 1일 예약제한 횟수 */
881
+ noOfLimit?: number;
882
+ /** (optional) 이용 횟수 노출 여부 */
883
+ useStockDisplay?: number;
884
+ /** (optional) time of issued */
885
+ issuedAt?: number;
886
+ /** (optional) time of used */
887
+ usedAt?: number;
888
+ /** (optional) time of canceled */
889
+ canceledAt?: number;
890
+ /** (optional) seq no in child-pass */
891
+ childNo?: number;
892
+ /** (optional) price of applied */
893
+ appliedPrice?: number;
894
+ /** (liked) 상품(원본)의 ID */
895
+ programId?: string;
896
+ /** (optional) 발급받은 유저의 ID */
897
+ userId?: string;
898
+ /** (optional) 적용된 상품 ID */
899
+ appliedId?: string;
900
+ /** (optional) 적용된 주문 ID */
901
+ orderId?: string;
902
+ /** (optional) 이용권을 적용한 단일 인스턴스의 ID
903
+ * - 좌석이용권 := seatId
904
+ * - 프로그램이용권 := programId
905
+ * - 게스트룸이용권 := roomId
906
+ */
907
+ targetId?: string;
908
+ }
663
909
  /**
664
910
  * type: `LimitModel`
665
911
  * - 게스트룸 예약 제한에 사용되는 모델
@@ -745,12 +991,15 @@ export interface MockModel extends Model {
745
991
  */
746
992
  export declare const filterFields: (fields: string[], base?: string[]) => string[];
747
993
  export declare const $HEAD: {
994
+ program: string[];
748
995
  cancel: string[];
749
996
  application: string[];
750
997
  display: string[];
751
998
  payment: string[];
752
999
  push: string[];
753
1000
  guideline: string[];
1001
+ seat: string[];
1002
+ ops: string[];
754
1003
  };
755
1004
  export declare const $FIELD: {
756
1005
  category: string[];
@@ -766,11 +1015,12 @@ export declare const $FIELD: {
766
1015
  operator: string[];
767
1016
  stock: string[];
768
1017
  ticket: string[];
769
- tile: string[];
770
- fault: string[];
771
1018
  room: string[];
772
1019
  limit: string[];
773
1020
  guideline: string[];
1021
+ seat: string[];
1022
+ pass: string[];
1023
+ ops: string[];
774
1024
  test: string[];
775
1025
  mock: string[];
776
1026
  };