@voyantjs/products 0.2.0 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (39) hide show
  1. package/dist/routes.d.ts +4 -4
  2. package/dist/schema-core.d.ts +897 -0
  3. package/dist/schema-core.d.ts.map +1 -0
  4. package/dist/schema-core.js +77 -0
  5. package/dist/schema-itinerary.d.ts +828 -0
  6. package/dist/schema-itinerary.d.ts.map +1 -0
  7. package/dist/schema-itinerary.js +77 -0
  8. package/dist/schema-relations.d.ts +99 -0
  9. package/dist/schema-relations.d.ts.map +1 -0
  10. package/dist/schema-relations.js +155 -0
  11. package/dist/schema-settings.d.ts +1749 -0
  12. package/dist/schema-settings.d.ts.map +1 -0
  13. package/dist/schema-settings.js +175 -0
  14. package/dist/schema-shared.d.ts +15 -0
  15. package/dist/schema-shared.d.ts.map +1 -0
  16. package/dist/schema-shared.js +91 -0
  17. package/dist/schema-taxonomy.d.ts +573 -0
  18. package/dist/schema-taxonomy.d.ts.map +1 -0
  19. package/dist/schema-taxonomy.js +65 -0
  20. package/dist/schema.d.ts +6 -4155
  21. package/dist/schema.d.ts.map +1 -1
  22. package/dist/schema.js +6 -653
  23. package/dist/service.d.ts +4 -4
  24. package/dist/validation-config.d.ts +233 -0
  25. package/dist/validation-config.d.ts.map +1 -0
  26. package/dist/validation-config.js +73 -0
  27. package/dist/validation-content.d.ts +358 -0
  28. package/dist/validation-content.d.ts.map +1 -0
  29. package/dist/validation-content.js +177 -0
  30. package/dist/validation-core.d.ts +268 -0
  31. package/dist/validation-core.d.ts.map +1 -0
  32. package/dist/validation-core.js +91 -0
  33. package/dist/validation-shared.d.ts +103 -0
  34. package/dist/validation-shared.d.ts.map +1 -0
  35. package/dist/validation-shared.js +86 -0
  36. package/dist/validation.d.ts +4 -854
  37. package/dist/validation.d.ts.map +1 -1
  38. package/dist/validation.js +4 -433
  39. package/package.json +4 -4
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema-core.d.ts","sourceRoot":"","sources":["../src/schema-core.ts"],"names":[],"mappings":"AAsBA,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA+BpB,CAAA;AAED,MAAM,MAAM,OAAO,GAAG,OAAO,QAAQ,CAAC,YAAY,CAAA;AAClD,MAAM,MAAM,UAAU,GAAG,OAAO,QAAQ,CAAC,YAAY,CAAA;AAErD,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAwB1B,CAAA;AAED,MAAM,MAAM,aAAa,GAAG,OAAO,cAAc,CAAC,YAAY,CAAA;AAC9D,MAAM,MAAM,gBAAgB,GAAG,OAAO,cAAc,CAAC,YAAY,CAAA;AAEjE,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA4BvB,CAAA;AAED,MAAM,MAAM,UAAU,GAAG,OAAO,WAAW,CAAC,YAAY,CAAA;AACxD,MAAM,MAAM,aAAa,GAAG,OAAO,WAAW,CAAC,YAAY,CAAA"}
@@ -0,0 +1,77 @@
1
+ import { typeId, typeIdRef } from "@voyantjs/db/lib/typeid-column";
2
+ import { boolean, date, index, integer, jsonb, pgTable, text, timestamp, uniqueIndex, } from "drizzle-orm/pg-core";
3
+ import { optionUnitTypeEnum, productBookingModeEnum, productCapacityModeEnum, productOptionStatusEnum, productStatusEnum, productVisibilityEnum, } from "./schema-shared";
4
+ export const products = pgTable("products", {
5
+ id: typeId("products"),
6
+ name: text("name").notNull(),
7
+ status: productStatusEnum("status").notNull().default("draft"),
8
+ description: text("description"),
9
+ bookingMode: productBookingModeEnum("booking_mode").notNull().default("date"),
10
+ capacityMode: productCapacityModeEnum("capacity_mode").notNull().default("limited"),
11
+ timezone: text("timezone"),
12
+ visibility: productVisibilityEnum("visibility").notNull().default("private"),
13
+ activated: boolean("activated").notNull().default(false),
14
+ reservationTimeoutMinutes: integer("reservation_timeout_minutes"),
15
+ sellCurrency: text("sell_currency").notNull(),
16
+ sellAmountCents: integer("sell_amount_cents"),
17
+ costAmountCents: integer("cost_amount_cents"),
18
+ marginPercent: integer("margin_percent"),
19
+ facilityId: text("facility_id"),
20
+ startDate: date("start_date"),
21
+ endDate: date("end_date"),
22
+ pax: integer("pax"),
23
+ productTypeId: text("product_type_id"),
24
+ tags: jsonb("tags").$type().default([]),
25
+ createdAt: timestamp("created_at", { withTimezone: true }).notNull().defaultNow(),
26
+ updatedAt: timestamp("updated_at", { withTimezone: true }).notNull().defaultNow(),
27
+ }, (table) => [
28
+ index("idx_products_status").on(table.status),
29
+ index("idx_products_facility").on(table.facilityId),
30
+ index("idx_products_product_type").on(table.productTypeId),
31
+ ]);
32
+ export const productOptions = pgTable("product_options", {
33
+ id: typeId("product_options"),
34
+ productId: typeIdRef("product_id")
35
+ .notNull()
36
+ .references(() => products.id, { onDelete: "cascade" }),
37
+ name: text("name").notNull(),
38
+ code: text("code"),
39
+ description: text("description"),
40
+ status: productOptionStatusEnum("status").notNull().default("draft"),
41
+ isDefault: boolean("is_default").notNull().default(false),
42
+ sortOrder: integer("sort_order").notNull().default(0),
43
+ availableFrom: date("available_from"),
44
+ availableTo: date("available_to"),
45
+ createdAt: timestamp("created_at", { withTimezone: true }).notNull().defaultNow(),
46
+ updatedAt: timestamp("updated_at", { withTimezone: true }).notNull().defaultNow(),
47
+ }, (table) => [
48
+ index("idx_product_options_product").on(table.productId),
49
+ index("idx_product_options_status").on(table.status),
50
+ index("idx_product_options_default").on(table.isDefault),
51
+ uniqueIndex("uidx_product_options_product_code").on(table.productId, table.code),
52
+ ]);
53
+ export const optionUnits = pgTable("option_units", {
54
+ id: typeId("option_units"),
55
+ optionId: typeIdRef("option_id")
56
+ .notNull()
57
+ .references(() => productOptions.id, { onDelete: "cascade" }),
58
+ name: text("name").notNull(),
59
+ code: text("code"),
60
+ description: text("description"),
61
+ unitType: optionUnitTypeEnum("unit_type").notNull().default("person"),
62
+ minQuantity: integer("min_quantity"),
63
+ maxQuantity: integer("max_quantity"),
64
+ minAge: integer("min_age"),
65
+ maxAge: integer("max_age"),
66
+ occupancyMin: integer("occupancy_min"),
67
+ occupancyMax: integer("occupancy_max"),
68
+ isRequired: boolean("is_required").notNull().default(false),
69
+ isHidden: boolean("is_hidden").notNull().default(false),
70
+ sortOrder: integer("sort_order").notNull().default(0),
71
+ createdAt: timestamp("created_at", { withTimezone: true }).notNull().defaultNow(),
72
+ updatedAt: timestamp("updated_at", { withTimezone: true }).notNull().defaultNow(),
73
+ }, (table) => [
74
+ index("idx_option_units_option").on(table.optionId),
75
+ index("idx_option_units_type").on(table.unitType),
76
+ uniqueIndex("uidx_option_units_option_code").on(table.optionId, table.code),
77
+ ]);