@voyant-travel/finance 0.119.5
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 +201 -0
- package/README.md +192 -0
- package/dist/action-ledger-drift.d.ts +29 -0
- package/dist/action-ledger-drift.d.ts.map +1 -0
- package/dist/action-ledger-drift.js +166 -0
- package/dist/booking-tax.d.ts +124 -0
- package/dist/booking-tax.d.ts.map +1 -0
- package/dist/booking-tax.js +264 -0
- package/dist/checkout-routes.d.ts +1154 -0
- package/dist/checkout-routes.d.ts.map +1 -0
- package/dist/checkout-routes.js +116 -0
- package/dist/checkout-service-plan.d.ts +137 -0
- package/dist/checkout-service-plan.d.ts.map +1 -0
- package/dist/checkout-service-plan.js +119 -0
- package/dist/checkout-service.d.ts +9 -0
- package/dist/checkout-service.d.ts.map +1 -0
- package/dist/checkout-service.js +324 -0
- package/dist/checkout-validation.d.ts +1682 -0
- package/dist/checkout-validation.d.ts.map +1 -0
- package/dist/checkout-validation.js +228 -0
- package/dist/document-download.d.ts +3 -0
- package/dist/document-download.d.ts.map +1 -0
- package/dist/document-download.js +1 -0
- package/dist/fx-money.d.ts +17 -0
- package/dist/fx-money.d.ts.map +1 -0
- package/dist/fx-money.js +194 -0
- package/dist/index.d.ts +65 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +108 -0
- package/dist/invoice-fx.d.ts +134 -0
- package/dist/invoice-fx.d.ts.map +1 -0
- package/dist/invoice-fx.js +240 -0
- package/dist/invoice-number-errors.d.ts +2 -0
- package/dist/invoice-number-errors.d.ts.map +1 -0
- package/dist/invoice-number-errors.js +58 -0
- package/dist/markets-ref.d.ts +149 -0
- package/dist/markets-ref.d.ts.map +1 -0
- package/dist/markets-ref.js +17 -0
- package/dist/payment-link.d.ts +23 -0
- package/dist/payment-link.d.ts.map +1 -0
- package/dist/payment-link.js +30 -0
- package/dist/payment-policy.d.ts +113 -0
- package/dist/payment-policy.d.ts.map +1 -0
- package/dist/payment-policy.js +193 -0
- package/dist/route-runtime.d.ts +22 -0
- package/dist/route-runtime.d.ts.map +1 -0
- package/dist/route-runtime.js +18 -0
- package/dist/routes-action-ledger.d.ts +181 -0
- package/dist/routes-action-ledger.d.ts.map +1 -0
- package/dist/routes-action-ledger.js +142 -0
- package/dist/routes-booking-billing.d.ts +852 -0
- package/dist/routes-booking-billing.d.ts.map +1 -0
- package/dist/routes-booking-billing.js +223 -0
- package/dist/routes-booking-create.d.ts +3 -0
- package/dist/routes-booking-create.d.ts.map +1 -0
- package/dist/routes-booking-create.js +194 -0
- package/dist/routes-booking-reads.d.ts +46 -0
- package/dist/routes-booking-reads.d.ts.map +1 -0
- package/dist/routes-booking-reads.js +20 -0
- package/dist/routes-documents.d.ts +195 -0
- package/dist/routes-documents.d.ts.map +1 -0
- package/dist/routes-documents.js +93 -0
- package/dist/routes-invoice-core.d.ts +794 -0
- package/dist/routes-invoice-core.d.ts.map +1 -0
- package/dist/routes-invoice-core.js +238 -0
- package/dist/routes-invoice-documents.d.ts +401 -0
- package/dist/routes-invoice-documents.d.ts.map +1 -0
- package/dist/routes-invoice-documents.js +91 -0
- package/dist/routes-invoice-issue.d.ts +384 -0
- package/dist/routes-invoice-issue.d.ts.map +1 -0
- package/dist/routes-invoice-issue.js +208 -0
- package/dist/routes-payment-processing.d.ts +1193 -0
- package/dist/routes-payment-processing.d.ts.map +1 -0
- package/dist/routes-payment-processing.js +238 -0
- package/dist/routes-payments.d.ts +309 -0
- package/dist/routes-payments.d.ts.map +1 -0
- package/dist/routes-payments.js +94 -0
- package/dist/routes-public.d.ts +1948 -0
- package/dist/routes-public.d.ts.map +1 -0
- package/dist/routes-public.js +275 -0
- package/dist/routes-reference-data.d.ts +977 -0
- package/dist/routes-reference-data.d.ts.map +1 -0
- package/dist/routes-reference-data.js +191 -0
- package/dist/routes-reports.d.ts +344 -0
- package/dist/routes-reports.d.ts.map +1 -0
- package/dist/routes-reports.js +93 -0
- package/dist/routes-runtime.d.ts +71 -0
- package/dist/routes-runtime.d.ts.map +1 -0
- package/dist/routes-runtime.js +59 -0
- package/dist/routes-settlement.d.ts +67 -0
- package/dist/routes-settlement.d.ts.map +1 -0
- package/dist/routes-settlement.js +23 -0
- package/dist/routes-shared.d.ts +35 -0
- package/dist/routes-shared.d.ts.map +1 -0
- package/dist/routes-shared.js +10 -0
- package/dist/routes-supplier-invoices.d.ts +778 -0
- package/dist/routes-supplier-invoices.d.ts.map +1 -0
- package/dist/routes-supplier-invoices.js +159 -0
- package/dist/routes-vouchers.d.ts +228 -0
- package/dist/routes-vouchers.d.ts.map +1 -0
- package/dist/routes-vouchers.js +54 -0
- package/dist/routes.d.ts +5577 -0
- package/dist/routes.d.ts.map +1 -0
- package/dist/routes.js +44 -0
- package/dist/schema/booking-billing.d.ts +1006 -0
- package/dist/schema/booking-billing.d.ts.map +1 -0
- package/dist/schema/booking-billing.js +106 -0
- package/dist/schema/enums.d.ts +48 -0
- package/dist/schema/enums.d.ts.map +1 -0
- package/dist/schema/enums.js +237 -0
- package/dist/schema/invoice-documents.d.ts +1245 -0
- package/dist/schema/invoice-documents.d.ts.map +1 -0
- package/dist/schema/invoice-documents.js +140 -0
- package/dist/schema/payment-instruments.d.ts +418 -0
- package/dist/schema/payment-instruments.d.ts.map +1 -0
- package/dist/schema/payment-instruments.js +45 -0
- package/dist/schema/payment-processing.d.ts +563 -0
- package/dist/schema/payment-processing.d.ts.map +1 -0
- package/dist/schema/payment-processing.js +65 -0
- package/dist/schema/payment-sessions.d.ts +728 -0
- package/dist/schema/payment-sessions.d.ts.map +1 -0
- package/dist/schema/payment-sessions.js +79 -0
- package/dist/schema/receivables.d.ts +1474 -0
- package/dist/schema/receivables.d.ts.map +1 -0
- package/dist/schema/receivables.js +179 -0
- package/dist/schema/relations.d.ts +82 -0
- package/dist/schema/relations.d.ts.map +1 -0
- package/dist/schema/relations.js +144 -0
- package/dist/schema/supplier-invoices.d.ts +1619 -0
- package/dist/schema/supplier-invoices.d.ts.map +1 -0
- package/dist/schema/supplier-invoices.js +228 -0
- package/dist/schema/tax.d.ts +712 -0
- package/dist/schema/tax.d.ts.map +1 -0
- package/dist/schema/tax.js +98 -0
- package/dist/schema/vouchers.d.ts +444 -0
- package/dist/schema/vouchers.d.ts.map +1 -0
- package/dist/schema/vouchers.js +64 -0
- package/dist/schema.d.ts +12 -0
- package/dist/schema.d.ts.map +1 -0
- package/dist/schema.js +11 -0
- package/dist/service-accountant-shares.d.ts +106 -0
- package/dist/service-accountant-shares.d.ts.map +1 -0
- package/dist/service-accountant-shares.js +331 -0
- package/dist/service-action-ledger-accounting.d.ts +104 -0
- package/dist/service-action-ledger-accounting.d.ts.map +1 -0
- package/dist/service-action-ledger-accounting.js +386 -0
- package/dist/service-action-ledger-booking-payments.d.ts +48 -0
- package/dist/service-action-ledger-booking-payments.d.ts.map +1 -0
- package/dist/service-action-ledger-booking-payments.js +178 -0
- package/dist/service-action-ledger-bookings.d.ts +44 -0
- package/dist/service-action-ledger-bookings.d.ts.map +1 -0
- package/dist/service-action-ledger-bookings.js +81 -0
- package/dist/service-action-ledger-payment-authorizations.d.ts +48 -0
- package/dist/service-action-ledger-payment-authorizations.d.ts.map +1 -0
- package/dist/service-action-ledger-payment-authorizations.js +209 -0
- package/dist/service-action-ledger-payment-sessions.d.ts +83 -0
- package/dist/service-action-ledger-payment-sessions.d.ts.map +1 -0
- package/dist/service-action-ledger-payment-sessions.js +294 -0
- package/dist/service-action-ledger-supplier-invoices.d.ts +27 -0
- package/dist/service-action-ledger-supplier-invoices.d.ts.map +1 -0
- package/dist/service-action-ledger-supplier-invoices.js +111 -0
- package/dist/service-action-ledger-supplier-payments.d.ts +21 -0
- package/dist/service-action-ledger-supplier-payments.d.ts.map +1 -0
- package/dist/service-action-ledger-supplier-payments.js +97 -0
- package/dist/service-action-ledger.d.ts +7 -0
- package/dist/service-action-ledger.d.ts.map +1 -0
- package/dist/service-action-ledger.js +6 -0
- package/dist/service-aggregates.d.ts +96 -0
- package/dist/service-aggregates.d.ts.map +1 -0
- package/dist/service-aggregates.js +294 -0
- package/dist/service-booking-billing.d.ts +2322 -0
- package/dist/service-booking-billing.d.ts.map +1 -0
- package/dist/service-booking-billing.js +8 -0
- package/dist/service-booking-create.d.ts +410 -0
- package/dist/service-booking-create.d.ts.map +1 -0
- package/dist/service-booking-create.js +1256 -0
- package/dist/service-booking-guarantees.d.ts +725 -0
- package/dist/service-booking-guarantees.d.ts.map +1 -0
- package/dist/service-booking-guarantees.js +153 -0
- package/dist/service-booking-item-billing.d.ts +1062 -0
- package/dist/service-booking-item-billing.d.ts.map +1 -0
- package/dist/service-booking-item-billing.js +77 -0
- package/dist/service-booking-payment-schedules.d.ts +557 -0
- package/dist/service-booking-payment-schedules.d.ts.map +1 -0
- package/dist/service-booking-payment-schedules.js +372 -0
- package/dist/service-bookings-dual-create.d.ts +308 -0
- package/dist/service-bookings-dual-create.d.ts.map +1 -0
- package/dist/service-bookings-dual-create.js +131 -0
- package/dist/service-boundary-sql.d.ts +6 -0
- package/dist/service-boundary-sql.d.ts.map +1 -0
- package/dist/service-boundary-sql.js +15 -0
- package/dist/service-cost-categories.d.ts +26 -0
- package/dist/service-cost-categories.d.ts.map +1 -0
- package/dist/service-cost-categories.js +76 -0
- package/dist/service-documents.d.ts +80 -0
- package/dist/service-documents.d.ts.map +1 -0
- package/dist/service-documents.js +228 -0
- package/dist/service-invoice-artifacts.d.ts +246 -0
- package/dist/service-invoice-artifacts.d.ts.map +1 -0
- package/dist/service-invoice-artifacts.js +277 -0
- package/dist/service-invoice-core.d.ts +405 -0
- package/dist/service-invoice-core.d.ts.map +1 -0
- package/dist/service-invoice-core.js +290 -0
- package/dist/service-invoice-credit-notes.d.ts +973 -0
- package/dist/service-invoice-credit-notes.d.ts.map +1 -0
- package/dist/service-invoice-credit-notes.js +142 -0
- package/dist/service-invoice-from-booking.d.ts +41 -0
- package/dist/service-invoice-from-booking.d.ts.map +1 -0
- package/dist/service-invoice-from-booking.js +267 -0
- package/dist/service-invoice-line-items.d.ts +432 -0
- package/dist/service-invoice-line-items.d.ts.map +1 -0
- package/dist/service-invoice-line-items.js +102 -0
- package/dist/service-invoice-numbering.d.ts +227 -0
- package/dist/service-invoice-numbering.d.ts.map +1 -0
- package/dist/service-invoice-numbering.js +260 -0
- package/dist/service-invoice-payments.d.ts +673 -0
- package/dist/service-invoice-payments.d.ts.map +1 -0
- package/dist/service-invoice-payments.js +398 -0
- package/dist/service-invoices.d.ts +2501 -0
- package/dist/service-invoices.d.ts.map +1 -0
- package/dist/service-invoices.js +12 -0
- package/dist/service-issue.d.ts +207 -0
- package/dist/service-issue.d.ts.map +1 -0
- package/dist/service-issue.js +431 -0
- package/dist/service-payment-authorizations.d.ts +164 -0
- package/dist/service-payment-authorizations.d.ts.map +1 -0
- package/dist/service-payment-authorizations.js +227 -0
- package/dist/service-payment-instruments.d.ts +116 -0
- package/dist/service-payment-instruments.d.ts.map +1 -0
- package/dist/service-payment-instruments.js +99 -0
- package/dist/service-payment-processing.d.ts +676 -0
- package/dist/service-payment-processing.d.ts.map +1 -0
- package/dist/service-payment-processing.js +10 -0
- package/dist/service-payment-session-completion.d.ts +48 -0
- package/dist/service-payment-session-completion.d.ts.map +1 -0
- package/dist/service-payment-session-completion.js +238 -0
- package/dist/service-payment-sessions.d.ts +361 -0
- package/dist/service-payment-sessions.d.ts.map +1 -0
- package/dist/service-payment-sessions.js +280 -0
- package/dist/service-profitability.d.ts +114 -0
- package/dist/service-profitability.d.ts.map +1 -0
- package/dist/service-profitability.js +794 -0
- package/dist/service-public.d.ts +553 -0
- package/dist/service-public.d.ts.map +1 -0
- package/dist/service-public.js +583 -0
- package/dist/service-reference-data.d.ts +272 -0
- package/dist/service-reference-data.d.ts.map +1 -0
- package/dist/service-reference-data.js +280 -0
- package/dist/service-rendition-wait.d.ts +38 -0
- package/dist/service-rendition-wait.d.ts.map +1 -0
- package/dist/service-rendition-wait.js +67 -0
- package/dist/service-reports.d.ts +37 -0
- package/dist/service-reports.d.ts.map +1 -0
- package/dist/service-reports.js +62 -0
- package/dist/service-settlement.d.ts +46 -0
- package/dist/service-settlement.d.ts.map +1 -0
- package/dist/service-settlement.js +185 -0
- package/dist/service-shared.d.ts +541 -0
- package/dist/service-shared.d.ts.map +1 -0
- package/dist/service-shared.js +764 -0
- package/dist/service-supplier-invoices.d.ts +871 -0
- package/dist/service-supplier-invoices.d.ts.map +1 -0
- package/dist/service-supplier-invoices.js +744 -0
- package/dist/service-supplier-payments.d.ts +69 -0
- package/dist/service-supplier-payments.d.ts.map +1 -0
- package/dist/service-supplier-payments.js +136 -0
- package/dist/service-vouchers-migration.d.ts +44 -0
- package/dist/service-vouchers-migration.d.ts.map +1 -0
- package/dist/service-vouchers-migration.js +148 -0
- package/dist/service-vouchers.d.ts +157 -0
- package/dist/service-vouchers.d.ts.map +1 -0
- package/dist/service-vouchers.js +191 -0
- package/dist/service.d.ts +6490 -0
- package/dist/service.d.ts.map +1 -0
- package/dist/service.js +29 -0
- package/dist/validation-billing.d.ts +2 -0
- package/dist/validation-billing.d.ts.map +1 -0
- package/dist/validation-billing.js +1 -0
- package/dist/validation-payments.d.ts +2 -0
- package/dist/validation-payments.d.ts.map +1 -0
- package/dist/validation-payments.js +1 -0
- package/dist/validation-public.d.ts +2 -0
- package/dist/validation-public.d.ts.map +1 -0
- package/dist/validation-public.js +1 -0
- package/dist/validation-shared.d.ts +2 -0
- package/dist/validation-shared.d.ts.map +1 -0
- package/dist/validation-shared.js +1 -0
- package/dist/validation-vouchers.d.ts +2 -0
- package/dist/validation-vouchers.d.ts.map +1 -0
- package/dist/validation-vouchers.js +1 -0
- package/dist/validation.d.ts +2 -0
- package/dist/validation.d.ts.map +1 -0
- package/dist/validation.js +1 -0
- package/package.json +121 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"booking-billing.d.ts","sourceRoot":"","sources":["../../src/schema/booking-billing.ts"],"names":[],"mappings":"AAmBA,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA0BnC,CAAA;AAED,MAAM,MAAM,sBAAsB,GAAG,OAAO,uBAAuB,CAAC,YAAY,CAAA;AAChF,MAAM,MAAM,yBAAyB,GAAG,OAAO,uBAAuB,CAAC,YAAY,CAAA;AAInF,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA+C7B,CAAA;AAED,MAAM,MAAM,gBAAgB,GAAG,OAAO,iBAAiB,CAAC,YAAY,CAAA;AACpE,MAAM,MAAM,mBAAmB,GAAG,OAAO,iBAAiB,CAAC,YAAY,CAAA;AAIvE,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA2B/B,CAAA;AAED,MAAM,MAAM,kBAAkB,GAAG,OAAO,mBAAmB,CAAC,YAAY,CAAA;AACxE,MAAM,MAAM,qBAAqB,GAAG,OAAO,mBAAmB,CAAC,YAAY,CAAA;AAI3E,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA6BlC,CAAA;AAED,MAAM,MAAM,qBAAqB,GAAG,OAAO,sBAAsB,CAAC,YAAY,CAAA;AAC9E,MAAM,MAAM,wBAAwB,GAAG,OAAO,sBAAsB,CAAC,YAAY,CAAA"}
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
import { typeId, typeIdRef } from "@voyant-travel/db/lib/typeid-column";
|
|
2
|
+
import { sql } from "drizzle-orm";
|
|
3
|
+
import { boolean, check, date, index, integer, pgTable, text, timestamp } from "drizzle-orm/pg-core";
|
|
4
|
+
import { commissionModelEnum, commissionRecipientTypeEnum, commissionStatusEnum, guaranteeStatusEnum, guaranteeTypeEnum, paymentScheduleStatusEnum, paymentScheduleTypeEnum, taxScopeEnum, } from "./enums.js";
|
|
5
|
+
import { paymentInstruments } from "./payment-instruments.js";
|
|
6
|
+
import { paymentAuthorizations } from "./payment-processing.js";
|
|
7
|
+
// ---------- booking_payment_schedules ----------
|
|
8
|
+
export const bookingPaymentSchedules = pgTable("booking_payment_schedules", {
|
|
9
|
+
id: typeId("booking_payment_schedules"),
|
|
10
|
+
bookingId: text("booking_id").notNull(),
|
|
11
|
+
bookingItemId: text("booking_item_id"),
|
|
12
|
+
scheduleType: paymentScheduleTypeEnum("schedule_type").notNull().default("balance"),
|
|
13
|
+
status: paymentScheduleStatusEnum("status").notNull().default("pending"),
|
|
14
|
+
dueDate: date("due_date").notNull(),
|
|
15
|
+
currency: text("currency").notNull(),
|
|
16
|
+
amountCents: integer("amount_cents").notNull(),
|
|
17
|
+
notes: text("notes"),
|
|
18
|
+
createdAt: timestamp("created_at", { withTimezone: true }).notNull().defaultNow(),
|
|
19
|
+
updatedAt: timestamp("updated_at", { withTimezone: true }).notNull().defaultNow(),
|
|
20
|
+
}, (table) => [
|
|
21
|
+
index("idx_booking_payment_schedules_booking").on(table.bookingId),
|
|
22
|
+
index("idx_booking_payment_schedules_booking_due_created").on(table.bookingId, table.dueDate, table.createdAt),
|
|
23
|
+
index("idx_booking_payment_schedules_item").on(table.bookingItemId),
|
|
24
|
+
index("idx_booking_payment_schedules_status").on(table.status),
|
|
25
|
+
index("idx_booking_payment_schedules_due_date").on(table.dueDate),
|
|
26
|
+
]);
|
|
27
|
+
// ---------- booking_guarantees ----------
|
|
28
|
+
export const bookingGuarantees = pgTable("booking_guarantees", {
|
|
29
|
+
id: typeId("booking_guarantees"),
|
|
30
|
+
bookingId: text("booking_id").notNull(),
|
|
31
|
+
bookingPaymentScheduleId: typeIdRef("booking_payment_schedule_id").references(() => bookingPaymentSchedules.id, { onDelete: "set null" }),
|
|
32
|
+
bookingItemId: text("booking_item_id"),
|
|
33
|
+
guaranteeType: guaranteeTypeEnum("guarantee_type").notNull(),
|
|
34
|
+
status: guaranteeStatusEnum("status").notNull().default("pending"),
|
|
35
|
+
paymentInstrumentId: typeIdRef("payment_instrument_id").references(() => paymentInstruments.id, {
|
|
36
|
+
onDelete: "set null",
|
|
37
|
+
}),
|
|
38
|
+
paymentAuthorizationId: typeIdRef("payment_authorization_id").references(() => paymentAuthorizations.id, { onDelete: "set null" }),
|
|
39
|
+
currency: text("currency"),
|
|
40
|
+
amountCents: integer("amount_cents"),
|
|
41
|
+
provider: text("provider"),
|
|
42
|
+
referenceNumber: text("reference_number"),
|
|
43
|
+
guaranteedAt: timestamp("guaranteed_at", { withTimezone: true }),
|
|
44
|
+
expiresAt: timestamp("expires_at", { withTimezone: true }),
|
|
45
|
+
releasedAt: timestamp("released_at", { withTimezone: true }),
|
|
46
|
+
notes: text("notes"),
|
|
47
|
+
createdAt: timestamp("created_at", { withTimezone: true }).notNull().defaultNow(),
|
|
48
|
+
updatedAt: timestamp("updated_at", { withTimezone: true }).notNull().defaultNow(),
|
|
49
|
+
}, (table) => [
|
|
50
|
+
index("idx_booking_guarantees_booking").on(table.bookingId),
|
|
51
|
+
index("idx_booking_guarantees_booking_created").on(table.bookingId, table.createdAt),
|
|
52
|
+
index("idx_booking_guarantees_schedule").on(table.bookingPaymentScheduleId),
|
|
53
|
+
index("idx_booking_guarantees_item").on(table.bookingItemId),
|
|
54
|
+
index("idx_booking_guarantees_instrument").on(table.paymentInstrumentId),
|
|
55
|
+
index("idx_booking_guarantees_authorization").on(table.paymentAuthorizationId),
|
|
56
|
+
index("idx_booking_guarantees_status").on(table.status),
|
|
57
|
+
check("ck_booking_guarantees_currency_amount",
|
|
58
|
+
// agent-quality: raw-sql reviewed -- owner: finance; dynamic SQL interpolation uses Drizzle parameter binding or vetted SQL identifiers.
|
|
59
|
+
sql `(${table.currency} IS NULL) = (${table.amountCents} IS NULL)`),
|
|
60
|
+
]);
|
|
61
|
+
// ---------- booking_item_tax_lines ----------
|
|
62
|
+
export const bookingItemTaxLines = pgTable("booking_item_tax_lines", {
|
|
63
|
+
id: typeId("booking_item_tax_lines"),
|
|
64
|
+
bookingItemId: text("booking_item_id").notNull(),
|
|
65
|
+
code: text("code"),
|
|
66
|
+
name: text("name").notNull(),
|
|
67
|
+
jurisdiction: text("jurisdiction"),
|
|
68
|
+
scope: taxScopeEnum("scope").notNull().default("excluded"),
|
|
69
|
+
currency: text("currency").notNull(),
|
|
70
|
+
amountCents: integer("amount_cents").notNull(),
|
|
71
|
+
rateBasisPoints: integer("rate_basis_points"),
|
|
72
|
+
includedInPrice: boolean("included_in_price").notNull().default(false),
|
|
73
|
+
remittanceParty: text("remittance_party"),
|
|
74
|
+
sortOrder: integer("sort_order").notNull().default(0),
|
|
75
|
+
createdAt: timestamp("created_at", { withTimezone: true }).notNull().defaultNow(),
|
|
76
|
+
updatedAt: timestamp("updated_at", { withTimezone: true }).notNull().defaultNow(),
|
|
77
|
+
}, (table) => [
|
|
78
|
+
index("idx_booking_item_tax_lines_item").on(table.bookingItemId),
|
|
79
|
+
index("idx_booking_item_tax_lines_item_sort_created").on(table.bookingItemId, table.sortOrder, table.createdAt),
|
|
80
|
+
index("idx_booking_item_tax_lines_scope").on(table.scope),
|
|
81
|
+
]);
|
|
82
|
+
// ---------- booking_item_commissions ----------
|
|
83
|
+
export const bookingItemCommissions = pgTable("booking_item_commissions", {
|
|
84
|
+
id: typeId("booking_item_commissions"),
|
|
85
|
+
bookingItemId: text("booking_item_id").notNull(),
|
|
86
|
+
channelId: text("channel_id"),
|
|
87
|
+
recipientType: commissionRecipientTypeEnum("recipient_type").notNull(),
|
|
88
|
+
commissionModel: commissionModelEnum("commission_model").notNull().default("percentage"),
|
|
89
|
+
currency: text("currency"),
|
|
90
|
+
amountCents: integer("amount_cents"),
|
|
91
|
+
rateBasisPoints: integer("rate_basis_points"),
|
|
92
|
+
status: commissionStatusEnum("status").notNull().default("pending"),
|
|
93
|
+
payableAt: date("payable_at"),
|
|
94
|
+
paidAt: date("paid_at"),
|
|
95
|
+
notes: text("notes"),
|
|
96
|
+
createdAt: timestamp("created_at", { withTimezone: true }).notNull().defaultNow(),
|
|
97
|
+
updatedAt: timestamp("updated_at", { withTimezone: true }).notNull().defaultNow(),
|
|
98
|
+
}, (table) => [
|
|
99
|
+
index("idx_booking_item_commissions_item").on(table.bookingItemId),
|
|
100
|
+
index("idx_booking_item_commissions_item_created").on(table.bookingItemId, table.createdAt),
|
|
101
|
+
index("idx_booking_item_commissions_channel").on(table.channelId),
|
|
102
|
+
index("idx_booking_item_commissions_status").on(table.status),
|
|
103
|
+
check("ck_booking_item_commissions_currency_amount",
|
|
104
|
+
// agent-quality: raw-sql reviewed -- owner: finance; dynamic SQL interpolation uses Drizzle parameter binding or vetted SQL identifiers.
|
|
105
|
+
sql `(${table.currency} IS NULL) = (${table.amountCents} IS NULL)`),
|
|
106
|
+
]);
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
export declare const invoiceStatusEnum: import("drizzle-orm/pg-core").PgEnum<["draft", "pending_external_allocation", "issued", "partially_paid", "paid", "overdue", "void"]>;
|
|
2
|
+
export declare const paymentMethodEnum: import("drizzle-orm/pg-core").PgEnum<["bank_transfer", "credit_card", "debit_card", "cash", "cheque", "wallet", "direct_bill", "voucher", "other"]>;
|
|
3
|
+
export declare const paymentStatusEnum: import("drizzle-orm/pg-core").PgEnum<["pending", "completed", "failed", "refunded"]>;
|
|
4
|
+
export declare const paymentSessionStatusEnum: import("drizzle-orm/pg-core").PgEnum<["pending", "requires_redirect", "processing", "authorized", "paid", "failed", "cancelled", "expired"]>;
|
|
5
|
+
export declare const paymentSessionTargetTypeEnum: import("drizzle-orm/pg-core").PgEnum<["booking", "order", "invoice", "booking_payment_schedule", "booking_guarantee", "flight_order", "other"]>;
|
|
6
|
+
export declare const paymentInstrumentTypeEnum: import("drizzle-orm/pg-core").PgEnum<["credit_card", "debit_card", "bank_account", "wallet", "voucher", "direct_bill", "cash", "other"]>;
|
|
7
|
+
export declare const paymentInstrumentOwnerTypeEnum: import("drizzle-orm/pg-core").PgEnum<["client", "supplier", "channel", "agency", "internal", "other"]>;
|
|
8
|
+
export declare const paymentInstrumentStatusEnum: import("drizzle-orm/pg-core").PgEnum<["active", "inactive", "expired", "revoked", "failed_verification"]>;
|
|
9
|
+
export declare const paymentAuthorizationStatusEnum: import("drizzle-orm/pg-core").PgEnum<["pending", "authorized", "partially_captured", "captured", "voided", "failed", "expired"]>;
|
|
10
|
+
export declare const paymentCaptureStatusEnum: import("drizzle-orm/pg-core").PgEnum<["pending", "completed", "failed", "refunded", "voided"]>;
|
|
11
|
+
export declare const captureModeEnum: import("drizzle-orm/pg-core").PgEnum<["automatic", "manual"]>;
|
|
12
|
+
export declare const creditNoteStatusEnum: import("drizzle-orm/pg-core").PgEnum<["draft", "issued", "applied"]>;
|
|
13
|
+
export declare const paymentScheduleTypeEnum: import("drizzle-orm/pg-core").PgEnum<["deposit", "installment", "balance", "hold", "other"]>;
|
|
14
|
+
export declare const paymentScheduleStatusEnum: import("drizzle-orm/pg-core").PgEnum<["pending", "due", "paid", "waived", "cancelled", "expired"]>;
|
|
15
|
+
export declare const guaranteeTypeEnum: import("drizzle-orm/pg-core").PgEnum<["deposit", "credit_card", "preauth", "card_on_file", "bank_transfer", "voucher", "agency_letter", "other"]>;
|
|
16
|
+
export declare const guaranteeStatusEnum: import("drizzle-orm/pg-core").PgEnum<["pending", "active", "released", "failed", "cancelled", "expired"]>;
|
|
17
|
+
export declare const taxScopeEnum: import("drizzle-orm/pg-core").PgEnum<["included", "excluded", "withheld"]>;
|
|
18
|
+
export declare const commissionRecipientTypeEnum: import("drizzle-orm/pg-core").PgEnum<["channel", "affiliate", "agency", "agent", "internal", "supplier", "other"]>;
|
|
19
|
+
export declare const commissionModelEnum: import("drizzle-orm/pg-core").PgEnum<["percentage", "fixed", "markup", "net"]>;
|
|
20
|
+
export declare const commissionStatusEnum: import("drizzle-orm/pg-core").PgEnum<["pending", "accrued", "payable", "paid", "void"]>;
|
|
21
|
+
export declare const invoiceTypeEnum: import("drizzle-orm/pg-core").PgEnum<["invoice", "proforma", "credit_note"]>;
|
|
22
|
+
export declare const invoiceNumberResetStrategyEnum: import("drizzle-orm/pg-core").PgEnum<["never", "annual", "monthly"]>;
|
|
23
|
+
export declare const invoiceNumberSeriesScopeEnum: import("drizzle-orm/pg-core").PgEnum<["invoice", "proforma", "credit_note"]>;
|
|
24
|
+
export declare const invoiceRenditionFormatEnum: import("drizzle-orm/pg-core").PgEnum<["html", "pdf", "xml", "json"]>;
|
|
25
|
+
export declare const invoiceRenditionStatusEnum: import("drizzle-orm/pg-core").PgEnum<["pending", "ready", "failed", "stale"]>;
|
|
26
|
+
export declare const invoiceTemplateBodyFormatEnum: import("drizzle-orm/pg-core").PgEnum<["html", "markdown", "lexical_json"]>;
|
|
27
|
+
export declare const taxRegimeCodeEnum: import("drizzle-orm/pg-core").PgEnum<["standard", "reduced", "exempt", "reverse_charge", "margin_scheme_art311", "zero_rated", "out_of_scope", "other"]>;
|
|
28
|
+
export declare const voucherStatusEnum: import("drizzle-orm/pg-core").PgEnum<["active", "redeemed", "expired", "void"]>;
|
|
29
|
+
export declare const voucherSourceTypeEnum: import("drizzle-orm/pg-core").PgEnum<["refund", "cancellation_credit", "gift", "manual", "promo"]>;
|
|
30
|
+
/**
|
|
31
|
+
* Status flow for a received supplier invoice. Mirrors the AR invoice flow
|
|
32
|
+
* where it can; `approved` and `disputed` are AP-specific (an operator
|
|
33
|
+
* approves a payable before it can be paid; a contested bill is disputed).
|
|
34
|
+
*/
|
|
35
|
+
export declare const supplierInvoiceStatusEnum: import("drizzle-orm/pg-core").PgEnum<["draft", "received", "approved", "partially_paid", "paid", "disputed", "void"]>;
|
|
36
|
+
/**
|
|
37
|
+
* AP-local service taxonomy for supplier-invoice lines. Deliberately NOT the
|
|
38
|
+
* shared `serviceTypeEnum` (suppliers/products) — extending that is a ~17-file
|
|
39
|
+
* cross-package sweep (§5.6). This local enum carries the categories operators
|
|
40
|
+
* think in for cost breakdown charts, including `flight` (named in the request
|
|
41
|
+
* but absent from the shared enum) and `insurance`.
|
|
42
|
+
*/
|
|
43
|
+
export declare const apServiceTypeEnum: import("drizzle-orm/pg-core").PgEnum<["transport", "flight", "accommodation", "guide", "meal", "experience", "insurance", "other"]>;
|
|
44
|
+
/** What a supplier cost allocation attributes the cost to (§6). */
|
|
45
|
+
export declare const costAllocationTargetTypeEnum: import("drizzle-orm/pg-core").PgEnum<["departure", "product", "booking", "traveler", "unattributed"]>;
|
|
46
|
+
/** How a multi-target split was derived, for "derived vs explicit" display (§6). */
|
|
47
|
+
export declare const costAllocationSplitMethodEnum: import("drizzle-orm/pg-core").PgEnum<["manual", "per_pax", "equal", "weighted"]>;
|
|
48
|
+
//# sourceMappingURL=enums.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"enums.d.ts","sourceRoot":"","sources":["../../src/schema/enums.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,iBAAiB,uIAQ5B,CAAA;AAEF,eAAO,MAAM,iBAAiB,qJAU5B,CAAA;AAEF,eAAO,MAAM,iBAAiB,sFAK5B,CAAA;AAEF,eAAO,MAAM,wBAAwB,8IASnC,CAAA;AAEF,eAAO,MAAM,4BAA4B,iJAQvC,CAAA;AAEF,eAAO,MAAM,yBAAyB,0IASpC,CAAA;AAEF,eAAO,MAAM,8BAA8B,wGAOzC,CAAA;AAEF,eAAO,MAAM,2BAA2B,2GAMtC,CAAA;AAEF,eAAO,MAAM,8BAA8B,kIAQzC,CAAA;AAEF,eAAO,MAAM,wBAAwB,gGAMnC,CAAA;AAEF,eAAO,MAAM,eAAe,+DAAkD,CAAA;AAE9E,eAAO,MAAM,oBAAoB,sEAA+D,CAAA;AAEhG,eAAO,MAAM,uBAAuB,8FAMlC,CAAA;AAEF,eAAO,MAAM,yBAAyB,oGAOpC,CAAA;AAEF,eAAO,MAAM,iBAAiB,mJAS5B,CAAA;AAEF,eAAO,MAAM,mBAAmB,2GAO9B,CAAA;AAEF,eAAO,MAAM,YAAY,4EAA4D,CAAA;AAErF,eAAO,MAAM,2BAA2B,oHAQtC,CAAA;AAEF,eAAO,MAAM,mBAAmB,gFAK9B,CAAA;AAEF,eAAO,MAAM,oBAAoB,yFAM/B,CAAA;AAEF,eAAO,MAAM,eAAe,8EAAiE,CAAA;AAE7F,eAAO,MAAM,8BAA8B,sEAIzC,CAAA;AAEF,eAAO,MAAM,4BAA4B,8EAIvC,CAAA;AAEF,eAAO,MAAM,0BAA0B,sEAKrC,CAAA;AAEF,eAAO,MAAM,0BAA0B,+EAKrC,CAAA;AAEF,eAAO,MAAM,6BAA6B,4EAIxC,CAAA;AAEF,eAAO,MAAM,iBAAiB,0JAS5B,CAAA;AAEF,eAAO,MAAM,iBAAiB,iFAAsE,CAAA;AAEpG,eAAO,MAAM,qBAAqB,oGAMhC,CAAA;AAEF;;;;GAIG;AACH,eAAO,MAAM,yBAAyB,uHAQpC,CAAA;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,iBAAiB,qIAS5B,CAAA;AAEF,mEAAmE;AACnE,eAAO,MAAM,4BAA4B,uGAMvC,CAAA;AAEF,oFAAoF;AACpF,eAAO,MAAM,6BAA6B,kFAKxC,CAAA"}
|
|
@@ -0,0 +1,237 @@
|
|
|
1
|
+
import { pgEnum } from "drizzle-orm/pg-core";
|
|
2
|
+
export const invoiceStatusEnum = pgEnum("invoice_status", [
|
|
3
|
+
"draft",
|
|
4
|
+
"pending_external_allocation",
|
|
5
|
+
"issued",
|
|
6
|
+
"partially_paid",
|
|
7
|
+
"paid",
|
|
8
|
+
"overdue",
|
|
9
|
+
"void",
|
|
10
|
+
]);
|
|
11
|
+
export const paymentMethodEnum = pgEnum("payment_method", [
|
|
12
|
+
"bank_transfer",
|
|
13
|
+
"credit_card",
|
|
14
|
+
"debit_card",
|
|
15
|
+
"cash",
|
|
16
|
+
"cheque",
|
|
17
|
+
"wallet",
|
|
18
|
+
"direct_bill",
|
|
19
|
+
"voucher",
|
|
20
|
+
"other",
|
|
21
|
+
]);
|
|
22
|
+
export const paymentStatusEnum = pgEnum("payment_status", [
|
|
23
|
+
"pending",
|
|
24
|
+
"completed",
|
|
25
|
+
"failed",
|
|
26
|
+
"refunded",
|
|
27
|
+
]);
|
|
28
|
+
export const paymentSessionStatusEnum = pgEnum("payment_session_status", [
|
|
29
|
+
"pending",
|
|
30
|
+
"requires_redirect",
|
|
31
|
+
"processing",
|
|
32
|
+
"authorized",
|
|
33
|
+
"paid",
|
|
34
|
+
"failed",
|
|
35
|
+
"cancelled",
|
|
36
|
+
"expired",
|
|
37
|
+
]);
|
|
38
|
+
export const paymentSessionTargetTypeEnum = pgEnum("payment_session_target_type", [
|
|
39
|
+
"booking",
|
|
40
|
+
"order",
|
|
41
|
+
"invoice",
|
|
42
|
+
"booking_payment_schedule",
|
|
43
|
+
"booking_guarantee",
|
|
44
|
+
"flight_order",
|
|
45
|
+
"other",
|
|
46
|
+
]);
|
|
47
|
+
export const paymentInstrumentTypeEnum = pgEnum("payment_instrument_type", [
|
|
48
|
+
"credit_card",
|
|
49
|
+
"debit_card",
|
|
50
|
+
"bank_account",
|
|
51
|
+
"wallet",
|
|
52
|
+
"voucher",
|
|
53
|
+
"direct_bill",
|
|
54
|
+
"cash",
|
|
55
|
+
"other",
|
|
56
|
+
]);
|
|
57
|
+
export const paymentInstrumentOwnerTypeEnum = pgEnum("payment_instrument_owner_type", [
|
|
58
|
+
"client",
|
|
59
|
+
"supplier",
|
|
60
|
+
"channel",
|
|
61
|
+
"agency",
|
|
62
|
+
"internal",
|
|
63
|
+
"other",
|
|
64
|
+
]);
|
|
65
|
+
export const paymentInstrumentStatusEnum = pgEnum("payment_instrument_status", [
|
|
66
|
+
"active",
|
|
67
|
+
"inactive",
|
|
68
|
+
"expired",
|
|
69
|
+
"revoked",
|
|
70
|
+
"failed_verification",
|
|
71
|
+
]);
|
|
72
|
+
export const paymentAuthorizationStatusEnum = pgEnum("payment_authorization_status", [
|
|
73
|
+
"pending",
|
|
74
|
+
"authorized",
|
|
75
|
+
"partially_captured",
|
|
76
|
+
"captured",
|
|
77
|
+
"voided",
|
|
78
|
+
"failed",
|
|
79
|
+
"expired",
|
|
80
|
+
]);
|
|
81
|
+
export const paymentCaptureStatusEnum = pgEnum("payment_capture_status", [
|
|
82
|
+
"pending",
|
|
83
|
+
"completed",
|
|
84
|
+
"failed",
|
|
85
|
+
"refunded",
|
|
86
|
+
"voided",
|
|
87
|
+
]);
|
|
88
|
+
export const captureModeEnum = pgEnum("capture_mode", ["automatic", "manual"]);
|
|
89
|
+
export const creditNoteStatusEnum = pgEnum("credit_note_status", ["draft", "issued", "applied"]);
|
|
90
|
+
export const paymentScheduleTypeEnum = pgEnum("payment_schedule_type", [
|
|
91
|
+
"deposit",
|
|
92
|
+
"installment",
|
|
93
|
+
"balance",
|
|
94
|
+
"hold",
|
|
95
|
+
"other",
|
|
96
|
+
]);
|
|
97
|
+
export const paymentScheduleStatusEnum = pgEnum("payment_schedule_status", [
|
|
98
|
+
"pending",
|
|
99
|
+
"due",
|
|
100
|
+
"paid",
|
|
101
|
+
"waived",
|
|
102
|
+
"cancelled",
|
|
103
|
+
"expired",
|
|
104
|
+
]);
|
|
105
|
+
export const guaranteeTypeEnum = pgEnum("guarantee_type", [
|
|
106
|
+
"deposit",
|
|
107
|
+
"credit_card",
|
|
108
|
+
"preauth",
|
|
109
|
+
"card_on_file",
|
|
110
|
+
"bank_transfer",
|
|
111
|
+
"voucher",
|
|
112
|
+
"agency_letter",
|
|
113
|
+
"other",
|
|
114
|
+
]);
|
|
115
|
+
export const guaranteeStatusEnum = pgEnum("guarantee_status", [
|
|
116
|
+
"pending",
|
|
117
|
+
"active",
|
|
118
|
+
"released",
|
|
119
|
+
"failed",
|
|
120
|
+
"cancelled",
|
|
121
|
+
"expired",
|
|
122
|
+
]);
|
|
123
|
+
export const taxScopeEnum = pgEnum("tax_scope", ["included", "excluded", "withheld"]);
|
|
124
|
+
export const commissionRecipientTypeEnum = pgEnum("commission_recipient_type", [
|
|
125
|
+
"channel",
|
|
126
|
+
"affiliate",
|
|
127
|
+
"agency",
|
|
128
|
+
"agent",
|
|
129
|
+
"internal",
|
|
130
|
+
"supplier",
|
|
131
|
+
"other",
|
|
132
|
+
]);
|
|
133
|
+
export const commissionModelEnum = pgEnum("commission_model", [
|
|
134
|
+
"percentage",
|
|
135
|
+
"fixed",
|
|
136
|
+
"markup",
|
|
137
|
+
"net",
|
|
138
|
+
]);
|
|
139
|
+
export const commissionStatusEnum = pgEnum("commission_status", [
|
|
140
|
+
"pending",
|
|
141
|
+
"accrued",
|
|
142
|
+
"payable",
|
|
143
|
+
"paid",
|
|
144
|
+
"void",
|
|
145
|
+
]);
|
|
146
|
+
export const invoiceTypeEnum = pgEnum("invoice_type", ["invoice", "proforma", "credit_note"]);
|
|
147
|
+
export const invoiceNumberResetStrategyEnum = pgEnum("invoice_number_reset_strategy", [
|
|
148
|
+
"never",
|
|
149
|
+
"annual",
|
|
150
|
+
"monthly",
|
|
151
|
+
]);
|
|
152
|
+
export const invoiceNumberSeriesScopeEnum = pgEnum("invoice_number_series_scope", [
|
|
153
|
+
"invoice",
|
|
154
|
+
"proforma",
|
|
155
|
+
"credit_note",
|
|
156
|
+
]);
|
|
157
|
+
export const invoiceRenditionFormatEnum = pgEnum("invoice_rendition_format", [
|
|
158
|
+
"html",
|
|
159
|
+
"pdf",
|
|
160
|
+
"xml",
|
|
161
|
+
"json",
|
|
162
|
+
]);
|
|
163
|
+
export const invoiceRenditionStatusEnum = pgEnum("invoice_rendition_status", [
|
|
164
|
+
"pending",
|
|
165
|
+
"ready",
|
|
166
|
+
"failed",
|
|
167
|
+
"stale",
|
|
168
|
+
]);
|
|
169
|
+
export const invoiceTemplateBodyFormatEnum = pgEnum("invoice_template_body_format", [
|
|
170
|
+
"html",
|
|
171
|
+
"markdown",
|
|
172
|
+
"lexical_json",
|
|
173
|
+
]);
|
|
174
|
+
export const taxRegimeCodeEnum = pgEnum("tax_regime_code", [
|
|
175
|
+
"standard",
|
|
176
|
+
"reduced",
|
|
177
|
+
"exempt",
|
|
178
|
+
"reverse_charge",
|
|
179
|
+
"margin_scheme_art311",
|
|
180
|
+
"zero_rated",
|
|
181
|
+
"out_of_scope",
|
|
182
|
+
"other",
|
|
183
|
+
]);
|
|
184
|
+
export const voucherStatusEnum = pgEnum("voucher_status", ["active", "redeemed", "expired", "void"]);
|
|
185
|
+
export const voucherSourceTypeEnum = pgEnum("voucher_source_type", [
|
|
186
|
+
"refund",
|
|
187
|
+
"cancellation_credit",
|
|
188
|
+
"gift",
|
|
189
|
+
"manual",
|
|
190
|
+
"promo",
|
|
191
|
+
]);
|
|
192
|
+
/**
|
|
193
|
+
* Status flow for a received supplier invoice. Mirrors the AR invoice flow
|
|
194
|
+
* where it can; `approved` and `disputed` are AP-specific (an operator
|
|
195
|
+
* approves a payable before it can be paid; a contested bill is disputed).
|
|
196
|
+
*/
|
|
197
|
+
export const supplierInvoiceStatusEnum = pgEnum("supplier_invoice_status", [
|
|
198
|
+
"draft",
|
|
199
|
+
"received",
|
|
200
|
+
"approved",
|
|
201
|
+
"partially_paid",
|
|
202
|
+
"paid",
|
|
203
|
+
"disputed",
|
|
204
|
+
"void",
|
|
205
|
+
]);
|
|
206
|
+
/**
|
|
207
|
+
* AP-local service taxonomy for supplier-invoice lines. Deliberately NOT the
|
|
208
|
+
* shared `serviceTypeEnum` (suppliers/products) — extending that is a ~17-file
|
|
209
|
+
* cross-package sweep (§5.6). This local enum carries the categories operators
|
|
210
|
+
* think in for cost breakdown charts, including `flight` (named in the request
|
|
211
|
+
* but absent from the shared enum) and `insurance`.
|
|
212
|
+
*/
|
|
213
|
+
export const apServiceTypeEnum = pgEnum("ap_service_type", [
|
|
214
|
+
"transport",
|
|
215
|
+
"flight",
|
|
216
|
+
"accommodation",
|
|
217
|
+
"guide",
|
|
218
|
+
"meal",
|
|
219
|
+
"experience",
|
|
220
|
+
"insurance",
|
|
221
|
+
"other",
|
|
222
|
+
]);
|
|
223
|
+
/** What a supplier cost allocation attributes the cost to (§6). */
|
|
224
|
+
export const costAllocationTargetTypeEnum = pgEnum("cost_allocation_target_type", [
|
|
225
|
+
"departure",
|
|
226
|
+
"product",
|
|
227
|
+
"booking",
|
|
228
|
+
"traveler",
|
|
229
|
+
"unattributed",
|
|
230
|
+
]);
|
|
231
|
+
/** How a multi-target split was derived, for "derived vs explicit" display (§6). */
|
|
232
|
+
export const costAllocationSplitMethodEnum = pgEnum("cost_allocation_split_method", [
|
|
233
|
+
"manual",
|
|
234
|
+
"per_pax",
|
|
235
|
+
"equal",
|
|
236
|
+
"weighted",
|
|
237
|
+
]);
|