@voyantjs/finance 0.77.8 → 0.77.12

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.
@@ -19,15 +19,14 @@ const ISSUED_EVENT = "invoice.issued";
19
19
  const PROFORMA_ISSUED_EVENT = "invoice.proforma.issued";
20
20
  /**
21
21
  * Create + emit an invoice from a booking. Returns the persisted row
22
- * after flipping the status from `draft` `sent`. The status flip is
23
- * what consumers treat as "issued" — drafts shouldn't trigger
24
- * SmartBill sync.
22
+ * after flipping the status from `draft` to `issued`. Drafts shouldn't
23
+ * trigger SmartBill sync.
25
24
  */
26
25
  export async function issueInvoiceFromBooking(db, input, bookingData, runtime = {}) {
27
26
  const draft = await financeService.createInvoiceFromBooking(db, input, bookingData);
28
27
  if (!draft)
29
28
  return null;
30
- const status = draft.status === "pending_external_allocation" ? draft.status : "sent";
29
+ const status = draft.status === "pending_external_allocation" ? draft.status : "issued";
31
30
  const updateIssuedInvoice = (writer) => writer
32
31
  .update(invoices)
33
32
  .set({ status, updatedAt: new Date() })
@@ -57,7 +56,7 @@ export async function issueProformaFromBooking(db, input, bookingData, runtime =
57
56
  const draft = await financeService.createInvoiceFromBooking(db, input, bookingData);
58
57
  if (!draft)
59
58
  return null;
60
- const status = draft.status === "pending_external_allocation" ? draft.status : "sent";
59
+ const status = draft.status === "pending_external_allocation" ? draft.status : "issued";
61
60
  const updateIssuedInvoice = (writer) => writer
62
61
  .update(invoices)
63
62
  .set({ invoiceType: "proforma", status, updatedAt: new Date() })
@@ -265,7 +264,7 @@ export async function convertProformaToInvoice(db, proformaId, options = {}, run
265
264
  bookingId: proforma.bookingId,
266
265
  personId: proforma.personId,
267
266
  organizationId: proforma.organizationId,
268
- status: "sent",
267
+ status: "issued",
269
268
  currency: proforma.currency,
270
269
  baseCurrency: proforma.baseCurrency,
271
270
  fxRateSetId: proforma.fxRateSetId,
@@ -1,12 +1,12 @@
1
1
  import type { PostgresJsDatabase } from "drizzle-orm/postgres-js";
2
- import type { PublicBookingFinanceDocuments, PublicBookingFinancePayments, PublicFinanceDocumentLookup, PublicPaymentOptionsQuery, PublicStartPaymentSessionInput, PublicValidateVoucherInput } from "./validation-public.js";
2
+ import type { PublicBookingFinanceDocuments, PublicBookingFinancePayments, PublicFinanceDocumentLookup, PublicFinanceDocumentLookupQuery, PublicPaymentOptionsQuery, PublicStartPaymentSessionInput, PublicValidateVoucherInput } from "./validation-public.js";
3
3
  export interface PublicFinanceRuntimeOptions {
4
4
  resolveDocumentDownloadUrl?: (storageKey: string) => Promise<string | null> | string | null;
5
5
  }
6
6
  export declare const publicFinanceService: {
7
7
  getBookingDocuments(db: PostgresJsDatabase, bookingId: string, runtime?: PublicFinanceRuntimeOptions): Promise<PublicBookingFinanceDocuments | null>;
8
- getDocumentByReference(db: PostgresJsDatabase, reference: string, runtime?: PublicFinanceRuntimeOptions): Promise<PublicFinanceDocumentLookup | null>;
9
- getBookingDocumentByReference(db: PostgresJsDatabase, bookingId: string, reference: string, runtime?: PublicFinanceRuntimeOptions): Promise<PublicFinanceDocumentLookup | null>;
8
+ getDocumentByReference(db: PostgresJsDatabase, query: PublicFinanceDocumentLookupQuery | string, runtime?: PublicFinanceRuntimeOptions): Promise<PublicFinanceDocumentLookup | null>;
9
+ getBookingDocumentByReference(db: PostgresJsDatabase, bookingId: string, query: PublicFinanceDocumentLookupQuery | string, runtime?: PublicFinanceRuntimeOptions): Promise<PublicFinanceDocumentLookup | null>;
10
10
  getBookingPaymentOptions(db: PostgresJsDatabase, bookingId: string, query: PublicPaymentOptionsQuery): Promise<{
11
11
  bookingId: string;
12
12
  accounts: {
@@ -1 +1 @@
1
- {"version":3,"file":"service-public.d.ts","sourceRoot":"","sources":["../src/service-public.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAA;AAYjE,OAAO,KAAK,EACV,6BAA6B,EAC7B,4BAA4B,EAE5B,2BAA2B,EAC3B,yBAAyB,EACzB,8BAA8B,EAC9B,0BAA0B,EAC3B,MAAM,wBAAwB,CAAA;AAE/B,MAAM,WAAW,2BAA2B;IAC1C,0BAA0B,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,MAAM,GAAG,IAAI,CAAA;CAC5F;AA+HD,eAAO,MAAM,oBAAoB;4BAEzB,kBAAkB,aACX,MAAM,YACR,2BAA2B,GACnC,OAAO,CAAC,6BAA6B,GAAG,IAAI,CAAC;+BA6C1C,kBAAkB,aACX,MAAM,YACR,2BAA2B,GACnC,OAAO,CAAC,2BAA2B,GAAG,IAAI,CAAC;sCA0CxC,kBAAkB,aACX,MAAM,aACN,MAAM,YACR,2BAA2B,GACnC,OAAO,CAAC,2BAA2B,GAAG,IAAI,CAAC;iCA+CxC,kBAAkB,aACX,MAAM,SACV,yBAAyB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2BAoH5B,kBAAkB,aACX,MAAM,GAChB,OAAO,CAAC,4BAA4B,GAAG,IAAI,CAAC;0BA2DnB,kBAAkB,aAAa,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;4BAKnC,kBAAkB,aAAa,MAAM;2CAW7D,kBAAkB,aACX,MAAM,cACL,MAAM,SACX,8BAA8B;;;;;;;;;;;;;;;;;;;;;;;;;;;;4CA4BjC,kBAAkB,aACX,MAAM,eACJ,MAAM,SACZ,8BAA8B;;;;;;;;;;;;;;;;;;;;;;;;;;;;mCAuBjC,kBAAkB,aACX,MAAM,SACV,8BAA8B;;;;;;;;;;;;;;;;;;;;;;;;;;;;wBAMb,kBAAkB,SAAS,0BAA0B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAsEhF,CAAA"}
1
+ {"version":3,"file":"service-public.d.ts","sourceRoot":"","sources":["../src/service-public.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAA;AAYjE,OAAO,KAAK,EACV,6BAA6B,EAC7B,4BAA4B,EAE5B,2BAA2B,EAC3B,gCAAgC,EAChC,yBAAyB,EACzB,8BAA8B,EAC9B,0BAA0B,EAC3B,MAAM,wBAAwB,CAAA;AAE/B,MAAM,WAAW,2BAA2B;IAC1C,0BAA0B,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,MAAM,GAAG,IAAI,CAAA;CAC5F;AAqID,eAAO,MAAM,oBAAoB;4BAEzB,kBAAkB,aACX,MAAM,YACR,2BAA2B,GACnC,OAAO,CAAC,6BAA6B,GAAG,IAAI,CAAC;+BA6C1C,kBAAkB,SACf,gCAAgC,GAAG,MAAM,YACvC,2BAA2B,GACnC,OAAO,CAAC,2BAA2B,GAAG,IAAI,CAAC;sCAoDxC,kBAAkB,aACX,MAAM,SACV,gCAAgC,GAAG,MAAM,YACvC,2BAA2B,GACnC,OAAO,CAAC,2BAA2B,GAAG,IAAI,CAAC;iCA8DxC,kBAAkB,aACX,MAAM,SACV,yBAAyB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2BAoH5B,kBAAkB,aACX,MAAM,GAChB,OAAO,CAAC,4BAA4B,GAAG,IAAI,CAAC;0BA2DnB,kBAAkB,aAAa,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;4BAKnC,kBAAkB,aAAa,MAAM;2CAW7D,kBAAkB,aACX,MAAM,cACL,MAAM,SACX,8BAA8B;;;;;;;;;;;;;;;;;;;;;;;;;;;;4CA4BjC,kBAAkB,aACX,MAAM,eACJ,MAAM,SACZ,8BAA8B;;;;;;;;;;;;;;;;;;;;;;;;;;;;mCAuBjC,kBAAkB,aACX,MAAM,SACV,8BAA8B;;;;;;;;;;;;;;;;;;;;;;;;;;;;wBAMb,kBAAkB,SAAS,0BAA0B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAsEhF,CAAA"}
@@ -45,6 +45,9 @@ function maybeUrl(value) {
45
45
  function getMetadataDownloadUrl(record) {
46
46
  return maybeUrl(getMetadataString(record, "url"));
47
47
  }
48
+ function normalizeDocumentLookupQuery(query) {
49
+ return typeof query === "string" ? { reference: query } : query;
50
+ }
48
51
  function toPublicPaymentSession(session) {
49
52
  return {
50
53
  id: session.id,
@@ -137,23 +140,31 @@ export const publicFinanceService = {
137
140
  documents: await Promise.all(invoiceRows.map((invoice) => mapInvoiceDocument(invoice, renditionByInvoiceId.get(invoice.id) ?? [], runtime))),
138
141
  };
139
142
  },
140
- async getDocumentByReference(db, reference, runtime = {}) {
143
+ async getDocumentByReference(db, query, runtime = {}) {
144
+ const lookup = normalizeDocumentLookupQuery(query);
145
+ const invoiceConditions = [eq(invoices.invoiceNumber, lookup.reference)];
146
+ if (lookup.invoiceType) {
147
+ invoiceConditions.push(eq(invoices.invoiceType, lookup.invoiceType));
148
+ }
141
149
  const [invoiceMatch, paymentMatch] = await Promise.all([
142
150
  db
143
151
  .select()
144
152
  .from(invoices)
145
- .where(eq(invoices.invoiceNumber, reference))
153
+ .where(and(...invoiceConditions))
146
154
  .orderBy(desc(invoices.createdAt))
147
- .limit(1),
155
+ .limit(2),
148
156
  db
149
157
  .select({
150
158
  invoiceId: payments.invoiceId,
151
159
  })
152
160
  .from(payments)
153
- .where(eq(payments.referenceNumber, reference))
161
+ .where(eq(payments.referenceNumber, lookup.reference))
154
162
  .orderBy(desc(payments.createdAt))
155
163
  .limit(1),
156
164
  ]);
165
+ if (invoiceMatch.length > 1) {
166
+ return null;
167
+ }
157
168
  const invoiceId = invoiceMatch[0]?.id ?? paymentMatch[0]?.invoiceId ?? null;
158
169
  if (!invoiceId) {
159
170
  return null;
@@ -172,24 +183,35 @@ export const publicFinanceService = {
172
183
  ...(await mapInvoiceDocument(invoice, renditions, runtime)),
173
184
  };
174
185
  },
175
- async getBookingDocumentByReference(db, bookingId, reference, runtime = {}) {
186
+ async getBookingDocumentByReference(db, bookingId, query, runtime = {}) {
187
+ const lookup = normalizeDocumentLookupQuery(query);
188
+ const invoiceConditions = [
189
+ eq(invoices.bookingId, bookingId),
190
+ eq(invoices.invoiceNumber, lookup.reference),
191
+ ];
192
+ if (lookup.invoiceType) {
193
+ invoiceConditions.push(eq(invoices.invoiceType, lookup.invoiceType));
194
+ }
176
195
  const [invoiceMatch, paymentMatch] = await Promise.all([
177
196
  db
178
197
  .select()
179
198
  .from(invoices)
180
- .where(and(eq(invoices.bookingId, bookingId), eq(invoices.invoiceNumber, reference)))
199
+ .where(and(...invoiceConditions))
181
200
  .orderBy(desc(invoices.createdAt))
182
- .limit(1),
201
+ .limit(2),
183
202
  db
184
203
  .select({
185
204
  invoiceId: payments.invoiceId,
186
205
  })
187
206
  .from(payments)
188
207
  .innerJoin(invoices, eq(payments.invoiceId, invoices.id))
189
- .where(and(eq(invoices.bookingId, bookingId), eq(payments.referenceNumber, reference)))
208
+ .where(and(eq(invoices.bookingId, bookingId), eq(payments.referenceNumber, lookup.reference)))
190
209
  .orderBy(desc(payments.createdAt))
191
210
  .limit(1),
192
211
  ]);
212
+ if (invoiceMatch.length > 1) {
213
+ return null;
214
+ }
193
215
  const invoiceId = invoiceMatch[0]?.id ?? paymentMatch[0]?.invoiceId ?? null;
194
216
  if (!invoiceId) {
195
217
  return null;
package/dist/service.d.ts CHANGED
@@ -124,6 +124,11 @@ export declare class InvoiceNumberAllocationError extends Error {
124
124
  seriesId?: string;
125
125
  });
126
126
  }
127
+ export declare class InvoiceNumberConflictError extends Error {
128
+ readonly code = "invoice_number_conflict";
129
+ readonly invoiceNumber: string;
130
+ constructor(invoiceNumber: string);
131
+ }
127
132
  /** Booking data needed for createInvoiceFromBooking — supplied by the caller (template). */
128
133
  export interface InvoiceFromBookingData {
129
134
  booking: {
@@ -137,6 +142,15 @@ export interface InvoiceFromBookingData {
137
142
  sellAmountCents: number | null;
138
143
  baseSellAmountCents: number | null;
139
144
  };
145
+ paymentSchedule?: {
146
+ id: string;
147
+ bookingId: string;
148
+ bookingItemId: string | null;
149
+ scheduleType: "deposit" | "installment" | "balance" | "hold" | "other";
150
+ dueDate: string;
151
+ currency: string;
152
+ amountCents: number;
153
+ } | null;
140
154
  items: Array<{
141
155
  id: string;
142
156
  title: string;
@@ -3482,7 +3496,7 @@ export declare const financeService: {
3482
3496
  bookingId: string;
3483
3497
  personId: string | null;
3484
3498
  organizationId: string | null;
3485
- status: "draft" | "pending_external_allocation" | "sent" | "partially_paid" | "paid" | "overdue" | "void";
3499
+ status: "draft" | "pending_external_allocation" | "issued" | "partially_paid" | "paid" | "overdue" | "void";
3486
3500
  currency: string;
3487
3501
  baseCurrency: string | null;
3488
3502
  fxRateSetId: string | null;
@@ -3510,7 +3524,7 @@ export declare const financeService: {
3510
3524
  }>;
3511
3525
  createInvoice(db: PostgresJsDatabase, data: CreateInvoiceInput): Promise<{
3512
3526
  id: string;
3513
- status: "draft" | "pending_external_allocation" | "sent" | "partially_paid" | "paid" | "overdue" | "void";
3527
+ status: "draft" | "pending_external_allocation" | "issued" | "partially_paid" | "paid" | "overdue" | "void";
3514
3528
  organizationId: string | null;
3515
3529
  createdAt: Date;
3516
3530
  currency: string;
@@ -3545,7 +3559,7 @@ export declare const financeService: {
3545
3559
  } | undefined>;
3546
3560
  createInvoiceFromBooking(db: PostgresJsDatabase, data: CreateInvoiceFromBookingInput, bookingData: InvoiceFromBookingData): Promise<{
3547
3561
  id: string;
3548
- status: "draft" | "pending_external_allocation" | "sent" | "partially_paid" | "paid" | "overdue" | "void";
3562
+ status: "draft" | "pending_external_allocation" | "issued" | "partially_paid" | "paid" | "overdue" | "void";
3549
3563
  organizationId: string | null;
3550
3564
  createdAt: Date;
3551
3565
  currency: string;
@@ -3591,7 +3605,7 @@ export declare const financeService: {
3591
3605
  bookingId: string;
3592
3606
  personId: string | null;
3593
3607
  organizationId: string | null;
3594
- status: "draft" | "pending_external_allocation" | "sent" | "partially_paid" | "paid" | "overdue" | "void";
3608
+ status: "draft" | "pending_external_allocation" | "issued" | "partially_paid" | "paid" | "overdue" | "void";
3595
3609
  currency: string;
3596
3610
  baseCurrency: string | null;
3597
3611
  fxRateSetId: string | null;
@@ -3626,7 +3640,7 @@ export declare const financeService: {
3626
3640
  bookingId: string;
3627
3641
  personId: string | null;
3628
3642
  organizationId: string | null;
3629
- status: "draft" | "pending_external_allocation" | "sent" | "partially_paid" | "paid" | "overdue" | "void";
3643
+ status: "draft" | "pending_external_allocation" | "issued" | "partially_paid" | "paid" | "overdue" | "void";
3630
3644
  currency: string;
3631
3645
  baseCurrency: string | null;
3632
3646
  fxRateSetId: string | null;
@@ -5767,7 +5781,7 @@ export declare const financeService: {
5767
5781
  }>;
5768
5782
  applyExternalInvoiceAllocation(db: PostgresJsDatabase, invoiceId: string, data: {
5769
5783
  invoiceNumber: string;
5770
- status?: "sent" | "draft";
5784
+ status?: "issued" | "draft";
5771
5785
  }): Promise<{
5772
5786
  status: "not_found";
5773
5787
  invoice?: undefined;
@@ -5786,7 +5800,7 @@ export declare const financeService: {
5786
5800
  bookingId: string;
5787
5801
  personId: string | null;
5788
5802
  organizationId: string | null;
5789
- status: "draft" | "pending_external_allocation" | "sent" | "partially_paid" | "paid" | "overdue" | "void";
5803
+ status: "draft" | "pending_external_allocation" | "issued" | "partially_paid" | "paid" | "overdue" | "void";
5790
5804
  currency: string;
5791
5805
  baseCurrency: string | null;
5792
5806
  fxRateSetId: string | null;
@@ -5823,7 +5837,7 @@ export declare const financeService: {
5823
5837
  bookingId: string;
5824
5838
  personId: string | null;
5825
5839
  organizationId: string | null;
5826
- status: "draft" | "pending_external_allocation" | "sent" | "partially_paid" | "paid" | "overdue" | "void";
5840
+ status: "draft" | "pending_external_allocation" | "issued" | "partially_paid" | "paid" | "overdue" | "void";
5827
5841
  currency: string;
5828
5842
  baseCurrency: string | null;
5829
5843
  fxRateSetId: string | null;
@@ -5986,7 +6000,7 @@ export declare const financeService: {
5986
6000
  status: "bound";
5987
6001
  invoice: {
5988
6002
  id: string;
5989
- status: "draft" | "pending_external_allocation" | "sent" | "partially_paid" | "paid" | "overdue" | "void";
6003
+ status: "draft" | "pending_external_allocation" | "issued" | "partially_paid" | "paid" | "overdue" | "void";
5990
6004
  invoiceType: "invoice" | "proforma" | "credit_note";
5991
6005
  };
5992
6006
  rendition: {
@@ -1 +1 @@
1
- {"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../src/service.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,gCAAgC,EAEtC,MAAM,yBAAyB,CAAA;AAEhC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AAG9C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAA;AACjE,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAC5B,OAAO,EAIL,uBAAuB,EAQvB,iBAAiB,EACjB,QAAQ,EAKR,eAAe,EAOhB,MAAM,aAAa,CAAA;AAoCpB,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAA;AAI9D,OAAO,EACL,4CAA4C,EAC5C,4CAA4C,EAC5C,4CAA4C,EAC5C,kDAAkD,EAClD,kDAAkD,EAClD,kDAAkD,EAClD,wCAAwC,EACxC,8CAA8C,EAC9C,sCAAsC,EACtC,mCAAmC,EACnC,mCAAmC,EACnC,2CAA2C,EAC3C,2CAA2C,EAC3C,2CAA2C,EAC3C,mCAAmC,EACnC,gDAAgD,EAChD,gDAAgD,EAChD,gDAAgD,EAChD,0CAA0C,EAC1C,0CAA0C,EAC1C,0CAA0C,EAC1C,6CAA6C,EAC7C,6CAA6C,EAC7C,6CAA6C,EAC7C,6CAA6C,EAC7C,8CAA8C,EAC9C,0CAA0C,EAC1C,2CAA2C,EAC3C,0CAA0C,EAC1C,oDAAoD,EACpD,0CAA0C,EAC1C,mCAAmC,EACnC,2CAA2C,EAC3C,2CAA2C,GAC5C,MAAM,4BAA4B,CAAA;AAEnC,OAAO,KAAK,EACV,sBAAsB,EACtB,oCAAoC,EACpC,0BAA0B,EAC1B,4BAA4B,EAC5B,uCAAuC,EACvC,qCAAqC,EACrC,sCAAsC,EACtC,0BAA0B,EAC1B,wBAAwB,EACxB,4BAA4B,EAC5B,iCAAiC,EACjC,8BAA8B,EAC9B,kCAAkC,EAClC,8BAA8B,EAC9B,sBAAsB,EACtB,uBAAuB,EACvB,6BAA6B,EAC7B,8BAA8B,EAC9B,2BAA2B,EAC3B,+BAA+B,EAC/B,4BAA4B,EAC5B,mBAAmB,EACnB,2BAA2B,EAC3B,gCAAgC,EAChC,0BAA0B,EAC1B,6BAA6B,EAC7B,mBAAmB,EACnB,0BAA0B,EAC1B,2BAA2B,EAC3B,oBAAoB,EACpB,4BAA4B,EAC5B,yBAAyB,EACzB,qBAAqB,EACrB,wBAAwB,EACxB,sBAAsB,EACtB,kCAAkC,EAClC,8BAA8B,EAC9B,wCAAwC,EACxC,mCAAmC,EACnC,6BAA6B,EAC7B,gCAAgC,EAChC,sBAAsB,EACtB,6BAA6B,EAC7B,wBAAwB,EACxB,wBAAwB,EACxB,wBAAwB,EACxB,8BAA8B,EAC9B,uBAAuB,EACvB,+BAA+B,EAC/B,4BAA4B,EAC5B,wBAAwB,EACxB,4BAA4B,EAC5B,iCAAiC,EACjC,8BAA8B,EAC9B,kCAAkC,EAClC,sBAAsB,EACtB,6BAA6B,EAC7B,2BAA2B,EAC3B,+BAA+B,EAC/B,4BAA4B,EAC5B,mBAAmB,EACnB,2BAA2B,EAC3B,gCAAgC,EAChC,0BAA0B,EAC1B,6BAA6B,EAC7B,0BAA0B,EAC1B,2BAA2B,EAC3B,oBAAoB,EACpB,4BAA4B,EAC5B,yBAAyB,EACzB,qBAAqB,EACtB,MAAM,iBAAiB,CAAA;AAExB,KAAK,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAA;AAClE,KAAK,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAA;AAC9D,KAAK,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAA;AAClE,KAAK,0BAA0B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gCAAgC,CAAC,CAAA;AAClF,KAAK,uBAAuB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,6BAA6B,CAAC,CAAA;AAC5E,KAAK,6BAA6B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mCAAmC,CAAC,CAAA;AACxF,KAAK,uBAAuB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,6BAA6B,CAAC,CAAA;AAC5E,KAAK,4BAA4B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,6BAA6B,CAAC,CAAA;AACjF,KAAK,4BAA4B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,6BAA6B,CAAC,CAAA;AACjF,KAAK,yBAAyB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAA;AAC3E,KAAK,yBAAyB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAA;AAC3E,KAAK,+BAA+B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gCAAgC,CAAC,CAAA;AACvF,KAAK,+BAA+B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gCAAgC,CAAC,CAAA;AACvF,KAAK,yBAAyB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAA;AAC3E,KAAK,yBAAyB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAA;AAC3E,KAAK,iCAAiC,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kCAAkC,CAAC,CAAA;AAC3F,KAAK,iCAAiC,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kCAAkC,CAAC,CAAA;AAC3F,KAAK,2BAA2B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,4BAA4B,CAAC,CAAA;AAC/E,KAAK,2BAA2B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,4BAA4B,CAAC,CAAA;AAC/E,KAAK,6BAA6B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,8BAA8B,CAAC,CAAA;AACnF,KAAK,6BAA6B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,8BAA8B,CAAC,CAAA;AACnF,KAAK,gCAAgC,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iCAAiC,CAAC,CAAA;AACzF,KAAK,gCAAgC,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iCAAiC,CAAC,CAAA;AACzF,KAAK,wBAAwB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,8BAA8B,CAAC,CAAA;AAC9E,KAAK,0BAA0B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,2BAA2B,CAAC,CAAA;AAC7E,KAAK,0BAA0B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,2BAA2B,CAAC,CAAA;AAC7E,KAAK,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAA;AAE9D,qBAAa,sBAAuB,SAAQ,KAAK;IAC/C,QAAQ,CAAC,MAAM,OAAM;IACrB,QAAQ,CAAC,IAAI,qBAAoB;IACjC,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;gBAE9B,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAK/D;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,UAAU,GAAG,UAAU,CAAA;IAC7B,EAAE,EAAE,MAAM,CAAA;IACV,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;IACxB,mFAAmF;IACnF,aAAa,EAAE,MAAM,GAAG,IAAI,CAAA;IAC5B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;IACxB,mFAAmF;IACnF,aAAa,EAAE,MAAM,GAAG,IAAI,CAAA;IAC5B,UAAU,EAAE,MAAM,GAAG,IAAI,CAAA;IACzB,kEAAkE;IAClE,YAAY,EAAE,MAAM,GAAG,IAAI,CAAA;IAC3B,mEAAmE;IACnE,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;IACvB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAA;IACzB,iFAAiF;IACjF,cAAc,EAAE,MAAM,GAAG,IAAI,CAAA;IAC7B,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAA;IAC/B,WAAW,EAAE,MAAM,CAAA;IACnB,QAAQ,EAAE,MAAM,CAAA;IAChB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAA;IAC3B,eAAe,EAAE,MAAM,GAAG,IAAI,CAAA;IAC9B,aAAa,EAAE,MAAM,CAAA;IACrB,MAAM,EAAE,MAAM,CAAA;IACd,eAAe,EAAE,MAAM,GAAG,IAAI,CAAA;IAC9B,WAAW,EAAE,MAAM,CAAA;IACnB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;IACpB,SAAS,EAAE,IAAI,CAAA;IACf,SAAS,EAAE,IAAI,CAAA;CAChB;AACD,KAAK,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAA;AAC9D,KAAK,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAA;AAC7D,MAAM,MAAM,6BAA6B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAA;AACpF,KAAK,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAA;AAC7D,KAAK,0BAA0B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,2BAA2B,CAAC,CAAA;AAC7E,KAAK,0BAA0B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,2BAA2B,CAAC,CAAA;AAC7E,KAAK,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAA;AAC7D,KAAK,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAA;AACnE,KAAK,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAA;AACnE,KAAK,6BAA6B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,8BAA8B,CAAC,CAAA;AACnF,KAAK,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAA;AACrE,KAAK,4BAA4B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kCAAkC,CAAC,CAAA;AACtF,KAAK,8BAA8B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,+BAA+B,CAAC,CAAA;AACrF,KAAK,8BAA8B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,+BAA+B,CAAC,CAAA;AACrF,KAAK,wBAAwB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,8BAA8B,CAAC,CAAA;AAC9E,KAAK,0BAA0B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,2BAA2B,CAAC,CAAA;AAC7E,KAAK,0BAA0B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,2BAA2B,CAAC,CAAA;AAC7E,KAAK,2BAA2B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,4BAA4B,CAAC,CAAA;AAC/E,KAAK,2BAA2B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,4BAA4B,CAAC,CAAA;AAC/E,KAAK,4BAA4B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,6BAA6B,CAAC,CAAA;AACjF,KAAK,4BAA4B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,6BAA6B,CAAC,CAAA;AACjF,KAAK,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAA;AAClE,KAAK,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAA;AACjE,KAAK,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAA;AACjE,KAAK,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAA;AAChE,KAAK,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAA;AAC/D,KAAK,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAA;AAC/D,KAAK,yBAAyB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,+BAA+B,CAAC,CAAA;AAChF,KAAK,2BAA2B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,4BAA4B,CAAC,CAAA;AAC/E,KAAK,2BAA2B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,4BAA4B,CAAC,CAAA;AAC/E,KAAK,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,4BAA4B,CAAC,CAAA;AAC1E,KAAK,wBAAwB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAA;AACzE,KAAK,wBAAwB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAA;AACzE,KAAK,6BAA6B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,8BAA8B,CAAC,CAAA;AACnF,KAAK,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAA;AAClE,KAAK,uCAAuC,GAAG,CAAC,CAAC,KAAK,CACpD,OAAO,wCAAwC,CAChD,CAAA;AACD,KAAK,2BAA2B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,4BAA4B,CAAC,CAAA;AAC/E,KAAK,uBAAuB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAA;AACvE,KAAK,yBAAyB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAA;AAC3E,KAAK,yBAAyB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAA;AAC3E,KAAK,qCAAqC,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sCAAsC,CAAC,CAAA;AACnG,KAAK,sCAAsC,GAAG,CAAC,CAAC,KAAK,CACnD,OAAO,uCAAuC,CAC/C,CAAA;AACD,KAAK,oCAAoC,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qCAAqC,CAAC,CAAA;AACjG,KAAK,mCAAmC,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oCAAoC,CAAC,CAAA;AAE/F,KAAK,kBAAkB,GAAG,SAAS,GAAG,UAAU,CAAA;AAChD,KAAK,gCAAgC,GACjC,iCAAiC,GACjC,gCAAgC,GAChC,sCAAsC,GACtC,4BAA4B,CAAA;AAEhC,qBAAa,4BAA6B,SAAQ,KAAK;IACrD,QAAQ,CAAC,IAAI,EAAE,gCAAgC,CAAA;IAC/C,QAAQ,CAAC,KAAK,EAAE,kBAAkB,CAAA;IAClC,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;gBAGxB,IAAI,EAAE,gCAAgC,EACtC,OAAO,EAAE;QAAE,KAAK,EAAE,kBAAkB,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE;CAQ5D;AAED,4FAA4F;AAC5F,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE;QACP,EAAE,EAAE,MAAM,CAAA;QACV,aAAa,EAAE,MAAM,CAAA;QACrB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;QACvB,cAAc,EAAE,MAAM,GAAG,IAAI,CAAA;QAC7B,YAAY,EAAE,MAAM,CAAA;QACpB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAA;QAC3B,WAAW,EAAE,MAAM,GAAG,IAAI,CAAA;QAC1B,eAAe,EAAE,MAAM,GAAG,IAAI,CAAA;QAC9B,mBAAmB,EAAE,MAAM,GAAG,IAAI,CAAA;KACnC,CAAA;IACD,KAAK,EAAE,KAAK,CAAC;QACX,EAAE,EAAE,MAAM,CAAA;QACV,KAAK,EAAE,MAAM,CAAA;QACb,QAAQ,EAAE,MAAM,CAAA;QAChB,mBAAmB,EAAE,MAAM,GAAG,IAAI,CAAA;QAClC,oBAAoB,EAAE,MAAM,GAAG,IAAI,CAAA;KACpC,CAAC,CAAA;CACH;AA0MD,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,MAAM,GAAG,UAAU,GAAG,cAAc,EAChD,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACjC,MAAM,CAER;AAYD;;;;;GAKG;AACH,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,EAAE,QAAQ,CAAA;IACnB,mBAAmB,CAAC,EAAE,gCAAgC,CAAA;IACtD,+BAA+B,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CAChD;AAED,MAAM,WAAW,+BAA+B;IAC9C,SAAS,EAAE,MAAM,CAAA;IACjB,wBAAwB,EAAE,MAAM,CAAA;IAChC,gBAAgB,EAAE,MAAM,CAAA;IACxB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;IACxB,YAAY,EAAE,CAAC,OAAO,uBAAuB,CAAC,YAAY,CAAC,CAAC,cAAc,CAAC,CAAA;IAC3E,WAAW,EAAE,MAAM,CAAA;IACnB,QAAQ,EAAE,MAAM,CAAA;IAChB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;CACxB;AAED,MAAM,WAAW,qBAAqB;IACpC,gBAAgB,EAAE,MAAM,CAAA;IACxB,UAAU,EAAE,CAAC,OAAO,eAAe,CAAC,YAAY,CAAC,CAAC,YAAY,CAAC,CAAA;IAC/D,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;IACvB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;IACxB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;IACtB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;IACxB,wBAAwB,EAAE,MAAM,GAAG,IAAI,CAAA;IACvC,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAA;IACjC,WAAW,EAAE,MAAM,CAAA;IACnB,QAAQ,EAAE,MAAM,CAAA;IAChB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;CACxB;AAID,MAAM,WAAW,yBAAyB;IACxC,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC1B,MAAM,EAAE,CAAC,OAAO,iBAAiB,CAAC,YAAY,CAAC,CAAC,QAAQ,CAAC,CAAA;IACzD,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC1B,WAAW,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACxB,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACxB,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACxB,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC3B,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAA;IACzC,eAAe,CAAC,EAAE,OAAO,CAAA;CAC1B;AAED,MAAM,WAAW,oBAAoB;IACnC,SAAS,EAAE,MAAM,CAAA;IACjB,aAAa,EAAE,CAAC,OAAO,QAAQ,CAAC,YAAY,CAAC,CAAC,QAAQ,CAAC,CAAA;IACvD,WAAW,EAAE,CAAC,OAAO,QAAQ,CAAC,YAAY,CAAC,CAAC,aAAa,CAAC,CAAA;IAC1D,WAAW,EAAE,MAAM,CAAA;IACnB,MAAM,EAAE,CAAC,OAAO,iBAAiB,CAAC,YAAY,CAAC,CAAC,QAAQ,CAAC,CAAA;IACzD,UAAU,EAAE,MAAM,GAAG,IAAI,CAAA;IACzB,WAAW,EAAE,MAAM,CAAA;IACnB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;IACvB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAA;CAC3B;AAED,wBAAgB,oCAAoC,CAClD,QAAQ,EAAE,OAAO,uBAAuB,CAAC,YAAY,EACrD,OAAO,EAAE,OAAO,eAAe,CAAC,YAAY,EAC5C,SAAS,EAAE,MAAM,GAAG,IAAI,GACvB,+BAA+B,CAWjC;AAED,wBAAgB,0BAA0B,CACxC,OAAO,EAAE,OAAO,eAAe,CAAC,YAAY,GAC3C,qBAAqB,CAcvB;AAqMD,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+BAIQ,kBAAkB,SAAS,0BAA0B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iCAgCnD,kBAAkB,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;gCAU3D,kBAAkB,QAChB,4BAA4B,YACzB,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;gCAgC1B,kBAAkB,MAClB,MAAM,QACJ,4BAA4B,YACzB,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;gCAoC1B,kBAAkB,MAClB,MAAM,YACD,qBAAqB;;;4BAoCF,kBAAkB,SAAS,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8BA6ChD,kBAAkB,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6BAMxD,kBAAkB,QAChB,yBAAyB,YACtB,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6BA4D1B,kBAAkB,MAClB,MAAM,QACJ,yBAAyB,YACtB,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2CAuD1B,kBAAkB,MAClB,MAAM,QACJ,uCAAuC,YACpC,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2BAmD1B,kBAAkB,MAClB,MAAM,QACJ,uBAAuB,YACpB,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6BAgD1B,kBAAkB,MAClB,MAAM,QACJ,yBAAyB,YACtB,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6BA2C1B,kBAAkB,MAClB,MAAM,QACJ,yBAAyB,YACtB,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+BA2C1B,kBAAkB,MAClB,MAAM,QACJ,2BAA2B,YACxB,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kCA0SI,kBAAkB,SAAS,6BAA6B;;;;;;;;;;;;;;;;;;;;;;;;;;oCAyBtD,kBAAkB,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;mCAU9D,kBAAkB,QAChB,+BAA+B,YAC5B,qBAAqB;;;;;;;;;;;;;;;;;;;;;mCAwC1B,kBAAkB,MAClB,MAAM,QACJ,+BAA+B,YAC5B,qBAAqB;;;;;;;;;;;;;;;;;;;;;mCA2C1B,kBAAkB,MAClB,MAAM,YACD,qBAAqB;;;4BAoCF,kBAAkB,SAAS,uBAAuB;;;;;;;;;;;;;;;;;;;;8BAqBhD,kBAAkB,MAAM,MAAM;;;;;;;;;;;;;;;6BAMxD,kBAAkB,QAChB,yBAAyB,YACtB,qBAAqB;;;;;;;;;;;;;;;6BAuC1B,kBAAkB,MAClB,MAAM,QACJ,yBAAyB,YACtB,qBAAqB;;;;;;;;;;;;;;;6BAyC1B,kBAAkB,MAClB,MAAM,YACD,qBAAqB;;;oCAoCA,kBAAkB,aAAa,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;qCAS/D,kBAAkB,aACX,MAAM,QACX,iCAAiC,YAC9B,qBAAqB;;;;;;;;;;;;;IAmDhC;;;;;;;;;;;;OAYG;qCAEG,kBAAkB,aACX,MAAM,WACR,KAAK,CAAC;QAGb,YAAY,EAAE,SAAS,GAAG,SAAS,GAAG,aAAa,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,CAAA;QAC/E,WAAW,EAAE,MAAM,CAAA;QACnB,QAAQ,EAAE,MAAM,CAAA;QAChB,OAAO,EAAE,MAAM,CAAA;QACf,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;KACtB,CAAC,YACO;QAAE,OAAO,CAAC,EAAE,OAAO,CAAA;KAAE;;;;;;;;;;;;;uCAmD1B,kBAAkB,aACX,MAAM,QACX,mCAAmC,YAChC,qBAAqB;;;;;;;;;;;;;qCA2L1B,kBAAkB,cACV,MAAM,QACZ,iCAAiC,YAC9B,qBAAqB;;;;;;;;;;;;;qCA2D1B,kBAAkB,cACV,MAAM,YACT,qBAAqB;;;gDAsC1B,kBAAkB,cACV,MAAM,QACZ,qCAAqC,YAClC,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wCAuD1B,kBAAkB,aACX,MAAM,QACX,oCAAoC,YACjC,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8BAmDN,kBAAkB,aAAa,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+BASzD,kBAAkB,aACX,MAAM,QACX,2BAA2B,YACxB,qBAAqB;;;;;;;;;;;;;;;;;;;;iDA6D1B,kBAAkB,eACT,MAAM,QACb,sCAAsC,YACnC,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+BAgE1B,kBAAkB,eACT,MAAM,QACb,2BAA2B,YACxB,qBAAqB;;;;;;;;;;;;;;;;;;;;+BA2C1B,kBAAkB,eACT,MAAM,YACV,qBAAqB;;;gCAqCJ,kBAAkB,iBAAiB,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iCAS/D,kBAAkB,iBACP,MAAM,QACf,6BAA6B;;;;;;;;;;;;;;;;iCAqB/B,kBAAkB,aACX,MAAM,QACX,6BAA6B;;;;;;;;;;;;;;;;iCAWF,kBAAkB,aAAa,MAAM;;;mCASzC,kBAAkB,iBAAiB,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oCASlE,kBAAkB,iBACP,MAAM,QACf,gCAAgC;;;;;;;;;;;;;;;;oCAqBlC,kBAAkB,gBACR,MAAM,QACd,gCAAgC;;;;;;;;;;;;;;;;oCAWF,kBAAkB,gBAAgB,MAAM;;;yBASzD,kBAAkB,SAAS,kBAAkB;;;;;;;;;;;;;uBAa/C,kBAAkB,SAAS,gBAAgB;;;;;;;;;;;;;+BA2B7B,kBAAkB,SAAS,kBAAkB;mBAsB/D,MAAM;uBACF,MAAM;yBACJ,MAAM,GAAG,IAAI;yBACb,MAAM,GAAG,IAAI;uBACf,MAAM,GAAG,IAAI;;6BAID,kBAAkB,SAAS,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;8BAmE5E,kBAAkB,QAChB,0BAA0B,YACvB,qBAAqB;;;;;;;;;;;;;;;;;;;8BAmC1B,kBAAkB,MAClB,MAAM,QACJ,0BAA0B,YACvB,qBAAqB;;;;;;;;;;;;;;;;;;;qBAmCT,kBAAkB,SAAS,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sBA+E1C,kBAAkB,QAAQ,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iCAM9D,kBAAkB,QAChB,6BAA6B,eACtB,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;uBA2HZ,kBAAkB,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sBAMjD,kBAAkB,MAClB,MAAM,QACJ,kBAAkB,YACf,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sBAiCR,kBAAkB,MAAM,MAAM,YAAW,qBAAqB;;;;;;;6BA6C7D,kBAAkB,aAAa,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8BASxD,kBAAkB,aACX,MAAM,QACX,0BAA0B,YACvB,qBAAqB;;;;;;;;;;;;8BA6C1B,kBAAkB,UACd,MAAM,QACR,0BAA0B,YACvB,qBAAqB;;;;;;;;;;;;8BAgD1B,kBAAkB,UACd,MAAM,YACL,qBAAqB;;;;;;;;;;;;qBA4Cf,kBAAkB,aAAa,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wBAQ5B,kBAAkB,SAAS,gBAAgB;cAS5C,iBAAiB,EAAE;;;;;IAuI5C;;;;;OAKG;uBACsB,kBAAkB,MAAM,MAAM,GAAG,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC;sBA4ErF,kBAAkB,aACX,MAAM,QACX,kBAAkB,YACf,qBAAqB;;;;;;;;;;;;;;;;;;;wBA8DZ,kBAAkB,aAAa,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;yBASnD,kBAAkB,aACX,MAAM,QACX,qBAAqB,YAClB,qBAAqB;;;;;;;;;;;;;;;yBAmC1B,kBAAkB,gBACR,MAAM,QACd,qBAAqB,YAClB,qBAAqB;;;;;;;;;;;;;;;gCA+CJ,kBAAkB,gBAAgB,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iCAS9D,kBAAkB,gBACR,MAAM,QACd,6BAA6B,YAC1B,qBAAqB;;;;;;;;;;kBAsDlB,kBAAkB,aAAa,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mBAS7C,kBAAkB,aACX,MAAM,UACT,MAAM,QACR,sBAAsB;;;;;;;gCA4BI,kBAAkB,SAAS,4BAA4B;;;;;;;;;;;;;;;;;;;;;;;mCAoBpD,kBAAkB,MAAM,MAAM;;;;;;;;;;;;;;;;;;0CASvB,kBAAkB,SAAS,kBAAkB;;;;;;;;;;;;;;;;;;kCAcrD,kBAAkB,QAAQ,8BAA8B;;;;;;;;;;;;;;;;;;kCAkCtF,kBAAkB,MAClB,MAAM,QACJ,8BAA8B;;;;;;;;;;;;;;;;;;kCAoCF,kBAAkB,MAAM,MAAM;;;IAQlE;;;;;OAKG;8BAC6B,kBAAkB,YAAY,MAAM;;;;;;;;;;;;;;;;uCAgD9D,kBAAkB,aACX,MAAM,QACX;QAAE,aAAa,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAA;KAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6BAyB7B,kBAAkB,SAAS,wBAAwB;;;;;;;;;;;;;;;;;;;;+BAyBjD,kBAAkB,MAAM,MAAM;;;;;;;;;;;;;;;8BAS/B,kBAAkB,QAAQ,0BAA0B;;;;;;;;;;;;;;;8BAoB9E,kBAAkB,MAClB,MAAM,QACJ,0BAA0B;;;;;;;;;;;;;;;8BAUF,kBAAkB,MAAM,MAAM;;;8BAY9B,kBAAkB,aAAa,MAAM;;;;;;;;;;;;;;;;gCAQnC,kBAAkB,MAAM,MAAM;;;;;;;;;;;;;;;;+BAU1D,kBAAkB,aACX,MAAM,QACX,2BAA2B;;;;;;;;;;;;;;;;+BA6B7B,kBAAkB,MAClB,MAAM,QACJ,2BAA2B;;;;;;;;;;;;;;;;6BAgB7B,kBAAkB,aACX,MAAM,QACX,yBAAyB,YACtB,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;+BA8EC,kBAAkB,MAAM,MAAM;;;+BAY9B,kBAAkB,aAAa,MAAM;;;;;;;;;;;;iCAQnC,kBAAkB,MAAM,MAAM;;;;;;;;;;;;gCAU3D,kBAAkB,aACX,MAAM,QACX,4BAA4B;;;;;;;;;;;;gCA0B9B,kBAAkB,aACX,MAAM,MACb,MAAM,QACJ,4BAA4B;;;;;;;;;;;;gCAUF,kBAAkB,aAAa,MAAM,MAAM,MAAM;;;IAQnF;;;;;OAKG;sBACqB,kBAAkB,aAAa,MAAM,SAAS,kBAAkB;;;;;;;;;;;;;;;;;;;;;;uBAiC/D,kBAAkB,SAAS,kBAAkB;;;;;;;;;;;;;;;;;;yBAoB3C,kBAAkB,MAAM,MAAM;;;;;;;;;;;;;wBAK/B,kBAAkB,QAAQ,oBAAoB;;;;;;;;;;;;;wBAiB9C,kBAAkB,MAAM,MAAM,QAAQ,oBAAoB;;;;;;;;;;;;;wBAS1D,kBAAkB,MAAM,MAAM;;;uBAY/B,kBAAkB,SAAS,iBAAiB;;;;;;;;;;;;;;;;;;;wBAmB3C,kBAAkB,MAAM,MAAM;;;;;;;;;;;;;;uBAK/B,kBAAkB,QAAQ,mBAAmB;;;;;;;;;;;;;;uBAe7C,kBAAkB,MAAM,MAAM,QAAQ,mBAAmB;;;;;;;;;;;;;;uBASzD,kBAAkB,MAAM,MAAM;;;8BAYvB,kBAAkB,SAAS,yBAAyB;;;;;;;;;;;;;;;gCAsBlD,kBAAkB,MAAM,MAAM;;;;;;;;;;+BAS/B,kBAAkB,QAAQ,2BAA2B;;;;;;;;;;+BAehF,kBAAkB,MAClB,MAAM,QACJ,2BAA2B;;;;;;;;;;+BAUF,kBAAkB,MAAM,MAAM;;;2BAYlC,kBAAkB,SAAS,sBAAsB;;;;;;;;;;;;;;;;;;6BAoB/C,kBAAkB,MAAM,MAAM;;;;;;;;;;;;;4BAK/B,kBAAkB,QAAQ,wBAAwB;;;;;;;;;;;;;4BAiBlD,kBAAkB,MAAM,MAAM,QAAQ,wBAAwB;;;;;;;;;;;;;4BAS9D,kBAAkB,MAAM,MAAM;;;gCAY1B,kBAAkB,aAAa,MAAM;;;;;;;;;;;;;;IAQvE;;;;OAIG;mCAEG,kBAAkB,aACX,MAAM,QACX,6BAA6B;;;;;;;;;;;;;;iCAkDF,kBAAkB,MAAM,MAAM;;;CAOlE,CAAA"}
1
+ {"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../src/service.ts"],"names":[],"mappings":"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"}
package/dist/service.js CHANGED
@@ -29,6 +29,22 @@ export class InvoiceNumberAllocationError extends Error {
29
29
  this.seriesId = details.seriesId;
30
30
  }
31
31
  }
32
+ export class InvoiceNumberConflictError extends Error {
33
+ code = "invoice_number_conflict";
34
+ invoiceNumber;
35
+ constructor(invoiceNumber) {
36
+ super("Invoice number already exists");
37
+ this.name = "InvoiceNumberConflictError";
38
+ this.invoiceNumber = invoiceNumber;
39
+ }
40
+ }
41
+ const PAYMENT_SCHEDULE_LINE_LABELS = {
42
+ deposit: "Deposit",
43
+ installment: "Installment",
44
+ balance: "Balance",
45
+ hold: "Hold",
46
+ other: "Payment schedule",
47
+ };
32
48
  function bookingItemToInvoiceLine(item, taxes, sortOrder) {
33
49
  const quantity = Math.max(item.quantity, 1);
34
50
  const totalCents = item.totalSellAmountCents ?? (item.unitSellAmountCents ?? 0) * Math.max(item.quantity, 1);
@@ -48,6 +64,42 @@ function bookingItemToInvoiceLine(item, taxes, sortOrder) {
48
64
  sortOrder,
49
65
  };
50
66
  }
67
+ function bookingPaymentScheduleToInvoiceLine(booking, schedule) {
68
+ const label = PAYMENT_SCHEDULE_LINE_LABELS[schedule.scheduleType];
69
+ return {
70
+ bookingItemId: null,
71
+ description: `${label} for booking ${booking.bookingNumber}`,
72
+ quantity: 1,
73
+ unitPriceCents: schedule.amountCents,
74
+ totalCents: schedule.amountCents,
75
+ taxRate: null,
76
+ sortOrder: 0,
77
+ };
78
+ }
79
+ function resolveBookingInvoiceBaseAmount(booking, invoiceCurrency, amountCents) {
80
+ if (!booking.baseCurrency)
81
+ return null;
82
+ if (invoiceCurrency === booking.baseCurrency)
83
+ return amountCents;
84
+ if (invoiceCurrency !== booking.sellCurrency || booking.baseSellAmountCents == null)
85
+ return null;
86
+ if (!booking.sellAmountCents || booking.sellAmountCents <= 0)
87
+ return booking.baseSellAmountCents;
88
+ return Math.round((amountCents / booking.sellAmountCents) * booking.baseSellAmountCents);
89
+ }
90
+ function isInvoiceNumberUniqueConstraintError(error) {
91
+ if (!error || typeof error !== "object")
92
+ return false;
93
+ const candidate = error;
94
+ if (candidate.code !== "23505")
95
+ return false;
96
+ const constraint = typeof candidate.constraint === "string" ? candidate.constraint : "";
97
+ const detail = typeof candidate.detail === "string" ? candidate.detail : "";
98
+ return (constraint === "invoices_invoice_number_type_unique" ||
99
+ constraint === "invoices_invoice_number_unique" ||
100
+ constraint === "invoices_invoice_number_key" ||
101
+ detail.includes("invoice_number"));
102
+ }
51
103
  function toTimestamp(value) {
52
104
  return value ? new Date(value) : null;
53
105
  }
@@ -1923,9 +1975,10 @@ export const financeService = {
1923
1975
  return row;
1924
1976
  },
1925
1977
  async createInvoiceFromBooking(db, data, bookingData) {
1926
- const { booking, items } = bookingData;
1978
+ const { booking, items, paymentSchedule } = bookingData;
1927
1979
  const numberAssignment = await resolveInvoiceNumberForBooking(db, data);
1928
- const itemIds = items.map((item) => item.id);
1980
+ const invoiceItems = paymentSchedule ? [] : items;
1981
+ const itemIds = invoiceItems.map((item) => item.id);
1929
1982
  const taxes = itemIds.length === 0
1930
1983
  ? []
1931
1984
  : await db
@@ -1944,21 +1997,23 @@ export const financeService = {
1944
1997
  existing.push(tax);
1945
1998
  taxesByBookingItemId.set(tax.bookingItemId, existing);
1946
1999
  }
1947
- const lineItems = items.length > 0
1948
- ? items.map((item, sortOrder) => ({
1949
- ...bookingItemToInvoiceLine(item, taxesByBookingItemId.get(item.id) ?? [], sortOrder),
1950
- }))
1951
- : [
1952
- {
1953
- bookingItemId: null,
1954
- description: `Booking ${booking.bookingNumber}`,
1955
- quantity: 1,
1956
- unitPriceCents: booking.sellAmountCents ?? 0,
1957
- totalCents: booking.sellAmountCents ?? 0,
1958
- taxRate: null,
1959
- sortOrder: 0,
1960
- },
1961
- ];
2000
+ const lineItems = paymentSchedule
2001
+ ? [bookingPaymentScheduleToInvoiceLine(booking, paymentSchedule)]
2002
+ : invoiceItems.length > 0
2003
+ ? invoiceItems.map((item, sortOrder) => ({
2004
+ ...bookingItemToInvoiceLine(item, taxesByBookingItemId.get(item.id) ?? [], sortOrder),
2005
+ }))
2006
+ : [
2007
+ {
2008
+ bookingItemId: null,
2009
+ description: `Booking ${booking.bookingNumber}`,
2010
+ quantity: 1,
2011
+ unitPriceCents: booking.sellAmountCents ?? 0,
2012
+ totalCents: booking.sellAmountCents ?? 0,
2013
+ taxRate: null,
2014
+ sortOrder: 0,
2015
+ },
2016
+ ];
1962
2017
  const grossLineTotalCents = lineItems.reduce((sum, line) => sum + line.totalCents, 0);
1963
2018
  const includedTaxCents = taxes.reduce((sum, tax) => {
1964
2019
  if (tax.scope === "withheld" || !tax.includedInPrice)
@@ -1982,52 +2037,64 @@ export const financeService = {
1982
2037
  // baseCurrency null — propagate that NULL across every base_*
1983
2038
  // field so the constraint stays satisfied.
1984
2039
  const hasBaseCurrency = Boolean(booking.baseCurrency);
1985
- return db.transaction(async (tx) => {
1986
- const [invoice] = await tx
1987
- .insert(invoices)
1988
- .values({
1989
- invoiceNumber: numberAssignment.invoiceNumber,
1990
- invoiceType: data.invoiceType,
1991
- seriesId: numberAssignment.seriesId,
1992
- sequence: numberAssignment.sequence,
1993
- bookingId: booking.id,
1994
- personId: booking.personId,
1995
- organizationId: booking.organizationId,
1996
- status: numberAssignment.status,
1997
- currency: booking.sellCurrency,
1998
- baseCurrency: booking.baseCurrency,
1999
- fxRateSetId: booking.fxRateSetId,
2000
- subtotalCents,
2001
- baseSubtotalCents: hasBaseCurrency ? (booking.baseSellAmountCents ?? null) : null,
2002
- taxCents,
2003
- baseTaxCents: null,
2004
- totalCents,
2005
- baseTotalCents: hasBaseCurrency ? (booking.baseSellAmountCents ?? null) : null,
2006
- paidCents: 0,
2007
- basePaidCents: hasBaseCurrency ? 0 : null,
2008
- balanceDueCents: totalCents,
2009
- baseBalanceDueCents: hasBaseCurrency ? (booking.baseSellAmountCents ?? null) : null,
2010
- commissionAmountCents: commissionAmountCents > 0 ? commissionAmountCents : null,
2011
- issueDate: data.issueDate,
2012
- dueDate: data.dueDate,
2013
- notes: data.notes ?? null,
2014
- })
2015
- .returning();
2016
- if (!invoice) {
2017
- return null;
2040
+ const invoiceCurrency = paymentSchedule?.currency ?? booking.sellCurrency;
2041
+ const invoiceBaseAmountCents = paymentSchedule
2042
+ ? resolveBookingInvoiceBaseAmount(booking, invoiceCurrency, paymentSchedule.amountCents)
2043
+ : (booking.baseSellAmountCents ?? null);
2044
+ try {
2045
+ return await db.transaction(async (tx) => {
2046
+ const [invoice] = await tx
2047
+ .insert(invoices)
2048
+ .values({
2049
+ invoiceNumber: numberAssignment.invoiceNumber,
2050
+ invoiceType: data.invoiceType,
2051
+ seriesId: numberAssignment.seriesId,
2052
+ sequence: numberAssignment.sequence,
2053
+ bookingId: booking.id,
2054
+ personId: booking.personId,
2055
+ organizationId: booking.organizationId,
2056
+ status: numberAssignment.status,
2057
+ currency: invoiceCurrency,
2058
+ baseCurrency: booking.baseCurrency,
2059
+ fxRateSetId: booking.fxRateSetId,
2060
+ subtotalCents,
2061
+ baseSubtotalCents: hasBaseCurrency ? invoiceBaseAmountCents : null,
2062
+ taxCents,
2063
+ baseTaxCents: null,
2064
+ totalCents,
2065
+ baseTotalCents: hasBaseCurrency ? invoiceBaseAmountCents : null,
2066
+ paidCents: 0,
2067
+ basePaidCents: hasBaseCurrency ? 0 : null,
2068
+ balanceDueCents: totalCents,
2069
+ baseBalanceDueCents: hasBaseCurrency ? invoiceBaseAmountCents : null,
2070
+ commissionAmountCents: commissionAmountCents > 0 ? commissionAmountCents : null,
2071
+ issueDate: data.issueDate,
2072
+ dueDate: data.dueDate,
2073
+ notes: data.notes ?? null,
2074
+ })
2075
+ .returning();
2076
+ if (!invoice) {
2077
+ return null;
2078
+ }
2079
+ await tx.insert(invoiceLineItems).values(lineItems.map((line) => ({
2080
+ invoiceId: invoice.id,
2081
+ bookingItemId: line.bookingItemId,
2082
+ description: line.description,
2083
+ quantity: line.quantity,
2084
+ unitPriceCents: line.unitPriceCents,
2085
+ totalCents: line.totalCents,
2086
+ taxRate: line.taxRate,
2087
+ sortOrder: line.sortOrder,
2088
+ })));
2089
+ return invoice;
2090
+ });
2091
+ }
2092
+ catch (error) {
2093
+ if (isInvoiceNumberUniqueConstraintError(error)) {
2094
+ throw new InvoiceNumberConflictError(numberAssignment.invoiceNumber);
2018
2095
  }
2019
- await tx.insert(invoiceLineItems).values(lineItems.map((line) => ({
2020
- invoiceId: invoice.id,
2021
- bookingItemId: line.bookingItemId,
2022
- description: line.description,
2023
- quantity: line.quantity,
2024
- unitPriceCents: line.unitPriceCents,
2025
- totalCents: line.totalCents,
2026
- taxRate: line.taxRate,
2027
- sortOrder: line.sortOrder,
2028
- })));
2029
- return invoice;
2030
- });
2096
+ throw error;
2097
+ }
2031
2098
  },
2032
2099
  async getInvoiceById(db, id) {
2033
2100
  const [row] = await db.select().from(invoices).where(eq(invoices.id, id)).limit(1);
@@ -2740,7 +2807,7 @@ export const financeService = {
2740
2807
  .update(invoices)
2741
2808
  .set({
2742
2809
  invoiceNumber: data.invoiceNumber,
2743
- status: data.status ?? "sent",
2810
+ status: data.status ?? "issued",
2744
2811
  updatedAt: new Date(),
2745
2812
  })
2746
2813
  .where(eq(invoices.id, invoiceId))
@@ -101,7 +101,7 @@ export declare const insertInvoiceSchema: z.ZodObject<{
101
101
  status: z.ZodDefault<z.ZodEnum<{
102
102
  draft: "draft";
103
103
  pending_external_allocation: "pending_external_allocation";
104
- sent: "sent";
104
+ issued: "issued";
105
105
  partially_paid: "partially_paid";
106
106
  paid: "paid";
107
107
  overdue: "overdue";
@@ -134,7 +134,7 @@ export declare const updateInvoiceSchema: z.ZodObject<{
134
134
  status: z.ZodOptional<z.ZodDefault<z.ZodEnum<{
135
135
  draft: "draft";
136
136
  pending_external_allocation: "pending_external_allocation";
137
- sent: "sent";
137
+ issued: "issued";
138
138
  partially_paid: "partially_paid";
139
139
  paid: "paid";
140
140
  overdue: "overdue";
@@ -177,7 +177,7 @@ export declare const invoiceListQuerySchema: z.ZodObject<{
177
177
  status: z.ZodOptional<z.ZodEnum<{
178
178
  draft: "draft";
179
179
  pending_external_allocation: "pending_external_allocation";
180
- sent: "sent";
180
+ issued: "issued";
181
181
  partially_paid: "partially_paid";
182
182
  paid: "paid";
183
183
  overdue: "overdue";
@@ -209,6 +209,7 @@ export declare const invoiceListQuerySchema: z.ZodObject<{
209
209
  }, z.core.$strip>;
210
210
  export declare const invoiceFromBookingSchema: z.ZodObject<{
211
211
  bookingId: z.ZodString;
212
+ bookingPaymentScheduleId: z.ZodOptional<z.ZodString>;
212
213
  invoiceNumber: z.ZodOptional<z.ZodString>;
213
214
  seriesId: z.ZodOptional<z.ZodString>;
214
215
  issueDate: z.ZodString;
@@ -679,7 +680,7 @@ export declare const polledInvoiceSettlementResultSchema: z.ZodObject<{
679
680
  invoiceStatus: z.ZodEnum<{
680
681
  draft: "draft";
681
682
  pending_external_allocation: "pending_external_allocation";
682
- sent: "sent";
683
+ issued: "issued";
683
684
  partially_paid: "partially_paid";
684
685
  paid: "paid";
685
686
  overdue: "overdue";