@lemoncloud/ssocio-stacks-api 0.23.1008 → 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' | '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,30 +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
- /** 업체/강사 관리 id */
200
+ /** 이용 안내 모델 id */
201
+ guideId?: string;
202
+ /** 이용 안내 */
203
+ guide$?: GuidelineHead;
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
+ */
173
218
  operatorId?: string;
174
- /** 업체/강사 관리 모델 */
219
+ /**
220
+ * 업체/강사 관리 모델
221
+ * @deprecated
222
+ */
175
223
  readonly operator$?: ProgramOperatorModel;
176
224
  /** 재고 관리 id */
177
225
  stockId?: string;
178
226
  /** 재고 모델 */
179
227
  readonly stock$?: StockModel;
180
- /** (optional) tile model (only use seat-program) */
181
- readonly tile$?: TileModel[];
182
228
  /** (optional) room model (only use room-program) */
183
229
  readonly room$?: RoomModel[];
230
+ /**
231
+ * (internal) the linked pass operation model.
232
+ * - 이용권 운영 정보
233
+ */
234
+ readonly $passOps?: PassOpsModel;
184
235
  }
185
236
  /**
186
237
  * Type : `OptionModel`
@@ -243,6 +294,12 @@ export interface AgreedModel extends Model {
243
294
  export interface PaymentHead {
244
295
  /** auto sequence */
245
296
  id?: string;
297
+ /** 청구 방식 */
298
+ billingMethod?: BillingType;
299
+ /**
300
+ * 해당 부가일(월) (ex: 2024-01-01)
301
+ */
302
+ targetDate?: string;
246
303
  /** parent program model id */
247
304
  programId?: string;
248
305
  }
@@ -260,9 +317,10 @@ export interface PaymentModel extends Model, PaymentHead {
260
317
  agreedIds?: string[];
261
318
  /** 결제방식 */
262
319
  paymentMethod?: PaymentType;
263
- /** 청구 방식 */
264
- billingMethod?: BillingType;
265
- /** 해당 부가월 */
320
+ /**
321
+ * @deprecated
322
+ * 해당 부가월
323
+ */
266
324
  targetMonth?: MonthType;
267
325
  /** 할인 가격 */
268
326
  discountPrice?: number;
@@ -300,6 +358,8 @@ export interface PolicyModel extends Model {
300
358
  minNumOfPeople?: number;
301
359
  /** 취소 사유 */
302
360
  cancellationReason?: string[];
361
+ /** (optional) 옵션 상품 환불 가능 여부 */
362
+ useOptionRefund?: number;
303
363
  }
304
364
  /**
305
365
  * Type: `CancelHead`
@@ -309,6 +369,10 @@ export interface CancelHead {
309
369
  id?: string;
310
370
  /** 취소 정책 이름 */
311
371
  name?: string;
372
+ /** 취소 기간 사용 (허용) 타입 */
373
+ periodType?: CancelPeriodType;
374
+ /** 취소 가능 기간*/
375
+ cancellationPeriod?: PeriodInfo;
312
376
  /** 취소 정책 id*/
313
377
  policyId?: string;
314
378
  /** parent program model id */
@@ -320,10 +384,6 @@ export interface CancelHead {
320
384
  * - 프로그램 생성 시 같이 생성! (단독 생성 x)
321
385
  */
322
386
  export interface CancelModel extends CancelHead, PolicyModel {
323
- /** 취소 기간 사용 (허용) 타입 */
324
- periodType?: CancelPeriodType;
325
- /** 취소 가능 기간*/
326
- cancellationPeriod?: PeriodInfo;
327
387
  }
328
388
  /**
329
389
  * Type: `DisplayHead`
@@ -337,8 +397,12 @@ export interface DisplayHead {
337
397
  serviceStatus?: ServiceStatus;
338
398
  /** 카드 유형 */
339
399
  cardType?: CardType;
340
- /** parent program model id */
341
- programId?: string;
400
+ /** 메뉴 */
401
+ tapMenu?: string[];
402
+ /** 대분류 카테고리 */
403
+ mainCategory?: string;
404
+ /** 중분류 카테고리 */
405
+ middleCategory?: string;
342
406
  }
343
407
  /**
344
408
  * Type: `DisplayModel`
@@ -348,24 +412,27 @@ export interface DisplayHead {
348
412
  export interface DisplayModel extends Model, DisplayHead {
349
413
  /** 기기 종류 */
350
414
  device?: DeviceType;
351
- /** 대분류 카테고리 */
352
- mainCategory?: string;
353
- /** 중분류 카테고리 */
354
- middleCategory?: string;
355
- /** 탭 메뉴 */
356
- tapMenu?: string[];
415
+ /** parent program model id */
416
+ programId?: string;
357
417
  }
