@contractspec/example.marketplace 1.44.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.
- package/LICENSE +21 -0
- package/README.md +141 -0
- package/dist/docs/index.d.ts +1 -0
- package/dist/docs/index.js +1 -0
- package/dist/docs/marketplace.docblock.d.ts +1 -0
- package/dist/docs/marketplace.docblock.js +115 -0
- package/dist/docs/marketplace.docblock.js.map +1 -0
- package/dist/entities/index.d.ts +309 -0
- package/dist/entities/index.d.ts.map +1 -0
- package/dist/entities/index.js +46 -0
- package/dist/entities/index.js.map +1 -0
- package/dist/entities/order.d.ts +105 -0
- package/dist/entities/order.d.ts.map +1 -0
- package/dist/entities/order.js +173 -0
- package/dist/entities/order.js.map +1 -0
- package/dist/entities/payout.d.ts +92 -0
- package/dist/entities/payout.d.ts.map +1 -0
- package/dist/entities/payout.js +162 -0
- package/dist/entities/payout.js.map +1 -0
- package/dist/entities/product.d.ts +93 -0
- package/dist/entities/product.d.ts.map +1 -0
- package/dist/entities/product.js +161 -0
- package/dist/entities/product.js.map +1 -0
- package/dist/entities/review.d.ts +83 -0
- package/dist/entities/review.d.ts.map +1 -0
- package/dist/entities/review.js +152 -0
- package/dist/entities/review.js.map +1 -0
- package/dist/entities/store.d.ts +60 -0
- package/dist/entities/store.d.ts.map +1 -0
- package/dist/entities/store.js +110 -0
- package/dist/entities/store.js.map +1 -0
- package/dist/example.d.ts +40 -0
- package/dist/example.d.ts.map +1 -0
- package/dist/example.js +51 -0
- package/dist/example.js.map +1 -0
- package/dist/index.d.ts +26 -0
- package/dist/index.js +27 -0
- package/dist/marketplace.feature.d.ts +12 -0
- package/dist/marketplace.feature.d.ts.map +1 -0
- package/dist/marketplace.feature.js +310 -0
- package/dist/marketplace.feature.js.map +1 -0
- package/dist/order/index.d.ts +5 -0
- package/dist/order/index.js +6 -0
- package/dist/order/order.enum.d.ts +10 -0
- package/dist/order/order.enum.d.ts.map +1 -0
- package/dist/order/order.enum.js +22 -0
- package/dist/order/order.enum.js.map +1 -0
- package/dist/order/order.event.d.ts +145 -0
- package/dist/order/order.event.d.ts.map +1 -0
- package/dist/order/order.event.js +216 -0
- package/dist/order/order.event.js.map +1 -0
- package/dist/order/order.operations.d.ts +368 -0
- package/dist/order/order.operations.d.ts.map +1 -0
- package/dist/order/order.operations.js +119 -0
- package/dist/order/order.operations.js.map +1 -0
- package/dist/order/order.presentation.d.ts +9 -0
- package/dist/order/order.presentation.d.ts.map +1 -0
- package/dist/order/order.presentation.js +86 -0
- package/dist/order/order.presentation.js.map +1 -0
- package/dist/order/order.schema.d.ts +165 -0
- package/dist/order/order.schema.d.ts.map +1 -0
- package/dist/order/order.schema.js +155 -0
- package/dist/order/order.schema.js.map +1 -0
- package/dist/payout/index.d.ts +5 -0
- package/dist/payout/index.js +6 -0
- package/dist/payout/payout.enum.d.ts +10 -0
- package/dist/payout/payout.enum.d.ts.map +1 -0
- package/dist/payout/payout.enum.js +17 -0
- package/dist/payout/payout.enum.js.map +1 -0
- package/dist/payout/payout.event.d.ts +63 -0
- package/dist/payout/payout.event.d.ts.map +1 -0
- package/dist/payout/payout.event.js +92 -0
- package/dist/payout/payout.event.js.map +1 -0
- package/dist/payout/payout.operations.d.ts +97 -0
- package/dist/payout/payout.operations.d.ts.map +1 -0
- package/dist/payout/payout.operations.js +53 -0
- package/dist/payout/payout.operations.js.map +1 -0
- package/dist/payout/payout.presentation.d.ts +8 -0
- package/dist/payout/payout.presentation.d.ts.map +1 -0
- package/dist/payout/payout.presentation.js +60 -0
- package/dist/payout/payout.presentation.js.map +1 -0
- package/dist/payout/payout.schema.d.ts +157 -0
- package/dist/payout/payout.schema.d.ts.map +1 -0
- package/dist/payout/payout.schema.js +116 -0
- package/dist/payout/payout.schema.js.map +1 -0
- package/dist/product/index.d.ts +5 -0
- package/dist/product/index.js +6 -0
- package/dist/product/product.enum.d.ts +10 -0
- package/dist/product/product.enum.d.ts.map +1 -0
- package/dist/product/product.enum.js +18 -0
- package/dist/product/product.enum.js.map +1 -0
- package/dist/product/product.event.d.ts +73 -0
- package/dist/product/product.event.d.ts.map +1 -0
- package/dist/product/product.event.js +120 -0
- package/dist/product/product.event.js.map +1 -0
- package/dist/product/product.operations.d.ts +273 -0
- package/dist/product/product.operations.d.ts.map +1 -0
- package/dist/product/product.operations.js +108 -0
- package/dist/product/product.operations.js.map +1 -0
- package/dist/product/product.presentation.d.ts +9 -0
- package/dist/product/product.presentation.d.ts.map +1 -0
- package/dist/product/product.presentation.js +86 -0
- package/dist/product/product.presentation.js.map +1 -0
- package/dist/product/product.schema.d.ts +218 -0
- package/dist/product/product.schema.d.ts.map +1 -0
- package/dist/product/product.schema.js +176 -0
- package/dist/product/product.schema.js.map +1 -0
- package/dist/review/index.d.ts +5 -0
- package/dist/review/index.js +6 -0
- package/dist/review/review.enum.d.ts +10 -0
- package/dist/review/review.enum.d.ts.map +1 -0
- package/dist/review/review.enum.js +16 -0
- package/dist/review/review.enum.js.map +1 -0
- package/dist/review/review.event.d.ts +55 -0
- package/dist/review/review.event.d.ts.map +1 -0
- package/dist/review/review.event.js +84 -0
- package/dist/review/review.event.js.map +1 -0
- package/dist/review/review.operations.d.ts +237 -0
- package/dist/review/review.operations.d.ts.map +1 -0
- package/dist/review/review.operations.js +106 -0
- package/dist/review/review.operations.js.map +1 -0
- package/dist/review/review.presentation.d.ts +8 -0
- package/dist/review/review.presentation.d.ts.map +1 -0
- package/dist/review/review.presentation.js +60 -0
- package/dist/review/review.presentation.js.map +1 -0
- package/dist/review/review.schema.d.ts +190 -0
- package/dist/review/review.schema.d.ts.map +1 -0
- package/dist/review/review.schema.js +156 -0
- package/dist/review/review.schema.js.map +1 -0
- package/dist/store/index.d.ts +5 -0
- package/dist/store/index.js +6 -0
- package/dist/store/store.enum.d.ts +10 -0
- package/dist/store/store.enum.d.ts.map +1 -0
- package/dist/store/store.enum.js +16 -0
- package/dist/store/store.enum.js.map +1 -0
- package/dist/store/store.event.d.ts +51 -0
- package/dist/store/store.event.d.ts.map +1 -0
- package/dist/store/store.event.js +80 -0
- package/dist/store/store.event.js.map +1 -0
- package/dist/store/store.operations.d.ts +131 -0
- package/dist/store/store.operations.d.ts.map +1 -0
- package/dist/store/store.operations.js +61 -0
- package/dist/store/store.operations.js.map +1 -0
- package/dist/store/store.presentation.d.ts +8 -0
- package/dist/store/store.presentation.d.ts.map +1 -0
- package/dist/store/store.presentation.js +60 -0
- package/dist/store/store.presentation.js.map +1 -0
- package/dist/store/store.schema.d.ts +84 -0
- package/dist/store/store.schema.d.ts.map +1 -0
- package/dist/store/store.schema.js +93 -0
- package/dist/store/store.schema.js.map +1 -0
- package/package.json +141 -0
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
import * as _contractspec_lib_schema479 from "@contractspec/lib.schema";
|
|
2
|
+
|
|
3
|
+
//#region src/entities/order.d.ts
|
|
4
|
+
/**
|
|
5
|
+
* Order status enum.
|
|
6
|
+
*/
|
|
7
|
+
declare const OrderStatusEnum: _contractspec_lib_schema479.EntityEnumDef;
|
|
8
|
+
/**
|
|
9
|
+
* Payment status enum.
|
|
10
|
+
*/
|
|
11
|
+
declare const PaymentStatusEnum: _contractspec_lib_schema479.EntityEnumDef;
|
|
12
|
+
/**
|
|
13
|
+
* Order entity - a purchase transaction.
|
|
14
|
+
*/
|
|
15
|
+
declare const OrderEntity: _contractspec_lib_schema479.EntitySpec<{
|
|
16
|
+
id: _contractspec_lib_schema479.EntityScalarField;
|
|
17
|
+
orderNumber: _contractspec_lib_schema479.EntityScalarField;
|
|
18
|
+
buyerId: _contractspec_lib_schema479.EntityScalarField;
|
|
19
|
+
storeId: _contractspec_lib_schema479.EntityScalarField;
|
|
20
|
+
status: _contractspec_lib_schema479.EntityEnumField;
|
|
21
|
+
paymentStatus: _contractspec_lib_schema479.EntityEnumField;
|
|
22
|
+
subtotal: _contractspec_lib_schema479.EntityScalarField;
|
|
23
|
+
shippingTotal: _contractspec_lib_schema479.EntityScalarField;
|
|
24
|
+
taxTotal: _contractspec_lib_schema479.EntityScalarField;
|
|
25
|
+
discountTotal: _contractspec_lib_schema479.EntityScalarField;
|
|
26
|
+
total: _contractspec_lib_schema479.EntityScalarField;
|
|
27
|
+
currency: _contractspec_lib_schema479.EntityScalarField;
|
|
28
|
+
platformFee: _contractspec_lib_schema479.EntityScalarField;
|
|
29
|
+
sellerPayout: _contractspec_lib_schema479.EntityScalarField;
|
|
30
|
+
shippingAddress: _contractspec_lib_schema479.EntityScalarField;
|
|
31
|
+
billingAddress: _contractspec_lib_schema479.EntityScalarField;
|
|
32
|
+
shippingMethod: _contractspec_lib_schema479.EntityScalarField;
|
|
33
|
+
trackingNumber: _contractspec_lib_schema479.EntityScalarField;
|
|
34
|
+
trackingUrl: _contractspec_lib_schema479.EntityScalarField;
|
|
35
|
+
paymentMethod: _contractspec_lib_schema479.EntityScalarField;
|
|
36
|
+
paymentIntentId: _contractspec_lib_schema479.EntityScalarField;
|
|
37
|
+
buyerNote: _contractspec_lib_schema479.EntityScalarField;
|
|
38
|
+
sellerNote: _contractspec_lib_schema479.EntityScalarField;
|
|
39
|
+
internalNote: _contractspec_lib_schema479.EntityScalarField;
|
|
40
|
+
createdAt: _contractspec_lib_schema479.EntityScalarField;
|
|
41
|
+
updatedAt: _contractspec_lib_schema479.EntityScalarField;
|
|
42
|
+
paidAt: _contractspec_lib_schema479.EntityScalarField;
|
|
43
|
+
shippedAt: _contractspec_lib_schema479.EntityScalarField;
|
|
44
|
+
deliveredAt: _contractspec_lib_schema479.EntityScalarField;
|
|
45
|
+
completedAt: _contractspec_lib_schema479.EntityScalarField;
|
|
46
|
+
cancelledAt: _contractspec_lib_schema479.EntityScalarField;
|
|
47
|
+
store: _contractspec_lib_schema479.EntityRelationField;
|
|
48
|
+
items: _contractspec_lib_schema479.EntityRelationField;
|
|
49
|
+
refunds: _contractspec_lib_schema479.EntityRelationField;
|
|
50
|
+
}>;
|
|
51
|
+
/**
|
|
52
|
+
* Order item entity - individual items in an order.
|
|
53
|
+
*/
|
|
54
|
+
declare const OrderItemEntity: _contractspec_lib_schema479.EntitySpec<{
|
|
55
|
+
id: _contractspec_lib_schema479.EntityScalarField;
|
|
56
|
+
orderId: _contractspec_lib_schema479.EntityScalarField;
|
|
57
|
+
productId: _contractspec_lib_schema479.EntityScalarField;
|
|
58
|
+
variantId: _contractspec_lib_schema479.EntityScalarField;
|
|
59
|
+
productName: _contractspec_lib_schema479.EntityScalarField;
|
|
60
|
+
variantName: _contractspec_lib_schema479.EntityScalarField;
|
|
61
|
+
sku: _contractspec_lib_schema479.EntityScalarField;
|
|
62
|
+
unitPrice: _contractspec_lib_schema479.EntityScalarField;
|
|
63
|
+
quantity: _contractspec_lib_schema479.EntityScalarField;
|
|
64
|
+
subtotal: _contractspec_lib_schema479.EntityScalarField;
|
|
65
|
+
quantityFulfilled: _contractspec_lib_schema479.EntityScalarField;
|
|
66
|
+
quantityRefunded: _contractspec_lib_schema479.EntityScalarField;
|
|
67
|
+
createdAt: _contractspec_lib_schema479.EntityScalarField;
|
|
68
|
+
updatedAt: _contractspec_lib_schema479.EntityScalarField;
|
|
69
|
+
order: _contractspec_lib_schema479.EntityRelationField;
|
|
70
|
+
product: _contractspec_lib_schema479.EntityRelationField;
|
|
71
|
+
}>;
|
|
72
|
+
/**
|
|
73
|
+
* Refund entity - refund records for orders.
|
|
74
|
+
*/
|
|
75
|
+
declare const RefundEntity: _contractspec_lib_schema479.EntitySpec<{
|
|
76
|
+
id: _contractspec_lib_schema479.EntityScalarField;
|
|
77
|
+
orderId: _contractspec_lib_schema479.EntityScalarField;
|
|
78
|
+
amount: _contractspec_lib_schema479.EntityScalarField;
|
|
79
|
+
currency: _contractspec_lib_schema479.EntityScalarField;
|
|
80
|
+
reason: _contractspec_lib_schema479.EntityScalarField;
|
|
81
|
+
notes: _contractspec_lib_schema479.EntityScalarField;
|
|
82
|
+
status: _contractspec_lib_schema479.EntityScalarField;
|
|
83
|
+
refundId: _contractspec_lib_schema479.EntityScalarField;
|
|
84
|
+
issuedBy: _contractspec_lib_schema479.EntityScalarField;
|
|
85
|
+
createdAt: _contractspec_lib_schema479.EntityScalarField;
|
|
86
|
+
processedAt: _contractspec_lib_schema479.EntityScalarField;
|
|
87
|
+
order: _contractspec_lib_schema479.EntityRelationField;
|
|
88
|
+
items: _contractspec_lib_schema479.EntityRelationField;
|
|
89
|
+
}>;
|
|
90
|
+
/**
|
|
91
|
+
* Refund item entity - items being refunded.
|
|
92
|
+
*/
|
|
93
|
+
declare const RefundItemEntity: _contractspec_lib_schema479.EntitySpec<{
|
|
94
|
+
id: _contractspec_lib_schema479.EntityScalarField;
|
|
95
|
+
refundId: _contractspec_lib_schema479.EntityScalarField;
|
|
96
|
+
orderItemId: _contractspec_lib_schema479.EntityScalarField;
|
|
97
|
+
quantity: _contractspec_lib_schema479.EntityScalarField;
|
|
98
|
+
amount: _contractspec_lib_schema479.EntityScalarField;
|
|
99
|
+
createdAt: _contractspec_lib_schema479.EntityScalarField;
|
|
100
|
+
refund: _contractspec_lib_schema479.EntityRelationField;
|
|
101
|
+
orderItem: _contractspec_lib_schema479.EntityRelationField;
|
|
102
|
+
}>;
|
|
103
|
+
//#endregion
|
|
104
|
+
export { OrderEntity, OrderItemEntity, OrderStatusEnum, PaymentStatusEnum, RefundEntity, RefundItemEntity };
|
|
105
|
+
//# sourceMappingURL=order.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"order.d.ts","names":[],"sources":["../../src/entities/order.ts"],"sourcesContent":[],"mappings":";;;;;;AAUa,cAAA,eAgBX,EAAA,2BAAA,CAhB0B,aAgB1B;AAKF;AAiBA;;cAjBa,mBAYX,2BAAA,CAZ4B;;;;cAiBjB,yCAAW;MAsEtB,2BAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;4DAtEsB;EAAA,WAAA,+CAAA;EA2EX,WAAA,+CAoCX;EAAA,KAAA,iDAAA;;;;;;;cApCW,6CAAe;MAoC1B,2BAAA,CAAA;;;;;;;;yDApC0B;EAAA,QAAA,+CAAA;EAyCf,iBAsCX,+CAAA;EAAA,gBAAA,+CAAA;;;;;;;;;cAtCW,0CAAY;MAsCvB,2BAAA,CAAA;;;yDAtCuB;EAAA,MAAA,+CAAA;EA2CZ,KAAA,+CAsBX;EAAA,MAAA,+CAAA;;;;;;;;;;;cAtBW,8CAAgB;MAsB3B,2BAAA,CAAA"}
|
|
@@ -0,0 +1,173 @@
|
|
|
1
|
+
import { defineEntity, defineEntityEnum, field, index } from "@contractspec/lib.schema";
|
|
2
|
+
|
|
3
|
+
//#region src/entities/order.ts
|
|
4
|
+
/**
|
|
5
|
+
* Order status enum.
|
|
6
|
+
*/
|
|
7
|
+
const OrderStatusEnum = defineEntityEnum({
|
|
8
|
+
name: "OrderStatus",
|
|
9
|
+
values: [
|
|
10
|
+
"PENDING",
|
|
11
|
+
"PAID",
|
|
12
|
+
"PROCESSING",
|
|
13
|
+
"SHIPPED",
|
|
14
|
+
"DELIVERED",
|
|
15
|
+
"COMPLETED",
|
|
16
|
+
"CANCELLED",
|
|
17
|
+
"REFUNDED",
|
|
18
|
+
"PARTIALLY_REFUNDED",
|
|
19
|
+
"DISPUTED"
|
|
20
|
+
],
|
|
21
|
+
schema: "marketplace",
|
|
22
|
+
description: "Status of an order."
|
|
23
|
+
});
|
|
24
|
+
/**
|
|
25
|
+
* Payment status enum.
|
|
26
|
+
*/
|
|
27
|
+
const PaymentStatusEnum = defineEntityEnum({
|
|
28
|
+
name: "PaymentStatus",
|
|
29
|
+
values: [
|
|
30
|
+
"PENDING",
|
|
31
|
+
"AUTHORIZED",
|
|
32
|
+
"CAPTURED",
|
|
33
|
+
"FAILED",
|
|
34
|
+
"REFUNDED",
|
|
35
|
+
"VOIDED"
|
|
36
|
+
],
|
|
37
|
+
schema: "marketplace",
|
|
38
|
+
description: "Status of payment."
|
|
39
|
+
});
|
|
40
|
+
/**
|
|
41
|
+
* Order entity - a purchase transaction.
|
|
42
|
+
*/
|
|
43
|
+
const OrderEntity = defineEntity({
|
|
44
|
+
name: "Order",
|
|
45
|
+
description: "A purchase order on the marketplace.",
|
|
46
|
+
schema: "marketplace",
|
|
47
|
+
map: "order",
|
|
48
|
+
fields: {
|
|
49
|
+
id: field.id({ description: "Unique order ID" }),
|
|
50
|
+
orderNumber: field.string({ description: "Human-readable order number" }),
|
|
51
|
+
buyerId: field.foreignKey({ description: "Buyer user ID" }),
|
|
52
|
+
storeId: field.foreignKey({ description: "Seller store ID" }),
|
|
53
|
+
status: field.enum("OrderStatus", { default: "PENDING" }),
|
|
54
|
+
paymentStatus: field.enum("PaymentStatus", { default: "PENDING" }),
|
|
55
|
+
subtotal: field.decimal({ description: "Sum of item prices" }),
|
|
56
|
+
shippingTotal: field.decimal({ default: 0 }),
|
|
57
|
+
taxTotal: field.decimal({ default: 0 }),
|
|
58
|
+
discountTotal: field.decimal({ default: 0 }),
|
|
59
|
+
total: field.decimal({ description: "Final total" }),
|
|
60
|
+
currency: field.string({ default: "\"USD\"" }),
|
|
61
|
+
platformFee: field.decimal({ description: "Platform commission amount" }),
|
|
62
|
+
sellerPayout: field.decimal({ description: "Amount due to seller" }),
|
|
63
|
+
shippingAddress: field.json({ isOptional: true }),
|
|
64
|
+
billingAddress: field.json({ isOptional: true }),
|
|
65
|
+
shippingMethod: field.string({ isOptional: true }),
|
|
66
|
+
trackingNumber: field.string({ isOptional: true }),
|
|
67
|
+
trackingUrl: field.string({ isOptional: true }),
|
|
68
|
+
paymentMethod: field.string({ isOptional: true }),
|
|
69
|
+
paymentIntentId: field.string({ isOptional: true }),
|
|
70
|
+
buyerNote: field.string({ isOptional: true }),
|
|
71
|
+
sellerNote: field.string({ isOptional: true }),
|
|
72
|
+
internalNote: field.string({ isOptional: true }),
|
|
73
|
+
createdAt: field.createdAt(),
|
|
74
|
+
updatedAt: field.updatedAt(),
|
|
75
|
+
paidAt: field.dateTime({ isOptional: true }),
|
|
76
|
+
shippedAt: field.dateTime({ isOptional: true }),
|
|
77
|
+
deliveredAt: field.dateTime({ isOptional: true }),
|
|
78
|
+
completedAt: field.dateTime({ isOptional: true }),
|
|
79
|
+
cancelledAt: field.dateTime({ isOptional: true }),
|
|
80
|
+
store: field.belongsTo("Store", ["storeId"], ["id"]),
|
|
81
|
+
items: field.hasMany("OrderItem"),
|
|
82
|
+
refunds: field.hasMany("Refund")
|
|
83
|
+
},
|
|
84
|
+
indexes: [
|
|
85
|
+
index.unique(["orderNumber"]),
|
|
86
|
+
index.on(["buyerId", "status"]),
|
|
87
|
+
index.on(["storeId", "status"]),
|
|
88
|
+
index.on(["status", "createdAt"]),
|
|
89
|
+
index.on(["paymentStatus"]),
|
|
90
|
+
index.on(["createdAt"])
|
|
91
|
+
],
|
|
92
|
+
enums: [OrderStatusEnum, PaymentStatusEnum]
|
|
93
|
+
});
|
|
94
|
+
/**
|
|
95
|
+
* Order item entity - individual items in an order.
|
|
96
|
+
*/
|
|
97
|
+
const OrderItemEntity = defineEntity({
|
|
98
|
+
name: "OrderItem",
|
|
99
|
+
description: "An item within an order.",
|
|
100
|
+
schema: "marketplace",
|
|
101
|
+
map: "order_item",
|
|
102
|
+
fields: {
|
|
103
|
+
id: field.id(),
|
|
104
|
+
orderId: field.foreignKey(),
|
|
105
|
+
productId: field.foreignKey(),
|
|
106
|
+
variantId: field.string({ isOptional: true }),
|
|
107
|
+
productName: field.string(),
|
|
108
|
+
variantName: field.string({ isOptional: true }),
|
|
109
|
+
sku: field.string({ isOptional: true }),
|
|
110
|
+
unitPrice: field.decimal(),
|
|
111
|
+
quantity: field.int(),
|
|
112
|
+
subtotal: field.decimal(),
|
|
113
|
+
quantityFulfilled: field.int({ default: 0 }),
|
|
114
|
+
quantityRefunded: field.int({ default: 0 }),
|
|
115
|
+
createdAt: field.createdAt(),
|
|
116
|
+
updatedAt: field.updatedAt(),
|
|
117
|
+
order: field.belongsTo("Order", ["orderId"], ["id"], { onDelete: "Cascade" }),
|
|
118
|
+
product: field.belongsTo("Product", ["productId"], ["id"])
|
|
119
|
+
},
|
|
120
|
+
indexes: [index.on(["orderId"]), index.on(["productId"])]
|
|
121
|
+
});
|
|
122
|
+
/**
|
|
123
|
+
* Refund entity - refund records for orders.
|
|
124
|
+
*/
|
|
125
|
+
const RefundEntity = defineEntity({
|
|
126
|
+
name: "Refund",
|
|
127
|
+
description: "A refund for an order.",
|
|
128
|
+
schema: "marketplace",
|
|
129
|
+
map: "refund",
|
|
130
|
+
fields: {
|
|
131
|
+
id: field.id(),
|
|
132
|
+
orderId: field.foreignKey(),
|
|
133
|
+
amount: field.decimal(),
|
|
134
|
+
currency: field.string(),
|
|
135
|
+
reason: field.string(),
|
|
136
|
+
notes: field.string({ isOptional: true }),
|
|
137
|
+
status: field.string({ default: "\"PENDING\"" }),
|
|
138
|
+
refundId: field.string({
|
|
139
|
+
isOptional: true,
|
|
140
|
+
description: "Payment provider refund ID"
|
|
141
|
+
}),
|
|
142
|
+
issuedBy: field.foreignKey({ description: "User who issued the refund" }),
|
|
143
|
+
createdAt: field.createdAt(),
|
|
144
|
+
processedAt: field.dateTime({ isOptional: true }),
|
|
145
|
+
order: field.belongsTo("Order", ["orderId"], ["id"]),
|
|
146
|
+
items: field.hasMany("RefundItem")
|
|
147
|
+
},
|
|
148
|
+
indexes: [index.on(["orderId"]), index.on(["status"])]
|
|
149
|
+
});
|
|
150
|
+
/**
|
|
151
|
+
* Refund item entity - items being refunded.
|
|
152
|
+
*/
|
|
153
|
+
const RefundItemEntity = defineEntity({
|
|
154
|
+
name: "RefundItem",
|
|
155
|
+
description: "An item within a refund.",
|
|
156
|
+
schema: "marketplace",
|
|
157
|
+
map: "refund_item",
|
|
158
|
+
fields: {
|
|
159
|
+
id: field.id(),
|
|
160
|
+
refundId: field.foreignKey(),
|
|
161
|
+
orderItemId: field.foreignKey(),
|
|
162
|
+
quantity: field.int(),
|
|
163
|
+
amount: field.decimal(),
|
|
164
|
+
createdAt: field.createdAt(),
|
|
165
|
+
refund: field.belongsTo("Refund", ["refundId"], ["id"], { onDelete: "Cascade" }),
|
|
166
|
+
orderItem: field.belongsTo("OrderItem", ["orderItemId"], ["id"])
|
|
167
|
+
},
|
|
168
|
+
indexes: [index.on(["refundId"]), index.on(["orderItemId"])]
|
|
169
|
+
});
|
|
170
|
+
|
|
171
|
+
//#endregion
|
|
172
|
+
export { OrderEntity, OrderItemEntity, OrderStatusEnum, PaymentStatusEnum, RefundEntity, RefundItemEntity };
|
|
173
|
+
//# sourceMappingURL=order.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"order.js","names":[],"sources":["../../src/entities/order.ts"],"sourcesContent":["import {\n defineEntity,\n defineEntityEnum,\n field,\n index,\n} from '@contractspec/lib.schema';\n\n/**\n * Order status enum.\n */\nexport const OrderStatusEnum = defineEntityEnum({\n name: 'OrderStatus',\n values: [\n 'PENDING', // Order created, awaiting payment\n 'PAID', // Payment received\n 'PROCESSING', // Being prepared by seller\n 'SHIPPED', // Shipped to buyer\n 'DELIVERED', // Delivered to buyer\n 'COMPLETED', // Order finalized\n 'CANCELLED', // Cancelled by buyer or seller\n 'REFUNDED', // Full refund issued\n 'PARTIALLY_REFUNDED', // Partial refund issued\n 'DISPUTED', // In dispute\n ] as const,\n schema: 'marketplace',\n description: 'Status of an order.',\n});\n\n/**\n * Payment status enum.\n */\nexport const PaymentStatusEnum = defineEntityEnum({\n name: 'PaymentStatus',\n values: [\n 'PENDING',\n 'AUTHORIZED',\n 'CAPTURED',\n 'FAILED',\n 'REFUNDED',\n 'VOIDED',\n ] as const,\n schema: 'marketplace',\n description: 'Status of payment.',\n});\n\n/**\n * Order entity - a purchase transaction.\n */\nexport const OrderEntity = defineEntity({\n name: 'Order',\n description: 'A purchase order on the marketplace.',\n schema: 'marketplace',\n map: 'order',\n fields: {\n id: field.id({ description: 'Unique order ID' }),\n\n // Reference\n orderNumber: field.string({ description: 'Human-readable order number' }),\n\n // Parties\n buyerId: field.foreignKey({ description: 'Buyer user ID' }),\n storeId: field.foreignKey({ description: 'Seller store ID' }),\n\n // Status\n status: field.enum('OrderStatus', { default: 'PENDING' }),\n paymentStatus: field.enum('PaymentStatus', { default: 'PENDING' }),\n\n // Totals\n subtotal: field.decimal({ description: 'Sum of item prices' }),\n shippingTotal: field.decimal({ default: 0 }),\n taxTotal: field.decimal({ default: 0 }),\n discountTotal: field.decimal({ default: 0 }),\n total: field.decimal({ description: 'Final total' }),\n currency: field.string({ default: '\"USD\"' }),\n\n // Commission\n platformFee: field.decimal({ description: 'Platform commission amount' }),\n sellerPayout: field.decimal({ description: 'Amount due to seller' }),\n\n // Shipping\n shippingAddress: field.json({ isOptional: true }),\n billingAddress: field.json({ isOptional: true }),\n shippingMethod: field.string({ isOptional: true }),\n trackingNumber: field.string({ isOptional: true }),\n trackingUrl: field.string({ isOptional: true }),\n\n // Payment\n paymentMethod: field.string({ isOptional: true }),\n paymentIntentId: field.string({ isOptional: true }),\n\n // Notes\n buyerNote: field.string({ isOptional: true }),\n sellerNote: field.string({ isOptional: true }),\n internalNote: field.string({ isOptional: true }),\n\n // Timestamps\n createdAt: field.createdAt(),\n updatedAt: field.updatedAt(),\n paidAt: field.dateTime({ isOptional: true }),\n shippedAt: field.dateTime({ isOptional: true }),\n deliveredAt: field.dateTime({ isOptional: true }),\n completedAt: field.dateTime({ isOptional: true }),\n cancelledAt: field.dateTime({ isOptional: true }),\n\n // Relations\n store: field.belongsTo('Store', ['storeId'], ['id']),\n items: field.hasMany('OrderItem'),\n refunds: field.hasMany('Refund'),\n },\n indexes: [\n index.unique(['orderNumber']),\n index.on(['buyerId', 'status']),\n index.on(['storeId', 'status']),\n index.on(['status', 'createdAt']),\n index.on(['paymentStatus']),\n index.on(['createdAt']),\n ],\n enums: [OrderStatusEnum, PaymentStatusEnum],\n});\n\n/**\n * Order item entity - individual items in an order.\n */\nexport const OrderItemEntity = defineEntity({\n name: 'OrderItem',\n description: 'An item within an order.',\n schema: 'marketplace',\n map: 'order_item',\n fields: {\n id: field.id(),\n orderId: field.foreignKey(),\n productId: field.foreignKey(),\n variantId: field.string({ isOptional: true }),\n\n // Snapshot at time of purchase\n productName: field.string(),\n variantName: field.string({ isOptional: true }),\n sku: field.string({ isOptional: true }),\n\n // Pricing\n unitPrice: field.decimal(),\n quantity: field.int(),\n subtotal: field.decimal(),\n\n // Fulfillment\n quantityFulfilled: field.int({ default: 0 }),\n quantityRefunded: field.int({ default: 0 }),\n\n // Timestamps\n createdAt: field.createdAt(),\n updatedAt: field.updatedAt(),\n\n // Relations\n order: field.belongsTo('Order', ['orderId'], ['id'], {\n onDelete: 'Cascade',\n }),\n product: field.belongsTo('Product', ['productId'], ['id']),\n },\n indexes: [index.on(['orderId']), index.on(['productId'])],\n});\n\n/**\n * Refund entity - refund records for orders.\n */\nexport const RefundEntity = defineEntity({\n name: 'Refund',\n description: 'A refund for an order.',\n schema: 'marketplace',\n map: 'refund',\n fields: {\n id: field.id(),\n orderId: field.foreignKey(),\n\n // Amount\n amount: field.decimal(),\n currency: field.string(),\n\n // Reason\n reason: field.string(),\n notes: field.string({ isOptional: true }),\n\n // Status\n status: field.string({ default: '\"PENDING\"' }),\n\n // Payment\n refundId: field.string({\n isOptional: true,\n description: 'Payment provider refund ID',\n }),\n\n // Actor\n issuedBy: field.foreignKey({ description: 'User who issued the refund' }),\n\n // Timestamps\n createdAt: field.createdAt(),\n processedAt: field.dateTime({ isOptional: true }),\n\n // Relations\n order: field.belongsTo('Order', ['orderId'], ['id']),\n items: field.hasMany('RefundItem'),\n },\n indexes: [index.on(['orderId']), index.on(['status'])],\n});\n\n/**\n * Refund item entity - items being refunded.\n */\nexport const RefundItemEntity = defineEntity({\n name: 'RefundItem',\n description: 'An item within a refund.',\n schema: 'marketplace',\n map: 'refund_item',\n fields: {\n id: field.id(),\n refundId: field.foreignKey(),\n orderItemId: field.foreignKey(),\n\n quantity: field.int(),\n amount: field.decimal(),\n\n createdAt: field.createdAt(),\n\n // Relations\n refund: field.belongsTo('Refund', ['refundId'], ['id'], {\n onDelete: 'Cascade',\n }),\n orderItem: field.belongsTo('OrderItem', ['orderItemId'], ['id']),\n },\n indexes: [index.on(['refundId']), index.on(['orderItemId'])],\n});\n"],"mappings":"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"}
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
import * as _contractspec_lib_schema556 from "@contractspec/lib.schema";
|
|
2
|
+
|
|
3
|
+
//#region src/entities/payout.d.ts
|
|
4
|
+
/**
|
|
5
|
+
* Payout status enum.
|
|
6
|
+
*/
|
|
7
|
+
declare const PayoutStatusEnum: _contractspec_lib_schema556.EntityEnumDef;
|
|
8
|
+
/**
|
|
9
|
+
* Payout schedule enum.
|
|
10
|
+
*/
|
|
11
|
+
declare const PayoutScheduleEnum: _contractspec_lib_schema556.EntityEnumDef;
|
|
12
|
+
/**
|
|
13
|
+
* Payout entity - payment to seller.
|
|
14
|
+
*/
|
|
15
|
+
declare const PayoutEntity: _contractspec_lib_schema556.EntitySpec<{
|
|
16
|
+
id: _contractspec_lib_schema556.EntityScalarField;
|
|
17
|
+
storeId: _contractspec_lib_schema556.EntityScalarField;
|
|
18
|
+
payoutNumber: _contractspec_lib_schema556.EntityScalarField;
|
|
19
|
+
status: _contractspec_lib_schema556.EntityEnumField;
|
|
20
|
+
grossAmount: _contractspec_lib_schema556.EntityScalarField;
|
|
21
|
+
platformFees: _contractspec_lib_schema556.EntityScalarField;
|
|
22
|
+
otherDeductions: _contractspec_lib_schema556.EntityScalarField;
|
|
23
|
+
netAmount: _contractspec_lib_schema556.EntityScalarField;
|
|
24
|
+
currency: _contractspec_lib_schema556.EntityScalarField;
|
|
25
|
+
periodStart: _contractspec_lib_schema556.EntityScalarField;
|
|
26
|
+
periodEnd: _contractspec_lib_schema556.EntityScalarField;
|
|
27
|
+
paymentMethod: _contractspec_lib_schema556.EntityScalarField;
|
|
28
|
+
paymentReference: _contractspec_lib_schema556.EntityScalarField;
|
|
29
|
+
bankAccountId: _contractspec_lib_schema556.EntityScalarField;
|
|
30
|
+
bankAccountLast4: _contractspec_lib_schema556.EntityScalarField;
|
|
31
|
+
notes: _contractspec_lib_schema556.EntityScalarField;
|
|
32
|
+
failureReason: _contractspec_lib_schema556.EntityScalarField;
|
|
33
|
+
orderCount: _contractspec_lib_schema556.EntityScalarField;
|
|
34
|
+
createdAt: _contractspec_lib_schema556.EntityScalarField;
|
|
35
|
+
updatedAt: _contractspec_lib_schema556.EntityScalarField;
|
|
36
|
+
scheduledAt: _contractspec_lib_schema556.EntityScalarField;
|
|
37
|
+
processedAt: _contractspec_lib_schema556.EntityScalarField;
|
|
38
|
+
paidAt: _contractspec_lib_schema556.EntityScalarField;
|
|
39
|
+
store: _contractspec_lib_schema556.EntityRelationField;
|
|
40
|
+
items: _contractspec_lib_schema556.EntityRelationField;
|
|
41
|
+
}>;
|
|
42
|
+
/**
|
|
43
|
+
* Payout item entity - orders included in a payout.
|
|
44
|
+
*/
|
|
45
|
+
declare const PayoutItemEntity: _contractspec_lib_schema556.EntitySpec<{
|
|
46
|
+
id: _contractspec_lib_schema556.EntityScalarField;
|
|
47
|
+
payoutId: _contractspec_lib_schema556.EntityScalarField;
|
|
48
|
+
orderId: _contractspec_lib_schema556.EntityScalarField;
|
|
49
|
+
orderTotal: _contractspec_lib_schema556.EntityScalarField;
|
|
50
|
+
platformFee: _contractspec_lib_schema556.EntityScalarField;
|
|
51
|
+
netAmount: _contractspec_lib_schema556.EntityScalarField;
|
|
52
|
+
createdAt: _contractspec_lib_schema556.EntityScalarField;
|
|
53
|
+
payout: _contractspec_lib_schema556.EntityRelationField;
|
|
54
|
+
order: _contractspec_lib_schema556.EntityRelationField;
|
|
55
|
+
}>;
|
|
56
|
+
/**
|
|
57
|
+
* Bank account entity - seller payment destinations.
|
|
58
|
+
*/
|
|
59
|
+
declare const BankAccountEntity: _contractspec_lib_schema556.EntitySpec<{
|
|
60
|
+
id: _contractspec_lib_schema556.EntityScalarField;
|
|
61
|
+
storeId: _contractspec_lib_schema556.EntityScalarField;
|
|
62
|
+
accountHolderName: _contractspec_lib_schema556.EntityScalarField;
|
|
63
|
+
accountType: _contractspec_lib_schema556.EntityScalarField;
|
|
64
|
+
bankName: _contractspec_lib_schema556.EntityScalarField;
|
|
65
|
+
last4: _contractspec_lib_schema556.EntityScalarField;
|
|
66
|
+
routingLast4: _contractspec_lib_schema556.EntityScalarField;
|
|
67
|
+
externalId: _contractspec_lib_schema556.EntityScalarField;
|
|
68
|
+
isDefault: _contractspec_lib_schema556.EntityScalarField;
|
|
69
|
+
isVerified: _contractspec_lib_schema556.EntityScalarField;
|
|
70
|
+
createdAt: _contractspec_lib_schema556.EntityScalarField;
|
|
71
|
+
updatedAt: _contractspec_lib_schema556.EntityScalarField;
|
|
72
|
+
verifiedAt: _contractspec_lib_schema556.EntityScalarField;
|
|
73
|
+
store: _contractspec_lib_schema556.EntityRelationField;
|
|
74
|
+
}>;
|
|
75
|
+
/**
|
|
76
|
+
* Payout settings entity - store payout configuration.
|
|
77
|
+
*/
|
|
78
|
+
declare const PayoutSettingsEntity: _contractspec_lib_schema556.EntitySpec<{
|
|
79
|
+
id: _contractspec_lib_schema556.EntityScalarField;
|
|
80
|
+
storeId: _contractspec_lib_schema556.EntityScalarField;
|
|
81
|
+
schedule: _contractspec_lib_schema556.EntityEnumField;
|
|
82
|
+
dayOfWeek: _contractspec_lib_schema556.EntityScalarField;
|
|
83
|
+
dayOfMonth: _contractspec_lib_schema556.EntityScalarField;
|
|
84
|
+
minimumPayout: _contractspec_lib_schema556.EntityScalarField;
|
|
85
|
+
defaultBankAccountId: _contractspec_lib_schema556.EntityScalarField;
|
|
86
|
+
createdAt: _contractspec_lib_schema556.EntityScalarField;
|
|
87
|
+
updatedAt: _contractspec_lib_schema556.EntityScalarField;
|
|
88
|
+
store: _contractspec_lib_schema556.EntityRelationField;
|
|
89
|
+
}>;
|
|
90
|
+
//#endregion
|
|
91
|
+
export { BankAccountEntity, PayoutEntity, PayoutItemEntity, PayoutScheduleEnum, PayoutSettingsEntity, PayoutStatusEnum };
|
|
92
|
+
//# sourceMappingURL=payout.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"payout.d.ts","names":[],"sources":["../../src/entities/payout.ts"],"sourcesContent":[],"mappings":";;;;;;AAUa,cAAA,gBAKX,EAAA,2BAAA,CAL2B,aAK3B;AAKF;AAUA;;cAVa,oBAKX,2BAAA,CAL6B;;;;cAUlB,0CAAY;MA6DvB,2BAAA,CAAA;;;;;;;;;;;;;;;;;;;0DA7DuB;EAAA,WAAA,+CAAA;EAkEZ,WAAA,+CAwBX;EAAA,MAAA,+CAAA;;;;;;;cAxBW,8CAAgB;MAwB3B,2BAAA,CAAA;yDAxB2B;EAAA,OAAA,+CAAA;EA6BhB,UAAA,+CAqCX;EAAA,WAAA,+CAAA;;;;;;;;;cArCW,+CAAiB;MAqC5B,2BAAA,CAAA;;;;yDArC4B;EAAA,KAAA,+CAAA;EA0CjB,YAAA,+CAsCX;EAAA,UAAA,+CAAA;;;;;;;;;;;AAtC+B,cAApB,oBAAoB,8BAAA,UAAA,CAAA;MAsC/B,2BAAA,CAAA"}
|
|
@@ -0,0 +1,162 @@
|
|
|
1
|
+
import { defineEntity, defineEntityEnum, field, index } from "@contractspec/lib.schema";
|
|
2
|
+
|
|
3
|
+
//#region src/entities/payout.ts
|
|
4
|
+
/**
|
|
5
|
+
* Payout status enum.
|
|
6
|
+
*/
|
|
7
|
+
const PayoutStatusEnum = defineEntityEnum({
|
|
8
|
+
name: "PayoutStatus",
|
|
9
|
+
values: [
|
|
10
|
+
"PENDING",
|
|
11
|
+
"PROCESSING",
|
|
12
|
+
"PAID",
|
|
13
|
+
"FAILED",
|
|
14
|
+
"CANCELLED"
|
|
15
|
+
],
|
|
16
|
+
schema: "marketplace",
|
|
17
|
+
description: "Status of a payout."
|
|
18
|
+
});
|
|
19
|
+
/**
|
|
20
|
+
* Payout schedule enum.
|
|
21
|
+
*/
|
|
22
|
+
const PayoutScheduleEnum = defineEntityEnum({
|
|
23
|
+
name: "PayoutSchedule",
|
|
24
|
+
values: [
|
|
25
|
+
"DAILY",
|
|
26
|
+
"WEEKLY",
|
|
27
|
+
"BIWEEKLY",
|
|
28
|
+
"MONTHLY",
|
|
29
|
+
"MANUAL"
|
|
30
|
+
],
|
|
31
|
+
schema: "marketplace",
|
|
32
|
+
description: "Payout schedule frequency."
|
|
33
|
+
});
|
|
34
|
+
/**
|
|
35
|
+
* Payout entity - payment to seller.
|
|
36
|
+
*/
|
|
37
|
+
const PayoutEntity = defineEntity({
|
|
38
|
+
name: "Payout",
|
|
39
|
+
description: "A payout to a seller.",
|
|
40
|
+
schema: "marketplace",
|
|
41
|
+
map: "payout",
|
|
42
|
+
fields: {
|
|
43
|
+
id: field.id({ description: "Unique payout ID" }),
|
|
44
|
+
storeId: field.foreignKey(),
|
|
45
|
+
payoutNumber: field.string({ description: "Human-readable payout number" }),
|
|
46
|
+
status: field.enum("PayoutStatus", { default: "PENDING" }),
|
|
47
|
+
grossAmount: field.decimal({ description: "Total before fees" }),
|
|
48
|
+
platformFees: field.decimal({ description: "Platform fees deducted" }),
|
|
49
|
+
otherDeductions: field.decimal({ default: 0 }),
|
|
50
|
+
netAmount: field.decimal({ description: "Final payout amount" }),
|
|
51
|
+
currency: field.string({ default: "\"USD\"" }),
|
|
52
|
+
periodStart: field.dateTime({ description: "Start of payout period" }),
|
|
53
|
+
periodEnd: field.dateTime({ description: "End of payout period" }),
|
|
54
|
+
paymentMethod: field.string({ isOptional: true }),
|
|
55
|
+
paymentReference: field.string({ isOptional: true }),
|
|
56
|
+
bankAccountId: field.string({ isOptional: true }),
|
|
57
|
+
bankAccountLast4: field.string({ isOptional: true }),
|
|
58
|
+
notes: field.string({ isOptional: true }),
|
|
59
|
+
failureReason: field.string({ isOptional: true }),
|
|
60
|
+
orderCount: field.int({ default: 0 }),
|
|
61
|
+
createdAt: field.createdAt(),
|
|
62
|
+
updatedAt: field.updatedAt(),
|
|
63
|
+
scheduledAt: field.dateTime({ isOptional: true }),
|
|
64
|
+
processedAt: field.dateTime({ isOptional: true }),
|
|
65
|
+
paidAt: field.dateTime({ isOptional: true }),
|
|
66
|
+
store: field.belongsTo("Store", ["storeId"], ["id"]),
|
|
67
|
+
items: field.hasMany("PayoutItem")
|
|
68
|
+
},
|
|
69
|
+
indexes: [
|
|
70
|
+
index.unique(["payoutNumber"]),
|
|
71
|
+
index.on(["storeId", "status"]),
|
|
72
|
+
index.on(["status", "scheduledAt"]),
|
|
73
|
+
index.on(["periodStart", "periodEnd"])
|
|
74
|
+
],
|
|
75
|
+
enums: [PayoutStatusEnum]
|
|
76
|
+
});
|
|
77
|
+
/**
|
|
78
|
+
* Payout item entity - orders included in a payout.
|
|
79
|
+
*/
|
|
80
|
+
const PayoutItemEntity = defineEntity({
|
|
81
|
+
name: "PayoutItem",
|
|
82
|
+
description: "An order included in a payout.",
|
|
83
|
+
schema: "marketplace",
|
|
84
|
+
map: "payout_item",
|
|
85
|
+
fields: {
|
|
86
|
+
id: field.id(),
|
|
87
|
+
payoutId: field.foreignKey(),
|
|
88
|
+
orderId: field.foreignKey(),
|
|
89
|
+
orderTotal: field.decimal(),
|
|
90
|
+
platformFee: field.decimal(),
|
|
91
|
+
netAmount: field.decimal(),
|
|
92
|
+
createdAt: field.createdAt(),
|
|
93
|
+
payout: field.belongsTo("Payout", ["payoutId"], ["id"], { onDelete: "Cascade" }),
|
|
94
|
+
order: field.belongsTo("Order", ["orderId"], ["id"])
|
|
95
|
+
},
|
|
96
|
+
indexes: [index.on(["payoutId"]), index.on(["orderId"])]
|
|
97
|
+
});
|
|
98
|
+
/**
|
|
99
|
+
* Bank account entity - seller payment destinations.
|
|
100
|
+
*/
|
|
101
|
+
const BankAccountEntity = defineEntity({
|
|
102
|
+
name: "BankAccount",
|
|
103
|
+
description: "A bank account for receiving payouts.",
|
|
104
|
+
schema: "marketplace",
|
|
105
|
+
map: "bank_account",
|
|
106
|
+
fields: {
|
|
107
|
+
id: field.id(),
|
|
108
|
+
storeId: field.foreignKey(),
|
|
109
|
+
accountHolderName: field.string(),
|
|
110
|
+
accountType: field.string({ default: "\"CHECKING\"" }),
|
|
111
|
+
bankName: field.string({ isOptional: true }),
|
|
112
|
+
last4: field.string({ description: "Last 4 digits of account" }),
|
|
113
|
+
routingLast4: field.string({ isOptional: true }),
|
|
114
|
+
externalId: field.string({
|
|
115
|
+
isOptional: true,
|
|
116
|
+
description: "External provider account ID"
|
|
117
|
+
}),
|
|
118
|
+
isDefault: field.boolean({ default: false }),
|
|
119
|
+
isVerified: field.boolean({ default: false }),
|
|
120
|
+
createdAt: field.createdAt(),
|
|
121
|
+
updatedAt: field.updatedAt(),
|
|
122
|
+
verifiedAt: field.dateTime({ isOptional: true }),
|
|
123
|
+
store: field.belongsTo("Store", ["storeId"], ["id"])
|
|
124
|
+
},
|
|
125
|
+
indexes: [index.on(["storeId", "isDefault"]), index.on(["externalId"])]
|
|
126
|
+
});
|
|
127
|
+
/**
|
|
128
|
+
* Payout settings entity - store payout configuration.
|
|
129
|
+
*/
|
|
130
|
+
const PayoutSettingsEntity = defineEntity({
|
|
131
|
+
name: "PayoutSettings",
|
|
132
|
+
description: "Payout configuration for a store.",
|
|
133
|
+
schema: "marketplace",
|
|
134
|
+
map: "payout_settings",
|
|
135
|
+
fields: {
|
|
136
|
+
id: field.id(),
|
|
137
|
+
storeId: field.foreignKey(),
|
|
138
|
+
schedule: field.enum("PayoutSchedule", { default: "WEEKLY" }),
|
|
139
|
+
dayOfWeek: field.int({
|
|
140
|
+
isOptional: true,
|
|
141
|
+
description: "Day for weekly/biweekly (0=Sunday)"
|
|
142
|
+
}),
|
|
143
|
+
dayOfMonth: field.int({
|
|
144
|
+
isOptional: true,
|
|
145
|
+
description: "Day for monthly (1-28)"
|
|
146
|
+
}),
|
|
147
|
+
minimumPayout: field.decimal({
|
|
148
|
+
default: 50,
|
|
149
|
+
description: "Minimum amount for payout"
|
|
150
|
+
}),
|
|
151
|
+
defaultBankAccountId: field.string({ isOptional: true }),
|
|
152
|
+
createdAt: field.createdAt(),
|
|
153
|
+
updatedAt: field.updatedAt(),
|
|
154
|
+
store: field.belongsTo("Store", ["storeId"], ["id"])
|
|
155
|
+
},
|
|
156
|
+
indexes: [index.unique(["storeId"])],
|
|
157
|
+
enums: [PayoutScheduleEnum]
|
|
158
|
+
});
|
|
159
|
+
|
|
160
|
+
//#endregion
|
|
161
|
+
export { BankAccountEntity, PayoutEntity, PayoutItemEntity, PayoutScheduleEnum, PayoutSettingsEntity, PayoutStatusEnum };
|
|
162
|
+
//# sourceMappingURL=payout.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"payout.js","names":[],"sources":["../../src/entities/payout.ts"],"sourcesContent":["import {\n defineEntity,\n defineEntityEnum,\n field,\n index,\n} from '@contractspec/lib.schema';\n\n/**\n * Payout status enum.\n */\nexport const PayoutStatusEnum = defineEntityEnum({\n name: 'PayoutStatus',\n values: ['PENDING', 'PROCESSING', 'PAID', 'FAILED', 'CANCELLED'] as const,\n schema: 'marketplace',\n description: 'Status of a payout.',\n});\n\n/**\n * Payout schedule enum.\n */\nexport const PayoutScheduleEnum = defineEntityEnum({\n name: 'PayoutSchedule',\n values: ['DAILY', 'WEEKLY', 'BIWEEKLY', 'MONTHLY', 'MANUAL'] as const,\n schema: 'marketplace',\n description: 'Payout schedule frequency.',\n});\n\n/**\n * Payout entity - payment to seller.\n */\nexport const PayoutEntity = defineEntity({\n name: 'Payout',\n description: 'A payout to a seller.',\n schema: 'marketplace',\n map: 'payout',\n fields: {\n id: field.id({ description: 'Unique payout ID' }),\n\n // Store\n storeId: field.foreignKey(),\n\n // Reference\n payoutNumber: field.string({ description: 'Human-readable payout number' }),\n\n // Status\n status: field.enum('PayoutStatus', { default: 'PENDING' }),\n\n // Amount\n grossAmount: field.decimal({ description: 'Total before fees' }),\n platformFees: field.decimal({ description: 'Platform fees deducted' }),\n otherDeductions: field.decimal({ default: 0 }),\n netAmount: field.decimal({ description: 'Final payout amount' }),\n currency: field.string({ default: '\"USD\"' }),\n\n // Period\n periodStart: field.dateTime({ description: 'Start of payout period' }),\n periodEnd: field.dateTime({ description: 'End of payout period' }),\n\n // Payment details\n paymentMethod: field.string({ isOptional: true }),\n paymentReference: field.string({ isOptional: true }),\n\n // Bank account (snapshot)\n bankAccountId: field.string({ isOptional: true }),\n bankAccountLast4: field.string({ isOptional: true }),\n\n // Notes\n notes: field.string({ isOptional: true }),\n failureReason: field.string({ isOptional: true }),\n\n // Stats\n orderCount: field.int({ default: 0 }),\n\n // Timestamps\n createdAt: field.createdAt(),\n updatedAt: field.updatedAt(),\n scheduledAt: field.dateTime({ isOptional: true }),\n processedAt: field.dateTime({ isOptional: true }),\n paidAt: field.dateTime({ isOptional: true }),\n\n // Relations\n store: field.belongsTo('Store', ['storeId'], ['id']),\n items: field.hasMany('PayoutItem'),\n },\n indexes: [\n index.unique(['payoutNumber']),\n index.on(['storeId', 'status']),\n index.on(['status', 'scheduledAt']),\n index.on(['periodStart', 'periodEnd']),\n ],\n enums: [PayoutStatusEnum],\n});\n\n/**\n * Payout item entity - orders included in a payout.\n */\nexport const PayoutItemEntity = defineEntity({\n name: 'PayoutItem',\n description: 'An order included in a payout.',\n schema: 'marketplace',\n map: 'payout_item',\n fields: {\n id: field.id(),\n payoutId: field.foreignKey(),\n orderId: field.foreignKey(),\n\n // Amounts\n orderTotal: field.decimal(),\n platformFee: field.decimal(),\n netAmount: field.decimal(),\n\n createdAt: field.createdAt(),\n\n // Relations\n payout: field.belongsTo('Payout', ['payoutId'], ['id'], {\n onDelete: 'Cascade',\n }),\n order: field.belongsTo('Order', ['orderId'], ['id']),\n },\n indexes: [index.on(['payoutId']), index.on(['orderId'])],\n});\n\n/**\n * Bank account entity - seller payment destinations.\n */\nexport const BankAccountEntity = defineEntity({\n name: 'BankAccount',\n description: 'A bank account for receiving payouts.',\n schema: 'marketplace',\n map: 'bank_account',\n fields: {\n id: field.id(),\n storeId: field.foreignKey(),\n\n // Account info\n accountHolderName: field.string(),\n accountType: field.string({ default: '\"CHECKING\"' }),\n bankName: field.string({ isOptional: true }),\n\n // Masked details\n last4: field.string({ description: 'Last 4 digits of account' }),\n routingLast4: field.string({ isOptional: true }),\n\n // Provider reference\n externalId: field.string({\n isOptional: true,\n description: 'External provider account ID',\n }),\n\n // Status\n isDefault: field.boolean({ default: false }),\n isVerified: field.boolean({ default: false }),\n\n // Timestamps\n createdAt: field.createdAt(),\n updatedAt: field.updatedAt(),\n verifiedAt: field.dateTime({ isOptional: true }),\n\n // Relations\n store: field.belongsTo('Store', ['storeId'], ['id']),\n },\n indexes: [index.on(['storeId', 'isDefault']), index.on(['externalId'])],\n});\n\n/**\n * Payout settings entity - store payout configuration.\n */\nexport const PayoutSettingsEntity = defineEntity({\n name: 'PayoutSettings',\n description: 'Payout configuration for a store.',\n schema: 'marketplace',\n map: 'payout_settings',\n fields: {\n id: field.id(),\n storeId: field.foreignKey(),\n\n // Schedule\n schedule: field.enum('PayoutSchedule', { default: 'WEEKLY' }),\n dayOfWeek: field.int({\n isOptional: true,\n description: 'Day for weekly/biweekly (0=Sunday)',\n }),\n dayOfMonth: field.int({\n isOptional: true,\n description: 'Day for monthly (1-28)',\n }),\n\n // Thresholds\n minimumPayout: field.decimal({\n default: 50,\n description: 'Minimum amount for payout',\n }),\n\n // Default account\n defaultBankAccountId: field.string({ isOptional: true }),\n\n // Timestamps\n createdAt: field.createdAt(),\n updatedAt: field.updatedAt(),\n\n // Relations\n store: field.belongsTo('Store', ['storeId'], ['id']),\n },\n indexes: [index.unique(['storeId'])],\n enums: [PayoutScheduleEnum],\n});\n"],"mappings":"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"}
|