dooring-core-domain 1.0.65 → 1.1.2

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 (69) hide show
  1. package/dist/enums/QuoteEnums.d.ts +99 -0
  2. package/dist/enums/QuoteEnums.d.ts.map +1 -0
  3. package/dist/enums/QuoteEnums.js +111 -0
  4. package/dist/enums/QuoteEnums.js.map +1 -0
  5. package/dist/enums/index.d.ts +1 -0
  6. package/dist/enums/index.d.ts.map +1 -1
  7. package/dist/enums/index.js +2 -0
  8. package/dist/enums/index.js.map +1 -1
  9. package/dist/index.d.ts +15 -1
  10. package/dist/index.d.ts.map +1 -1
  11. package/dist/index.js +17 -1
  12. package/dist/index.js.map +1 -1
  13. package/dist/models/Quote/Client.d.ts +50 -0
  14. package/dist/models/Quote/Client.d.ts.map +1 -0
  15. package/dist/models/Quote/Client.js +49 -0
  16. package/dist/models/Quote/Client.js.map +1 -0
  17. package/dist/models/Quote/ComplianceDocument.d.ts +45 -0
  18. package/dist/models/Quote/ComplianceDocument.d.ts.map +1 -0
  19. package/dist/models/Quote/ComplianceDocument.js +45 -0
  20. package/dist/models/Quote/ComplianceDocument.js.map +1 -0
  21. package/dist/models/Quote/CustomerRequest.d.ts +55 -0
  22. package/dist/models/Quote/CustomerRequest.d.ts.map +1 -0
  23. package/dist/models/Quote/CustomerRequest.js +40 -0
  24. package/dist/models/Quote/CustomerRequest.js.map +1 -0
  25. package/dist/models/Quote/CustomerSession.d.ts +39 -0
  26. package/dist/models/Quote/CustomerSession.d.ts.map +1 -0
  27. package/dist/models/Quote/CustomerSession.js +41 -0
  28. package/dist/models/Quote/CustomerSession.js.map +1 -0
  29. package/dist/models/Quote/Price.d.ts +86 -0
  30. package/dist/models/Quote/Price.d.ts.map +1 -0
  31. package/dist/models/Quote/Price.js +77 -0
  32. package/dist/models/Quote/Price.js.map +1 -0
  33. package/dist/models/Quote/Promotion.d.ts +69 -0
  34. package/dist/models/Quote/Promotion.d.ts.map +1 -0
  35. package/dist/models/Quote/Promotion.js +68 -0
  36. package/dist/models/Quote/Promotion.js.map +1 -0
  37. package/dist/models/Quote/Quote.d.ts +65 -0
  38. package/dist/models/Quote/Quote.d.ts.map +1 -0
  39. package/dist/models/Quote/Quote.js +60 -0
  40. package/dist/models/Quote/Quote.js.map +1 -0
  41. package/dist/models/Quote/QuoteLine.d.ts +83 -0
  42. package/dist/models/Quote/QuoteLine.d.ts.map +1 -0
  43. package/dist/models/Quote/QuoteLine.js +74 -0
  44. package/dist/models/Quote/QuoteLine.js.map +1 -0
  45. package/dist/models/Quote/QuoteSection.d.ts +46 -0
  46. package/dist/models/Quote/QuoteSection.d.ts.map +1 -0
  47. package/dist/models/Quote/QuoteSection.js +46 -0
  48. package/dist/models/Quote/QuoteSection.js.map +1 -0
  49. package/dist/models/Quote/QuoteVersion.d.ts +48 -0
  50. package/dist/models/Quote/QuoteVersion.d.ts.map +1 -0
  51. package/dist/models/Quote/QuoteVersion.js +47 -0
  52. package/dist/models/Quote/QuoteVersion.js.map +1 -0
  53. package/dist/models/Quote/ShareToken.d.ts +53 -0
  54. package/dist/models/Quote/ShareToken.d.ts.map +1 -0
  55. package/dist/models/Quote/ShareToken.js +58 -0
  56. package/dist/models/Quote/ShareToken.js.map +1 -0
  57. package/dist/models/Quote/Site.d.ts +62 -0
  58. package/dist/models/Quote/Site.d.ts.map +1 -0
  59. package/dist/models/Quote/Site.js +58 -0
  60. package/dist/models/Quote/Site.js.map +1 -0
  61. package/dist/models/Quote/SiteStage.d.ts +42 -0
  62. package/dist/models/Quote/SiteStage.d.ts.map +1 -0
  63. package/dist/models/Quote/SiteStage.js +42 -0
  64. package/dist/models/Quote/SiteStage.js.map +1 -0
  65. package/dist/types/quote.d.ts +98 -0
  66. package/dist/types/quote.d.ts.map +1 -0
  67. package/dist/types/quote.js +15 -0
  68. package/dist/types/quote.js.map +1 -0
  69. package/package.json +1 -1