358
418
  /**
359
419
  * Type: `ApplicationManagementHead`
420
+ * - common head of ApplicationManagementModel
360
421
  */
361
422
  export interface ApplicationManagementHead {
362
423
  /** auto-sequence */
363
424
  id?: string;
425
+ /** stereo */
426
+ stereo?: ManagementStereoType;
364
427
  /** parent program model id */
365
428
  programId?: string;
366
- /** 기간 신청 관리 - 월권 신청 사용 여부 (1: 사용함, 0: 사용안함) */
429
+ /** 기간 신청 관리 - 월권 신청 사용 여부 (1: 사용함, 0: 사용안함)
430
+ * @deprecated
431
+ */
367
432
  useMonthly?: number;
368
- /** 기간 신청 관리 - 일권 신청 사용 여부 (1: 사용함, 0: 사용안함) */
433
+ /** 기간 신청 관리 - 일권 신청 사용 여부 (1: 사용함, 0: 사용안함)
434
+ * @deprecated
435
+ */
369
436
  useDaily?: number;
370
437
  /** 기간 신청 관리 - 월권 금액 (원) */
371
438
  monthlyPrice?: number;
@@ -373,14 +440,25 @@ export interface ApplicationManagementHead {
373
440
  dailyPrice?: number;
374
441
  /** 시간 신청 관리 - 시간 신청 관리 금액 (원) */
375
442
  timePrice?: number;
376
- /** 매칭 상품 - 이용 금액 */
377
- 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;
378
457
  }
379
458
  /**
380
459
  * Type: `ApplicationManagementModel`
381
460
  * - 신청 관리 모델.
382
- * - stereo type에 따라, 기간, 시간, 쿠폰 신청 관리 모델로 나뉨.
383
- * - 쿠폰 구현 x
461
+ * - stereo type에 따라, 기간, 일자, 시간 신청 관리 모델로 나뉨.
384
462
  */
385
463
  export interface ApplicationManagementModel extends Model, ApplicationManagementHead {
386
464
  /** stereo */
@@ -393,37 +471,24 @@ export interface ApplicationManagementModel extends Model, ApplicationManagement
393
471
  * - 오늘 날짜 + 월권 예약 가능 일자까지 예약 가능하게 됨.
394
472
  */
395
473
  monthlyAvailableReserveRange?: number;
396
- /**
397
- * 기간 신청 관리 - 월권 시작일자 정보
398
- * - 월권 시작 일자 타입이 기간 설정일 경우.
399
- */
400
- monthlyStartDate?: PeriodInfo;
401
- /** 기간 신청 관리 - 월권 예약 기간 정보 */
402
- monthlyReservePeriod?: PeriodInfo;
403
474
  /** 기간 신청 관리 - 우선 등록 여부 (1: 사용함, 0: 사용안함) */
404
475
  useEarlyRegister?: number;
405
- /** 기간 신청 관리 - 우선 등록 기간 정보 */
406
- earlyRegisterPeriod?: PeriodInfo;
407
476
  /** 기간 신청 관리 - 자동 연장 사용 여부 (1: 사용함, 0: 사용안함) */
408
477
  useAutoExtension?: number;
409
478
  /** 기간 신청 관리 - 자동 연장 기간 정보 */
410
479
  autoExtensionPeriod?: PeriodInfo;
411
- /** 기간 신청 관리 - 일권 시작일자 타입 */
412
- dailyStartType?: ProgramStartType;
480
+ /** 일권 신청 관리 - 예약 가능(노출) 일자 타입 */
481
+ dailyReserveType?: ProgramStartType;
413
482
  /**
414
- * 기간 신청 관리 - 일권 예약 가능 일자
483
+ * 일권 신청 관리 - 예약 가능 일자
415
484
  * - 일권 시작 일자 타입이 오늘 기준일 경우.
416
485
  * - 오늘 날짜 + 일권 예약 가능 일자까지 예약 가능하게 됨.
417
486
  */
418
487
  dailyAvailableReserveDate?: number;
419
- /** 기간 신청 관리 - 일권 시작 일자 정보
420
- * - 일권 시작일자 타입이 기간 설정일 경우.
421
- */
422
- dailyStartDate?: PeriodInfo;
423
- /** 기간 신청 관리 - 일권 예약 가능 범위 (일) */
424
- dailyAvailableReserveRange?: number;
425
488
  /** 기간 신청 관리 - 일권 예약 불가 범위 (일) */
426
489
  dailyInAvailableReserveRange?: number;
490
+ /** 캘린더 금액 노출 여부 */
491
+ usePriceDisplay?: BoolFlag;
427
492
  /** 시간 신청 관리 - 예약 가능 일자 타입 */
428
493
  timeReserveType?: ProgramStartType;
429
494
  /**
@@ -437,42 +502,49 @@ export interface ApplicationManagementModel extends Model, ApplicationManagement
437
502
  * - 예약 가능 일자 타입이 기간 설정(period)일 경우.
438
503
  */
439
504
  timeAvailableReservePeriod?: PeriodInfo;
440
- /** 시간 신청 관리 - 예약 가능 범위 기준 (시간 or 분) */
505
+ /** 시간 신청 관리 - 예약 가능 범위 기준 (시간 or 분)
506
+ * @deprecated
507
+ */
441
508
  timeAvailableType?: BaseTimeType;
442
- /** 시간 신청 관리 - 예약 가능 범위 */
509
+ /** 시간 신청 관리 - 예약 가능 범위
510
+ * @deprecated
511
+ */
443
512
  timeAvailableRange?: number;
444
513
  /** 시간 신청 관리 - 시간 간격 기준 (시간 or 분) */
445
514
  timeBaseOfTimeInterval?: BaseTimeType;
446
515
  /** 시간 신청 관리 - 시간 간격 */
447
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;
448
532
  /** 시간 신청 관리 - 예약 불가 범위 간격 기준 (시간 or 분) */
449
533
  timeInAvailableType?: BaseTimeType;
450
534
  /** 시간 신청 관리 - 예약 불가 범위 (Today 기준) */
451
535
  timeInAvailableRange?: number;
452
- /** 시간 신청 관리 - 시간 제한 사용 여부 */
536
+ /** 시간 신청 관리 - 시간 제한 사용 여부
537
+ * @deprecated
538
+ */
453
539
  useTimeLimit?: number;
454
- /** 시간 신청 관리 - 시간 제한 (시간 범위) */
540
+ /** 시간 신청 관리 - 시간 제한 (시간 범위)
541
+ * @deprecated
542
+ */
455
543
  timeLimits?: TimeBlock[];
456
544
  /** 시간 신청 관리 - 요일 정책 사용 여부 */
457
545
  useDayOfTheWeekPolicy?: number;
458
546
  /** 시간 신청 관리 - 요일 정책 */
459
547
  dayOfTheWeekPolicies?: DayOfTheWeekPolicy[];
460
- /** 매칭 상품 - 이용 기간 사용 여부 */
461
- useMatchPeriod?: number;
462
- /** 매칭 상품 - 이용 기간 정보 */
463
- matchUsePeriod?: PeriodInfo;
464
- /** 매칭 상품 - 이용 가능 횟수 */
465
- matchNoOfAvailable?: number;
466
- /** 매칭 상품 - 예약 가능 범위 */
467
- matchAvailableRange?: number;
468
- /** 매칭 상품 - 이용 제한 사용 여부 */
469
- useMatchLimit?: number;
470
- /** 매칭 상품 - 이용 제한 일수 */
471
- matchLimitDays?: number;
472
- /** 매칭 상품 - 이용 제한 횟수 */
473
- matchLimitCount?: number;
474
- /** 매칭 상품 - 구매 횟수 */
475
- matchPurchaseCount?: number;
476
548
  /** 게스트룸 - 예약 가능 일자 */
477
549
  roomReserveAvailableDate?: number;
478
550
  /** 게스트룸 - 예약 가능 범위 */
@@ -482,6 +554,59 @@ export interface ApplicationManagementModel extends Model, ApplicationManagement
482
554
  /** 게스트룸 - 당일 예약 허용 */
483
555
  useSameDayReservation?: number;
484
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
+ }
485
610
  /**
486
611
  * Type: `PushNotificationHead`
487
612
  */
@@ -564,63 +689,133 @@ export interface TicketModel extends Model, TicketNode {
564
689
  /** 티켓 취소 (릴리즈) 시간 */
565
690
  canceledAt?: number;
566
691
  }
567
- /** type: `TileModel`
568
- * - 프로그램과 매핑된 zone-id로 `ssocio-zacs-api`를 통해 데이터 동기화
569
- * - 타석 및 좌석의 기본 정보
692
+ /**
693
+ * Type: `SeatHead`
570
694
  */
571
- export interface TileModel extends Model {
572
- /** id (= zacs-api/tiles/<id>) */
695
+ export interface SeatHead {
696
+ /** id of model */
573
697
  id?: string;
574
- /** stereo type */
575
- stereo?: ProdType;
576
- /** name of tile */
698
+ /** this name */
577
699
  name?: string;
578
- /** 해당 좌석 가격 */
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
+ */
579
759
  price?: number;
580
- /** tile start time */
581
- time1?: string;
582
- /** tile end time */
583
- time2?: string;
584
- /** target date */
585
- date?: string;
586
- /** date of expired for monthly pass */
587
- expiredDate?: string;
588
- /** 할당된 시각 */
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) 좌석 할당 시각 */
589
796
  assignedAt?: number;
590
- /** timestamp of time of use (:= date + time1) */
591
- usedAt?: number;
592
- /** 좌석 서비스 상태 */
593
- status?: SeatStatusType;
594
- /** id of program */
595
- programId?: string;
596
- /** id of stock */
797
+ /** (optional) 좌석 취소 시각 */
798
+ canceledAt?: number;
799
+ /**
800
+ * (optional) 주문자 정보
801
+ */
802
+ orderer?: User;
803
+ /** (optional) the assignd stock-id */
597
804
  stockId?: string;
598
- /** id of ticket */
805
+ /** (optional) the assignd ticket-id */
599
806
  ticketId?: string;
600
- /** id of order */
807
+ /** (linked) the target program-id */
808
+ programId?: string;
809
+ /** (linked) the origin orider-id via `ssocio-orders-api` */
601
810
  orderId?: string;
602
- /** id of zone */
811
+ /** (linked) the target zone-id via `ssocio-zacs-api` */
603
812
  zoneId?: string;
604
- /** 주문자 정보 */
605
- orderer?: User;
606
- }
607
- /**
608
- * type: `FaultModel`
609
- * - 좌석 고장 등록 모델
610
- */
611
- export interface FaultModel extends Model {
612
- /** id (auto-seq) */
613
- id?: string;
614
- /** 예약 불가 시작 시각 (timestamp) */
615
- time1?: number;
616
- /** 예약 불가 마감 시각 (timestamp) */
617
- time2?: number;
618
- /** 고장 등록 시각 (timestamp) */
619
- disableAt?: number;
620
- /** 고장 해제 시각 (timestamp) */
621
- activeAt?: number;
622
- /** id of program */
623
- programId?: string;
813
+ /** (optional) 그룹에 매핑된 좌석 유닛 ID 항목 */
814
+ unitIds?: string[];
815
+ /**
816
+ * (optional) 한 그룹에 매핑된 좌석 유닛 정보들.
817
+ */
818
+ units?: SeatHead[];
624
819
  }
625
820
  /**
626
821
  * type: `RoomModel`
@@ -656,6 +851,61 @@ export interface RoomModel extends Model {
656
851
  /** (optional) 이용 제한시, 이용 제한 목록을 보여줌 */
657
852
  limit$?: LimitModel[];
658
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
+ }
659
909
  /**
660
910
  * type: `LimitModel`
661
911
  * - 게스트룸 예약 제한에 사용되는 모델
@@ -678,6 +928,24 @@ export interface LimitModel extends Model {
678
928
  /** target program-id */
