includio-cms 0.14.6 → 0.15.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 (127) hide show
  1. package/CHANGELOG.md +25 -0
  2. package/DOCS.md +45 -1
  3. package/ROADMAP.md +23 -2
  4. package/dist/admin/auth-client.d.ts +42 -42
  5. package/dist/admin/client/entry/entry.svelte +1 -0
  6. package/dist/admin/client/index.d.ts +6 -0
  7. package/dist/admin/client/index.js +6 -0
  8. package/dist/admin/client/shop/shipping-method-edit-page.svelte +113 -0
  9. package/dist/admin/client/shop/shipping-method-edit-page.svelte.d.ts +3 -0
  10. package/dist/admin/client/shop/shipping-method-form.svelte +244 -0
  11. package/dist/admin/client/shop/shipping-method-form.svelte.d.ts +37 -0
  12. package/dist/admin/client/shop/shipping-method-new-page.svelte +47 -0
  13. package/dist/admin/client/shop/shipping-method-new-page.svelte.d.ts +3 -0
  14. package/dist/admin/client/shop/shipping-methods-list-page.svelte +172 -0
  15. package/dist/admin/client/shop/shipping-methods-list-page.svelte.d.ts +3 -0
  16. package/dist/admin/client/shop/shop-order-detail-page.svelte +332 -0
  17. package/dist/admin/client/shop/shop-order-detail-page.svelte.d.ts +3 -0
  18. package/dist/admin/client/shop/shop-orders-list-page.svelte +150 -0
  19. package/dist/admin/client/shop/shop-orders-list-page.svelte.d.ts +3 -0
  20. package/dist/admin/client/shop/shop-products-list-page.svelte +157 -0
  21. package/dist/admin/client/shop/shop-products-list-page.svelte.d.ts +3 -0
  22. package/dist/admin/components/fields/field-renderer.svelte +4 -2
  23. package/dist/admin/components/fields/shop-field.svelte +298 -0
  24. package/dist/admin/components/fields/shop-field.svelte.d.ts +7 -0
  25. package/dist/admin/components/layout/app-sidebar.svelte +2 -0
  26. package/dist/admin/components/layout/lang.d.ts +6 -0
  27. package/dist/admin/components/layout/lang.js +12 -0
  28. package/dist/admin/components/layout/nav-shop.svelte +55 -0
  29. package/dist/admin/components/layout/nav-shop.svelte.d.ts +3 -0
  30. package/dist/admin/remote/index.d.ts +1 -0
  31. package/dist/admin/remote/index.js +1 -0
  32. package/dist/admin/remote/shop.remote.d.ts +244 -0
  33. package/dist/admin/remote/shop.remote.js +153 -0
  34. package/dist/cli/scaffold/admin.js +84 -0
  35. package/dist/core/cms.d.ts +2 -0
  36. package/dist/core/cms.js +2 -0
  37. package/dist/core/fields/fieldSchemaToTs.js +5 -0
  38. package/dist/core/server/entries/operations/get.js +3 -3
  39. package/dist/core/server/fields/populateEntry.d.ts +1 -1
  40. package/dist/core/server/fields/populateEntry.js +3 -1
  41. package/dist/core/server/generator/fields.js +14 -0
  42. package/dist/core/server/generator/generator.js +13 -0
  43. package/dist/db-postgres/schema/index.d.ts +1 -0
  44. package/dist/db-postgres/schema/index.js +1 -0
  45. package/dist/db-postgres/schema/shop/index.d.ts +8 -0
  46. package/dist/db-postgres/schema/shop/index.js +8 -0
  47. package/dist/db-postgres/schema/shop/order.d.ts +396 -0
  48. package/dist/db-postgres/schema/shop/order.js +28 -0
  49. package/dist/db-postgres/schema/shop/orderItem.d.ts +179 -0
  50. package/dist/db-postgres/schema/shop/orderItem.js +20 -0
  51. package/dist/db-postgres/schema/shop/orderStatusHistory.d.ts +112 -0
  52. package/dist/db-postgres/schema/shop/orderStatusHistory.js +12 -0
  53. package/dist/db-postgres/schema/shop/payment.d.ts +180 -0
  54. package/dist/db-postgres/schema/shop/payment.js +16 -0
  55. package/dist/db-postgres/schema/shop/product.d.ts +143 -0
  56. package/dist/db-postgres/schema/shop/product.js +15 -0
  57. package/dist/db-postgres/schema/shop/productVariant.d.ts +164 -0
  58. package/dist/db-postgres/schema/shop/productVariant.js +15 -0
  59. package/dist/db-postgres/schema/shop/shippingMethod.d.ts +190 -0
  60. package/dist/db-postgres/schema/shop/shippingMethod.js +13 -0
  61. package/dist/db-postgres/schema/shop/stockReservation.d.ts +109 -0
  62. package/dist/db-postgres/schema/shop/stockReservation.js +13 -0
  63. package/dist/db-postgres/schema-core.d.ts +9 -0
  64. package/dist/db-postgres/schema-core.js +9 -0
  65. package/dist/db-postgres/schema-shop.d.ts +1 -0
  66. package/dist/db-postgres/schema-shop.js +1 -0
  67. package/dist/email-nodemailer/index.d.ts +2 -9
  68. package/dist/shop/adapters/manual/index.d.ts +10 -0
  69. package/dist/shop/adapters/manual/index.js +16 -0
  70. package/dist/shop/cart/cookie.d.ts +8 -0
  71. package/dist/shop/cart/cookie.js +84 -0
  72. package/dist/shop/cart/types.d.ts +42 -0
  73. package/dist/shop/cart/types.js +1 -0
  74. package/dist/shop/client/index.d.ts +59 -0
  75. package/dist/shop/client/index.js +40 -0
  76. package/dist/shop/http/cart-handler.d.ts +7 -0
  77. package/dist/shop/http/cart-handler.js +88 -0
  78. package/dist/shop/http/checkout-handler.d.ts +4 -0
  79. package/dist/shop/http/checkout-handler.js +100 -0
  80. package/dist/shop/http/index.d.ts +3 -0
  81. package/dist/shop/http/index.js +3 -0
  82. package/dist/shop/http/shipping-handler.d.ts +4 -0
  83. package/dist/shop/http/shipping-handler.js +31 -0
  84. package/dist/shop/index.d.ts +4 -0
  85. package/dist/shop/index.js +17 -0
  86. package/dist/shop/pricing.d.ts +15 -0
  87. package/dist/shop/pricing.js +31 -0
  88. package/dist/shop/rate-limit.d.ts +9 -0
  89. package/dist/shop/rate-limit.js +28 -0
  90. package/dist/shop/server/cart-hydrate.d.ts +4 -0
  91. package/dist/shop/server/cart-hydrate.js +172 -0
  92. package/dist/shop/server/db.d.ts +4 -0
  93. package/dist/shop/server/db.js +16 -0
  94. package/dist/shop/server/email.d.ts +2 -0
  95. package/dist/shop/server/email.js +138 -0
  96. package/dist/shop/server/order-number.d.ts +5 -0
  97. package/dist/shop/server/order-number.js +15 -0
  98. package/dist/shop/server/orders.d.ts +45 -0
  99. package/dist/shop/server/orders.js +293 -0
  100. package/dist/shop/server/populate.d.ts +15 -0
  101. package/dist/shop/server/populate.js +39 -0
  102. package/dist/shop/server/shipping.d.ts +37 -0
  103. package/dist/shop/server/shipping.js +111 -0
  104. package/dist/shop/server/shop-data.d.ts +51 -0
  105. package/dist/shop/server/shop-data.js +186 -0
  106. package/dist/shop/services/cart.service.d.ts +38 -0
  107. package/dist/shop/services/cart.service.js +1 -0
  108. package/dist/shop/services/email.service.d.ts +6 -0
  109. package/dist/shop/services/email.service.js +1 -0
  110. package/dist/shop/services/index.d.ts +6 -0
  111. package/dist/shop/services/index.js +1 -0
  112. package/dist/shop/services/orders.service.d.ts +34 -0
  113. package/dist/shop/services/orders.service.js +1 -0
  114. package/dist/shop/services/payment.service.d.ts +7 -0
  115. package/dist/shop/services/payment.service.js +1 -0
  116. package/dist/shop/services/products.service.d.ts +31 -0
  117. package/dist/shop/services/products.service.js +1 -0
  118. package/dist/shop/services/shipping.service.d.ts +23 -0
  119. package/dist/shop/services/shipping.service.js +1 -0
  120. package/dist/shop/types.d.ts +72 -0
  121. package/dist/shop/types.js +1 -0
  122. package/dist/types/cms.d.ts +3 -0
  123. package/dist/types/fields.d.ts +18 -2
  124. package/dist/updates/0.15.0/index.d.ts +2 -0
  125. package/dist/updates/0.15.0/index.js +25 -0
  126. package/dist/updates/index.js +2 -1
  127. package/package.json +27 -1