@@ -0,0 +1,99 @@
1
+ /**
2
+ * 견적/현장 도메인 ENUM 정의 (Phase 1)
3
+ */
4
+ /**
5
+ * 견적 섹션 종류
6
+ * - furniture: 가구 견적 (공간별 그룹핑, customer read-only)
7
+ * - construction: 시공비 (customer interactive 가능)
8
+ * - misc: 기타 비용 (운반·양생 등)
9
+ * - extra: 별도 품목 (상판·옵션·전기)
10
+ * - special_service: 특별 서비스 (단가표 8번 매핑)
11
+ * - promotion: 프로모션 (할인/추가금, quote_promotions 테이블 참조)
12
+ * - custom: 자유 정의
13
+ */
14
+ export declare enum QuoteSectionKind {
15
+ FURNITURE = "furniture",
16
+ CONSTRUCTION = "construction",
17
+ MISC = "misc",
18
+ EXTRA = "extra",
19
+ SPECIAL_SERVICE = "special_service",
20
+ PROMOTION = "promotion",
21
+ CUSTOM = "custom"
22
+ }
23
+ /**
24
+ * 현장 진행 단계 (기본 6종 시드)
25
+ */
26
+ export declare enum SiteStageKey {
27
+ INQUIRY = "inquiry",
28
+ ESTIMATING = "estimating",
29
+ REVIEWING = "reviewing",
30
+ CONTRACTED = "contracted",
31
+ CONSTRUCTION = "construction",
32
+ COMPLETED = "completed"
33
+ }
34
+ /**
35
+ * 가구 견적 섹션의 공간 (대분류 = 단가표 E열 1~6번)
36
+ */
37
+ export declare enum FurnitureSpace {
38
+ KITCHEN = "\uC8FC\uBC29",
39
+ BUILT_IN_CLOSET = "\uBD99\uBC15\uC774\uC7A5",
40
+ SHOE_CABINET = "\uC2E0\uBC1C\uC7A5",
41
+ OTHER_STORAGE = "\uAE30\uD0C0 \uC218\uB0A9\uC7A5",
42
+ DOOR = "\uB3C4\uC5B4",
43
+ COUNTERTOP_ETC = "\uC0C1\uD310 \uBC0F \uAE30\uD0C0\uD488\uBAA9"
44
+ }
45
+ /**
46
+ * 단가표 단위
47
+ */
48
+ export declare enum PriceUnit {
49
+ M = "m",
50
+ MM_100 = "100mm",
51
+ PIECE = "\uAC1C",
52
+ JA = "\uC790",
53
+ SHEET = "\uC7A5",
54
+ SET = "\uC138\uD2B8",
55
+ LUMP = "\uC2DD",
56
+ CASE = "\uAC74",
57
+ PERSON = "\uC778"
58
+ }
59
+ /**
60
+ * VAT customer interactivity 모드
61
+ * - toggle: 고객이 켜고 끄기 가능 (기본)
62
+ * - always_included: 항상 포함 (체크박스 미노출)
63
+ * - always_excluded: 항상 제외 (별도 협의 안내)
64
+ */
65
+ export declare enum VatCustomerMode {
66
+ TOGGLE = "toggle",
67
+ ALWAYS_INCLUDED = "always_included",
68
+ ALWAYS_EXCLUDED = "always_excluded"
69
+ }
70
+ /**
71
+ * 프로모션 방향
72
+ */
73
+ export declare enum PromotionDirection {
74
+ DISCOUNT = "discount",
75
+ SURCHARGE = "surcharge"
76
+ }
77
+ /**
78
+ * 프로모션 적용 방식
79
+ */
80
+ export declare enum PromotionMode {
81
+ RATE = "rate",
82
+ FIXED = "fixed"
83
+ }
84
+ /**
85
+ * 프로모션 적용 대상
86
+ */
87
+ export declare enum PromotionAppliesTo {
88
+ SUBTOTAL_PRE_VAT = "subtotal_pre_vat",
89
+ SUBTOTAL_POST_VAT = "subtotal_post_vat"
90
+ }
91
+ /**
92
+ * 단가표 source (origin tracking)
93
+ */
94
+ export declare enum PriceSource {
95
+ NOTION_CSV = "notion-csv",
96
+ XLSM = "xlsm",
97
+ MANUAL = "manual"
98
+ }
99
+ //# sourceMappingURL=QuoteEnums.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"QuoteEnums.d.ts","sourceRoot":"","sources":["../../src/enums/QuoteEnums.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;;;;;;;;GASG;AACH,oBAAY,gBAAgB;IAC1B,SAAS,cAAc;IACvB,YAAY,iBAAiB;IAC7B,IAAI,SAAS;IACb,KAAK,UAAU;IACf,eAAe,oBAAoB;IACnC,SAAS,cAAc;IACvB,MAAM,WAAW;CAClB;AAED;;GAEG;AACH,oBAAY,YAAY;IACtB,OAAO,YAAY;IACnB,UAAU,eAAe;IACzB,SAAS,cAAc;IACvB,UAAU,eAAe;IACzB,YAAY,iBAAiB;IAC7B,SAAS,cAAc;CACxB;AAED;;GAEG;AACH,oBAAY,cAAc;IACxB,OAAO,iBAAO;IACd,eAAe,6BAAS;IACxB,YAAY,uBAAQ;IACpB,aAAa,oCAAW;IACxB,IAAI,iBAAO;IACX,cAAc,iDAAc;CAC7B;AAED;;GAEG;AACH,oBAAY,SAAS;IACnB,CAAC,MAAM;IACP,MAAM,UAAU;IAChB,KAAK,WAAM;IACX,EAAE,WAAM;IACR,KAAK,WAAM;IACX,GAAG,iBAAO;IACV,IAAI,WAAM;IACV,IAAI,WAAM;IACV,MAAM,WAAM;CACb;AAED;;;;;GAKG;AACH,oBAAY,eAAe;IACzB,MAAM,WAAW;IACjB,eAAe,oBAAoB;IACnC,eAAe,oBAAoB;CACpC;AAED;;GAEG;AACH,oBAAY,kBAAkB;IAC5B,QAAQ,aAAa;IACrB,SAAS,cAAc;CACxB;AAED;;GAEG;AACH,oBAAY,aAAa;IACvB,IAAI,SAAS;IACb,KAAK,UAAU;CAChB;AAED;;GAEG;AACH,oBAAY,kBAAkB;IAC5B,gBAAgB,qBAAqB;IACrC,iBAAiB,sBAAsB;CACxC;AAED;;GAEG;AACH,oBAAY,WAAW;IACrB,UAAU,eAAe;IACzB,IAAI,SAAS;IACb,MAAM,WAAW;CAClB"}
@@ -0,0 +1,111 @@
1
+ "use strict";
2
+ /**
3
+ * 견적/현장 도메인 ENUM 정의 (Phase 1)
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.PriceSource = exports.PromotionAppliesTo = exports.PromotionMode = exports.PromotionDirection = exports.VatCustomerMode = exports.PriceUnit = exports.FurnitureSpace = exports.SiteStageKey = exports.QuoteSectionKind = void 0;
7
+ /**
8
+ * 견적 섹션 종류
9
+ * - furniture: 가구 견적 (공간별 그룹핑, customer read-only)
10
+ * - construction: 시공비 (customer interactive 가능)
11
+ * - misc: 기타 비용 (운반·양생 등)
12
+ * - extra: 별도 품목 (상판·옵션·전기)
13
+ * - special_service: 특별 서비스 (단가표 8번 매핑)
14
+ * - promotion: 프로모션 (할인/추가금, quote_promotions 테이블 참조)
15
+ * - custom: 자유 정의
16
+ */
17
+ var QuoteSectionKind;
18
+ (function (QuoteSectionKind) {
19
+ QuoteSectionKind["FURNITURE"] = "furniture";
20
+ QuoteSectionKind["CONSTRUCTION"] = "construction";
21
+ QuoteSectionKind["MISC"] = "misc";
22
+ QuoteSectionKind["EXTRA"] = "extra";
23
+ QuoteSectionKind["SPECIAL_SERVICE"] = "special_service";
24
+ QuoteSectionKind["PROMOTION"] = "promotion";
25
+ QuoteSectionKind["CUSTOM"] = "custom";
26
+ })(QuoteSectionKind || (exports.QuoteSectionKind = QuoteSectionKind = {}));
27
+ /**
28
+ * 현장 진행 단계 (기본 6종 시드)
29
+ */
30
+ var SiteStageKey;
31
+ (function (SiteStageKey) {
32
+ SiteStageKey["INQUIRY"] = "inquiry";
33
+ SiteStageKey["ESTIMATING"] = "estimating";
34
+ SiteStageKey["REVIEWING"] = "reviewing";
35
+ SiteStageKey["CONTRACTED"] = "contracted";
36
+ SiteStageKey["CONSTRUCTION"] = "construction";
37
+ SiteStageKey["COMPLETED"] = "completed";
38
+ })(SiteStageKey || (exports.SiteStageKey = SiteStageKey = {}));
39
+ /**
40
+ * 가구 견적 섹션의 공간 (대분류 = 단가표 E열 1~6번)
41
+ */
42
+ var FurnitureSpace;
43
+ (function (FurnitureSpace) {
44
+ FurnitureSpace["KITCHEN"] = "\uC8FC\uBC29";
45
+ FurnitureSpace["BUILT_IN_CLOSET"] = "\uBD99\uBC15\uC774\uC7A5";
46
+ FurnitureSpace["SHOE_CABINET"] = "\uC2E0\uBC1C\uC7A5";
47
+ FurnitureSpace["OTHER_STORAGE"] = "\uAE30\uD0C0 \uC218\uB0A9\uC7A5";
48
+ FurnitureSpace["DOOR"] = "\uB3C4\uC5B4";
49
+ FurnitureSpace["COUNTERTOP_ETC"] = "\uC0C1\uD310 \uBC0F \uAE30\uD0C0\uD488\uBAA9";
50
+ })(FurnitureSpace || (exports.FurnitureSpace = FurnitureSpace = {}));
51
+ /**
52
+ * 단가표 단위
53
+ */
54
+ var PriceUnit;
55
+ (function (PriceUnit) {
56
+ PriceUnit["M"] = "m";
57
+ PriceUnit["MM_100"] = "100mm";
58
+ PriceUnit["PIECE"] = "\uAC1C";
59
+ PriceUnit["JA"] = "\uC790";
60
+ PriceUnit["SHEET"] = "\uC7A5";
61
+ PriceUnit["SET"] = "\uC138\uD2B8";
62
+ PriceUnit["LUMP"] = "\uC2DD";
63
+ PriceUnit["CASE"] = "\uAC74";
64
+ PriceUnit["PERSON"] = "\uC778";
65
+ })(PriceUnit || (exports.PriceUnit = PriceUnit = {}));
66
+ /**
67
+ * VAT customer interactivity 모드
68
+ * - toggle: 고객이 켜고 끄기 가능 (기본)
69
+ * - always_included: 항상 포함 (체크박스 미노출)
70
+ * - always_excluded: 항상 제외 (별도 협의 안내)
71
+ */
72
+ var VatCustomerMode;
73
+ (function (VatCustomerMode) {
74
+ VatCustomerMode["TOGGLE"] = "toggle";
75
+ VatCustomerMode["ALWAYS_INCLUDED"] = "always_included";
76
+ VatCustomerMode["ALWAYS_EXCLUDED"] = "always_excluded";
77
+ })(VatCustomerMode || (exports.VatCustomerMode = VatCustomerMode = {}));
78
+ /**
79
+ * 프로모션 방향
80
+ */
81
+ var PromotionDirection;
82
+ (function (PromotionDirection) {
83
+ PromotionDirection["DISCOUNT"] = "discount";
84
+ PromotionDirection["SURCHARGE"] = "surcharge";
85
+ })(PromotionDirection || (exports.PromotionDirection = PromotionDirection = {}));
86
+ /**
87
+ * 프로모션 적용 방식
88
+ */
89
+ var PromotionMode;
90
+ (function (PromotionMode) {
91
+ PromotionMode["RATE"] = "rate";
92
+ PromotionMode["FIXED"] = "fixed";
93
+ })(PromotionMode || (exports.PromotionMode = PromotionMode = {}));
94
+ /**
95
+ * 프로모션 적용 대상
96
+ */
97
+ var PromotionAppliesTo;
98
+ (function (PromotionAppliesTo) {
99
+ PromotionAppliesTo["SUBTOTAL_PRE_VAT"] = "subtotal_pre_vat";
100
+ PromotionAppliesTo["SUBTOTAL_POST_VAT"] = "subtotal_post_vat";
101
+ })(PromotionAppliesTo || (exports.PromotionAppliesTo = PromotionAppliesTo = {}));
102
+ /**
103
+ * 단가표 source (origin tracking)
104
+ */
105
+ var PriceSource;
106
+ (function (PriceSource) {
107
+ PriceSource["NOTION_CSV"] = "notion-csv";
108
+ PriceSource["XLSM"] = "xlsm";
109
+ PriceSource["MANUAL"] = "manual";
110
+ })(PriceSource || (exports.PriceSource = PriceSource = {}));
111
+ //# sourceMappingURL=QuoteEnums.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"QuoteEnums.js","sourceRoot":"","sources":["../../src/enums/QuoteEnums.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAEH;;;;;;;;;GASG;AACH,IAAY,gBAQX;AARD,WAAY,gBAAgB;IAC1B,2CAAuB,CAAA;IACvB,iDAA6B,CAAA;IAC7B,iCAAa,CAAA;IACb,mCAAe,CAAA;IACf,uDAAmC,CAAA;IACnC,2CAAuB,CAAA;IACvB,qCAAiB,CAAA;AACnB,CAAC,EARW,gBAAgB,gCAAhB,gBAAgB,QAQ3B;AAED;;GAEG;AACH,IAAY,YAOX;AAPD,WAAY,YAAY;IACtB,mCAAmB,CAAA;IACnB,yCAAyB,CAAA;IACzB,uCAAuB,CAAA;IACvB,yCAAyB,CAAA;IACzB,6CAA6B,CAAA;IAC7B,uCAAuB,CAAA;AACzB,CAAC,EAPW,YAAY,4BAAZ,YAAY,QAOvB;AAED;;GAEG;AACH,IAAY,cAOX;AAPD,WAAY,cAAc;IACxB,0CAAc,CAAA;IACd,8DAAwB,CAAA;IACxB,qDAAoB,CAAA;IACpB,mEAAwB,CAAA;IACxB,uCAAW,CAAA;IACX,iFAA4B,CAAA;AAC9B,CAAC,EAPW,cAAc,8BAAd,cAAc,QAOzB;AAED;;GAEG;AACH,IAAY,SAUX;AAVD,WAAY,SAAS;IACnB,oBAAO,CAAA;IACP,6BAAgB,CAAA;IAChB,6BAAW,CAAA;IACX,0BAAQ,CAAA;IACR,6BAAW,CAAA;IACX,iCAAU,CAAA;IACV,4BAAU,CAAA;IACV,4BAAU,CAAA;IACV,8BAAY,CAAA;AACd,CAAC,EAVW,SAAS,yBAAT,SAAS,QAUpB;AAED;;;;;GAKG;AACH,IAAY,eAIX;AAJD,WAAY,eAAe;IACzB,oCAAiB,CAAA;IACjB,sDAAmC,CAAA;IACnC,sDAAmC,CAAA;AACrC,CAAC,EAJW,eAAe,+BAAf,eAAe,QAI1B;AAED;;GAEG;AACH,IAAY,kBAGX;AAHD,WAAY,kBAAkB;IAC5B,2CAAqB,CAAA;IACrB,6CAAuB,CAAA;AACzB,CAAC,EAHW,kBAAkB,kCAAlB,kBAAkB,QAG7B;AAED;;GAEG;AACH,IAAY,aAGX;AAHD,WAAY,aAAa;IACvB,8BAAa,CAAA;IACb,gCAAe,CAAA;AACjB,CAAC,EAHW,aAAa,6BAAb,aAAa,QAGxB;AAED;;GAEG;AACH,IAAY,kBAGX;AAHD,WAAY,kBAAkB;IAC5B,2DAAqC,CAAA;IACrC,6DAAuC,CAAA;AACzC,CAAC,EAHW,kBAAkB,kCAAlB,kBAAkB,QAG7B;AAED;;GAEG;AACH,IAAY,WAIX;AAJD,WAAY,WAAW;IACrB,wCAAyB,CAAA;IACzB,4BAAa,CAAA;IACb,gCAAiB,CAAA;AACnB,CAAC,EAJW,WAAW,2BAAX,WAAW,QAItB"}
@@ -7,4 +7,5 @@ export * from './ProjectEnums';
7
7
  export * from './CommonEnums';