679
929
  programId?: string;
680
930
  }
931
+ /**
932
+ * type: `GuidelineHead`
933
+ */
934
+ export interface GuidelineHead {
935
+ /** id (:=auto-seq) */
936
+ id?: string;
937
+ /** name of model */
938
+ name?: string;
939
+ }
940
+ /**
941
+ * type: `GuidelineModel` (이용안내)
942
+ */
943
+ export interface GuidelineModel extends Model, GuidelineHead {
944
+ /** 탭 메뉴 이름 */
945
+ tapMenu?: string[];
946
+ /** 이용 안내 목록 */
947
+ guideLines?: GuideLine[];
948
+ }
681
949
  /**
682
950
  * type: `TestHead`
683
951
  * - common head of test-model.
@@ -723,11 +991,15 @@ export interface MockModel extends Model {
723
991
  */
724
992
  export declare const filterFields: (fields: string[], base?: string[]) => string[];
725
993
  export declare const $HEAD: {
994
+ program: string[];
726
995
  cancel: string[];
727
996
  application: string[];
728
997
  display: string[];
729
998
  payment: string[];
730
999
  push: string[];
1000
+ guideline: string[];
1001
+ seat: string[];
1002
+ ops: string[];
731
1003
  };
732
1004
  export declare const $FIELD: {
733
1005
  category: string[];
@@ -743,10 +1015,12 @@ export declare const $FIELD: {
743
1015
  operator: string[];
744
1016
  stock: string[];
745
1017
  ticket: string[];
746
- tile: string[];
747
- fault: string[];
748
1018
  room: string[];
749
1019
  limit: string[];
1020
+ guideline: string[];
1021
+ seat: string[];
1022
+ pass: string[];
1023
+ ops: string[];
750
1024
  test: string[];
751
1025
  mock: string[];
752
1026
  };