42 lines
1.8 KiB
Plaintext
42 lines
1.8 KiB
Plaintext
enum TaxMode {
|
|
INCLUSIVE
|
|
EXCLUSIVE
|
|
}
|
|
model PricingPolicy {
|
|
id String @id @default(uuid()) @db.Uuid
|
|
organizationId String @map("organization_id") @db.Uuid
|
|
name String @db.VarChar(100)
|
|
currency String @db.Char(3)
|
|
countryCode String @map("country_code") @db.Char(2)
|
|
region String @default("") @db.VarChar(100)
|
|
taxMode TaxMode @map("tax_mode")
|
|
merchandiseTaxBps Int @map("merchandise_tax_bps")
|
|
shippingFee Decimal @map("shipping_fee") @db.Decimal(12,2)
|
|
shippingTaxBps Int @map("shipping_tax_bps")
|
|
freeShippingMinimum Decimal? @map("free_shipping_minimum") @db.Decimal(12,2)
|
|
active Boolean @default(false)
|
|
createdAt DateTime @default(now()) @map("created_at") @db.Timestamptz(3)
|
|
organization Organization @relation(fields: [organizationId], references: [id], onDelete: Restrict)
|
|
prices OrderPricing[]
|
|
@@unique([id, organizationId])
|
|
@@index([organizationId, currency, countryCode, region, active])
|
|
@@map("pricing_policies")
|
|
}
|
|
model OrderPricing {
|
|
orderId String @id @map("order_id") @db.Uuid
|
|
organizationId String @map("organization_id") @db.Uuid
|
|
policyId String @map("policy_id") @db.Uuid
|
|
policySnapshot Json @map("policy_snapshot")
|
|
merchandiseTax Decimal @map("merchandise_tax") @db.Decimal(16,2)
|
|
shippingNet Decimal @map("shipping_net") @db.Decimal(16,2)
|
|
shippingTax Decimal @map("shipping_tax") @db.Decimal(16,2)
|
|
taxTotal Decimal @map("tax_total") @db.Decimal(16,2)
|
|
payableTotal Decimal @map("payable_total") @db.Decimal(16,2)
|
|
createdAt DateTime @default(now()) @map("created_at") @db.Timestamptz(3)
|
|
order Order @relation(fields: [orderId, organizationId], references: [id, organizationId], onDelete: Restrict)
|
|
policy PricingPolicy @relation(fields: [policyId, organizationId], references: [id, organizationId], onDelete: Restrict)
|
|
@@unique([orderId, organizationId])
|
|
@@map("order_pricing")
|
|
}
|
|
|