@lssm/example.service-business-os 0.0.0-canary-20251217083314 → 0.0.0-canary-20251220002821
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/LICENSE +21 -0
- package/dist/client/client.contracts.d.ts +19 -18
- package/dist/client/client.contracts.d.ts.map +1 -0
- package/dist/client/client.contracts.js +2 -1
- package/dist/client/client.contracts.js.map +1 -0
- package/dist/client/client.schema.d.ts +18 -17
- package/dist/client/client.schema.d.ts.map +1 -0
- package/dist/client/client.schema.js +18 -19
- package/dist/client/client.schema.js.map +1 -0
- package/dist/docs/service-business-os.docblock.js +2 -1
- package/dist/docs/service-business-os.docblock.js.map +1 -0
- package/dist/entities/index.d.ts +157 -156
- package/dist/entities/index.d.ts.map +1 -0
- package/dist/entities/index.js +98 -98
- package/dist/entities/index.js.map +1 -0
- package/dist/events.d.ts +91 -90
- package/dist/events.d.ts.map +1 -0
- package/dist/events.js +32 -33
- package/dist/events.js.map +1 -0
- package/dist/example.d.ts +2 -1
- package/dist/example.d.ts.map +1 -0
- package/dist/example.js +2 -1
- package/dist/example.js.map +1 -0
- package/dist/handlers/index.d.ts +2 -1
- package/dist/handlers/index.d.ts.map +1 -0
- package/dist/handlers/index.js +2 -1
- package/dist/handlers/index.js.map +1 -0
- package/dist/invoice/invoice.contracts.d.ts +19 -18
- package/dist/invoice/invoice.contracts.d.ts.map +1 -0
- package/dist/invoice/invoice.contracts.js +2 -1
- package/dist/invoice/invoice.contracts.js.map +1 -0
- package/dist/invoice/invoice.schema.d.ts +18 -17
- package/dist/invoice/invoice.schema.d.ts.map +1 -0
- package/dist/invoice/invoice.schema.js +18 -19
- package/dist/invoice/invoice.schema.js.map +1 -0
- package/dist/job/job.contracts.d.ts +64 -63
- package/dist/job/job.contracts.d.ts.map +1 -0
- package/dist/job/job.contracts.js +10 -11
- package/dist/job/job.contracts.js.map +1 -0
- package/dist/job/job.schema.d.ts +22 -21
- package/dist/job/job.schema.d.ts.map +1 -0
- package/dist/job/job.schema.js +22 -23
- package/dist/job/job.schema.js.map +1 -0
- package/dist/libs/contracts/dist/capabilities/openbanking.js +2 -1
- package/dist/libs/contracts/dist/capabilities/openbanking.js.map +1 -0
- package/dist/libs/contracts/dist/contract-registry/schemas.js +2 -1
- package/dist/libs/contracts/dist/contract-registry/schemas.js.map +1 -0
- package/dist/libs/contracts/dist/docs/accessibility_wcag_compliance_specs.docblock.js +2 -1
- package/dist/libs/contracts/dist/docs/accessibility_wcag_compliance_specs.docblock.js.map +1 -0
- package/dist/libs/contracts/dist/docs/index.js +2 -6
- package/dist/libs/contracts/dist/docs/meta.docs.js +30 -0
- package/dist/libs/contracts/dist/docs/meta.docs.js.map +1 -0
- package/dist/libs/contracts/dist/docs/presentations.js +2 -1
- package/dist/libs/contracts/dist/docs/presentations.js.map +1 -0
- package/dist/libs/contracts/dist/docs/registry.js +2 -1
- package/dist/libs/contracts/dist/docs/registry.js.map +1 -0
- package/dist/libs/contracts/dist/docs/tech/auth/better-auth-nextjs.docblock.js +2 -1
- package/dist/libs/contracts/dist/docs/tech/auth/better-auth-nextjs.docblock.js.map +1 -0
- package/dist/libs/contracts/dist/docs/tech/contracts/openapi-export.docblock.js +2 -1
- package/dist/libs/contracts/dist/docs/tech/contracts/openapi-export.docblock.js.map +1 -0
- package/dist/libs/contracts/dist/docs/tech/lifecycle-stage-system.docblock.js +2 -1
- package/dist/libs/contracts/dist/docs/tech/lifecycle-stage-system.docblock.js.map +1 -0
- package/dist/libs/contracts/dist/docs/tech/llm/llm-integration.docblock.js +2 -1
- package/dist/libs/contracts/dist/docs/tech/llm/llm-integration.docblock.js.map +1 -0
- package/dist/libs/contracts/dist/docs/tech/mcp-endpoints.docblock.js +2 -1
- package/dist/libs/contracts/dist/docs/tech/mcp-endpoints.docblock.js.map +1 -0
- package/dist/libs/contracts/dist/docs/tech/presentation-runtime.docblock.js +2 -1
- package/dist/libs/contracts/dist/docs/tech/presentation-runtime.docblock.js.map +1 -0
- package/dist/libs/contracts/dist/docs/tech/schema/README.docblock.js +2 -1
- package/dist/libs/contracts/dist/docs/tech/schema/README.docblock.js.map +1 -0
- package/dist/libs/contracts/dist/docs/tech/studio/learning-events.docblock.js +2 -1
- package/dist/libs/contracts/dist/docs/tech/studio/learning-events.docblock.js.map +1 -0
- package/dist/libs/contracts/dist/docs/tech/studio/learning-journeys.docblock.js +2 -1
- package/dist/libs/contracts/dist/docs/tech/studio/learning-journeys.docblock.js.map +1 -0
- package/dist/libs/contracts/dist/docs/tech/studio/platform-admin-panel.docblock.js +2 -1
- package/dist/libs/contracts/dist/docs/tech/studio/platform-admin-panel.docblock.js.map +1 -0
- package/dist/libs/contracts/dist/docs/tech/studio/project-access-teams.docblock.js +2 -1
- package/dist/libs/contracts/dist/docs/tech/studio/project-access-teams.docblock.js.map +1 -0
- package/dist/libs/contracts/dist/docs/tech/studio/project-routing.docblock.js +2 -1
- package/dist/libs/contracts/dist/docs/tech/studio/project-routing.docblock.js.map +1 -0
- package/dist/libs/contracts/dist/docs/tech/studio/sandbox-unlogged.docblock.js +2 -1
- package/dist/libs/contracts/dist/docs/tech/studio/sandbox-unlogged.docblock.js.map +1 -0
- package/dist/libs/contracts/dist/docs/tech/studio/team-invitations.docblock.js +2 -1
- package/dist/libs/contracts/dist/docs/tech/studio/team-invitations.docblock.js.map +1 -0
- package/dist/libs/contracts/dist/docs/tech/studio/workspace-ops.docblock.js +2 -1
- package/dist/libs/contracts/dist/docs/tech/studio/workspace-ops.docblock.js.map +1 -0
- package/dist/libs/contracts/dist/docs/tech/studio/workspaces.docblock.js +2 -1
- package/dist/libs/contracts/dist/docs/tech/studio/workspaces.docblock.js.map +1 -0
- package/dist/libs/contracts/dist/docs/tech/telemetry-ingest.docblock.js +2 -1
- package/dist/libs/contracts/dist/docs/tech/telemetry-ingest.docblock.js.map +1 -0
- package/dist/libs/contracts/dist/docs/tech/templates/runtime.docblock.js +2 -1
- package/dist/libs/contracts/dist/docs/tech/templates/runtime.docblock.js.map +1 -0
- package/dist/libs/contracts/dist/docs/tech/vscode-extension.docblock.js +2 -1
- package/dist/libs/contracts/dist/docs/tech/vscode-extension.docblock.js.map +1 -0
- package/dist/libs/contracts/dist/docs/tech/workflows/overview.docblock.js +2 -1
- package/dist/libs/contracts/dist/docs/tech/workflows/overview.docblock.js.map +1 -0
- package/dist/libs/contracts/dist/docs/tech-contracts.docs.js +97 -0
- package/dist/libs/contracts/dist/docs/tech-contracts.docs.js.map +1 -0
- package/dist/libs/contracts/dist/events.js +2 -1
- package/dist/libs/contracts/dist/events.js.map +1 -0
- package/dist/libs/contracts/dist/index.js +2 -1
- package/dist/libs/contracts/dist/integrations/contracts.js +65 -66
- package/dist/libs/contracts/dist/integrations/contracts.js.map +1 -0
- package/dist/libs/contracts/dist/integrations/openbanking/contracts/accounts.js +31 -32
- package/dist/libs/contracts/dist/integrations/openbanking/contracts/accounts.js.map +1 -0
- package/dist/libs/contracts/dist/integrations/openbanking/contracts/balances.js +18 -19
- package/dist/libs/contracts/dist/integrations/openbanking/contracts/balances.js.map +1 -0
- package/dist/libs/contracts/dist/integrations/openbanking/contracts/transactions.js +32 -33
- package/dist/libs/contracts/dist/integrations/openbanking/contracts/transactions.js.map +1 -0
- package/dist/libs/contracts/dist/integrations/openbanking/models.js +60 -61
- package/dist/libs/contracts/dist/integrations/openbanking/models.js.map +1 -0
- package/dist/libs/contracts/dist/integrations/openbanking/telemetry.js +2 -1
- package/dist/libs/contracts/dist/integrations/openbanking/telemetry.js.map +1 -0
- package/dist/libs/contracts/dist/integrations/providers/elevenlabs.js +2 -1
- package/dist/libs/contracts/dist/integrations/providers/elevenlabs.js.map +1 -0
- package/dist/libs/contracts/dist/integrations/providers/gcs-storage.js +2 -1
- package/dist/libs/contracts/dist/integrations/providers/gcs-storage.js.map +1 -0
- package/dist/libs/contracts/dist/integrations/providers/gmail.js +2 -1
- package/dist/libs/contracts/dist/integrations/providers/gmail.js.map +1 -0
- package/dist/libs/contracts/dist/integrations/providers/google-calendar.js +2 -1
- package/dist/libs/contracts/dist/integrations/providers/google-calendar.js.map +1 -0
- package/dist/libs/contracts/dist/integrations/providers/mistral.js +2 -1
- package/dist/libs/contracts/dist/integrations/providers/mistral.js.map +1 -0
- package/dist/libs/contracts/dist/integrations/providers/postmark.js +2 -1
- package/dist/libs/contracts/dist/integrations/providers/postmark.js.map +1 -0
- package/dist/libs/contracts/dist/integrations/providers/powens.js +2 -1
- package/dist/libs/contracts/dist/integrations/providers/powens.js.map +1 -0
- package/dist/libs/contracts/dist/integrations/providers/qdrant.js +2 -1
- package/dist/libs/contracts/dist/integrations/providers/qdrant.js.map +1 -0
- package/dist/libs/contracts/dist/integrations/providers/stripe.js +2 -1
- package/dist/libs/contracts/dist/integrations/providers/stripe.js.map +1 -0
- package/dist/libs/contracts/dist/integrations/providers/twilio-sms.js +2 -1
- package/dist/libs/contracts/dist/integrations/providers/twilio-sms.js.map +1 -0
- package/dist/libs/contracts/dist/knowledge/contracts.js +44 -45
- package/dist/libs/contracts/dist/knowledge/contracts.js.map +1 -0
- package/dist/libs/contracts/dist/knowledge/spaces/email-threads.js +2 -1
- package/dist/libs/contracts/dist/knowledge/spaces/email-threads.js.map +1 -0
- package/dist/libs/contracts/dist/knowledge/spaces/financial-docs.js +2 -1
- package/dist/libs/contracts/dist/knowledge/spaces/financial-docs.js.map +1 -0
- package/dist/libs/contracts/dist/knowledge/spaces/financial-overview.js +2 -1
- package/dist/libs/contracts/dist/knowledge/spaces/financial-overview.js.map +1 -0
- package/dist/libs/contracts/dist/knowledge/spaces/product-canon.js +2 -1
- package/dist/libs/contracts/dist/knowledge/spaces/product-canon.js.map +1 -0
- package/dist/libs/contracts/dist/knowledge/spaces/support-faq.js +2 -1
- package/dist/libs/contracts/dist/knowledge/spaces/support-faq.js.map +1 -0
- package/dist/libs/contracts/dist/knowledge/spaces/uploaded-docs.js +2 -1
- package/dist/libs/contracts/dist/knowledge/spaces/uploaded-docs.js.map +1 -0
- package/dist/libs/contracts/dist/llm/exporters.js +2 -1
- package/dist/libs/contracts/dist/llm/exporters.js.map +1 -0
- package/dist/libs/contracts/dist/onboarding-base.js +22 -23
- package/dist/libs/contracts/dist/onboarding-base.js.map +1 -0
- package/dist/libs/contracts/dist/ownership.js +4 -2
- package/dist/libs/contracts/dist/ownership.js.map +1 -0
- package/dist/libs/contracts/dist/presentations.v2.js +2 -1
- package/dist/libs/contracts/dist/presentations.v2.js.map +1 -0
- package/dist/libs/contracts/dist/regenerator/service.js +2 -1
- package/dist/libs/contracts/dist/regenerator/service.js.map +1 -0
- package/dist/libs/contracts/dist/schema/dist/index.js +3873 -6
- package/dist/libs/contracts/dist/schema/dist/index.js.map +1 -0
- package/dist/libs/contracts/dist/spec.js +2 -1
- package/dist/libs/contracts/dist/spec.js.map +1 -0
- package/dist/libs/schema/dist/index.js +4889 -6
- package/dist/libs/schema/dist/index.js.map +1 -0
- package/dist/payment/payment.contracts.d.ts +18 -17
- package/dist/payment/payment.contracts.d.ts.map +1 -0
- package/dist/payment/payment.contracts.js +2 -1
- package/dist/payment/payment.contracts.js.map +1 -0
- package/dist/payment/payment.schema.d.ts +17 -16
- package/dist/payment/payment.schema.d.ts.map +1 -0
- package/dist/payment/payment.schema.js +17 -18
- package/dist/payment/payment.schema.js.map +1 -0
- package/dist/presentations/index.d.ts +2 -1
- package/dist/presentations/index.d.ts.map +1 -0
- package/dist/presentations/index.js +2 -1
- package/dist/presentations/index.js.map +1 -0
- package/dist/presentations.d.ts +2 -1
- package/dist/presentations.d.ts.map +1 -0
- package/dist/presentations.js +2 -1
- package/dist/presentations.js.map +1 -0
- package/dist/quote/quote.contracts.d.ts +37 -36
- package/dist/quote/quote.contracts.d.ts.map +1 -0
- package/dist/quote/quote.contracts.js +2 -1
- package/dist/quote/quote.contracts.js.map +1 -0
- package/dist/quote/quote.schema.d.ts +26 -25
- package/dist/quote/quote.schema.d.ts.map +1 -0
- package/dist/quote/quote.schema.js +26 -27
- package/dist/quote/quote.schema.js.map +1 -0
- package/dist/service.feature.d.ts +2 -1
- package/dist/service.feature.d.ts.map +1 -0
- package/dist/service.feature.js +2 -1
- package/dist/service.feature.js.map +1 -0
- package/package.json +19 -12
- package/dist/libs/contracts/dist/docs/PUBLISHING.docblock.js +0 -16
- package/dist/libs/contracts/dist/docs/tech/PHASE_1_QUICKSTART.docblock.js +0 -16
- package/dist/libs/contracts/dist/docs/tech/PHASE_2_AI_NATIVE_OPERATIONS.docblock.js +0 -16
- package/dist/libs/contracts/dist/docs/tech/PHASE_3_AUTO_EVOLUTION.docblock.js +0 -16
- package/dist/libs/contracts/dist/docs/tech/PHASE_4_PERSONALIZATION_ENGINE.docblock.js +0 -16
- package/dist/libs/contracts/dist/docs/tech/PHASE_5_ZERO_TOUCH_OPERATIONS.docblock.js +0 -16
- package/dist/libs/contracts/dist/schema/dist/EnumType.js +0 -2
- package/dist/libs/contracts/dist/schema/dist/FieldType.js +0 -49
- package/dist/libs/contracts/dist/schema/dist/ScalarTypeEnum.js +0 -236
- package/dist/libs/contracts/dist/schema/dist/SchemaModel.js +0 -34
- package/dist/libs/contracts/dist/schema/dist/entity/defineEntity.js +0 -1
- package/dist/libs/contracts/dist/schema/dist/entity/index.js +0 -2
- package/dist/libs/contracts/dist/schema/dist/entity/types.js +0 -1
- package/dist/libs/schema/dist/EnumType.js +0 -2
- package/dist/libs/schema/dist/FieldType.js +0 -49
- package/dist/libs/schema/dist/ScalarTypeEnum.js +0 -236
- package/dist/libs/schema/dist/SchemaModel.js +0 -39
- package/dist/libs/schema/dist/entity/defineEntity.js +0 -236
- package/dist/libs/schema/dist/entity/index.js +0 -2
- package/dist/libs/schema/dist/entity/types.js +0 -1
package/dist/entities/index.js
CHANGED
|
@@ -1,9 +1,8 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import "../libs/schema/dist/index.js";
|
|
1
|
+
import { L5, Z5, _5, b5 } from "../libs/schema/dist/index.js";
|
|
3
2
|
|
|
4
3
|
//#region src/entities/index.ts
|
|
5
4
|
const schema = "lssm_service_os";
|
|
6
|
-
const QuoteStatusEnum =
|
|
5
|
+
const QuoteStatusEnum = Z5({
|
|
7
6
|
name: "QuoteStatus",
|
|
8
7
|
schema,
|
|
9
8
|
values: [
|
|
@@ -15,7 +14,7 @@ const QuoteStatusEnum = defineEntityEnum({
|
|
|
15
14
|
],
|
|
16
15
|
description: "Lifecycle for quotes/proposals."
|
|
17
16
|
});
|
|
18
|
-
const JobStatusEnum =
|
|
17
|
+
const JobStatusEnum = Z5({
|
|
19
18
|
name: "JobStatus",
|
|
20
19
|
schema,
|
|
21
20
|
values: [
|
|
@@ -26,7 +25,7 @@ const JobStatusEnum = defineEntityEnum({
|
|
|
26
25
|
],
|
|
27
26
|
description: "Lifecycle for service jobs/interventions."
|
|
28
27
|
});
|
|
29
|
-
const InvoiceStatusEnum =
|
|
28
|
+
const InvoiceStatusEnum = Z5({
|
|
30
29
|
name: "InvoiceStatus",
|
|
31
30
|
schema,
|
|
32
31
|
values: [
|
|
@@ -38,7 +37,7 @@ const InvoiceStatusEnum = defineEntityEnum({
|
|
|
38
37
|
],
|
|
39
38
|
description: "Lifecycle for invoices."
|
|
40
39
|
});
|
|
41
|
-
const PaymentMethodEnum =
|
|
40
|
+
const PaymentMethodEnum = Z5({
|
|
42
41
|
name: "PaymentMethod",
|
|
43
42
|
schema,
|
|
44
43
|
values: [
|
|
@@ -49,222 +48,222 @@ const PaymentMethodEnum = defineEntityEnum({
|
|
|
49
48
|
],
|
|
50
49
|
description: "Payment method used."
|
|
51
50
|
});
|
|
52
|
-
const ClientEntity =
|
|
51
|
+
const ClientEntity = L5({
|
|
53
52
|
name: "Client",
|
|
54
53
|
description: "Customer organization or individual.",
|
|
55
54
|
schema,
|
|
56
55
|
map: "client",
|
|
57
56
|
fields: {
|
|
58
|
-
id:
|
|
59
|
-
name:
|
|
60
|
-
contactEmail:
|
|
57
|
+
id: _5.id({ description: "Unique client identifier" }),
|
|
58
|
+
name: _5.string({ description: "Client display name" }),
|
|
59
|
+
contactEmail: _5.string({
|
|
61
60
|
description: "Primary contact email",
|
|
62
61
|
isOptional: true
|
|
63
62
|
}),
|
|
64
|
-
phone:
|
|
63
|
+
phone: _5.string({
|
|
65
64
|
description: "Primary phone",
|
|
66
65
|
isOptional: true
|
|
67
66
|
}),
|
|
68
|
-
address:
|
|
67
|
+
address: _5.json({
|
|
69
68
|
description: "Mailing address",
|
|
70
69
|
isOptional: true
|
|
71
70
|
}),
|
|
72
|
-
industry:
|
|
71
|
+
industry: _5.string({
|
|
73
72
|
description: "Industry/vertical",
|
|
74
73
|
isOptional: true
|
|
75
74
|
}),
|
|
76
|
-
orgId:
|
|
77
|
-
ownerId:
|
|
78
|
-
metadata:
|
|
75
|
+
orgId: _5.string({ description: "Owning organization" }),
|
|
76
|
+
ownerId: _5.string({ description: "Account owner" }),
|
|
77
|
+
metadata: _5.json({
|
|
79
78
|
description: "Additional metadata",
|
|
80
79
|
isOptional: true
|
|
81
80
|
}),
|
|
82
|
-
createdAt:
|
|
83
|
-
updatedAt:
|
|
84
|
-
quotes:
|
|
85
|
-
jobs:
|
|
81
|
+
createdAt: _5.createdAt(),
|
|
82
|
+
updatedAt: _5.updatedAt(),
|
|
83
|
+
quotes: _5.hasMany("Quote"),
|
|
84
|
+
jobs: _5.hasMany("Job")
|
|
86
85
|
},
|
|
87
86
|
indexes: [
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
87
|
+
b5.on(["orgId"]),
|
|
88
|
+
b5.on(["ownerId"]),
|
|
89
|
+
b5.on(["name"])
|
|
91
90
|
]
|
|
92
91
|
});
|
|
93
|
-
const QuoteEntity =
|
|
92
|
+
const QuoteEntity = L5({
|
|
94
93
|
name: "Quote",
|
|
95
94
|
description: "Proposal/quote for a job.",
|
|
96
95
|
schema,
|
|
97
96
|
map: "quote",
|
|
98
97
|
fields: {
|
|
99
|
-
id:
|
|
100
|
-
clientId:
|
|
101
|
-
title:
|
|
102
|
-
description:
|
|
98
|
+
id: _5.id({ description: "Unique quote identifier" }),
|
|
99
|
+
clientId: _5.foreignKey({ description: "Client receiving quote" }),
|
|
100
|
+
title: _5.string({ description: "Quote title" }),
|
|
101
|
+
description: _5.string({
|
|
103
102
|
description: "Work summary",
|
|
104
103
|
isOptional: true
|
|
105
104
|
}),
|
|
106
|
-
amount:
|
|
107
|
-
currency:
|
|
105
|
+
amount: _5.float({ description: "Total quoted amount" }),
|
|
106
|
+
currency: _5.string({
|
|
108
107
|
description: "Currency code",
|
|
109
108
|
default: "\"USD\""
|
|
110
109
|
}),
|
|
111
|
-
status:
|
|
110
|
+
status: _5.enum("QuoteStatus", {
|
|
112
111
|
description: "Quote status",
|
|
113
112
|
default: "DRAFT"
|
|
114
113
|
}),
|
|
115
|
-
validUntil:
|
|
114
|
+
validUntil: _5.dateTime({
|
|
116
115
|
description: "Expiration date",
|
|
117
116
|
isOptional: true
|
|
118
117
|
}),
|
|
119
|
-
terms:
|
|
118
|
+
terms: _5.string({
|
|
120
119
|
description: "Payment/engagement terms",
|
|
121
120
|
isOptional: true
|
|
122
121
|
}),
|
|
123
|
-
orgId:
|
|
124
|
-
ownerId:
|
|
125
|
-
createdAt:
|
|
126
|
-
updatedAt:
|
|
127
|
-
client:
|
|
128
|
-
jobs:
|
|
122
|
+
orgId: _5.string({ description: "Owning organization" }),
|
|
123
|
+
ownerId: _5.string({ description: "Account owner" }),
|
|
124
|
+
createdAt: _5.createdAt(),
|
|
125
|
+
updatedAt: _5.updatedAt(),
|
|
126
|
+
client: _5.belongsTo("Client", ["clientId"], ["id"], { onDelete: "Cascade" }),
|
|
127
|
+
jobs: _5.hasMany("Job")
|
|
129
128
|
},
|
|
130
129
|
enums: [QuoteStatusEnum],
|
|
131
130
|
indexes: [
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
131
|
+
b5.on(["orgId", "status"]),
|
|
132
|
+
b5.on(["clientId"]),
|
|
133
|
+
b5.on(["validUntil"])
|
|
135
134
|
]
|
|
136
135
|
});
|
|
137
|
-
const JobEntity =
|
|
136
|
+
const JobEntity = L5({
|
|
138
137
|
name: "Job",
|
|
139
138
|
description: "Service job/intervention derived from an accepted quote.",
|
|
140
139
|
schema,
|
|
141
140
|
map: "job",
|
|
142
141
|
fields: {
|
|
143
|
-
id:
|
|
144
|
-
quoteId:
|
|
145
|
-
clientId:
|
|
146
|
-
title:
|
|
147
|
-
status:
|
|
142
|
+
id: _5.id({ description: "Unique job identifier" }),
|
|
143
|
+
quoteId: _5.foreignKey({ description: "Source quote" }),
|
|
144
|
+
clientId: _5.foreignKey({ description: "Client receiving service" }),
|
|
145
|
+
title: _5.string({ description: "Job title" }),
|
|
146
|
+
status: _5.enum("JobStatus", {
|
|
148
147
|
description: "Job status",
|
|
149
148
|
default: "SCHEDULED"
|
|
150
149
|
}),
|
|
151
|
-
scheduledAt:
|
|
150
|
+
scheduledAt: _5.dateTime({
|
|
152
151
|
description: "Scheduled start date/time",
|
|
153
152
|
isOptional: true
|
|
154
153
|
}),
|
|
155
|
-
completedAt:
|
|
154
|
+
completedAt: _5.dateTime({
|
|
156
155
|
description: "Completion timestamp",
|
|
157
156
|
isOptional: true
|
|
158
157
|
}),
|
|
159
|
-
assignedTo:
|
|
158
|
+
assignedTo: _5.string({
|
|
160
159
|
description: "Assignee/technician user ID",
|
|
161
160
|
isOptional: true
|
|
162
161
|
}),
|
|
163
|
-
location:
|
|
162
|
+
location: _5.json({
|
|
164
163
|
description: "Location details",
|
|
165
164
|
isOptional: true
|
|
166
165
|
}),
|
|
167
|
-
notes:
|
|
166
|
+
notes: _5.string({
|
|
168
167
|
description: "Internal notes",
|
|
169
168
|
isOptional: true
|
|
170
169
|
}),
|
|
171
|
-
orgId:
|
|
172
|
-
createdAt:
|
|
173
|
-
updatedAt:
|
|
174
|
-
quote:
|
|
175
|
-
client:
|
|
176
|
-
invoices:
|
|
170
|
+
orgId: _5.string({ description: "Owning organization" }),
|
|
171
|
+
createdAt: _5.createdAt(),
|
|
172
|
+
updatedAt: _5.updatedAt(),
|
|
173
|
+
quote: _5.belongsTo("Quote", ["quoteId"], ["id"], { onDelete: "SetNull" }),
|
|
174
|
+
client: _5.belongsTo("Client", ["clientId"], ["id"], { onDelete: "Cascade" }),
|
|
175
|
+
invoices: _5.hasMany("Invoice")
|
|
177
176
|
},
|
|
178
177
|
enums: [JobStatusEnum],
|
|
179
178
|
indexes: [
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
179
|
+
b5.on(["orgId", "status"]),
|
|
180
|
+
b5.on(["clientId"]),
|
|
181
|
+
b5.on(["assignedTo", "status"]),
|
|
182
|
+
b5.on(["scheduledAt"])
|
|
184
183
|
]
|
|
185
184
|
});
|
|
186
|
-
const InvoiceEntity =
|
|
185
|
+
const InvoiceEntity = L5({
|
|
187
186
|
name: "Invoice",
|
|
188
187
|
description: "Invoice issued for a completed job.",
|
|
189
188
|
schema,
|
|
190
189
|
map: "invoice",
|
|
191
190
|
fields: {
|
|
192
|
-
id:
|
|
193
|
-
jobId:
|
|
194
|
-
invoiceNumber:
|
|
191
|
+
id: _5.id({ description: "Unique invoice identifier" }),
|
|
192
|
+
jobId: _5.foreignKey({ description: "Related job" }),
|
|
193
|
+
invoiceNumber: _5.string({
|
|
195
194
|
description: "Invoice number",
|
|
196
195
|
isUnique: true
|
|
197
196
|
}),
|
|
198
|
-
amount:
|
|
199
|
-
currency:
|
|
197
|
+
amount: _5.decimal({ description: "Invoice amount" }),
|
|
198
|
+
currency: _5.string({
|
|
200
199
|
description: "Currency code",
|
|
201
200
|
default: "\"USD\""
|
|
202
201
|
}),
|
|
203
|
-
status:
|
|
202
|
+
status: _5.enum("InvoiceStatus", {
|
|
204
203
|
description: "Invoice status",
|
|
205
204
|
default: "DRAFT"
|
|
206
205
|
}),
|
|
207
|
-
dueDate:
|
|
206
|
+
dueDate: _5.dateTime({
|
|
208
207
|
description: "Due date",
|
|
209
208
|
isOptional: true
|
|
210
209
|
}),
|
|
211
|
-
issuedAt:
|
|
210
|
+
issuedAt: _5.dateTime({
|
|
212
211
|
description: "Issued timestamp",
|
|
213
212
|
isOptional: true
|
|
214
213
|
}),
|
|
215
|
-
paidAt:
|
|
214
|
+
paidAt: _5.dateTime({
|
|
216
215
|
description: "Paid timestamp",
|
|
217
216
|
isOptional: true
|
|
218
217
|
}),
|
|
219
|
-
orgId:
|
|
220
|
-
notes:
|
|
218
|
+
orgId: _5.string({ description: "Owning organization" }),
|
|
219
|
+
notes: _5.string({
|
|
221
220
|
description: "Invoice notes",
|
|
222
221
|
isOptional: true
|
|
223
222
|
}),
|
|
224
|
-
metadata:
|
|
223
|
+
metadata: _5.json({
|
|
225
224
|
description: "Metadata",
|
|
226
225
|
isOptional: true
|
|
227
226
|
}),
|
|
228
|
-
createdAt:
|
|
229
|
-
updatedAt:
|
|
230
|
-
job:
|
|
231
|
-
payments:
|
|
227
|
+
createdAt: _5.createdAt(),
|
|
228
|
+
updatedAt: _5.updatedAt(),
|
|
229
|
+
job: _5.belongsTo("Job", ["jobId"], ["id"], { onDelete: "Cascade" }),
|
|
230
|
+
payments: _5.hasMany("Payment")
|
|
232
231
|
},
|
|
233
232
|
enums: [InvoiceStatusEnum],
|
|
234
233
|
indexes: [
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
234
|
+
b5.on(["invoiceNumber"]),
|
|
235
|
+
b5.on(["orgId", "status"]),
|
|
236
|
+
b5.on(["dueDate"])
|
|
238
237
|
]
|
|
239
238
|
});
|
|
240
|
-
const PaymentEntity =
|
|
239
|
+
const PaymentEntity = L5({
|
|
241
240
|
name: "Payment",
|
|
242
241
|
description: "Payment received for an invoice.",
|
|
243
242
|
schema,
|
|
244
243
|
map: "payment",
|
|
245
244
|
fields: {
|
|
246
|
-
id:
|
|
247
|
-
invoiceId:
|
|
248
|
-
amount:
|
|
249
|
-
currency:
|
|
245
|
+
id: _5.id({ description: "Unique payment identifier" }),
|
|
246
|
+
invoiceId: _5.foreignKey({ description: "Invoice being paid" }),
|
|
247
|
+
amount: _5.decimal({ description: "Payment amount" }),
|
|
248
|
+
currency: _5.string({
|
|
250
249
|
description: "Currency code",
|
|
251
250
|
default: "\"USD\""
|
|
252
251
|
}),
|
|
253
|
-
method:
|
|
254
|
-
reference:
|
|
252
|
+
method: _5.enum("PaymentMethod", { description: "Payment method" }),
|
|
253
|
+
reference: _5.string({
|
|
255
254
|
description: "Payment reference/transaction ID",
|
|
256
255
|
isOptional: true
|
|
257
256
|
}),
|
|
258
|
-
receivedAt:
|
|
259
|
-
orgId:
|
|
260
|
-
createdAt:
|
|
261
|
-
invoice:
|
|
257
|
+
receivedAt: _5.dateTime({ description: "When payment was received" }),
|
|
258
|
+
orgId: _5.string({ description: "Owning organization" }),
|
|
259
|
+
createdAt: _5.createdAt(),
|
|
260
|
+
invoice: _5.belongsTo("Invoice", ["invoiceId"], ["id"], { onDelete: "Cascade" })
|
|
262
261
|
},
|
|
263
262
|
enums: [PaymentMethodEnum],
|
|
264
263
|
indexes: [
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
264
|
+
b5.on(["invoiceId"]),
|
|
265
|
+
b5.on(["orgId"]),
|
|
266
|
+
b5.on(["receivedAt"])
|
|
268
267
|
]
|
|
269
268
|
});
|
|
270
269
|
const serviceBusinessEntities = [
|
|
@@ -286,4 +285,5 @@ const serviceBusinessSchemaContribution = {
|
|
|
286
285
|
};
|
|
287
286
|
|
|
288
287
|
//#endregion
|
|
289
|
-
export { ClientEntity, InvoiceEntity, InvoiceStatusEnum, JobEntity, JobStatusEnum, PaymentEntity, PaymentMethodEnum, QuoteEntity, QuoteStatusEnum, serviceBusinessEntities, serviceBusinessSchemaContribution };
|
|
288
|
+
export { ClientEntity, InvoiceEntity, InvoiceStatusEnum, JobEntity, JobStatusEnum, PaymentEntity, PaymentMethodEnum, QuoteEntity, QuoteStatusEnum, serviceBusinessEntities, serviceBusinessSchemaContribution };
|
|
289
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","names":["defineEntityEnum","defineEntity","field","index","serviceBusinessSchemaContribution: ModuleSchemaContribution"],"sources":["../../src/entities/index.ts"],"sourcesContent":["import { defineEntity, defineEntityEnum, field, index } from '@lssm/lib.schema';\nimport type { ModuleSchemaContribution } from '@lssm/lib.schema';\n\nconst schema = 'lssm_service_os';\n\nexport const QuoteStatusEnum = defineEntityEnum({\n name: 'QuoteStatus',\n schema,\n values: ['DRAFT', 'SENT', 'ACCEPTED', 'REJECTED', 'EXPIRED'] as const,\n description: 'Lifecycle for quotes/proposals.',\n});\n\nexport const JobStatusEnum = defineEntityEnum({\n name: 'JobStatus',\n schema,\n values: ['SCHEDULED', 'IN_PROGRESS', 'COMPLETED', 'CANCELLED'] as const,\n description: 'Lifecycle for service jobs/interventions.',\n});\n\nexport const InvoiceStatusEnum = defineEntityEnum({\n name: 'InvoiceStatus',\n schema,\n values: ['DRAFT', 'SENT', 'PAID', 'OVERDUE', 'CANCELLED'] as const,\n description: 'Lifecycle for invoices.',\n});\n\nexport const PaymentMethodEnum = defineEntityEnum({\n name: 'PaymentMethod',\n schema,\n values: ['CARD', 'BANK_TRANSFER', 'CASH', 'CHECK'] as const,\n description: 'Payment method used.',\n});\n\nexport const ClientEntity = defineEntity({\n name: 'Client',\n description: 'Customer organization or individual.',\n schema,\n map: 'client',\n fields: {\n id: field.id({ description: 'Unique client identifier' }),\n name: field.string({ description: 'Client display name' }),\n contactEmail: field.string({\n description: 'Primary contact email',\n isOptional: true,\n }),\n phone: field.string({ description: 'Primary phone', isOptional: true }),\n address: field.json({ description: 'Mailing address', isOptional: true }),\n industry: field.string({\n description: 'Industry/vertical',\n isOptional: true,\n }),\n orgId: field.string({ description: 'Owning organization' }),\n ownerId: field.string({ description: 'Account owner' }),\n metadata: field.json({\n description: 'Additional metadata',\n isOptional: true,\n }),\n createdAt: field.createdAt(),\n updatedAt: field.updatedAt(),\n quotes: field.hasMany('Quote'),\n jobs: field.hasMany('Job'),\n },\n indexes: [index.on(['orgId']), index.on(['ownerId']), index.on(['name'])],\n});\n\nexport const QuoteEntity = defineEntity({\n name: 'Quote',\n description: 'Proposal/quote for a job.',\n schema,\n map: 'quote',\n fields: {\n id: field.id({ description: 'Unique quote identifier' }),\n clientId: field.foreignKey({ description: 'Client receiving quote' }),\n title: field.string({ description: 'Quote title' }),\n description: field.string({\n description: 'Work summary',\n isOptional: true,\n }),\n amount: field.float({ description: 'Total quoted amount' }),\n currency: field.string({ description: 'Currency code', default: '\"USD\"' }),\n status: field.enum('QuoteStatus', {\n description: 'Quote status',\n default: 'DRAFT',\n }),\n validUntil: field.dateTime({\n description: 'Expiration date',\n isOptional: true,\n }),\n terms: field.string({\n description: 'Payment/engagement terms',\n isOptional: true,\n }),\n orgId: field.string({ description: 'Owning organization' }),\n ownerId: field.string({ description: 'Account owner' }),\n createdAt: field.createdAt(),\n updatedAt: field.updatedAt(),\n client: field.belongsTo('Client', ['clientId'], ['id'], {\n onDelete: 'Cascade',\n }),\n jobs: field.hasMany('Job'),\n },\n enums: [QuoteStatusEnum],\n indexes: [\n index.on(['orgId', 'status']),\n index.on(['clientId']),\n index.on(['validUntil']),\n ],\n});\n\nexport const JobEntity = defineEntity({\n name: 'Job',\n description: 'Service job/intervention derived from an accepted quote.',\n schema,\n map: 'job',\n fields: {\n id: field.id({ description: 'Unique job identifier' }),\n quoteId: field.foreignKey({ description: 'Source quote' }),\n clientId: field.foreignKey({ description: 'Client receiving service' }),\n title: field.string({ description: 'Job title' }),\n status: field.enum('JobStatus', {\n description: 'Job status',\n default: 'SCHEDULED',\n }),\n scheduledAt: field.dateTime({\n description: 'Scheduled start date/time',\n isOptional: true,\n }),\n completedAt: field.dateTime({\n description: 'Completion timestamp',\n isOptional: true,\n }),\n assignedTo: field.string({\n description: 'Assignee/technician user ID',\n isOptional: true,\n }),\n location: field.json({ description: 'Location details', isOptional: true }),\n notes: field.string({ description: 'Internal notes', isOptional: true }),\n orgId: field.string({ description: 'Owning organization' }),\n createdAt: field.createdAt(),\n updatedAt: field.updatedAt(),\n quote: field.belongsTo('Quote', ['quoteId'], ['id'], {\n onDelete: 'SetNull',\n }),\n client: field.belongsTo('Client', ['clientId'], ['id'], {\n onDelete: 'Cascade',\n }),\n invoices: field.hasMany('Invoice'),\n },\n enums: [JobStatusEnum],\n indexes: [\n index.on(['orgId', 'status']),\n index.on(['clientId']),\n index.on(['assignedTo', 'status']),\n index.on(['scheduledAt']),\n ],\n});\n\nexport const InvoiceEntity = defineEntity({\n name: 'Invoice',\n description: 'Invoice issued for a completed job.',\n schema,\n map: 'invoice',\n fields: {\n id: field.id({ description: 'Unique invoice identifier' }),\n jobId: field.foreignKey({ description: 'Related job' }),\n invoiceNumber: field.string({\n description: 'Invoice number',\n isUnique: true,\n }),\n amount: field.decimal({ description: 'Invoice amount' }),\n currency: field.string({ description: 'Currency code', default: '\"USD\"' }),\n status: field.enum('InvoiceStatus', {\n description: 'Invoice status',\n default: 'DRAFT',\n }),\n dueDate: field.dateTime({ description: 'Due date', isOptional: true }),\n issuedAt: field.dateTime({\n description: 'Issued timestamp',\n isOptional: true,\n }),\n paidAt: field.dateTime({ description: 'Paid timestamp', isOptional: true }),\n orgId: field.string({ description: 'Owning organization' }),\n notes: field.string({ description: 'Invoice notes', isOptional: true }),\n metadata: field.json({ description: 'Metadata', isOptional: true }),\n createdAt: field.createdAt(),\n updatedAt: field.updatedAt(),\n job: field.belongsTo('Job', ['jobId'], ['id'], { onDelete: 'Cascade' }),\n payments: field.hasMany('Payment'),\n },\n enums: [InvoiceStatusEnum],\n indexes: [\n index.on(['invoiceNumber']),\n index.on(['orgId', 'status']),\n index.on(['dueDate']),\n ],\n});\n\nexport const PaymentEntity = defineEntity({\n name: 'Payment',\n description: 'Payment received for an invoice.',\n schema,\n map: 'payment',\n fields: {\n id: field.id({ description: 'Unique payment identifier' }),\n invoiceId: field.foreignKey({ description: 'Invoice being paid' }),\n amount: field.decimal({ description: 'Payment amount' }),\n currency: field.string({ description: 'Currency code', default: '\"USD\"' }),\n method: field.enum('PaymentMethod', { description: 'Payment method' }),\n reference: field.string({\n description: 'Payment reference/transaction ID',\n isOptional: true,\n }),\n receivedAt: field.dateTime({ description: 'When payment was received' }),\n orgId: field.string({ description: 'Owning organization' }),\n createdAt: field.createdAt(),\n invoice: field.belongsTo('Invoice', ['invoiceId'], ['id'], {\n onDelete: 'Cascade',\n }),\n },\n enums: [PaymentMethodEnum],\n indexes: [\n index.on(['invoiceId']),\n index.on(['orgId']),\n index.on(['receivedAt']),\n ],\n});\n\nexport const serviceBusinessEntities = [\n ClientEntity,\n QuoteEntity,\n JobEntity,\n InvoiceEntity,\n PaymentEntity,\n];\n\nexport const serviceBusinessSchemaContribution: ModuleSchemaContribution = {\n moduleId: '@lssm/example.service-business-os',\n // schema,\n entities: serviceBusinessEntities,\n enums: [QuoteStatusEnum, JobStatusEnum, InvoiceStatusEnum, PaymentMethodEnum],\n};\n"],"mappings":"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"}
|