dooring-core-domain 1.1.2 → 1.2.1

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.
Files changed (61) hide show
  1. package/dist/index.d.ts +3 -1
  2. package/dist/index.d.ts.map +1 -1
  3. package/dist/index.js +30 -2
  4. package/dist/index.js.map +1 -1
  5. package/dist/models/Barogisa/checkin.d.ts +14 -0
  6. package/dist/models/Barogisa/checkin.d.ts.map +1 -0
  7. package/dist/models/Barogisa/checkin.js +5 -0
  8. package/dist/models/Barogisa/checkin.js.map +1 -0
  9. package/dist/models/Barogisa/deposit.d.ts +7 -0
  10. package/dist/models/Barogisa/deposit.d.ts.map +1 -0
  11. package/dist/models/Barogisa/deposit.js +30 -0
  12. package/dist/models/Barogisa/deposit.js.map +1 -0
  13. package/dist/models/Barogisa/factory.d.ts +9 -0
  14. package/dist/models/Barogisa/factory.d.ts.map +1 -0
  15. package/dist/models/Barogisa/factory.js +5 -0
  16. package/dist/models/Barogisa/factory.js.map +1 -0
  17. package/dist/models/Barogisa/format.d.ts +3 -0
  18. package/dist/models/Barogisa/format.d.ts.map +1 -0
  19. package/dist/models/Barogisa/format.js +22 -0
  20. package/dist/models/Barogisa/format.js.map +1 -0
  21. package/dist/models/Barogisa/index.d.ts +9 -0
  22. package/dist/models/Barogisa/index.d.ts.map +1 -0
  23. package/dist/models/Barogisa/index.js +28 -0
  24. package/dist/models/Barogisa/index.js.map +1 -0
  25. package/dist/models/Barogisa/job.d.ts +39 -0
  26. package/dist/models/Barogisa/job.d.ts.map +1 -0
  27. package/dist/models/Barogisa/job.js +5 -0
  28. package/dist/models/Barogisa/job.js.map +1 -0
  29. package/dist/models/Barogisa/labels.d.ts +4 -0
  30. package/dist/models/Barogisa/labels.d.ts.map +1 -0
  31. package/dist/models/Barogisa/labels.js +25 -0
  32. package/dist/models/Barogisa/labels.js.map +1 -0
  33. package/dist/models/Barogisa/rates.d.ts +4 -0
  34. package/dist/models/Barogisa/rates.d.ts.map +1 -0
  35. package/dist/models/Barogisa/rates.js +16 -0
  36. package/dist/models/Barogisa/rates.js.map +1 -0
  37. package/dist/models/Barogisa/user.d.ts +26 -0
  38. package/dist/models/Barogisa/user.d.ts.map +1 -0
  39. package/dist/models/Barogisa/user.js +5 -0
  40. package/dist/models/Barogisa/user.js.map +1 -0
  41. package/dist/models/Kitchen/catalog.d.ts +46 -0
  42. package/dist/models/Kitchen/catalog.d.ts.map +1 -0
  43. package/dist/models/Kitchen/catalog.js +65 -0
  44. package/dist/models/Kitchen/catalog.js.map +1 -0
  45. package/dist/models/Kitchen/devPayload.d.ts +60 -0
  46. package/dist/models/Kitchen/devPayload.d.ts.map +1 -0
  47. package/dist/models/Kitchen/devPayload.js +8 -0
  48. package/dist/models/Kitchen/devPayload.js.map +1 -0
  49. package/dist/models/Kitchen/index.d.ts +5 -0
  50. package/dist/models/Kitchen/index.d.ts.map +1 -0
  51. package/dist/models/Kitchen/index.js +24 -0
  52. package/dist/models/Kitchen/index.js.map +1 -0
  53. package/dist/models/Kitchen/quote.d.ts +94 -0
  54. package/dist/models/Kitchen/quote.d.ts.map +1 -0
  55. package/dist/models/Kitchen/quote.js +10 -0
  56. package/dist/models/Kitchen/quote.js.map +1 -0
  57. package/dist/models/Kitchen/snapshot.d.ts +68 -0
  58. package/dist/models/Kitchen/snapshot.d.ts.map +1 -0
  59. package/dist/models/Kitchen/snapshot.js +15 -0
  60. package/dist/models/Kitchen/snapshot.js.map +1 -0
  61. package/package.json +1 -1
package/dist/index.d.ts CHANGED
@@ -22,6 +22,8 @@ export * from './constants/color';
22
22
  export * from './constants/absorberType';
23
23
  export * from './constants/bodyMaterial';
24
24
  export * from './constants/cabinetDrawerType';
25
- export declare const VERSION = "1.1.0";
25
+ export * as Barogisa from './models/Barogisa';
26
+ export * as Kitchen from './models/Kitchen';
27
+ export declare const VERSION = "1.2.1";
26
28
  export declare const PACKAGE_NAME = "dooring-core-domain";
27
29
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,cAAc,SAAS,CAAC;AAIxB,cAAc,gBAAgB,CAAC;AAG/B,cAAc,eAAe,CAAC;AAG9B,cAAc,uBAAuB,CAAC;AACtC,cAAc,0BAA0B,CAAC;AACzC,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,0BAA0B,CAAC;AACzC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,mCAAmC,CAAC;AAClD,cAAc,2BAA2B,CAAC;AAC1C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,0BAA0B,CAAC;AAGzC,cAAc,mBAAmB,CAAC;AAClC,cAAc,0BAA0B,CAAC;AACzC,cAAc,0BAA0B,CAAC;AACzC,cAAc,+BAA+B,CAAC;AAG9C,eAAO,MAAM,OAAO,UAAU,CAAC;AAC/B,eAAO,MAAM,YAAY,wBAAwB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,cAAc,SAAS,CAAC;AAIxB,cAAc,gBAAgB,CAAC;AAG/B,cAAc,eAAe,CAAC;AAG9B,cAAc,uBAAuB,CAAC;AACtC,cAAc,0BAA0B,CAAC;AACzC,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,0BAA0B,CAAC;AACzC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,mCAAmC,CAAC;AAClD,cAAc,2BAA2B,CAAC;AAC1C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,0BAA0B,CAAC;AAGzC,cAAc,mBAAmB,CAAC;AAClC,cAAc,0BAA0B,CAAC;AACzC,cAAc,0BAA0B,CAAC;AACzC,cAAc,+BAA+B,CAAC;AAI9C,OAAO,KAAK,QAAQ,MAAM,mBAAmB,CAAC;AAI9C,OAAO,KAAK,OAAO,MAAM,kBAAkB,CAAC;AAG5C,eAAO,MAAM,OAAO,UAAU,CAAC;AAC/B,eAAO,MAAM,YAAY,wBAAwB,CAAC"}
package/dist/index.js CHANGED
@@ -14,11 +14,33 @@ var __createBinding = (this && this.__createBinding) || (Object.create ? (functi
14
14
  if (k2 === undefined) k2 = k;
15
15
  o[k2] = m[k];
16
16
  }));
17
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
18
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
19
+ }) : function(o, v) {
20
+ o["default"] = v;
21
+ });
17
22
  var __exportStar = (this && this.__exportStar) || function(m, exports) {
18
23
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
19
24
  };
25
+ var __importStar = (this && this.__importStar) || (function () {
26
+ var ownKeys = function(o) {
27
+ ownKeys = Object.getOwnPropertyNames || function (o) {
28
+ var ar = [];
29
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
30
+ return ar;
31
+ };
32
+ return ownKeys(o);
33
+ };
34
+ return function (mod) {
35
+ if (mod && mod.__esModule) return mod;
36
+ var result = {};
37
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
38
+ __setModuleDefault(result, mod);
39
+ return result;
40
+ };
41
+ })();
20
42
  Object.defineProperty(exports, "__esModule", { value: true });
21
- exports.PACKAGE_NAME = exports.VERSION = void 0;
43
+ exports.PACKAGE_NAME = exports.VERSION = exports.Kitchen = exports.Barogisa = void 0;
22
44
  // ENUM들
23
45
  __exportStar(require("./enums"), exports);
24
46
  // 공통 타입들
@@ -44,7 +66,13 @@ __exportStar(require("./constants/color"), exports);
44
66
  __exportStar(require("./constants/absorberType"), exports);