@@ -0,0 +1,112 @@
1
+ import type { OrderStatus } from '../../../shop/types.js';
2
+ export declare const shopOrderStatusHistoryTable: import("drizzle-orm/pg-core/table", { with: { "resolution-mode": "require" } }).PgTableWithColumns<{
3
+ name: "shop_order_status_history";
4
+ schema: undefined;
5
+ columns: {
6
+ id: import("drizzle-orm/pg-core", { with: { "resolution-mode": "require" } }).PgColumn<{
7
+ name: "id";
8
+ tableName: "shop_order_status_history";
9
+ dataType: "string";
10
+ columnType: "PgUUID";
11
+ data: string;
12
+ driverParam: string;
13
+ notNull: true;
14
+ hasDefault: true;
15
+ isPrimaryKey: true;
16
+ isAutoincrement: false;
17
+ hasRuntimeDefault: false;
18
+ enumValues: undefined;
19
+ baseColumn: never;
20
+ identity: undefined;
21
+ generated: undefined;
22
+ }, {}, {}>;
23
+ orderId: import("drizzle-orm/pg-core", { with: { "resolution-mode": "require" } }).PgColumn<{
24
+ name: "order_id";
25
+ tableName: "shop_order_status_history";
26
+ dataType: "string";
27
+ columnType: "PgUUID";
28
+ data: string;
29
+ driverParam: string;
30
+ notNull: true;
31
+ hasDefault: false;
32
+ isPrimaryKey: false;
33
+ isAutoincrement: false;
34
+ hasRuntimeDefault: false;
35
+ enumValues: undefined;
36
+ baseColumn: never;
37
+ identity: undefined;
38
+ generated: undefined;
39
+ }, {}, {}>;
40
+ status: import("drizzle-orm/pg-core", { with: { "resolution-mode": "require" } }).PgColumn<{
41
+ name: "status";
42
+ tableName: "shop_order_status_history";
43
+ dataType: "string";
44
+ columnType: "PgText";
45
+ data: OrderStatus;
46
+ driverParam: string;
47
+ notNull: true;
48
+ hasDefault: false;
49
+ isPrimaryKey: false;
50
+ isAutoincrement: false;
51
+ hasRuntimeDefault: false;
52
+ enumValues: [string, ...string[]];
53
+ baseColumn: never;
54
+ identity: undefined;
55
+ generated: undefined;
56
+ }, {}, {
57
+ $type: OrderStatus;
58
+ }>;
59
+ note: import("drizzle-orm/pg-core", { with: { "resolution-mode": "require" } }).PgColumn<{
60
+ name: "note";
61
+ tableName: "shop_order_status_history";
62
+ dataType: "string";
63
+ columnType: "PgText";
64
+ data: string;
65
+ driverParam: string;
66
+ notNull: false;
67
+ hasDefault: false;
68
+ isPrimaryKey: false;
69
+ isAutoincrement: false;
70
+ hasRuntimeDefault: false;
71
+ enumValues: [string, ...string[]];
72
+ baseColumn: never;
73
+ identity: undefined;
74
+ generated: undefined;
75
+ }, {}, {}>;
76
+ changedBy: import("drizzle-orm/pg-core", { with: { "resolution-mode": "require" } }).PgColumn<{
77
+ name: "changed_by";
78
+ tableName: "shop_order_status_history";
79
+ dataType: "string";
80
+ columnType: "PgText";
81
+ data: string;
82
+ driverParam: string;
83
+ notNull: false;
84
+ hasDefault: false;
85
+ isPrimaryKey: false;
86
+ isAutoincrement: false;
87
+ hasRuntimeDefault: false;
88
+ enumValues: [string, ...string[]];
89
+ baseColumn: never;
90
+ identity: undefined;
91
+ generated: undefined;
92
+ }, {}, {}>;
93
+ changedAt: import("drizzle-orm/pg-core", { with: { "resolution-mode": "require" } }).PgColumn<{
94
+ name: "changed_at";
95
+ tableName: "shop_order_status_history";
96
+ dataType: "date";
97
+ columnType: "PgTimestamp";
98
+ data: Date;
99
+ driverParam: string;
100
+ notNull: true;
101
+ hasDefault: true;
102
+ isPrimaryKey: false;
103
+ isAutoincrement: false;
104
+ hasRuntimeDefault: false;
105
+ enumValues: undefined;
106
+ baseColumn: never;
107
+ identity: undefined;
108
+ generated: undefined;
109
+ }, {}, {}>;
110
+ };
111
+ dialect: "pg";
112
+ }>;
@@ -0,0 +1,12 @@
1
+ import { pgTable, text, timestamp, uuid } from 'drizzle-orm/pg-core';
2
+ import { shopOrdersTable } from './order.js';
3
+ export const shopOrderStatusHistoryTable = pgTable('shop_order_status_history', {
4
+ id: uuid('id').primaryKey().defaultRandom(),
5
+ orderId: uuid('order_id')
6
+ .notNull()
7
+ .references(() => shopOrdersTable.id, { onDelete: 'cascade' }),
8
+ status: text('status').$type().notNull(),
9
+ note: text('note'),
10
+ changedBy: text('changed_by'),
11
+ changedAt: timestamp('changed_at', { withTimezone: true }).defaultNow().notNull()
12
+ });
@@ -0,0 +1,180 @@
1
+ export type ShopPaymentStatus = 'pending' | 'paid' | 'failed' | 'refunded' | 'cancelled';
2
+ export declare const shopPaymentsTable: import("drizzle-orm/pg-core/table", { with: { "resolution-mode": "require" } }).PgTableWithColumns<{
3
+ name: "shop_payments";
4
+ schema: undefined;
5
+ columns: {
6
+ id: import("drizzle-orm/pg-core", { with: { "resolution-mode": "require" } }).PgColumn<{
7
+ name: "id";
8
+ tableName: "shop_payments";
9
+ dataType: "string";
10
+ columnType: "PgUUID";
11
+ data: string;
12
+ driverParam: string;
13
+ notNull: true;
14
+ hasDefault: true;
15
+ isPrimaryKey: true;
16
+ isAutoincrement: false;
17
+ hasRuntimeDefault: false;
18
+ enumValues: undefined;
19
+ baseColumn: never;
20
+ identity: undefined;
21
+ generated: undefined;
22
+ }, {}, {}>;
23
+ orderId: import("drizzle-orm/pg-core", { with: { "resolution-mode": "require" } }).PgColumn<{
24
+ name: "order_id";
25
+ tableName: "shop_payments";
26
+ dataType: "string";
27
+ columnType: "PgUUID";
28
+ data: string;
29
+ driverParam: string;
30
+ notNull: true;
31
+ hasDefault: false;
32
+ isPrimaryKey: false;
33
+ isAutoincrement: false;
34
+ hasRuntimeDefault: false;
35
+ enumValues: undefined;
36
+ baseColumn: never;
37
+ identity: undefined;
38
+ generated: undefined;
39
+ }, {}, {}>;
40
+ provider: import("drizzle-orm/pg-core", { with: { "resolution-mode": "require" } }).PgColumn<{
41
+ name: "provider";
42
+ tableName: "shop_payments";
43
+ dataType: "string";
44
+ columnType: "PgText";
45
+ data: string;
46
+ driverParam: string;
47
+ notNull: true;
48
+ hasDefault: false;
49
+ isPrimaryKey: false;
50
+ isAutoincrement: false;
51
+ hasRuntimeDefault: false;
52
+ enumValues: [string, ...string[]];
53
+ baseColumn: never;
54
+ identity: undefined;
55
+ generated: undefined;
56
+ }, {}, {}>;
57
+ providerRef: import("drizzle-orm/pg-core", { with: { "resolution-mode": "require" } }).PgColumn<{
58
+ name: "provider_ref";
59
+ tableName: "shop_payments";
60
+ dataType: "string";
61
+ columnType: "PgText";
62
+ data: string;
63
+ driverParam: string;
64
+ notNull: false;
65
+ hasDefault: false;
66
+ isPrimaryKey: false;
67
+ isAutoincrement: false;
68
+ hasRuntimeDefault: false;
69
+ enumValues: [string, ...string[]];
70
+ baseColumn: never;
71
+ identity: undefined;
72
+ generated: undefined;
73
+ }, {}, {}>;
74
+ status: import("drizzle-orm/pg-core", { with: { "resolution-mode": "require" } }).PgColumn<{
75
+ name: "status";
76
+ tableName: "shop_payments";
77
+ dataType: "string";
78
+ columnType: "PgText";
79
+ data: ShopPaymentStatus;
80
+ driverParam: string;
81
+ notNull: true;
82
+ hasDefault: true;
83
+ isPrimaryKey: false;
84
+ isAutoincrement: false;
85
+ hasRuntimeDefault: false;
86
+ enumValues: [string, ...string[]];
87
+ baseColumn: never;
88
+ identity: undefined;
89
+ generated: undefined;
90
+ }, {}, {
91
+ $type: ShopPaymentStatus;
92
+ }>;
93
+ amount: import("drizzle-orm/pg-core", { with: { "resolution-mode": "require" } }).PgColumn<{
94
+ name: "amount";
95
+ tableName: "shop_payments";
96
+ dataType: "number";
97
+ columnType: "PgInteger";
98
+ data: number;
99
+ driverParam: string | number;
100
+ notNull: true;
101
+ hasDefault: false;
102
+ isPrimaryKey: false;
103
+ isAutoincrement: false;
104
+ hasRuntimeDefault: false;
105
+ enumValues: undefined;
106
+ baseColumn: never;
107
+ identity: undefined;
108
+ generated: undefined;
109
+ }, {}, {}>;
110
+ currency: import("drizzle-orm/pg-core", { with: { "resolution-mode": "require" } }).PgColumn<{
111
+ name: "currency";
112
+ tableName: "shop_payments";
113
+ dataType: "string";
114
+ columnType: "PgText";
115
+ data: string;
116
+ driverParam: string;
117
+ notNull: true;
118
+ hasDefault: false;
119
+ isPrimaryKey: false;
120
+ isAutoincrement: false;
121
+ hasRuntimeDefault: false;
122
+ enumValues: [string, ...string[]];
123
+ baseColumn: never;
124
+ identity: undefined;
125
+ generated: undefined;
126
+ }, {}, {}>;
127
+ raw: import("drizzle-orm/pg-core", { with: { "resolution-mode": "require" } }).PgColumn<{
128
+ name: "raw";
129
+ tableName: "shop_payments";
130
+ dataType: "json";
131
+ columnType: "PgJsonb";
132
+ data: unknown;
133
+ driverParam: unknown;
134
+ notNull: false;
135
+ hasDefault: false;
136
+ isPrimaryKey: false;
137
+ isAutoincrement: false;
138
+ hasRuntimeDefault: false;
139
+ enumValues: undefined;
140
+ baseColumn: never;
141
+ identity: undefined;
142
+ generated: undefined;
143
+ }, {}, {}>;
144
+ createdAt: import("drizzle-orm/pg-core", { with: { "resolution-mode": "require" } }).PgColumn<{
145
+ name: "created_at";
146
+ tableName: "shop_payments";
147
+ dataType: "date";
148
+ columnType: "PgTimestamp";
149
+ data: Date;
150
+ driverParam: string;
151
+ notNull: true;
152
+ hasDefault: true;
153
+ isPrimaryKey: false;
154
+ isAutoincrement: false;
155
+ hasRuntimeDefault: false;
156
+ enumValues: undefined;
157
+ baseColumn: never;
158
+ identity: undefined;
159
+ generated: undefined;
160
+ }, {}, {}>;
161
+ updatedAt: import("drizzle-orm/pg-core", { with: { "resolution-mode": "require" } }).PgColumn<{
162
+ name: "updated_at";
163
+ tableName: "shop_payments";
164
+ dataType: "date";
165
+ columnType: "PgTimestamp";
166
+ data: Date;
167
+ driverParam: string;
168
+ notNull: true;
169
+ hasDefault: true;
170
+ isPrimaryKey: false;
171
+ isAutoincrement: false;
172
+ hasRuntimeDefault: false;
173
+ enumValues: undefined;
174
+ baseColumn: never;
175
+ identity: undefined;
176
+ generated: undefined;
177
+ }, {}, {}>;
178
+ };
179
+ dialect: "pg";
180
+ }>;
@@ -0,0 +1,16 @@
1
+ import { integer, jsonb, pgTable, text, timestamp, uuid } from 'drizzle-orm/pg-core';
2
+ import { shopOrdersTable } from './order.js';
3
+ export const shopPaymentsTable = pgTable('shop_payments', {
4
+ id: uuid('id').primaryKey().defaultRandom(),
5
+ orderId: uuid('order_id')
6
+ .notNull()
7
+ .references(() => shopOrdersTable.id, { onDelete: 'cascade' }),
8
+ provider: text('provider').notNull(),
9
+ providerRef: text('provider_ref'),
10
+ status: text('status').$type().notNull().default('pending'),
11
+ amount: integer('amount').notNull(),
12
+ currency: text('currency').notNull(),
13
+ raw: jsonb('raw'),
14
+ createdAt: timestamp('created_at', { withTimezone: true }).defaultNow().notNull(),
15
+ updatedAt: timestamp('updated_at', { withTimezone: true }).defaultNow().notNull()
16
+ });
@@ -0,0 +1,143 @@
1
+ export declare const shopProductsTable: import("drizzle-orm/pg-core/table", { with: { "resolution-mode": "require" } }).PgTableWithColumns<{
2
+ name: "shop_products";
3
+ schema: undefined;
4
+ columns: {
5
+ id: import("drizzle-orm/pg-core", { with: { "resolution-mode": "require" } }).PgColumn<{
6
+ name: "id";
7
+ tableName: "shop_products";
8
+ dataType: "string";
9
+ columnType: "PgUUID";
10
+ data: string;
11
+ driverParam: string;
12
+ notNull: true;
13
+ hasDefault: true;
14
+ isPrimaryKey: true;
15
+ isAutoincrement: false;
16
+ hasRuntimeDefault: false;
17
+ enumValues: undefined;
18
+ baseColumn: never;
19
+ identity: undefined;
20
+ generated: undefined;
21
+ }, {}, {}>;
22
+ entryId: import("drizzle-orm/pg-core", { with: { "resolution-mode": "require" } }).PgColumn<{
23
+ name: "entry_id";
24
+ tableName: "shop_products";
25
+ dataType: "string";
26
+ columnType: "PgUUID";
27
+ data: string;
28
+ driverParam: string;
29
+ notNull: true;
30
+ hasDefault: false;
31
+ isPrimaryKey: false;
32
+ isAutoincrement: false;
33
+ hasRuntimeDefault: false;
34
+ enumValues: undefined;
35
+ baseColumn: never;
36
+ identity: undefined;
37
+ generated: undefined;
38
+ }, {}, {}>;
39
+ basePrice: import("drizzle-orm/pg-core", { with: { "resolution-mode": "require" } }).PgColumn<{
40
+ name: "base_price";
41
+ tableName: "shop_products";
42
+ dataType: "number";
43
+ columnType: "PgInteger";
44
+ data: number;
45
+ driverParam: string | number;
46
+ notNull: true;
47
+ hasDefault: false;
48
+ isPrimaryKey: false;
49
+ isAutoincrement: false;
50
+ hasRuntimeDefault: false;
51
+ enumValues: undefined;
52
+ baseColumn: never;
53
+ identity: undefined;
54
+ generated: undefined;
55
+ }, {}, {}>;
56
+ vatRate: import("drizzle-orm/pg-core", { with: { "resolution-mode": "require" } }).PgColumn<{
57
+ name: "vat_rate";
58
+ tableName: "shop_products";
59
+ dataType: "number";
60
+ columnType: "PgInteger";
61
+ data: number;
62
+ driverParam: string | number;
63
+ notNull: true;
64
+ hasDefault: false;
65
+ isPrimaryKey: false;
66
+ isAutoincrement: false;
67
+ hasRuntimeDefault: false;
68
+ enumValues: undefined;
69
+ baseColumn: never;
70
+ identity: undefined;
71
+ generated: undefined;
72
+ }, {}, {}>;
73
+ isActive: import("drizzle-orm/pg-core", { with: { "resolution-mode": "require" } }).PgColumn<{
74
+ name: "is_active";
75
+ tableName: "shop_products";
76
+ dataType: "boolean";
77
+ columnType: "PgBoolean";
78
+ data: boolean;
79
+ driverParam: boolean;
80
+ notNull: true;
81
+ hasDefault: true;
82
+ isPrimaryKey: false;
83
+ isAutoincrement: false;
84
+ hasRuntimeDefault: false;
85
+ enumValues: undefined;
86
+ baseColumn: never;
87
+ identity: undefined;
88
+ generated: undefined;
89
+ }, {}, {}>;
90
+ sortOrder: import("drizzle-orm/pg-core", { with: { "resolution-mode": "require" } }).PgColumn<{
91
+ name: "sort_order";
92
+ tableName: "shop_products";
93
+ dataType: "number";
94
+ columnType: "PgInteger";
95
+ data: number;
96
+ driverParam: string | number;
97
+ notNull: false;
98
+ hasDefault: false;
99
+ isPrimaryKey: false;
100
+ isAutoincrement: false;
101
+ hasRuntimeDefault: false;
102
+ enumValues: undefined;
103
+ baseColumn: never;
104
+ identity: undefined;
105
+ generated: undefined;
106
+ }, {}, {}>;
107
+ createdAt: import("drizzle-orm/pg-core", { with: { "resolution-mode": "require" } }).PgColumn<{
108
+ name: "created_at";
109
+ tableName: "shop_products";
110
+ dataType: "date";
111
+ columnType: "PgTimestamp";
112
+ data: Date;
113
+ driverParam: string;
114
+ notNull: true;
115
+ hasDefault: true;
116
+ isPrimaryKey: false;
117
+ isAutoincrement: false;
118
+ hasRuntimeDefault: false;
119
+ enumValues: undefined;
120
+ baseColumn: never;
121
+ identity: undefined;
122
+ generated: undefined;
123
+ }, {}, {}>;
124
+ updatedAt: import("drizzle-orm/pg-core", { with: { "resolution-mode": "require" } }).PgColumn<{
125
+ name: "updated_at";
126
+ tableName: "shop_products";
127
+ dataType: "date";
128
+ columnType: "PgTimestamp";
129
+ data: Date;
130
+ driverParam: string;
131
+ notNull: true;
132
+ hasDefault: true;
133
+ isPrimaryKey: false;
134
+ isAutoincrement: false;
135
+ hasRuntimeDefault: false;
136
+ enumValues: undefined;
137
+ baseColumn: never;
138
+ identity: undefined;
139
+ generated: undefined;
140
+ }, {}, {}>;
141
+ };
142
+ dialect: "pg";
143
+ }>;
@@ -0,0 +1,15 @@
1
+ import { boolean, integer, pgTable, timestamp, uuid } from 'drizzle-orm/pg-core';
2
+ import { entriesTable } from '../entry.js';
3
+ export const shopProductsTable = pgTable('shop_products', {
4
+ id: uuid('id').primaryKey().defaultRandom(),
5
+ entryId: uuid('entry_id')
6
+ .notNull()
7
+ .unique()
8
+ .references(() => entriesTable.id, { onDelete: 'cascade' }),
9
+ basePrice: integer('base_price').notNull(),
10
+ vatRate: integer('vat_rate').notNull(),
11
+ isActive: boolean('is_active').default(true).notNull(),
12
+ sortOrder: integer('sort_order'),
13
+ createdAt: timestamp('created_at', { withTimezone: true }).defaultNow().notNull(),
14
+ updatedAt: timestamp('updated_at', { withTimezone: true }).defaultNow().notNull()
15
+ });
@@ -0,0 +1,164 @@
1
+ export declare const shopProductVariantsTable: import("drizzle-orm/pg-core/table", { with: { "resolution-mode": "require" } }).PgTableWithColumns<{
2
+ name: "shop_product_variants";
3
+ schema: undefined;
4
+ columns: {
5
+ id: import("drizzle-orm/pg-core", { with: { "resolution-mode": "require" } }).PgColumn<{
6
+ name: "id";
7
+ tableName: "shop_product_variants";
8
+ dataType: "string";
9
+ columnType: "PgUUID";
10
+ data: string;
11
+ driverParam: string;
12
+ notNull: true;
13
+ hasDefault: true;
14
+ isPrimaryKey: true;
15
+ isAutoincrement: false;
16
+ hasRuntimeDefault: false;
17
+ enumValues: undefined;
18
+ baseColumn: never;
19
+ identity: undefined;
20
+ generated: undefined;
21
+ }, {}, {}>;
22
+ productId: import("drizzle-orm/pg-core", { with: { "resolution-mode": "require" } }).PgColumn<{
23
+ name: "product_id";
24
+ tableName: "shop_product_variants";
25
+ dataType: "string";
26
+ columnType: "PgUUID";
27
+ data: string;
28
+ driverParam: string;
29
+ notNull: true;
30
+ hasDefault: false;
31
+ isPrimaryKey: false;
32
+ isAutoincrement: false;
33
+ hasRuntimeDefault: false;
34
+ enumValues: undefined;
35
+ baseColumn: never;
36
+ identity: undefined;
37
+ generated: undefined;
38
+ }, {}, {}>;
39
+ sku: import("drizzle-orm/pg-core", { with: { "resolution-mode": "require" } }).PgColumn<{
40
+ name: "sku";
41
+ tableName: "shop_product_variants";
42
+ dataType: "string";
43
+ columnType: "PgText";
44
+ data: string;
45
+ driverParam: string;
46
+ notNull: false;
47
+ hasDefault: false;
48
+ isPrimaryKey: false;
49
+ isAutoincrement: false;
50
+ hasRuntimeDefault: false;
51
+ enumValues: [string, ...string[]];
52
+ baseColumn: never;
53
+ identity: undefined;
54
+ generated: undefined;
55
+ }, {}, {}>;
56
+ name: import("drizzle-orm/pg-core", { with: { "resolution-mode": "require" } }).PgColumn<{
57
+ name: "name";
58
+ tableName: "shop_product_variants";
59
+ dataType: "json";
60
+ columnType: "PgJsonb";
61
+ data: Record<string, string>;
62
+ driverParam: unknown;
63
+ notNull: false;
64
+ hasDefault: false;
65
+ isPrimaryKey: false;
66
+ isAutoincrement: false;
67
+ hasRuntimeDefault: false;
68
+ enumValues: undefined;
69
+ baseColumn: never;
70
+ identity: undefined;
71
+ generated: undefined;
72
+ }, {}, {
73
+ $type: Record<string, string>;
74
+ }>;
75
+ priceDelta: import("drizzle-orm/pg-core", { with: { "resolution-mode": "require" } }).PgColumn<{
76
+ name: "price_delta";
77
+ tableName: "shop_product_variants";
78
+ dataType: "number";
79
+ columnType: "PgInteger";
80
+ data: number;
81
+ driverParam: string | number;
82
+ notNull: true;
83
+ hasDefault: true;
84
+ isPrimaryKey: false;
85
+ isAutoincrement: false;
86
+ hasRuntimeDefault: false;
87
+ enumValues: undefined;
88
+ baseColumn: never;
89
+ identity: undefined;
90
+ generated: undefined;
91
+ }, {}, {}>;
92
+ stock: import("drizzle-orm/pg-core", { with: { "resolution-mode": "require" } }).PgColumn<{
93
+ name: "stock";
94
+ tableName: "shop_product_variants";
95
+ dataType: "number";
96
+ columnType: "PgInteger";
97
+ data: number;
98
+ driverParam: string | number;
99
+ notNull: false;
100
+ hasDefault: false;
101
+ isPrimaryKey: false;
102
+ isAutoincrement: false;
103
+ hasRuntimeDefault: false;
104
+ enumValues: undefined;
105
+ baseColumn: never;
106
+ identity: undefined;
107
+ generated: undefined;
108
+ }, {}, {}>;
109
+ attributes: import("drizzle-orm/pg-core", { with: { "resolution-mode": "require" } }).PgColumn<{
110
+ name: "attributes";
111
+ tableName: "shop_product_variants";
112
+ dataType: "json";
113
+ columnType: "PgJsonb";
114
+ data: Record<string, string>;
115
+ driverParam: unknown;
116
+ notNull: false;
117
+ hasDefault: false;
118
+ isPrimaryKey: false;
119
+ isAutoincrement: false;
120
+ hasRuntimeDefault: false;
121
+ enumValues: undefined;
122
+ baseColumn: never;
123
+ identity: undefined;
124
+ generated: undefined;
125
+ }, {}, {
126
+ $type: Record<string, string>;
127
+ }>;
128
+ sortOrder: import("drizzle-orm/pg-core", { with: { "resolution-mode": "require" } }).PgColumn<{
129
+ name: "sort_order";
130
+ tableName: "shop_product_variants";
131
+ dataType: "number";
132
+ columnType: "PgInteger";
133
+ data: number;
134
+ driverParam: string | number;
135
+ notNull: false;
136
+ hasDefault: false;
137
+ isPrimaryKey: false;
138
+ isAutoincrement: false;
139
+ hasRuntimeDefault: false;
140
+ enumValues: undefined;
141
+ baseColumn: never;
142
+ identity: undefined;
143
+ generated: undefined;
144
+ }, {}, {}>;
145
+ createdAt: import("drizzle-orm/pg-core", { with: { "resolution-mode": "require" } }).PgColumn<{
146
+ name: "created_at";
147
+ tableName: "shop_product_variants";
148
+ dataType: "date";
149
+ columnType: "PgTimestamp";
150
+ data: Date;
151
+ driverParam: string;
152
+ notNull: true;
153
+ hasDefault: true;
154
+ isPrimaryKey: false;
155
+ isAutoincrement: false;
156
+ hasRuntimeDefault: false;
157
+ enumValues: undefined;
158
+ baseColumn: never;
159
+ identity: undefined;
160
+ generated: undefined;
161
+ }, {}, {}>;
162
+ };
163
+ dialect: "pg";
164
+ }>;
@@ -0,0 +1,15 @@
1
+ import { integer, jsonb, pgTable, text, timestamp, uuid } from 'drizzle-orm/pg-core';
2
+ import { shopProductsTable } from './product.js';
3
+ export const shopProductVariantsTable = pgTable('shop_product_variants', {
4
+ id: uuid('id').primaryKey().defaultRandom(),
5
+ productId: uuid('product_id')
6
+ .notNull()
7
+ .references(() => shopProductsTable.id, { onDelete: 'cascade' }),
8
+ sku: text('sku'),
9
+ name: jsonb('name').$type(),
10
+ priceDelta: integer('price_delta').default(0).notNull(),
11
+ stock: integer('stock'),
12
+ attributes: jsonb('attributes').$type(),
13
+ sortOrder: integer('sort_order'),
14
+ createdAt: timestamp('created_at', { withTimezone: true }).defaultNow().notNull()
15
+ });