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.
- package/dist/index.d.ts +3 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +30 -2
- package/dist/index.js.map +1 -1
- package/dist/models/Barogisa/checkin.d.ts +14 -0
- package/dist/models/Barogisa/checkin.d.ts.map +1 -0
- package/dist/models/Barogisa/checkin.js +5 -0
- package/dist/models/Barogisa/checkin.js.map +1 -0
- package/dist/models/Barogisa/deposit.d.ts +7 -0
- package/dist/models/Barogisa/deposit.d.ts.map +1 -0
- package/dist/models/Barogisa/deposit.js +30 -0
- package/dist/models/Barogisa/deposit.js.map +1 -0
- package/dist/models/Barogisa/factory.d.ts +9 -0
- package/dist/models/Barogisa/factory.d.ts.map +1 -0
- package/dist/models/Barogisa/factory.js +5 -0
- package/dist/models/Barogisa/factory.js.map +1 -0
- package/dist/models/Barogisa/format.d.ts +3 -0
- package/dist/models/Barogisa/format.d.ts.map +1 -0
- package/dist/models/Barogisa/format.js +22 -0
- package/dist/models/Barogisa/format.js.map +1 -0
- package/dist/models/Barogisa/index.d.ts +9 -0
- package/dist/models/Barogisa/index.d.ts.map +1 -0
- package/dist/models/Barogisa/index.js +28 -0
- package/dist/models/Barogisa/index.js.map +1 -0
- package/dist/models/Barogisa/job.d.ts +39 -0
- package/dist/models/Barogisa/job.d.ts.map +1 -0
- package/dist/models/Barogisa/job.js +5 -0
- package/dist/models/Barogisa/job.js.map +1 -0
- package/dist/models/Barogisa/labels.d.ts +4 -0
- package/dist/models/Barogisa/labels.d.ts.map +1 -0
- package/dist/models/Barogisa/labels.js +25 -0
- package/dist/models/Barogisa/labels.js.map +1 -0
- package/dist/models/Barogisa/rates.d.ts +4 -0
- package/dist/models/Barogisa/rates.d.ts.map +1 -0
- package/dist/models/Barogisa/rates.js +16 -0
- package/dist/models/Barogisa/rates.js.map +1 -0
- package/dist/models/Barogisa/user.d.ts +26 -0
- package/dist/models/Barogisa/user.d.ts.map +1 -0
- package/dist/models/Barogisa/user.js +5 -0
- package/dist/models/Barogisa/user.js.map +1 -0
- package/dist/models/Kitchen/catalog.d.ts +46 -0
- package/dist/models/Kitchen/catalog.d.ts.map +1 -0
- package/dist/models/Kitchen/catalog.js +65 -0
- package/dist/models/Kitchen/catalog.js.map +1 -0
- package/dist/models/Kitchen/devPayload.d.ts +60 -0
- package/dist/models/Kitchen/devPayload.d.ts.map +1 -0
- package/dist/models/Kitchen/devPayload.js +8 -0
- package/dist/models/Kitchen/devPayload.js.map +1 -0
- package/dist/models/Kitchen/index.d.ts +5 -0
- package/dist/models/Kitchen/index.d.ts.map +1 -0
- package/dist/models/Kitchen/index.js +24 -0
- package/dist/models/Kitchen/index.js.map +1 -0
- package/dist/models/Kitchen/quote.d.ts +94 -0
- package/dist/models/Kitchen/quote.d.ts.map +1 -0
- package/dist/models/Kitchen/quote.js +10 -0
- package/dist/models/Kitchen/quote.js.map +1 -0
- package/dist/models/Kitchen/snapshot.d.ts +68 -0
- package/dist/models/Kitchen/snapshot.d.ts.map +1 -0
- package/dist/models/Kitchen/snapshot.js +15 -0
- package/dist/models/Kitchen/snapshot.js.map +1 -0
- 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
|
|
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
|
package/dist/index.d.ts.map
CHANGED
|
@@ -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;
|
|
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
|
|
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
|
|
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 @@
|
|
|
1
|
+
{"version":3,"file":"checkin.js","sourceRoot":"","sources":["../../../src/models/Barogisa/checkin.ts"],"names":[],"mappings":";AAAA,sCAAsC;AACtC,4DAA4D"}
|
|
@@ -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 @@
|
|
|
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 @@
|
|
|
1
|
+
{"version":3,"file":"factory.js","sourceRoot":"","sources":["../../../src/models/Barogisa/factory.ts"],"names":[],"mappings":";AAAA,8BAA8B;AAC9B,4DAA4D"}
|
|
@@ -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 @@
|
|
|
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 @@
|
|
|
1
|
+
{"version":3,"file":"job.js","sourceRoot":"","sources":["../../../src/models/Barogisa/job.ts"],"names":[],"mappings":";AAAA,4CAA4C;AAC5C,sEAAsE"}
|
|
@@ -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 @@
|
|
|
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 @@
|
|
|
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 @@
|
|
|
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"}
|