8
8
  export * from './ColorEnum';
9
9
  export * from './BarogaguEnums';
10
+ export * from './QuoteEnums';
10
11
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/enums/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,cAAc,aAAa,CAAC;AAG5B,cAAc,gBAAgB,CAAC;AAG/B,cAAc,eAAe,CAAC;AAG9B,cAAc,aAAa,CAAC;AAG5B,cAAc,iBAAiB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/enums/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,cAAc,aAAa,CAAC;AAG5B,cAAc,gBAAgB,CAAC;AAG/B,cAAc,eAAe,CAAC;AAG9B,cAAc,aAAa,CAAC;AAG5B,cAAc,iBAAiB,CAAC;AAGhC,cAAc,cAAc,CAAC"}
@@ -28,4 +28,6 @@ __exportStar(require("./CommonEnums"), exports);
28
28
  __exportStar(require("./ColorEnum"), exports);
29
29
  // Barogagu 관련 ENUM들
30
30
  __exportStar(require("./BarogaguEnums"), exports);
31
+ // 견적/현장 관련 ENUM들 (Phase 1)
32
+ __exportStar(require("./QuoteEnums"), exports);
31
33
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/enums/index.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;;;;;;;;;;;;;;AAEH,gBAAgB;AAChB,8CAA4B;AAE5B,mBAAmB;AACnB,iDAA+B;AAE/B,WAAW;AACX,gDAA8B;AAE9B,cAAc;AACd,8CAA4B;AAE5B,oBAAoB;AACpB,kDAAgC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/enums/index.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;;;;;;;;;;;;;;AAEH,gBAAgB;AAChB,8CAA4B;AAE5B,mBAAmB;AACnB,iDAA+B;AAE/B,WAAW;AACX,gDAA8B;AAE9B,cAAc;AACd,8CAA4B;AAE5B,oBAAoB;AACpB,kDAAgC;AAEhC,2BAA2B;AAC3B,+CAA6B"}
package/dist/index.d.ts CHANGED
@@ -4,10 +4,24 @@
4
4
  */