45
67
  __exportStar(require("./constants/bodyMaterial"), exports);
46
68
  __exportStar(require("./constants/cabinetDrawerType"), exports);
69
+ // 바로기사 도메인 (신규) — 이름 충돌 회피 위해 네임스페이스로 노출.
70
+ // 소비: import { Barogisa } from 'dooring-core-domain' → Barogisa.Job, Barogisa.STANDARD_RATES, Barogisa.formatCurrency
71
+ exports.Barogisa = __importStar(require("./models/Barogisa"));
72
+ // 주방 견적 빌더 도메인 (barogagu-kitchen 데이터 계약) — 네임스페이스로 노출.
73
+ // 소비: import { Kitchen } from 'dooring-core-domain' → Kitchen.KitchenSnapshot, Kitchen.KITCHEN_CATALOG
74
+ exports.Kitchen = __importStar(require("./models/Kitchen"));
47
75
  // 버전 정보
48
- exports.VERSION = '1.1.0';
76
+ exports.VERSION = '1.2.1';
49
77
  exports.PACKAGE_NAME = 'dooring-core-domain';
50
78
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;;;;;;;;;;;;;;;AAEH,QAAQ;AACR,0CAAwB;AAGxB,SAAS;AACT,iDAA+B;AAE/B,sBAAsB;AACtB,gDAA8B;AAE9B,sBAAsB;AACtB,wDAAsC;AACtC,2DAAyC;AACzC,sDAAoC;AACpC,uDAAqC;AACrC,uDAAqC;AACrC,8DAA4C;AAC5C,2DAAyC;AACzC,8DAA4C;AAC5C,oEAAkD;AAClD,4DAA0C;AAC1C,iEAA+C;AAC/C,iEAA+C;AAC/C,2DAAyC;AAEzC,MAAM;AACN,oDAAkC;AAClC,2DAAyC;AACzC,2DAAyC;AACzC,gEAA8C;AAE9C,QAAQ;AACK,QAAA,OAAO,GAAG,OAAO,CAAC;AAClB,QAAA,YAAY,GAAG,qBAAqB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEH,QAAQ;AACR,0CAAwB;AAGxB,SAAS;AACT,iDAA+B;AAE/B,sBAAsB;AACtB,gDAA8B;AAE9B,sBAAsB;AACtB,wDAAsC;AACtC,2DAAyC;AACzC,sDAAoC;AACpC,uDAAqC;AACrC,uDAAqC;AACrC,8DAA4C;AAC5C,2DAAyC;AACzC,8DAA4C;AAC5C,oEAAkD;AAClD,4DAA0C;AAC1C,iEAA+C;AAC/C,iEAA+C;AAC/C,2DAAyC;AAEzC,MAAM;AACN,oDAAkC;AAClC,2DAAyC;AACzC,2DAAyC;AACzC,gEAA8C;AAE9C,0CAA0C;AAC1C,0HAA0H;AAC1H,8DAA8C;AAE9C,uDAAuD;AACvD,2GAA2G;AAC3G,4DAA4C;AAE5C,QAAQ;AACK,QAAA,OAAO,GAAG,OAAO,CAAC;AAClB,QAAA,YAAY,GAAG,qBAAqB,CAAC"}
@@ -0,0 +1,14 @@
1
+ export type CheckType = 'in' | 'out';
2
+ export interface CheckRecord {
3
+ id: string;
4
+ jobId: string;
5
+ driverId: string;
6
+ type: CheckType;
7
+ timestamp: number;
8
+ latitude: number;
9
+ longitude: number;
10
+ photoUrl?: string;
11
+ localPhotoUri?: string;
12
+ syncedAt?: number;
13
+ }
14
+ //# sourceMappingURL=checkin.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"checkin.d.ts","sourceRoot":"","sources":["../../../src/models/Barogisa/checkin.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,SAAS,GAAG,IAAI,GAAG,KAAK,CAAC;AAErC,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,SAAS,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB"}
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+ // 바로기사 체크인/아웃 도메인 (check_records 테이블)
3
+ // 원본: barogisa/types/checkin.ts 를 core-domain으로 이식 (변경 없음).
4
+ Object.defineProperty(exports, "__esModule", { value: true });
5
+ //# sourceMappingURL=checkin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"checkin.js","sourceRoot":"","sources":["../../../src/models/Barogisa/checkin.ts"],"names":[],"mappings":";AAAA,sCAAsC;AACtC,4DAA4D"}
@@ -0,0 +1,7 @@
1
+ export type DepositParticipant = {
2
+ name: string;
3
+ amountWon: number;
4
+ account?: string;
5
+ };
6
+ export declare function buildDepositMessage(siteName: string, participants: DepositParticipant[]): string;
7
+ //# sourceMappingURL=deposit.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deposit.d.ts","sourceRoot":"","sources":["../../../src/models/Barogisa/deposit.ts"],"names":[],"mappings":"AAUA,MAAM,MAAM,kBAAkB,GAAG;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAQF,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,EAAE,YAAY,EAAE,kBAAkB,EAAE,GAAG,MAAM,CAahG"}
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+ // 자동 입금요청 메시지 순수 함수 (시공기사 카톡 양식)
3
+ // 원본: barogisa/utils/depositMessage.ts (변경 없음).
4
+ // 샘플:
5
+ // 사장님 용산현장 시공비 입니다!
6
+ // 조정호 38
7
+ // 김재원 38 입니다!
8
+ //
9
+ // 우리은행 1002130223548 송명길
10
+ // 금액은 만원 단위 숫자(38 = 38만). 계좌는 각자 자유 텍스트(미입력이면 이름만 노출).
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.buildDepositMessage = buildDepositMessage;
13
+ const toMan = (won) => {
14
+ const man = won / 10000;
15
+ // 정수면 그대로(38), 소수면 소수 한 자리까지(35.5)
16
+ return Number.isInteger(man) ? String(man) : String(Math.round(man * 10) / 10);
17
+ };
18
+ function buildDepositMessage(siteName, participants) {
19
+ const paid = participants.filter((p) => p.amountWon > 0);
20
+ if (paid.length === 0)
21
+ return `사장님 ${siteName} 시공비 입니다!`;
22
+ const amountLines = paid.map((p, i) => {
23
+ const tail = i === paid.length - 1 ? ' 입니다!' : '';
24
+ return `${p.name} ${toMan(p.amountWon)}${tail}`;
25
+ });
26
+ // 계좌: 입력돼 있으면 그대로, 없으면 이름만(사장님이 채워 보내도록 비워둠)
27
+ const accountLines = paid.map((p) => (p.account?.trim() ? p.account.trim() : `${p.name} `));
28
+ return [`사장님 ${siteName} 시공비 입니다!`, ...amountLines, '', ...accountLines].join('\n');
29
+ }
30
+ //# sourceMappingURL=deposit.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deposit.js","sourceRoot":"","sources":["../../../src/models/Barogisa/deposit.ts"],"names":[],"mappings":";AAAA,iCAAiC;AACjC,gDAAgD;AAChD,MAAM;AACN,sBAAsB;AACtB,WAAW;AACX,gBAAgB;AAChB,EAAE;AACF,2BAA2B;AAC3B,uDAAuD;;AAcvD,kDAaC;AAnBD,MAAM,KAAK,GAAG,CAAC,GAAW,EAAU,EAAE;IACpC,MAAM,GAAG,GAAG,GAAG,GAAG,KAAK,CAAC;IACxB,mCAAmC;IACnC,OAAO,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AACjF,CAAC,CAAC;AAEF,SAAgB,mBAAmB,CAAC,QAAgB,EAAE,YAAkC;IACtF,MAAM,IAAI,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC;IACzD,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,OAAO,QAAQ,WAAW,CAAC;IAEzD,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;QACpC,MAAM,IAAI,GAAG,CAAC,KAAK,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;QAClD,OAAO,GAAG,CAAC,CAAC,IAAI,IAAI,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,CAAC;IAClD,CAAC,CAAC,CAAC;IAEH,6CAA6C;IAC7C,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC;IAE5F,OAAO,CAAC,OAAO,QAAQ,WAAW,EAAE,GAAG,WAAW,EAAE,EAAE,EAAE,GAAG,YAAY,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACtF,CAAC"}
@@ -0,0 +1,9 @@
1
+ export interface Factory {
2
+ id: string;
3
+ name: string;
4
+ ownerUserId: string;
5
+ contactPhone: string;
6
+ defaultAddress?: string;
7
+ createdAt: number;
8
+ }
9
+ //# sourceMappingURL=factory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../../src/models/Barogisa/factory.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,OAAO;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC;CACnB"}
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+ // 바로기사 공장 도메인 (factories 테이블)
3
+ // 원본: barogisa/types/factory.ts 를 core-domain으로 이식 (변경 없음).
4
+ Object.defineProperty(exports, "__esModule", { value: true });
5
+ //# sourceMappingURL=factory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"factory.js","sourceRoot":"","sources":["../../../src/models/Barogisa/factory.ts"],"names":[],"mappings":";AAAA,8BAA8B;AAC9B,4DAA4D"}
@@ -0,0 +1,3 @@
1
+ export declare function formatCurrency(amount: number): string;
2
+ export declare function formatCurrencyShort(amount: number): string;
3
+ //# sourceMappingURL=format.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"format.d.ts","sourceRoot":"","sources":["../../../src/models/Barogisa/format.ts"],"names":[],"mappings":"AAGA,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAQrD;AAED,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAG1D"}
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ // 금액 포맷 순수 함수
3
+ // 원본: barogisa/utils/format.ts (변경 없음). barogagu와 100% 중복이던 것을 단일화.
4
+ Object.defineProperty(exports, "__esModule", { value: true });
5
+ exports.formatCurrency = formatCurrency;
6
+ exports.formatCurrencyShort = formatCurrencyShort;
7
+ function formatCurrency(amount) {
8
+ if (amount === 0)
9
+ return '0원';
10
+ if (amount >= 10000) {
11
+ const man = Math.floor(amount / 10000);
12
+ const rest = amount % 10000;
13
+ return rest === 0 ? `${man}만원` : `${man.toLocaleString()}만 ${rest.toLocaleString()}원`;
14
+ }
15
+ return `${amount.toLocaleString()}원`;
16
+ }
17
+ function formatCurrencyShort(amount) {
18
+ if (amount >= 10000)
19
+ return `${Math.round(amount / 10000)}만`;
20
+ return amount.toLocaleString();
21
+ }
22
+ //# sourceMappingURL=format.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"format.js","sourceRoot":"","sources":["../../../src/models/Barogisa/format.ts"],"names":[],"mappings":";AAAA,cAAc;AACd,oEAAoE;;AAEpE,wCAQC;AAED,kDAGC;AAbD,SAAgB,cAAc,CAAC,MAAc;IAC3C,IAAI,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAC9B,IAAI,MAAM,IAAI,KAAK,EAAE,CAAC;QACpB,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC,CAAC;QACvC,MAAM,IAAI,GAAG,MAAM,GAAG,KAAK,CAAC;QAC5B,OAAO,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,cAAc,EAAE,KAAK,IAAI,CAAC,cAAc,EAAE,GAAG,CAAC;IACxF,CAAC;IACD,OAAO,GAAG,MAAM,CAAC,cAAc,EAAE,GAAG,CAAC;AACvC,CAAC;AAED,SAAgB,mBAAmB,CAAC,MAAc;IAChD,IAAI,MAAM,IAAI,KAAK;QAAE,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC;IAC7D,OAAO,MAAM,CAAC,cAAc,EAAE,CAAC;AACjC,CAAC"}
@@ -0,0 +1,9 @@
1
+ export * from './user';
2
+ export * from './job';
3
+ export * from './factory';
4
+ export * from './checkin';
5
+ export * from './rates';
6
+ export * from './labels';
7
+ export * from './format';
8
+ export * from './deposit';
9
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/models/Barogisa/index.ts"],"names":[],"mappings":"AAIA,cAAc,QAAQ,CAAC;AACvB,cAAc,OAAO,CAAC;AACtB,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,WAAW,CAAC"}
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ // 바로기사 도메인 barrel — 타입/상수/순수함수 재수출.
3
+ // 소비: import { Barogisa } from 'dooring-core-domain' → Barogisa.Job, Barogisa.formatCurrency ...
4
+ // 또는 deep import: from 'dooring-core-domain/dist/models/Barogisa'
5
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ var desc = Object.getOwnPropertyDescriptor(m, k);
8
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
9
+ desc = { enumerable: true, get: function() { return m[k]; } };
10
+ }
11
+ Object.defineProperty(o, k2, desc);
12
+ }) : (function(o, m, k, k2) {
13
+ if (k2 === undefined) k2 = k;
14
+ o[k2] = m[k];
15
+ }));
16
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
17
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
18
+ };
19
+ Object.defineProperty(exports, "__esModule", { value: true });
20
+ __exportStar(require("./user"), exports);
21
+ __exportStar(require("./job"), exports);
22
+ __exportStar(require("./factory"), exports);
23
+ __exportStar(require("./checkin"), exports);
24
+ __exportStar(require("./rates"), exports);
25
+ __exportStar(require("./labels"), exports);
26
+ __exportStar(require("./format"), exports);
27
+ __exportStar(require("./deposit"), exports);
28
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/models/Barogisa/index.ts"],"names":[],"mappings":";AAAA,oCAAoC;AACpC,mGAAmG;AACnG,oEAAoE;;;;;;;;;;;;;;;;AAEpE,yCAAuB;AACvB,wCAAsB;AACtB,4CAA0B;AAC1B,4CAA0B;AAC1B,0CAAwB;AACxB,2CAAyB;AACzB,2CAAyB;AACzB,4CAA0B"}
@@ -0,0 +1,39 @@
1
+ import type { DriverJobType } from './user';
2
+ export type JobStatus = 'requested' | 'accepted' | 'rejected' | 'confirmed' | 'checked_in' | 'completed' | 'paid' | 'cancelled';
3
+ export type JobProcess = DriverJobType;
4
+ export type JobListingType = 'direct' | 'open';
5
+ export type JobApplicationStatus = 'pending' | 'selected' | 'rejected';
6
+ export interface JobApplication {
7
+ id: string;
8
+ jobId: string;
9
+ driverId: string;
10
+ driverName?: string;
11
+ status: JobApplicationStatus;
12
+ startAddress?: string;
13
+ startLat?: number;
14
+ startLon?: number;
15
+ travelKm?: number;
16
+ travelMinutes?: number;
17
+ longDistance: boolean;
18
+ createdAt: number;
19
+ }
20
+ export interface Job {
21
+ id: string;
22
+ factoryId: string;
23
+ factoryName: string;
24
+ driverId?: string;
25
+ listingType: JobListingType;
26
+ date: string;
27
+ process: JobProcess;
28
+ address: string;
29
+ amount: number;
30
+ longDistance?: boolean;
31
+ notes?: string;
32
+ status: JobStatus;
33
+ checkInId?: string;
34
+ checkOutId?: string;
35
+ paidAt?: number;
36
+ createdAt: number;
37
+ updatedAt: number;
38
+ }
39
+ //# sourceMappingURL=job.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"job.d.ts","sourceRoot":"","sources":["../../../src/models/Barogisa/job.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AAI5C,MAAM,MAAM,SAAS,GACjB,WAAW,GACX,UAAU,GACV,UAAU,GACV,WAAW,GACX,YAAY,GACZ,WAAW,GACX,MAAM,GACN,WAAW,CAAC;AAEhB,MAAM,MAAM,UAAU,GAAG,aAAa,CAAC;AAGvC,MAAM,MAAM,cAAc,GAAG,QAAQ,GAAG,MAAM,CAAC;AAE/C,MAAM,MAAM,oBAAoB,GAAG,SAAS,GAAG,UAAU,GAAG,UAAU,CAAC;AAEvE,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,oBAAoB,CAAC;IAE7B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,YAAY,EAAE,OAAO,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,GAAG;IAClB,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,cAAc,CAAC;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,UAAU,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,SAAS,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB"}
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+ // 바로기사 일감 도메인 (jobs / job_applications 테이블)
3
+ // 원본: barogisa/types/job.ts 를 core-domain으로 이식 (import 경로만 상대경로로 조정).
4
+ Object.defineProperty(exports, "__esModule", { value: true });
5
+ //# sourceMappingURL=job.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"job.js","sourceRoot":"","sources":["../../../src/models/Barogisa/job.ts"],"names":[],"mappings":";AAAA,4CAA4C;AAC5C,sEAAsE"}
@@ -0,0 +1,4 @@
1
+ import type { JobProcess, JobStatus } from './job';
2
+ export declare const PROCESS_LABEL: Record<JobProcess, string>;
3
+ export declare const STATUS_LABEL: Record<JobStatus, string>;
4
+ //# sourceMappingURL=labels.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"labels.d.ts","sourceRoot":"","sources":["../../../src/models/Barogisa/labels.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEnD,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,UAAU,EAAE,MAAM,CAOpD,CAAC;AAEF,eAAO,MAAM,YAAY,EAAE,MAAM,CAAC,SAAS,EAAE,MAAM,CASlD,CAAC"}
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ // 바로기사 라벨 상수 (한글 표시용)
3
+ // 원본: barogisa/constants/labels.ts 중 도메인 라벨만 이식.
4
+ // ※ JOB_STATUS_TONE(상태→색 토큰)은 UI 전용이라 core-domain 제외 → 각 앱 유지.
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.STATUS_LABEL = exports.PROCESS_LABEL = void 0;
7
+ exports.PROCESS_LABEL = {
8
+ installation: '시공',
9
+ cutting: '재단',
10
+ assembly: '조립',
11
+ cleaning: '청소·뒷마무리',
12
+ faucet: '수전',
13
+ delivery: '용달',
14
+ };
15
+ exports.STATUS_LABEL = {
16
+ requested: '요청됨',
17
+ accepted: '수락 (공장 확인 대기)',
18
+ rejected: '거절',
19
+ confirmed: '확정',
20
+ checked_in: '시공 중',
21
+ completed: '완료',
22
+ paid: '수금 완료',
23
+ cancelled: '취소',
24
+ };
25
+ //# sourceMappingURL=labels.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"labels.js","sourceRoot":"","sources":["../../../src/models/Barogisa/labels.ts"],"names":[],"mappings":";AAAA,sBAAsB;AACtB,iDAAiD;AACjD,+DAA+D;;;AAIlD,QAAA,aAAa,GAA+B;IACvD,YAAY,EAAE,IAAI;IAClB,OAAO,EAAE,IAAI;IACb,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,SAAS;IACnB,MAAM,EAAE,IAAI;IACZ,QAAQ,EAAE,IAAI;CACf,CAAC;AAEW,QAAA,YAAY,GAA8B;IACrD,SAAS,EAAE,KAAK;IAChB,QAAQ,EAAE,eAAe;IACzB,QAAQ,EAAE,IAAI;IACd,SAAS,EAAE,IAAI;IACf,UAAU,EAAE,MAAM;IAClB,SAAS,EAAE,IAAI;IACf,IAAI,EAAE,OAAO;IACb,SAAS,EAAE,IAAI;CAChB,CAAC"}
@@ -0,0 +1,4 @@
1
+ import type { JobProcess } from './job';
2
+ export declare const STANDARD_RATES: Record<JobProcess, number>;
3
+ export declare const LONG_DISTANCE_SURCHARGE = 50000;
4
+ //# sourceMappingURL=rates.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rates.d.ts","sourceRoot":"","sources":["../../../src/models/Barogisa/rates.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAGxC,eAAO,MAAM,cAAc,EAAE,MAAM,CAAC,UAAU,EAAE,MAAM,CAOrD,CAAC;AAEF,eAAO,MAAM,uBAAuB,QAAQ,CAAC"}
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ // 바로기사 표준 단가 상수
3
+ // 원본: barogisa/constants/rates.ts (import 경로만 상대경로로 조정).
4
+ Object.defineProperty(exports, "__esModule", { value: true });
5
+ exports.LONG_DISTANCE_SURCHARGE = exports.STANDARD_RATES = void 0;
6
+ // 시장 표준 단가 (원) — 공장 일감 등록 시 자동 입력 기본값
7
+ exports.STANDARD_RATES = {
8
+ installation: 350000, // 시공기사 기본
9
+ cutting: 350000, // 재단기사
10
+ assembly: 290000, // 조립알바
11
+ cleaning: 0, // 청소·뒷마무리 — 별도 협의
12
+ faucet: 0, // 수전 전문 — 별도 협의
13
+ delivery: 0, // 전문 용달 — 별도 협의
14
+ };
15
+ exports.LONG_DISTANCE_SURCHARGE = 50000; // 장거리 추가
16
+ //# sourceMappingURL=rates.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rates.js","sourceRoot":"","sources":["../../../src/models/Barogisa/rates.ts"],"names":[],"mappings":";AAAA,gBAAgB;AAChB,yDAAyD;;;AAIzD,sCAAsC;AACzB,QAAA,cAAc,GAA+B;IACxD,YAAY,EAAE,MAAM,EAAE,UAAU;IAChC,OAAO,EAAE,MAAM,EAAO,OAAO;IAC7B,QAAQ,EAAE,MAAM,EAAM,OAAO;IAC7B,QAAQ,EAAE,CAAC,EAAW,kBAAkB;IACxC,MAAM,EAAE,CAAC,EAAa,gBAAgB;IACtC,QAAQ,EAAE,CAAC,EAAW,gBAAgB;CACvC,CAAC;AAEW,QAAA,uBAAuB,GAAG,KAAK,CAAC,CAAC,SAAS"}
@@ -0,0 +1,26 @@
1
+ export type UserRole = 'driver' | 'factory';
2
+ export type DriverJobType = 'installation' | 'cutting' | 'assembly' | 'cleaning' | 'faucet' | 'delivery';
3
+ export type DriverTier = 'standard' | 'premium';
4
+ export interface DriverProfile {
5
+ jobType: DriverJobType;
6
+ tier?: DriverTier;
7
+ region?: string;
8
+ startAddress?: string;
9
+ startLat?: number;
10
+ startLon?: number;
11
+ }
12
+ export interface FactoryProfile {
13
+ factoryId: string;
14
+ }
15
+ export interface User {
16
+ id: string;
17
+ role: UserRole;
18
+ name: string;
19
+ phone: string;
20
+ driverProfile?: DriverProfile;
21
+ factoryProfile?: FactoryProfile;
22
+ pushToken?: string;
23
+ isAdmin?: boolean;
24
+ createdAt: number;
25
+ }
26
+ //# sourceMappingURL=user.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"user.d.ts","sourceRoot":"","sources":["../../../src/models/Barogisa/user.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,QAAQ,GAAG,QAAQ,GAAG,SAAS,CAAC;AAG5C,MAAM,MAAM,aAAa,GACrB,cAAc,GACd,SAAS,GACT,UAAU,GACV,UAAU,GACV,QAAQ,GACR,UAAU,CAAC;AAGf,MAAM,MAAM,UAAU,GAAG,UAAU,GAAG,SAAS,CAAC;AAEhD,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,aAAa,CAAC;IACvB,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,IAAI;IACnB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,QAAQ,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB"}
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+ // 바로기사 사용자 도메인 (users 테이블)
3
+ // 원본: barogisa/types/user.ts 를 core-domain으로 이식 (변경 없음).
4
+ Object.defineProperty(exports, "__esModule", { value: true });
5
+ //# sourceMappingURL=user.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"user.js","sourceRoot":"","sources":["../../../src/models/Barogisa/user.ts"],"names":[],"mappings":";AAAA,2BAA2B;AAC3B,yDAAyD"}
@@ -0,0 +1,46 @@
1
+ /**
2
+ * 주방 모듈 카탈로그 — 사내 「모듈 정리」 문서 기준 37 SKU의 구조·치수 데이터.
3
+ * barogagu-kitchen index.html §1 CATALOG에서 이관하되 **단가(price) 필드는 제외**
4
+ * (공개 npm 패키지 — 사내 단가 비공개, 단가는 노션→Supabase 채널로 별도 관리).
5
+ *
6
+ * SKU 접두: t-키큰·가전 / b-하부 / w-상부 / i-아일랜드 / p-반도.
7
+ * 스케치업 컴포넌트명·PNG 명명(modules/{sku}_{R|L}.png)이 이 id와 1:1.
8
+ */
9
+ /** 카탈로그 그룹 */
10
+ export type KitchenCategoryKey = 'tall' | 'base' | 'wall' | 'island' | 'peninsula';
11
+ /** 전면 형태(도어·서랍 패턴) — 렌더/스케치업 컴포넌트 변형 식별용 */
12
+ export type KitchenFace = 'fridge' | 'appl' | 'robot' | 'door' | 'door2' | 'door2v' | 'doordrw' | 'drawer2' | 'drawer3' | 'opendrw' | 'open' | 'tall3open' | 'tall3appl' | 'hood';
13
+ /** 상판 기능(개구) */
14
+ export type KitchenTopFeature = 'sink' | 'cook';
15
+ export interface KitchenSku {
16
+ id: string;
17
+ name: string;
18
+ category: KitchenCategoryKey;
19
+ /** 폭 mm */
20
+ w: number;
21
+ /** 높이 mm */
22
+ h: number;
23
+ /** 도어(전면판) 수 */
24
+ doors: number;
25
+ face: KitchenFace;
26
+ /** 기능장 여부(개수대·쿡탑·가전 등). 미지정=수납장 */
27
+ func?: boolean;
28
+ /** 냉장고 슬롯 수(냉장고장만) */
29
+ fridge?: number;
30
+ /** 상판 개구(개수대/쿡탑) */
31
+ top?: KitchenTopFeature;
32
+ /** 서랍 수 오버라이드(face에서 유도되는 기본값과 다를 때) */
33
+ drw?: number;
34
+ }
35
+ /** 카테고리별 깊이·바닥高(z) 규칙 (mm). 상부장 상단 라인은 키큰장 상단 2100과 정렬 */
36
+ export declare const KITCHEN_UPPER_TOP_MM = 2100;
37
+ export declare const KITCHEN_DEPTH_MM: Record<KitchenCategoryKey, number>;
38
+ /** 자동 틈 채움에 쓰는 기본 수납장 SKU */
39
+ export declare const KITCHEN_FILLER_SKUS: {
40
+ readonly lower: "b-sto-600";
41
+ readonly upper: "w-sto-600";
42
+ };
43
+ export declare const KITCHEN_CATALOG: KitchenSku[];
44
+ /** id → SKU 조회 맵 */
45
+ export declare const KITCHEN_BY_ID: Record<string, KitchenSku>;
46
+ //# sourceMappingURL=catalog.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"catalog.d.ts","sourceRoot":"","sources":["../../../src/models/Kitchen/catalog.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,cAAc;AACd,MAAM,MAAM,kBAAkB,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,QAAQ,GAAG,WAAW,CAAC;AAEnF,4CAA4C;AAC5C,MAAM,MAAM,WAAW,GACnB,QAAQ,GAAG,MAAM,GAAG,OAAO,GAC3B,MAAM,GAAG,OAAO,GAAG,QAAQ,GAAG,SAAS,GACvC,SAAS,GAAG,SAAS,GACrB,SAAS,GAAG,MAAM,GAClB,WAAW,GAAG,WAAW,GACzB,MAAM,CAAC;AAEX,gBAAgB;AAChB,MAAM,MAAM,iBAAiB,GAAG,MAAM,GAAG,MAAM,CAAC;AAEhD,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,kBAAkB,CAAC;IAC7B,WAAW;IACX,CAAC,EAAE,MAAM,CAAC;IACV,YAAY;IACZ,CAAC,EAAE,MAAM,CAAC;IACV,gBAAgB;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,WAAW,CAAC;IAClB,mCAAmC;IACnC,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,sBAAsB;IACtB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,oBAAoB;IACpB,GAAG,CAAC,EAAE,iBAAiB,CAAC;IACxB,wCAAwC;IACxC,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,0DAA0D;AAC1D,eAAO,MAAM,oBAAoB,OAAO,CAAC;AACzC,eAAO,MAAM,gBAAgB,EAAE,MAAM,CAAC,kBAAkB,EAAE,MAAM,CAE/D,CAAC;AAEF,6BAA6B;AAC7B,eAAO,MAAM,mBAAmB;;;CAAsD,CAAC;AAEvF,eAAO,MAAM,eAAe,EAAE,UAAU,EA2CvC,CAAC;AAEF,oBAAoB;AACpB,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAEpD,CAAC"}
@@ -0,0 +1,65 @@
1
+ "use strict";
2
+ /**
3
+ * 주방 모듈 카탈로그 — 사내 「모듈 정리」 문서 기준 37 SKU의 구조·치수 데이터.
4
+ * barogagu-kitchen index.html §1 CATALOG에서 이관하되 **단가(price) 필드는 제외**
5
+ * (공개 npm 패키지 — 사내 단가 비공개, 단가는 노션→Supabase 채널로 별도 관리).
6
+ *
7
+ * SKU 접두: t-키큰·가전 / b-하부 / w-상부 / i-아일랜드 / p-반도.
8
+ * 스케치업 컴포넌트명·PNG 명명(modules/{sku}_{R|L}.png)이 이 id와 1:1.
9
+ */
10
+ Object.defineProperty(exports, "__esModule", { value: true });
11
+ exports.KITCHEN_BY_ID = exports.KITCHEN_CATALOG = exports.KITCHEN_FILLER_SKUS = exports.KITCHEN_DEPTH_MM = exports.KITCHEN_UPPER_TOP_MM = void 0;
12
+ /** 카테고리별 깊이·바닥高(z) 규칙 (mm). 상부장 상단 라인은 키큰장 상단 2100과 정렬 */
13
+ exports.KITCHEN_UPPER_TOP_MM = 2100;
14
+ exports.KITCHEN_DEPTH_MM = {
15
+ tall: 600, base: 600, wall: 350, island: 700, peninsula: 600,
16
+ };
17
+ /** 자동 틈 채움에 쓰는 기본 수납장 SKU */
18
+ exports.KITCHEN_FILLER_SKUS = { lower: 'b-sto-600', upper: 'w-sto-600' };
19
+ exports.KITCHEN_CATALOG = [
20
+ // 키큰장 · 가전장 (11)
21
+ { id: 't-fr4-950', name: '냉장고장(4도어)', category: 'tall', w: 950, h: 2100, doors: 2, face: 'fridge', func: true, fridge: 1 },
22
+ { id: 't-fr43-1750', name: '냉장고장(4도어+3도어)', category: 'tall', w: 1750, h: 2100, doors: 4, face: 'fridge', func: true, fridge: 2 },
23
+ { id: 't-fr111-1800', name: '냉장고장(1도어×3)', category: 'tall', w: 1800, h: 2100, doors: 3, face: 'fridge', func: true, fridge: 3 },
24
+ { id: 't-wine-600', name: '와인셀러장', category: 'tall', w: 600, h: 2100, doors: 1, face: 'appl', func: true },
25
+ { id: 't-wash-700', name: '세탁기장', category: 'tall', w: 700, h: 2100, doors: 1, face: 'appl', func: true },
26
+ { id: 't-pantry-600', name: '팬트리장(1단)', category: 'tall', w: 600, h: 2100, doors: 2, face: 'door' },
27
+ { id: 't-22-600', name: '키큰장 2단(수납+수납)', category: 'tall', w: 600, h: 2100, doors: 2, face: 'door2' },
28
+ { id: 't-2robot-600', name: '키큰장 2단(수납+로봇청소기)', category: 'tall', w: 600, h: 2100, doors: 1, face: 'robot', func: true },
29
+ { id: 't-3open-600', name: '키큰장 3단(수납+오픈박스+수납)', category: 'tall', w: 600, h: 2100, doors: 2, face: 'tall3open' },
30
+ { id: 't-3oven-600', name: '키큰장 3단(수납+오븐+수납)', category: 'tall', w: 600, h: 2100, doors: 2, face: 'tall3appl', func: true },
31
+ { id: 't-3flip-600', name: '키큰장 3단(수납+플리퍼+수납)', category: 'tall', w: 600, h: 2100, doors: 3, face: 'tall3open' },
32
+ // 하부장 (14)
33
+ { id: 'b-sink-800', name: '개수대장(싱크)', category: 'base', w: 800, h: 850, doors: 2, face: 'door2v', top: 'sink', func: true },
34
+ { id: 'b-cook-600', name: '쿡탑장(인덕션 하부)', category: 'base', w: 600, h: 850, doors: 1, face: 'drawer2', top: 'cook', func: true },
35
+ { id: 'b-cookhood-600', name: '후드 일체형 인덕션장', category: 'base', w: 600, h: 850, doors: 1, face: 'drawer2', top: 'cook', func: true },
36
+ { id: 'b-dish-600', name: '식기세척기장', category: 'base', w: 600, h: 850, doors: 0, face: 'appl', func: true },
37
+ { id: 'b-robot-600', name: '로봇청소기장', category: 'base', w: 600, h: 850, doors: 1, face: 'robot', func: true },
38
+ { id: 'b-micro-600', name: '전자렌지장(오픈+서랍)', category: 'base', w: 600, h: 850, doors: 1, face: 'opendrw', func: true },
39
+ { id: 'b-rice-d-600', name: '밥솥장(도어+서랍)', category: 'base', w: 600, h: 850, doors: 2, face: 'doordrw', func: true },
40
+ { id: 'b-rice-o-600', name: '밥솥장(오픈+서랍)', category: 'base', w: 600, h: 850, doors: 1, face: 'opendrw', func: true },
41
+ { id: 'b-sto-450', name: '수납 하부장', category: 'base', w: 450, h: 850, doors: 1, face: 'door' },
42
+ { id: 'b-sto-600', name: '수납 하부장', category: 'base', w: 600, h: 850, doors: 1, face: 'door' },
43
+ { id: 'b-sto-900', name: '수납 하부장(2도어)', category: 'base', w: 900, h: 850, doors: 2, face: 'door2v' },
44
+ { id: 'b-drw3-600', name: '서랍장(겉3단)', category: 'base', w: 600, h: 850, doors: 3, face: 'drawer3' },
45
+ { id: 'b-drw2-600', name: '서랍장(겉2단)', category: 'base', w: 600, h: 850, doors: 2, face: 'drawer2' },
46
+ { id: 'b-drw21-600', name: '서랍장(겉2단·속1단)', category: 'base', w: 600, h: 850, doors: 2, face: 'drawer2', drw: 3 },
47
+ // 상부장 (8)
48
+ { id: 'w-sto-600', name: '수납 상부장', category: 'wall', w: 600, h: 720, doors: 1, face: 'door' },
49
+ { id: 'w-sto-900', name: '수납 상부장(2도어)', category: 'wall', w: 900, h: 720, doors: 2, face: 'door2v' },
50
+ { id: 'w-flap1-600', name: '플랩장(1단)', category: 'wall', w: 600, h: 360, doors: 1, face: 'door' },
51
+ { id: 'w-flap2-600', name: '플랩장(2단)', category: 'wall', w: 600, h: 720, doors: 2, face: 'door2' },
52
+ { id: 'w-hood-hide-600', name: '하이드후드장', category: 'wall', w: 600, h: 720, doors: 1, face: 'hood', func: true },
53
+ { id: 'w-hood-tong-600', name: '통후드장', category: 'wall', w: 600, h: 600, doors: 0, face: 'hood', func: true },
54
+ { id: 'w-hood-chim-900', name: '침니후드', category: 'wall', w: 900, h: 600, doors: 0, face: 'hood', func: true },
55
+ { id: 'w-hood-sq-900', name: '스퀘어후드', category: 'wall', w: 900, h: 600, doors: 0, face: 'hood', func: true },
56
+ // 아일랜드(독립) (2)
57
+ { id: 'i-cook-1200', name: '아일랜드 조리대', category: 'island', w: 1200, h: 850, doors: 3, face: 'drawer3', top: 'cook' },
58
+ { id: 'i-table-1600', name: '아일랜드+식탁', category: 'island', w: 1600, h: 850, doors: 3, face: 'drawer3' },
59
+ // 반도(벽 연결) (2)
60
+ { id: 'p-cook-1200', name: '반도 조리대', category: 'peninsula', w: 1200, h: 850, doors: 3, face: 'drawer3', top: 'cook' },
61
+ { id: 'p-bar-1600', name: '반도+바', category: 'peninsula', w: 1600, h: 850, doors: 3, face: 'drawer3' },
62
+ ];
63
+ /** id → SKU 조회 맵 */
64
+ exports.KITCHEN_BY_ID = Object.fromEntries(exports.KITCHEN_CATALOG.map((s) => [s.id, s]));
65
+ //# sourceMappingURL=catalog.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"catalog.js","sourceRoot":"","sources":["../../../src/models/Kitchen/catalog.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,60 @@
1
+ /**
2
+ * 개발자 뷰 페이로드 — barogagu-kitchen 헤더 `<> 개발자 뷰`(renderDev)가 생성하는
3
+ * 읽기 전용 JSON. 발주·스케치업 렌더 연동용.
4
+ * 원본 문서: barogagu-kitchen/docs/CONTRACTS.md §2.
5
+ */
6
+ import type { KitchenOptions, KitchenWall, KitchenBand } from './snapshot';
7
+ import type { KitchenQuote } from './quote';
8
+ /** 개발자 뷰의 밴드 — 스냅샷과 달리 키큰장은 'full'로 구분 */
9
+ export type KitchenDevBand = KitchenBand | 'full';
10
+ export interface KitchenDevModule {
11
+ uid: number;
12
+ sku: string;
13
+ wall: KitchenWall;
14
+ band: KitchenDevBand;
15
+ /** 스케치업 PNG 명명 규칙: modules/{sku}_{R|L}.png */
16
+ sketchupImage: string;
17
+ /** mm, 방 원점 = 두 벽 코너 */
18
+ pos: {
19
+ x: number;
20
+ y: number;
21
+ z: number;
22
+ };
23
+ size: {
24
+ w: number;
25
+ d: number;
26
+ h: number;
27
+ };
28
+ }
29
+ export interface KitchenDevAutoFill {
30
+ enabled: boolean;
31
+ right: {
32
+ lower: number;
33
+ upper: number;
34
+ };
35
+ left: {
36
+ lower: number;
37
+ upper: number;
38
+ };
39
+ /** 자동 채움에 쓰는 수납장 SKU */
40
+ fillerSkus: {
41
+ lower: string;
42
+ upper: string;
43
+ };
44
+ }
45
+ export interface KitchenDevPayload {
46
+ assets: {
47
+ basePlate: string;
48
+ };
49
+ configuration: {
50
+ room: {
51
+ rightWallMm: number;
52
+ leftWallMm: number;
53
+ };
54
+ modules: KitchenDevModule[];
55
+ autoFill: KitchenDevAutoFill;
56
+ finishes: KitchenOptions;
57
+ };
58
+ quote: KitchenQuote;
59
+ }
60
+ //# sourceMappingURL=devPayload.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"devPayload.d.ts","sourceRoot":"","sources":["../../../src/models/Kitchen/devPayload.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAC3E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAE5C,0CAA0C;AAC1C,MAAM,MAAM,cAAc,GAAG,WAAW,GAAG,MAAM,CAAC;AAElD,MAAM,WAAW,gBAAgB;IAC/B,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,WAAW,CAAC;IAClB,IAAI,EAAE,cAAc,CAAC;IACrB,8CAA8C;IAC9C,aAAa,EAAE,MAAM,CAAC;IACtB,wBAAwB;IACxB,GAAG,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACzC,IAAI,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CAC3C;AAED,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IACxC,IAAI,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IACvC,wBAAwB;IACxB,UAAU,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;CAC9C;AAED,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE;QAAE,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC;IAC9B,aAAa,EAAE;QACb,IAAI,EAAE;YAAE,WAAW,EAAE,MAAM,CAAC;YAAC,UAAU,EAAE,MAAM,CAAA;SAAE,CAAC;QAClD,OAAO,EAAE,gBAAgB,EAAE,CAAC;QAC5B,QAAQ,EAAE,kBAAkB,CAAC;QAC7B,QAAQ,EAAE,cAAc,CAAC;KAC1B,CAAC;IACF,KAAK,EAAE,YAAY,CAAC;CACrB"}
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ /**
3
+ * 개발자 뷰 페이로드 — barogagu-kitchen 헤더 `<> 개발자 뷰`(renderDev)가 생성하는
4
+ * 읽기 전용 JSON. 발주·스케치업 렌더 연동용.
5
+ * 원본 문서: barogagu-kitchen/docs/CONTRACTS.md §2.
6
+ */
7
+ Object.defineProperty(exports, "__esModule", { value: true });
8
+ //# sourceMappingURL=devPayload.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"devPayload.js","sourceRoot":"","sources":["../../../src/models/Kitchen/devPayload.ts"],"names":[],"mappings":";AAAA;;;;GAIG"}
@@ -0,0 +1,5 @@
1
+ export * from './snapshot';
2
+ export * from './quote';
3
+ export * from './devPayload';
4
+ export * from './catalog';
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/models/Kitchen/index.ts"],"names":[],"mappings":"AAIA,cAAc,YAAY,CAAC;AAC3B,cAAc,SAAS,CAAC;AACxB,cAAc,cAAc,CAAC;AAC7B,cAAc,WAAW,CAAC"}
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ // 주방 견적 빌더(barogagu-kitchen) 도메인 barrel — 스냅샷·개발자뷰·견적 타입 + 카탈로그 상수.
3
+ // 소비: import { Kitchen } from 'dooring-core-domain' → Kitchen.KitchenSnapshot, Kitchen.KITCHEN_CATALOG ...
4
+ // 단가 데이터는 포함하지 않음(공개 npm) — 계약(형태)만 정의한다.
5
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ var desc = Object.getOwnPropertyDescriptor(m, k);
8
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
9
+ desc = { enumerable: true, get: function() { return m[k]; } };
10
+ }
11
+ Object.defineProperty(o, k2, desc);
12
+ }) : (function(o, m, k, k2) {
13
+ if (k2 === undefined) k2 = k;
14
+ o[k2] = m[k];
15
+ }));
16
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
17
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
18
+ };
19
+ Object.defineProperty(exports, "__esModule", { value: true });
20
+ __exportStar(require("./snapshot"), exports);
21
+ __exportStar(require("./quote"), exports);
22
+ __exportStar(require("./devPayload"), exports);
23
+ __exportStar(require("./catalog"), exports);
24
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/models/Kitchen/index.ts"],"names":[],"mappings":";AAAA,oEAAoE;AACpE,6GAA6G;AAC7G,0CAA0C;;;;;;;;;;;;;;;;AAE1C,6CAA2B;AAC3B,0CAAwB;AACxB,+CAA6B;AAC7B,4CAA0B"}
@@ -0,0 +1,94 @@
1
+ /**
2
+ * 주방 견적 객체 — barogagu-kitchen computeQuote() 반환값의 타입.
3
+ * 원본 문서: barogagu-kitchen/docs/CONTRACTS.md §3.
4
+ *
5
+ * 금액은 전부 원 단위. 값은 앱이 배치 기하에서 런타임 계산하며,
6
+ * 단가 상수 자체는 이 패키지에 포함하지 않는다(공개 npm — 사내 단가 비공개).
7
+ */
8
+ import type { KitchenPricingMode } from './snapshot';
9
+ /** 배치 모듈 라인(모듈 단가 기준) */
10
+ export interface KitchenQuoteItem {
11
+ sku: string;
12
+ name: string;
13
+ /** 카탈로그 그룹 라벨 (예: '하부장') */
14
+ category: string;
15
+ widthMm: number;
16
+ qty: number;
17
+ unitPrice: number;
18
+ amount: number;
19
+ }
20
+ /** 길이 단가 모드 가구 라인 (목대/키큰/냉장고/도어/서랍/오픈) */
21
+ export interface KitchenLengthLine {
22
+ /** 항목명 */
23
+ n: string;
24
+ /** 산출 근거 표시문 */
25
+ d: string;
26
+ /** 금액(원) */
27
+ a: number;
28
+ }
29
+ export interface KitchenQuoteSummary {
30
+ modulesSubtotal: number;
31
+ optionsSubtotal: number;
32
+ subtotal: number;
33
+ installation: number;
34
+ vat: number;
35
+ total: number;
36
+ }
37
+ export interface KitchenQuote {
38
+ mode: KitchenPricingMode;
39
+ /** 배치 모듈 라인 */
40
+ items: KitchenQuoteItem[];
41
+ /** 자동 수납장 라인(표준/맞춤 폭 분리) */
42
+ autoItems: KitchenQuoteItem[];
43
+ lengthLines: KitchenLengthLine[];
44
+ /** 표시용 마감 요약 */
45
+ finishes: {
46
+ door: string;
47
+ countertop: string;
48
+ handle: string;
49
+ plinth: string;
50
+ hardware: string;
51
+ };
52
+ /** lengthMm = 연속 상판 런 스팬(브리징 포함) */
53
+ countertop: {
54
+ material: string;
55
+ lengthMm: number;
56
+ ratePerM: number;
57
+ amount: number;
58
+ };
59
+ handles: {
60
+ type: string;
61
+ qty: number;
62
+ unitPrice: number;
63
+ amount: number;
64
+ };
65
+ hardware: {
66
+ brand: string;
67
+ qty: number;
68
+ unitPrice: number;
69
+ amount: number;
70
+ };
71
+ plinth: {
72
+ type: string;
73
+ amount: number;
74
+ };
75
+ led: {
76
+ included: boolean;
77
+ lengthMm: number;
78
+ amount: number;
79
+ };
80
+ /** 노출 런 끝단 EP 마감 */
81
+ ep: {
82
+ count: number;
83
+ unitPrice: number;
84
+ amount: number;
85
+ };
86
+ /** 두 엔진 총액 항상 병산 */
87
+ pricing: {
88
+ mode: KitchenPricingMode;
89
+ moduleTotal: number;
90
+ lengthTotal: number;
91
+ };
92
+ summary: KitchenQuoteSummary;
93
+ }
94
+ //# sourceMappingURL=quote.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"quote.d.ts","sourceRoot":"","sources":["../../../src/models/Kitchen/quote.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAErD,yBAAyB;AACzB,MAAM,WAAW,gBAAgB;IAC/B,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,4BAA4B;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,0CAA0C;AAC1C,MAAM,WAAW,iBAAiB;IAChC,UAAU;IACV,CAAC,EAAE,MAAM,CAAC;IACV,gBAAgB;IAChB,CAAC,EAAE,MAAM,CAAC;IACV,YAAY;IACZ,CAAC,EAAE,MAAM,CAAC;CACX;AAED,MAAM,WAAW,mBAAmB;IAClC,eAAe,EAAE,MAAM,CAAC;IACxB,eAAe,EAAE,MAAM,CAAC;IACxB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,kBAAkB,CAAC;IACzB,eAAe;IACf,KAAK,EAAE,gBAAgB,EAAE,CAAC;IAC1B,4BAA4B;IAC5B,SAAS,EAAE,gBAAgB,EAAE,CAAC;IAC9B,WAAW,EAAE,iBAAiB,EAAE,CAAC;IACjC,gBAAgB;IAChB,QAAQ,EAAE;QACR,IAAI,EAAE,MAAM,CAAC;QACb,UAAU,EAAE,MAAM,CAAC;QACnB,MAAM,EAAE,MAAM,CAAC;QACf,MAAM,EAAE,MAAM,CAAC;QACf,QAAQ,EAAE,MAAM,CAAC;KAClB,CAAC;IACF,oCAAoC;IACpC,UAAU,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IACrF,OAAO,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAC1E,QAAQ,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAC5E,MAAM,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IACzC,GAAG,EAAE;QAAE,QAAQ,EAAE,OAAO,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAC7D,oBAAoB;IACpB,EAAE,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IACzD,oBAAoB;IACpB,OAAO,EAAE;QAAE,IAAI,EAAE,kBAAkB,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,CAAC;IAChF,OAAO,EAAE,mBAAmB,CAAC;CAC9B"}
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ /**
3
+ * 주방 견적 객체 — barogagu-kitchen computeQuote() 반환값의 타입.
4
+ * 원본 문서: barogagu-kitchen/docs/CONTRACTS.md §3.
5
+ *
6
+ * 금액은 전부 원 단위. 값은 앱이 배치 기하에서 런타임 계산하며,
7
+ * 단가 상수 자체는 이 패키지에 포함하지 않는다(공개 npm — 사내 단가 비공개).
8
+ */
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ //# sourceMappingURL=quote.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"quote.js","sourceRoot":"","sources":["../../../src/models/Kitchen/quote.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG"}
@@ -0,0 +1,68 @@
1
+ /**
2
+ * 주방 모듈 견적 빌더 — 현장 스냅샷 계약.
3
+ *
4
+ * barogagu-kitchen(index.html §9)의 snapshot()/applySnapshot()이 생성·소비하는
5
+ * JSON의 타입. 저장/복원·어드민 현장 레코드 연동·스케치업 import/export의 단일 계약.
6
+ * 원본 문서: barogagu-kitchen/docs/CONTRACTS.md §1 (이 타입이 우선).
7
+ *
8
+ * 좌표·폭은 전부 mm, 배치는 100mm 스냅(SKU 실폭은 비100 가능).
9
+ */
10
+ /** 아이소 뷰 회전. 0=남서 1=남동 2=북동 3=북서 */
11
+ export type KitchenViewRot = 0 | 1 | 2 | 3;
12
+ export type KitchenWall = 'right' | 'left';
13
+ export type KitchenBand = 'lower' | 'upper' | 'island' | 'peninsula';
14
+ export type KitchenCounterMaterial = 'engineered' | 'ceramic' | 'stainless';
15
+ export type KitchenHandleType = 'outer' | 'channel';
16
+ export type KitchenPlinth = 'standard' | 'lowered';
17
+ export type KitchenHardware = 'hafele' | 'blum';
18
+ /** 견적 엔진. length=사내 길이 단가(기본) / module=모듈 단가 */
19
+ export type KitchenPricingMode = 'length' | 'module';
20
+ /** 한솔 도어 색상 계열 */
21
+ export type KitchenDoorFamily = '화이트' | '베이지' | '콘크리트' | '오크' | '월넛';
22
+ export interface KitchenOptions {
23
+ counter: KitchenCounterMaterial;
24
+ handleType: KitchenHandleType;
25
+ led: boolean;
26
+ doorFamily: KitchenDoorFamily;
27
+ /** 한솔 15색 중 하나 (예: '크림화이트') */
28
+ doorFinish: string;
29
+ plinth: KitchenPlinth;
30
+ hardware: KitchenHardware;
31
+ pricingMode: KitchenPricingMode;
32
+ }
33
+ /** 배치 모듈 1개 (자동 수납장이 '확정'된 것 포함) */
34
+ export interface KitchenPlacedModule {
35
+ /** SKU (KITCHEN_CATALOG 키). 미지의 id는 복원 시 조용히 건너뜀 */
36
+ id: string;
37
+ /** island/peninsula 밴드에선 의미 없음 */
38
+ wall: KitchenWall;
39
+ /** 키큰장도 lower */
40
+ band: KitchenBand;
41
+ /** 벽 트랙 좌표(mm, 코너 기준) — 벽 밴드용 */
42
+ off?: number;
43
+ /** 아일랜드/반도 X 좌표(mm) — island/peninsula용 */
44
+ offX?: number;
45
+ /** 폭 오버라이드(mm) — 수납장 리사이즈/맞춤 채움 */
46
+ wOv?: number;
47
+ }
48
+ export interface KitchenSnapshot {
49
+ /** 스키마 버전 */
50
+ v: number;
51
+ /** 현장명(목록 저장 시) */
52
+ name?: string;
53
+ savedAt: string;
54
+ /** 저장 시점 총액(원, 참고용 캐시) */
55
+ total: number;
56
+ /** 오른쪽(x)/왼쪽(y) 벽 길이(mm) */
57
+ walls: {
58
+ x: number;
59
+ y: number;
60
+ };
61
+ autoFill: boolean;
62
+ viewRot: KitchenViewRot;
63
+ options: KitchenOptions;
64
+ placed: KitchenPlacedModule[];
65
+ }
66
+ /** 현재 앱이 생성하는 스냅샷 스키마 버전 */
67
+ export declare const KITCHEN_SNAPSHOT_VERSION = 21;
68
+ //# sourceMappingURL=snapshot.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"snapshot.d.ts","sourceRoot":"","sources":["../../../src/models/Kitchen/snapshot.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,oCAAoC;AACpC,MAAM,MAAM,cAAc,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAE3C,MAAM,MAAM,WAAW,GAAG,OAAO,GAAG,MAAM,CAAC;AAC3C,MAAM,MAAM,WAAW,GAAG,OAAO,GAAG,OAAO,GAAG,QAAQ,GAAG,WAAW,CAAC;AAErE,MAAM,MAAM,sBAAsB,GAAG,YAAY,GAAG,SAAS,GAAG,WAAW,CAAC;AAC5E,MAAM,MAAM,iBAAiB,GAAG,OAAO,GAAG,SAAS,CAAC;AACpD,MAAM,MAAM,aAAa,GAAG,UAAU,GAAG,SAAS,CAAC;AACnD,MAAM,MAAM,eAAe,GAAG,QAAQ,GAAG,MAAM,CAAC;AAChD,gDAAgD;AAChD,MAAM,MAAM,kBAAkB,GAAG,QAAQ,GAAG,QAAQ,CAAC;AACrD,kBAAkB;AAClB,MAAM,MAAM,iBAAiB,GAAG,KAAK,GAAG,KAAK,GAAG,MAAM,GAAG,IAAI,GAAG,IAAI,CAAC;AAErE,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,sBAAsB,CAAC;IAChC,UAAU,EAAE,iBAAiB,CAAC;IAC9B,GAAG,EAAE,OAAO,CAAC;IACb,UAAU,EAAE,iBAAiB,CAAC;IAC9B,+BAA+B;IAC/B,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,aAAa,CAAC;IACtB,QAAQ,EAAE,eAAe,CAAC;IAC1B,WAAW,EAAE,kBAAkB,CAAC;CACjC;AAED,oCAAoC;AACpC,MAAM,WAAW,mBAAmB;IAClC,oDAAoD;IACpD,EAAE,EAAE,MAAM,CAAC;IACX,kCAAkC;IAClC,IAAI,EAAE,WAAW,CAAC;IAClB,iBAAiB;IACjB,IAAI,EAAE,WAAW,CAAC;IAClB,iCAAiC;IACjC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,2CAA2C;IAC3C,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,mCAAmC;IACnC,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,eAAe;IAC9B,aAAa;IACb,CAAC,EAAE,MAAM,CAAC;IACV,mBAAmB;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,0BAA0B;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,4BAA4B;IAC5B,KAAK,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAChC,QAAQ,EAAE,OAAO,CAAC;IAClB,OAAO,EAAE,cAAc,CAAC;IACxB,OAAO,EAAE,cAAc,CAAC;IACxB,MAAM,EAAE,mBAAmB,EAAE,CAAC;CAC/B;AAED,4BAA4B;AAC5B,eAAO,MAAM,wBAAwB,KAAK,CAAC"}
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ /**
3
+ * 주방 모듈 견적 빌더 — 현장 스냅샷 계약.
4
+ *
5
+ * barogagu-kitchen(index.html §9)의 snapshot()/applySnapshot()이 생성·소비하는
6
+ * JSON의 타입. 저장/복원·어드민 현장 레코드 연동·스케치업 import/export의 단일 계약.
7
+ * 원본 문서: barogagu-kitchen/docs/CONTRACTS.md §1 (이 타입이 우선).
8
+ *
9
+ * 좌표·폭은 전부 mm, 배치는 100mm 스냅(SKU 실폭은 비100 가능).
10
+ */
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.KITCHEN_SNAPSHOT_VERSION = void 0;
13
+ /** 현재 앱이 생성하는 스냅샷 스키마 버전 */
14
+ exports.KITCHEN_SNAPSHOT_VERSION = 21;
15
+ //# sourceMappingURL=snapshot.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"snapshot.js","sourceRoot":"","sources":["../../../src/models/Kitchen/snapshot.ts"],"names":[],"mappings":";AAAA;;;;;;;;GAQG;;;AA6DH,4BAA4B;AACf,QAAA,wBAAwB,GAAG,EAAE,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "dooring-core-domain",
3
- "version": "1.1.2",
3
+ "version": "1.2.1",
4
4
  "description": "Dooring 프로젝트의 핵심 도메인 모델들을 정의한 npm 패키지",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",