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") }