5
5
  export * from './enums';
6
6
  export * from './types/common';
7
+ export * from './types/quote';
8
+ export * from './models/Quote/Client';
9
+ export * from './models/Quote/SiteStage';
10
+ export * from './models/Quote/Site';
11
+ export * from './models/Quote/Price';
12
+ export * from './models/Quote/Quote';
13
+ export * from './models/Quote/QuoteSection';
14
+ export * from './models/Quote/QuoteLine';
15
+ export * from './models/Quote/QuoteVersion';
16
+ export * from './models/Quote/ComplianceDocument';
17
+ export * from './models/Quote/ShareToken';
18
+ export * from './models/Quote/CustomerSession';
19
+ export * from './models/Quote/CustomerRequest';
20
+ export * from './models/Quote/Promotion';
7
21
  export * from './constants/color';
8
22
  export * from './constants/absorberType';
9
23
  export * from './constants/bodyMaterial';
10
24
  export * from './constants/cabinetDrawerType';
11
- export declare const VERSION = "1.0.1";
25
+ export declare const VERSION = "1.1.0";
12
26
  export declare const PACKAGE_NAME = "dooring-core-domain";
13
27
  //# 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,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;AAG9C,eAAO,MAAM,OAAO,UAAU,CAAC;AAC/B,eAAO,MAAM,YAAY,wBAAwB,CAAC"}
package/dist/index.js CHANGED
@@ -23,12 +23,28 @@ exports.PACKAGE_NAME = exports.VERSION = void 0;
23
23
  __exportStar(require("./enums"), exports);
24
24
  // 공통 타입들
25
25
  __exportStar(require("./types/common"), exports);
26
+ // 견적 도메인 타입 (Phase 1)
27
+ __exportStar(require("./types/quote"), exports);
28
+ // 견적 도메인 모델 (Phase 1)
29
+ __exportStar(require("./models/Quote/Client"), exports);
30
+ __exportStar(require("./models/Quote/SiteStage"), exports);
31
+ __exportStar(require("./models/Quote/Site"), exports);
32
+ __exportStar(require("./models/Quote/Price"), exports);
33
+ __exportStar(require("./models/Quote/Quote"), exports);
34
+ __exportStar(require("./models/Quote/QuoteSection"), exports);
35
+ __exportStar(require("./models/Quote/QuoteLine"), exports);
36
+ __exportStar(require("./models/Quote/QuoteVersion"), exports);
37
+ __exportStar(require("./models/Quote/ComplianceDocument"), exports);
38
+ __exportStar(require("./models/Quote/ShareToken"), exports);
39
+ __exportStar(require("./models/Quote/CustomerSession"), exports);
40
+ __exportStar(require("./models/Quote/CustomerRequest"), exports);
41
+ __exportStar(require("./models/Quote/Promotion"), exports);
26
42
  // 상수들
27
43
  __exportStar(require("./constants/color"), exports);
28
44
  __exportStar(require("./constants/absorberType"), exports);
29
45
  __exportStar(require("./constants/bodyMaterial"), exports);
30
46
  __exportStar(require("./constants/cabinetDrawerType"), exports);
31
47
  // 버전 정보
32
- exports.VERSION = '1.0.1';
48
+ exports.VERSION = '1.1.0';
33
49
  exports.PACKAGE_NAME = 'dooring-core-domain';
34
50
  //# 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,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,QAAQ;AACK,QAAA,OAAO,GAAG,OAAO,CAAC;AAClB,QAAA,YAAY,GAAG,qBAAqB,CAAC"}
@@ -0,0 +1,50 @@
1
+ /**
2
+ * 거래처 (clients 테이블)
3
+ *
4
+ * - BizClient(샵 사용자)과는 별개의 어드민용 거래처 마스터.
5
+ * - linked_biz_client_id로 BizClient와 느슨하게 연결 가능.
6
+ * - client_user_id는 Phase 3 고객 로그인 대비 (Phase 1에선 NULL).
7
+ */
8
+ export declare class Client {
9
+ readonly id?: string;
10
+ readonly created_at?: Date;
11
+ readonly updated_at?: Date;
12
+ readonly name: string;
13
+ readonly phone?: string;
14
+ readonly business_type?: string;
15
+ readonly memo?: string;
16
+ readonly linked_biz_client_id?: string;
17
+ readonly client_user_id?: string;
18
+ constructor(args: {
19
+ id?: string;
20
+ created_at?: Date;
21
+ updated_at?: Date;
22
+ name: string;
23
+ phone?: string;
24
+ business_type?: string;
25
+ memo?: string;
26
+ linked_biz_client_id?: string;
27
+ client_user_id?: string;
28
+ });
29
+ static fromDB(row: {
30
+ id: string;
31
+ created_at: string | Date;
32
+ updated_at?: string | Date | null;
33
+ name: string;
34
+ phone?: string | null;
35
+ business_type?: string | null;
36
+ memo?: string | null;
37
+ linked_biz_client_id?: string | null;
38
+ client_user_id?: string | null;
39
+ }): Client;
40
+ toDB(): {
41
+ id?: string;
42
+ name: string;
43
+ phone?: string | null;
44
+ business_type?: string | null;
45
+ memo?: string | null;
46
+ linked_biz_client_id?: string | null;
47
+ client_user_id?: string | null;
48
+ };
49
+ }
50
+ //# sourceMappingURL=Client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Client.d.ts","sourceRoot":"","sources":["../../../src/models/Quote/Client.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,qBAAa,MAAM;IACjB,SAAgB,EAAE,CAAC,EAAE,MAAM,CAAC;IAC5B,SAAgB,UAAU,CAAC,EAAE,IAAI,CAAC;IAClC,SAAgB,UAAU,CAAC,EAAE,IAAI,CAAC;IAClC,SAAgB,IAAI,EAAE,MAAM,CAAC;IAC7B,SAAgB,KAAK,CAAC,EAAE,MAAM,CAAC;IAC/B,SAAgB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvC,SAAgB,IAAI,CAAC,EAAE,MAAM,CAAC;IAC9B,SAAgB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9C,SAAgB,cAAc,CAAC,EAAE,MAAM,CAAC;gBAE5B,IAAI,EAAE;QAChB,EAAE,CAAC,EAAE,MAAM,CAAC;QACZ,UAAU,CAAC,EAAE,IAAI,CAAC;QAClB,UAAU,CAAC,EAAE,IAAI,CAAC;QAClB,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,oBAAoB,CAAC,EAAE,MAAM,CAAC;QAC9B,cAAc,CAAC,EAAE,MAAM,CAAC;KACzB;IAYD,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE;QACjB,EAAE,EAAE,MAAM,CAAC;QACX,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;QAC1B,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,CAAC;QAClC,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QACtB,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAC9B,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QACrB,oBAAoB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QACrC,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;KAChC,GAAG,MAAM;IAcV,IAAI,IAAI;QACN,EAAE,CAAC,EAAE,MAAM,CAAC;QACZ,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QACtB,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAC9B,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QACrB,oBAAoB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QACrC,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;KAChC;CAWF"}
@@ -0,0 +1,49 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Client = void 0;
4
+ /**
5
+ * 거래처 (clients 테이블)
6
+ *
7
+ * - BizClient(샵 사용자)과는 별개의 어드민용 거래처 마스터.
8
+ * - linked_biz_client_id로 BizClient와 느슨하게 연결 가능.
9
+ * - client_user_id는 Phase 3 고객 로그인 대비 (Phase 1에선 NULL).
10
+ */
11
+ class Client {
12
+ constructor(args) {
13
+ this.id = args.id;
14
+ this.created_at = args.created_at;
15
+ this.updated_at = args.updated_at;
16
+ this.name = args.name;
17
+ this.phone = args.phone;
18
+ this.business_type = args.business_type;
19
+ this.memo = args.memo;
20
+ this.linked_biz_client_id = args.linked_biz_client_id;
21
+ this.client_user_id = args.client_user_id;
22
+ }
23
+ static fromDB(row) {
24
+ return new Client({
25
+ id: row.id,
26
+ created_at: row.created_at instanceof Date ? row.created_at : new Date(row.created_at),
27
+ updated_at: row.updated_at ? (row.updated_at instanceof Date ? row.updated_at : new Date(row.updated_at)) : undefined,
28
+ name: row.name,
29
+ phone: row.phone ?? undefined,
30
+ business_type: row.business_type ?? undefined,
31
+ memo: row.memo ?? undefined,
32
+ linked_biz_client_id: row.linked_biz_client_id ?? undefined,
33
+ client_user_id: row.client_user_id ?? undefined,
34
+ });
35
+ }
36
+ toDB() {
37
+ return {
38
+ id: this.id,
39
+ name: this.name,
40
+ phone: this.phone ?? null,
41
+ business_type: this.business_type ?? null,
42
+ memo: this.memo ?? null,
43
+ linked_biz_client_id: this.linked_biz_client_id ?? null,
44
+ client_user_id: this.client_user_id ?? null,
45
+ };
46
+ }
47
+ }
48
+ exports.Client = Client;
49
+ //# sourceMappingURL=Client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Client.js","sourceRoot":"","sources":["../../../src/models/Quote/Client.ts"],"names":[],"mappings":";;;AAAA;;;;;;GAMG;AACH,MAAa,MAAM;IAWjB,YAAY,IAUX;QACC,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC;QAClB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;QAClC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;QAClC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACtB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QACxB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC;QACxC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACtB,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,oBAAoB,CAAC;QACtD,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC;IAC5C,CAAC;IAED,MAAM,CAAC,MAAM,CAAC,GAUb;QACC,OAAO,IAAI,MAAM,CAAC;YAChB,EAAE,EAAE,GAAG,CAAC,EAAE;YACV,UAAU,EAAE,GAAG,CAAC,UAAU,YAAY,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC;YACtF,UAAU,EAAE,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,UAAU,YAAY,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS;YACrH,IAAI,EAAE,GAAG,CAAC,IAAI;YACd,KAAK,EAAE,GAAG,CAAC,KAAK,IAAI,SAAS;YAC7B,aAAa,EAAE,GAAG,CAAC,aAAa,IAAI,SAAS;YAC7C,IAAI,EAAE,GAAG,CAAC,IAAI,IAAI,SAAS;YAC3B,oBAAoB,EAAE,GAAG,CAAC,oBAAoB,IAAI,SAAS;YAC3D,cAAc,EAAE,GAAG,CAAC,cAAc,IAAI,SAAS;SAChD,CAAC,CAAC;IACL,CAAC;IAED,IAAI;QASF,OAAO;YACL,EAAE,EAAE,IAAI,CAAC,EAAE;YACX,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,IAAI;YACzB,aAAa,EAAE,IAAI,CAAC,aAAa,IAAI,IAAI;YACzC,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,IAAI;YACvB,oBAAoB,EAAE,IAAI,CAAC,oBAAoB,IAAI,IAAI;YACvD,cAAc,EAAE,IAAI,CAAC,cAAc,IAAI,IAAI;SAC5C,CAAC;IACJ,CAAC;CACF;AA5ED,wBA4EC"}
@@ -0,0 +1,45 @@
1
+ /**
2
+ * 고지사항/계약서 (compliance_documents 테이블) — 법적 텍스트의 버전 관리.
3
+ *
4
+ * quote_versions.compliance_version_id로 핀하면, 과거 견적은 합의 당시 본문 그대로 재현.
5
+ * is_current=true는 최신 1건만 (DB 제약 또는 트리거로 보장).
6
+ */
7
+ export declare class ComplianceDocument {
8
+ readonly id?: string;
9
+ readonly created_at?: Date;
10
+ readonly updated_at?: Date;
11
+ readonly version: number;
12
+ readonly title: string;
13
+ readonly body_markdown: string;
14
+ readonly effective_from?: Date;
15
+ readonly is_current: boolean;
16
+ constructor(args: {
17
+ id?: string;
18
+ created_at?: Date;
19
+ updated_at?: Date;
20
+ version: number;
21
+ title: string;
22
+ body_markdown: string;
23
+ effective_from?: Date;
24
+ is_current?: boolean;
25
+ });
26
+ static fromDB(row: {
27
+ id: string;
28
+ created_at: string | Date;
29
+ updated_at?: string | Date | null;
30
+ version: number;
31
+ title: string;
32
+ body_markdown: string;
33
+ effective_from?: string | Date | null;
34
+ is_current?: boolean | null;
35
+ }): ComplianceDocument;
36
+ toDB(): {
37
+ id?: string;
38
+ version: number;
39
+ title: string;
40
+ body_markdown: string;
41
+ effective_from?: string | null;
42
+ is_current: boolean;
43
+ };
44
+ }
45
+ //# sourceMappingURL=ComplianceDocument.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ComplianceDocument.d.ts","sourceRoot":"","sources":["../../../src/models/Quote/ComplianceDocument.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,qBAAa,kBAAkB;IAC7B,SAAgB,EAAE,CAAC,EAAE,MAAM,CAAC;IAC5B,SAAgB,UAAU,CAAC,EAAE,IAAI,CAAC;IAClC,SAAgB,UAAU,CAAC,EAAE,IAAI,CAAC;IAClC,SAAgB,OAAO,EAAE,MAAM,CAAC;IAChC,SAAgB,KAAK,EAAE,MAAM,CAAC;IAC9B,SAAgB,aAAa,EAAE,MAAM,CAAC;IACtC,SAAgB,cAAc,CAAC,EAAE,IAAI,CAAC;IACtC,SAAgB,UAAU,EAAE,OAAO,CAAC;gBAExB,IAAI,EAAE;QAChB,EAAE,CAAC,EAAE,MAAM,CAAC;QACZ,UAAU,CAAC,EAAE,IAAI,CAAC;QAClB,UAAU,CAAC,EAAE,IAAI,CAAC;QAClB,OAAO,EAAE,MAAM,CAAC;QAChB,KAAK,EAAE,MAAM,CAAC;QACd,aAAa,EAAE,MAAM,CAAC;QACtB,cAAc,CAAC,EAAE,IAAI,CAAC;QACtB,UAAU,CAAC,EAAE,OAAO,CAAC;KACtB;IAWD,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE;QACjB,EAAE,EAAE,MAAM,CAAC;QACX,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;QAC1B,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,CAAC;QAClC,OAAO,EAAE,MAAM,CAAC;QAChB,KAAK,EAAE,MAAM,CAAC;QACd,aAAa,EAAE,MAAM,CAAC;QACtB,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,CAAC;QACtC,UAAU,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;KAC7B,GAAG,kBAAkB;IAatB,IAAI,IAAI;QACN,EAAE,CAAC,EAAE,MAAM,CAAC;QACZ,OAAO,EAAE,MAAM,CAAC;QAChB,KAAK,EAAE,MAAM,CAAC;QACd,aAAa,EAAE,MAAM,CAAC;QACtB,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAC/B,UAAU,EAAE,OAAO,CAAC;KACrB;CAUF"}
@@ -0,0 +1,45 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ComplianceDocument = void 0;
4
+ /**
5
+ * 고지사항/계약서 (compliance_documents 테이블) — 법적 텍스트의 버전 관리.
6
+ *
7
+ * quote_versions.compliance_version_id로 핀하면, 과거 견적은 합의 당시 본문 그대로 재현.
8
+ * is_current=true는 최신 1건만 (DB 제약 또는 트리거로 보장).
9
+ */
10
+ class ComplianceDocument {
11
+ constructor(args) {
12
+ this.id = args.id;
13
+ this.created_at = args.created_at;
14
+ this.updated_at = args.updated_at;
15
+ this.version = args.version;
16
+ this.title = args.title;
17
+ this.body_markdown = args.body_markdown;
18
+ this.effective_from = args.effective_from;
19
+ this.is_current = args.is_current ?? false;
20
+ }
21
+ static fromDB(row) {
22
+ return new ComplianceDocument({
23
+ id: row.id,
24
+ created_at: row.created_at instanceof Date ? row.created_at : new Date(row.created_at),
25
+ updated_at: row.updated_at ? (row.updated_at instanceof Date ? row.updated_at : new Date(row.updated_at)) : undefined,
26
+ version: row.version,
27
+ title: row.title,
28
+ body_markdown: row.body_markdown,
29
+ effective_from: row.effective_from ? (row.effective_from instanceof Date ? row.effective_from : new Date(row.effective_from)) : undefined,
30
+ is_current: row.is_current ?? false,
31
+ });
32
+ }
33
+ toDB() {
34
+ return {
35
+ id: this.id,
36
+ version: this.version,
37
+ title: this.title,
38
+ body_markdown: this.body_markdown,
39
+ effective_from: this.effective_from ? this.effective_from.toISOString().slice(0, 10) : null,
40
+ is_current: this.is_current,
41
+ };
42
+ }
43
+ }
44
+ exports.ComplianceDocument = ComplianceDocument;
45
+ //# sourceMappingURL=ComplianceDocument.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ComplianceDocument.js","sourceRoot":"","sources":["../../../src/models/Quote/ComplianceDocument.ts"],"names":[],"mappings":";;;AAAA;;;;;GAKG;AACH,MAAa,kBAAkB;IAU7B,YAAY,IASX;QACC,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC;QAClB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;QAClC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;QAClC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;QAC5B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QACxB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC;QACxC,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC;QAC1C,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,IAAI,KAAK,CAAC;IAC7C,CAAC;IAED,MAAM,CAAC,MAAM,CAAC,GASb;QACC,OAAO,IAAI,kBAAkB,CAAC;YAC5B,EAAE,EAAE,GAAG,CAAC,EAAE;YACV,UAAU,EAAE,GAAG,CAAC,UAAU,YAAY,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC;YACtF,UAAU,EAAE,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,UAAU,YAAY,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS;YACrH,OAAO,EAAE,GAAG,CAAC,OAAO;YACpB,KAAK,EAAE,GAAG,CAAC,KAAK;YAChB,aAAa,EAAE,GAAG,CAAC,aAAa;YAChC,cAAc,EAAE,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,cAAc,YAAY,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS;YACzI,UAAU,EAAE,GAAG,CAAC,UAAU,IAAI,KAAK;SACpC,CAAC,CAAC;IACL,CAAC;IAED,IAAI;QAQF,OAAO;YACL,EAAE,EAAE,IAAI,CAAC,EAAE;YACX,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,aAAa,EAAE,IAAI,CAAC,aAAa;YACjC,cAAc,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI;YAC3F,UAAU,EAAE,IAAI,CAAC,UAAU;SAC5B,CAAC;IACJ,CAAC;CACF;AArED,gDAqEC"}
@@ -0,0 +1,55 @@
1
+ /**
2
+ * 고객 견적 요청 이력 (quote_customer_requests 테이블).
3
+ *
4
+ * "이 조합으로 요청" 클릭 시 그 순간의 세션 상태를 snapshot으로 캡처 (불변).
5
+ * - snapshot: { excluded_line_ids, vat_included, computed_total, line_breakdown }
6
+ * - acknowledged_*: 어드민이 인박스에서 "확인" 표시할 때 세팅.
7
+ */
8
+ export interface CustomerRequestSnapshot {
9
+ excluded_line_ids: string[];
10
+ vat_included: boolean;
11
+ computed_subtotal?: number;
12
+ computed_total?: number;
13
+ line_breakdown?: Array<{
14
+ line_id: string;
15
+ included: boolean;
16
+ amount: number;
17
+ }>;
18
+ }
19
+ export declare class CustomerRequest {
20
+ readonly id?: string;
21
+ readonly created_at?: Date;
22
+ readonly token: string;
23
+ readonly snapshot: CustomerRequestSnapshot;
24
+ readonly message?: string;
25
+ readonly acknowledged_by?: string;
26
+ readonly acknowledged_at?: Date;
27
+ constructor(args: {
28
+ id?: string;
29
+ created_at?: Date;
30
+ token: string;
31
+ snapshot: CustomerRequestSnapshot;
32
+ message?: string;
33
+ acknowledged_by?: string;
34
+ acknowledged_at?: Date;
35
+ });
36
+ static fromDB(row: {
37
+ id: string;
38
+ created_at: string | Date;
39
+ token: string;
40
+ snapshot: CustomerRequestSnapshot;
41
+ message?: string | null;
42
+ acknowledged_by?: string | null;
43
+ acknowledged_at?: string | Date | null;
44
+ }): CustomerRequest;
45
+ toDB(): {
46
+ id?: string;
47
+ token: string;
48
+ snapshot: CustomerRequestSnapshot;
49
+ message?: string | null;
50
+ acknowledged_by?: string | null;
51
+ acknowledged_at?: string | null;
52
+ };
53
+ isAcknowledged(): boolean;
54
+ }
55
+ //# sourceMappingURL=CustomerRequest.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CustomerRequest.d.ts","sourceRoot":"","sources":["../../../src/models/Quote/CustomerRequest.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,MAAM,WAAW,uBAAuB;IACtC,iBAAiB,EAAE,MAAM,EAAE,CAAC;IAC5B,YAAY,EAAE,OAAO,CAAC;IACtB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,cAAc,CAAC,EAAE,KAAK,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,OAAO,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAChF;AAED,qBAAa,eAAe;IAC1B,SAAgB,EAAE,CAAC,EAAE,MAAM,CAAC;IAC5B,SAAgB,UAAU,CAAC,EAAE,IAAI,CAAC;IAClC,SAAgB,KAAK,EAAE,MAAM,CAAC;IAC9B,SAAgB,QAAQ,EAAE,uBAAuB,CAAC;IAClD,SAAgB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjC,SAAgB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzC,SAAgB,eAAe,CAAC,EAAE,IAAI,CAAC;gBAE3B,IAAI,EAAE;QAChB,EAAE,CAAC,EAAE,MAAM,CAAC;QACZ,UAAU,CAAC,EAAE,IAAI,CAAC;QAClB,KAAK,EAAE,MAAM,CAAC;QACd,QAAQ,EAAE,uBAAuB,CAAC;QAClC,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,eAAe,CAAC,EAAE,MAAM,CAAC;QACzB,eAAe,CAAC,EAAE,IAAI,CAAC;KACxB;IAUD,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE;QACjB,EAAE,EAAE,MAAM,CAAC;QACX,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;QAC1B,KAAK,EAAE,MAAM,CAAC;QACd,QAAQ,EAAE,uBAAuB,CAAC;QAClC,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QACxB,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAChC,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,CAAC;KACxC,GAAG,eAAe;IAYnB,IAAI,IAAI;QACN,EAAE,CAAC,EAAE,MAAM,CAAC;QACZ,KAAK,EAAE,MAAM,CAAC;QACd,QAAQ,EAAE,uBAAuB,CAAC;QAClC,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QACxB,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAChC,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;KACjC;IAWD,cAAc,IAAI,OAAO;CAG1B"}
@@ -0,0 +1,40 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CustomerRequest = void 0;
4
+ class CustomerRequest {
5
+ constructor(args) {
6
+ this.id = args.id;
7
+ this.created_at = args.created_at;
8
+ this.token = args.token;
9
+ this.snapshot = args.snapshot;
10
+ this.message = args.message;
11
+ this.acknowledged_by = args.acknowledged_by;
12
+ this.acknowledged_at = args.acknowledged_at;
13
+ }
14
+ static fromDB(row) {
15
+ return new CustomerRequest({
16
+ id: row.id,
17
+ created_at: row.created_at instanceof Date ? row.created_at : new Date(row.created_at),
18
+ token: row.token,
19
+ snapshot: row.snapshot,
20
+ message: row.message ?? undefined,
21
+ acknowledged_by: row.acknowledged_by ?? undefined,
22
+ acknowledged_at: row.acknowledged_at ? (row.acknowledged_at instanceof Date ? row.acknowledged_at : new Date(row.acknowledged_at)) : undefined,
23
+ });
24
+ }
25
+ toDB() {
26
+ return {
27
+ id: this.id,
28
+ token: this.token,
29
+ snapshot: this.snapshot,
30
+ message: this.message ?? null,
31
+ acknowledged_by: this.acknowledged_by ?? null,
32
+ acknowledged_at: this.acknowledged_at ? this.acknowledged_at.toISOString() : null,
33
+ };
34
+ }
35
+ isAcknowledged() {
36
+ return this.acknowledged_at != null;
37
+ }
38
+ }
39
+ exports.CustomerRequest = CustomerRequest;
40
+ //# sourceMappingURL=CustomerRequest.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CustomerRequest.js","sourceRoot":"","sources":["../../../src/models/Quote/CustomerRequest.ts"],"names":[],"mappings":";;;AAeA,MAAa,eAAe;IAS1B,YAAY,IAQX;QACC,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC;QAClB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;QAClC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QACxB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC9B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;QAC5B,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC;QAC5C,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC;IAC9C,CAAC;IAED,MAAM,CAAC,MAAM,CAAC,GAQb;QACC,OAAO,IAAI,eAAe,CAAC;YACzB,EAAE,EAAE,GAAG,CAAC,EAAE;YACV,UAAU,EAAE,GAAG,CAAC,UAAU,YAAY,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC;YACtF,KAAK,EAAE,GAAG,CAAC,KAAK;YAChB,QAAQ,EAAE,GAAG,CAAC,QAAQ;YACtB,OAAO,EAAE,GAAG,CAAC,OAAO,IAAI,SAAS;YACjC,eAAe,EAAE,GAAG,CAAC,eAAe,IAAI,SAAS;YACjD,eAAe,EAAE,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,eAAe,YAAY,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS;SAC/I,CAAC,CAAC;IACL,CAAC;IAED,IAAI;QAQF,OAAO;YACL,EAAE,EAAE,IAAI,CAAC,EAAE;YACX,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,OAAO,EAAE,IAAI,CAAC,OAAO,IAAI,IAAI;YAC7B,eAAe,EAAE,IAAI,CAAC,eAAe,IAAI,IAAI;YAC7C,eAAe,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,IAAI;SAClF,CAAC;IACJ,CAAC;IAED,cAAc;QACZ,OAAO,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC;IACtC,CAAC;CACF;AApED,0CAoEC"}