update migrations and create base migration. set discount and tax to sale invoices

This commit is contained in:
2026-05-28 16:39:07 +03:30
parent cd3492d625
commit a975f9d02a
55 changed files with 2152 additions and 2278 deletions
+7 -9
View File
@@ -1,15 +1,13 @@
model AdminAccount {
id String @id @default(ulid())
id String @id @default(ulid())
created_at DateTime @default(now()) @db.Timestamp(0)
updated_at DateTime @updatedAt() @db.Timestamp(0)
admin_id String
admin Admin @relation(fields: [admin_id], references: [id])
account_id String @unique
account Account @relation(fields: [account_id], references: [id], onDelete: Cascade)
updated_at DateTime @updatedAt @db.Timestamp(0)
admin_id String
account_id String @unique
account Account @relation(fields: [account_id], references: [id], onDelete: Cascade)
admin Admin @relation(fields: [admin_id], references: [id])
@@index([admin_id], map: "admin_accounts_admin_id_fkey")
@@map("admin_accounts")
}
@@ -1,11 +1,9 @@
model ConsumerAccountDevice {
id String @id @default(ulid())
device_id String @unique
device_name String?
created_at DateTime @default(now()) @db.Timestamp(0)
updated_at DateTime @updatedAt @db.Timestamp(0)
id String @id @default(ulid())
device_id String @unique
device_name String?
created_at DateTime @default(now()) @db.Timestamp(0)
updated_at DateTime @updatedAt @db.Timestamp(0)
consumer_account_id String @unique
consumer_account ConsumerAccount @relation(fields: [consumer_account_id], references: [id])
@@ -1,23 +1 @@
// model ConsumerDevices {
// uuid String @id @unique @db.VarChar(255)
// app_version String @db.VarChar(20)
// build_number String @db.VarChar(20)
// platform String @db.VarChar(100)
// brand String @db.VarChar(100)
// model String @db.VarChar(100)
// device String @db.VarChar(100)
// publisher ApplicationPublisher
// os_version String @db.VarChar(20)
// sdk_version String @db.VarChar(20)
// release_number String @db.VarChar(20)
// user_agent String? @db.VarChar(100)
// browser_name String? @db.VarChar(100)
// fcm_token String? @db.VarChar(100)
// created_at DateTime @default(now()) @db.Timestamp(0)
// updated_at DateTime @updatedAt @db.Timestamp(0)
// consumer_id String
// consumer Consumer @relation(fields: [consumer_id], references: [id])
// @@index([consumer_id], map: "consumer_devices_consumer_id_fkey")
// @@map("consumer_devices")
// }
+79 -101
View File
@@ -1,37 +1,31 @@
model ConsumerAccount {
id String @id @default(ulid())
role ConsumerRole
created_at DateTime @default(now()) @db.Timestamp(0)
updated_at DateTime @updatedAt() @db.Timestamp(0)
consumer_id String
consumer Consumer @relation(fields: [consumer_id], references: [id])
account_id String @unique()
account Account @relation(fields: [account_id], references: [id])
pos Pos?
permission PermissionConsumer?
account_allocation LicenseAccountAllocation?
id String @id @default(ulid())
role ConsumerRole
created_at DateTime @default(now()) @db.Timestamp(0)
updated_at DateTime @updatedAt @db.Timestamp(0)
consumer_id String
account_id String @unique
account_device ConsumerAccountDevice?
sales_invoices SalesInvoice[]
consumer_account_good_favorites ConsumerAccountGoodFavorite[]
account Account @relation(fields: [account_id], references: [id])
consumer Consumer @relation(fields: [consumer_id], references: [id])
account_allocation LicenseAccountAllocation?
permission PermissionConsumer?
pos Pos?
sales_invoices SalesInvoice[]
@@index([consumer_id], map: "consumer_accounts_consumer_id_fkey")
@@map("consumer_accounts")
}
model Consumer {
id String @id @default(ulid())
type ConsumerType
status ConsumerStatus @default(ACTIVE)
created_at DateTime @default(now()) @db.Timestamp(0)
updated_at DateTime @updatedAt() @db.Timestamp(0)
accounts ConsumerAccount[]
id String @id @default(ulid())
type ConsumerType
status ConsumerStatus @default(ACTIVE)
created_at DateTime @default(now()) @db.Timestamp(0)
updated_at DateTime @updatedAt @db.Timestamp(0)
business_activities BusinessActivity[]
// devices ConsumerDevices[]
accounts ConsumerAccount[]
individual ConsumerIndividual?
legal ConsumerLegal?
@@ -43,15 +37,12 @@ model ConsumerIndividual {
last_name String
mobile_number String
national_code String
created_at DateTime @default(now()) @db.Timestamp(0)
updated_at DateTime @updatedAt() @db.Timestamp(0)
partner_id String
partner Partner @relation(fields: [partner_id], references: [id])
consumer_id String @id
consumer Consumer @relation(fields: [consumer_id], references: [id], onDelete: Cascade)
created_at DateTime @default(now()) @db.Timestamp(0)
updated_at DateTime @updatedAt @db.Timestamp(0)
partner_id String
consumer_id String @id
consumer Consumer @relation(fields: [consumer_id], references: [id], onDelete: Cascade)
partner Partner @relation(fields: [partner_id], references: [id])
@@unique([mobile_number, consumer_id])
@@unique([partner_id, national_code])
@@ -61,107 +52,94 @@ model ConsumerIndividual {
model ConsumerLegal {
name String
registration_code String
created_at DateTime @default(now()) @db.Timestamp(0)
updated_at DateTime @updatedAt() @db.Timestamp(0)
partner_id String
partner Partner @relation(fields: [partner_id], references: [id])
consumer_id String @id
consumer Consumer @relation(fields: [consumer_id], references: [id], onDelete: Cascade)
created_at DateTime @default(now()) @db.Timestamp(0)
updated_at DateTime @updatedAt @db.Timestamp(0)
partner_id String
consumer_id String @id
consumer Consumer @relation(fields: [consumer_id], references: [id], onDelete: Cascade)
partner Partner @relation(fields: [partner_id], references: [id])
@@unique([partner_id, registration_code])
@@map("consumers_legal")
}
model BusinessActivity {
id String @id @default(ulid())
id String @id @default(ulid())
economic_code String
name String
fiscal_id String
partner_token String
invoice_number_sequence Decimal @default(1) @db.Decimal(20, 0)
created_at DateTime @default(now()) @db.Timestamp(0)
updated_at DateTime @updatedAt() @db.Timestamp(0)
guild_id String
guild Guild @relation(fields: [guild_id], references: [id])
consumer_id String
consumer Consumer @relation(fields: [consumer_id], references: [id])
license_activation LicenseActivation?
complexes Complex[]
permission_businesses PermissionBusiness[]
goods Good[]
customer_individuals CustomerIndividual[]
customer_legals CustomerLegal[]
invoice_number_sequence Decimal @default(1) @db.Decimal(20, 0)
created_at DateTime @default(now()) @db.Timestamp(0)
updated_at DateTime @updatedAt @db.Timestamp(0)
guild_id String
consumer_id String
consumer Consumer @relation(fields: [consumer_id], references: [id])
guild Guild @relation(fields: [guild_id], references: [id])
complexes Complex[]
customer_individuals CustomerIndividual[]
customer_legals CustomerLegal[]
goods Good[]
license_activation LicenseActivation?
permission_businesses PermissionBusiness[]
@@unique([economic_code, consumer_id])
@@index([consumer_id], map: "business_activities_consumer_id_fkey")
@@index([guild_id], map: "business_activities_guild_id_fkey")
@@map("business_activities")
}
model Complex {
id String @id @default(ulid())
name String
branch_code String
address String?
created_at DateTime @default(now()) @db.Timestamp(0)
updated_at DateTime @updatedAt() @db.Timestamp(0)
id String @id @default(ulid())
name String
branch_code String
address String?
created_at DateTime @default(now()) @db.Timestamp(0)
updated_at DateTime @updatedAt @db.Timestamp(0)
business_activity_id String
business_activity BusinessActivity @relation(fields: [business_activity_id], references: [id])
pos_list Pos[]
business_activity BusinessActivity @relation(fields: [business_activity_id], references: [id])
good_categories GoodCategory[]
permission_complexes PermissionComplex[]
pos_list Pos[]
@@index([business_activity_id], map: "complexes_business_activity_id_fkey")
@@map("complexes")
}
model Pos {
id String @id @default(ulid())
name String
model String?
serial_number String? @unique()
status POSStatus @default(ACTIVE)
pos_type POSType
created_at DateTime @default(now()) @db.Timestamp(0)
updated_at DateTime @updatedAt() @db.Timestamp(0)
complex_id String
complex Complex @relation(fields: [complex_id], references: [id])
device_id String?
device Device? @relation(fields: [device_id], references: [id])
provider_id String?
provider Provider? @relation(fields: [provider_id], references: [id])
account_id String @unique
account ConsumerAccount @relation(fields: [account_id], references: [id])
id String @id @default(ulid())
name String
model String?
serial_number String? @unique
status POSStatus @default(ACTIVE)
pos_type POSType
created_at DateTime @default(now()) @db.Timestamp(0)
updated_at DateTime @updatedAt @db.Timestamp(0)
complex_id String
device_id String?
provider_id String?
account_id String @unique
permission_pos PermissionPos[]
account ConsumerAccount @relation(fields: [account_id], references: [id])
complex Complex @relation(fields: [complex_id], references: [id])
device Device? @relation(fields: [device_id], references: [id])
provider Provider? @relation(fields: [provider_id], references: [id])
sales_invoices SalesInvoice[]
@@index([complex_id], map: "poses_complex_id_fkey")
@@index([device_id], map: "poses_device_id_fkey")
@@index([provider_id], map: "poses_provider_id_fkey")
@@map("poses")
}
model ConsumerAccountGoodFavorite {
created_at DateTime @default(now())
created_at DateTime @default(now())
consumer_account_id String
good_id String
consumer_account ConsumerAccount @relation(fields: [consumer_account_id], references: [id], onDelete: Cascade)
good Good @relation(fields: [good_id], references: [id], onDelete: Cascade)
good_id String
good Good @relation(fields: [good_id], references: [id], onDelete: Cascade)
@@id([consumer_account_id, good_id]) // unique pair
@@id([consumer_account_id, good_id])
@@index([good_id])
@@index([consumer_account_id])
@@map("consumer_account_good_favorites")
+37 -40
View File
@@ -1,53 +1,50 @@
model Good {
id String @id @default(ulid())
name String @db.VarChar(255)
is_default_guild_good Boolean @default(false)
pricing_model GoodPricingModel
description String? @db.Text
local_sku String? @unique() @db.VarChar(100)
barcode String? @unique() @db.VarChar(100)
base_sale_price Decimal? @default(0.00) @db.Decimal(15, 0)
image_url String? @db.VarChar(255)
created_at DateTime @default(now()) @db.Timestamp(0)
updated_at DateTime @updatedAt @db.Timestamp(0)
deleted_at DateTime? @db.Timestamp(0)
sku_id String
sku StockKeepingUnits @relation(fields: [sku_id], references: [id])
measure_unit_id String
measure_unit MeasureUnits @relation(fields: [measure_unit_id], references: [id])
category_id String?
category GoodCategory? @relation(fields: [category_id], references: [id])
business_activity_id String?
business_activity BusinessActivity? @relation(fields: [business_activity_id], references: [id])
sales_invoice_items SalesInvoiceItem[]
id String @id @default(ulid())
name String @db.VarChar(255)
is_default_guild_good Boolean @default(false)
pricing_model GoodPricingModel
description String? @db.Text
local_sku String? @unique @db.VarChar(100)
barcode String? @unique @db.VarChar(100)
base_sale_price Decimal? @default(0) @db.Decimal(15, 0)
image_url String? @db.VarChar(255)
created_at DateTime @default(now()) @db.Timestamp(0)
updated_at DateTime @updatedAt @db.Timestamp(0)
deleted_at DateTime? @db.Timestamp(0)
sku_id String
measure_unit_id String
category_id String?
business_activity_id String?
consumer_account_good_favorites ConsumerAccountGoodFavorite[]
business_activity BusinessActivity? @relation(fields: [business_activity_id], references: [id])
category GoodCategory? @relation(fields: [category_id], references: [id])
measure_unit MeasureUnits @relation(fields: [measure_unit_id], references: [id])
sku StockKeepingUnits @relation(fields: [sku_id], references: [id])
sales_invoice_items SalesInvoiceItem[]
@@index([category_id])
@@index([business_activity_id], map: "goods_business_activity_id_fkey")
@@index([measure_unit_id], map: "goods_measure_unit_id_fkey")
@@index([sku_id], map: "goods_sku_id_fkey")
@@map("goods")
}
model GoodCategory {
id String @id @default(ulid())
name String @db.VarChar(100)
description String? @db.Text
image_url String? @db.VarChar(255)
id String @id @default(ulid())
name String @db.VarChar(100)
description String? @db.Text
image_url String? @db.VarChar(255)
complex_id String?
is_default_guild_good Boolean @default(false)
is_default_guild_good Boolean @default(false)
guild_id String?
created_at DateTime @default(now()) @db.Timestamp(0)
updated_at DateTime @updatedAt @db.Timestamp(0)
deleted_at DateTime? @db.Timestamp(0)
complex Complex? @relation(fields: [complex_id], references: [id])
guild Guild? @relation(fields: [guild_id], references: [id])
goods Good[]
created_at DateTime @default(now()) @db.Timestamp(0)
updated_at DateTime @updatedAt @db.Timestamp(0)
deleted_at DateTime? @db.Timestamp(0)
goods Good[]
guild Guild? @relation(fields: [guild_id], references: [id])
complex Complex? @relation(fields: [complex_id], references: [id])
@@index([complex_id], map: "good_categories_complex_id_fkey")
@@index([guild_id], map: "good_categories_guild_id_fkey")
@@map("good_categories")
}
+6 -8
View File
@@ -1,12 +1,10 @@
model Guild {
id String @id @default(ulid())
name String
invoice_template InvoiceTemplateType
code String?
created_at DateTime @default(now()) @db.Timestamp(0)
updated_at DateTime @updatedAt() @db.Timestamp(0)
id String @id @default(ulid())
name String
invoice_template InvoiceTemplateType
code String?
created_at DateTime @default(now()) @db.Timestamp(0)
updated_at DateTime @updatedAt @db.Timestamp(0)
business_activities BusinessActivity[]
good_categories GoodCategory[]
stockKeepingUnits StockKeepingUnits[]
@@ -1,12 +1,10 @@
model MeasureUnits {
id String @id @default(ulid())
code String @unique
name String
id String @id @default(ulid())
code String @unique
name String
created_at DateTime @default(now()) @db.Timestamp(0)
updated_at DateTime @default(now()) @updatedAt @db.Timestamp(0)
goods Good[]
goods Good[]
@@map("measure_units")
}
+11 -13
View File
@@ -1,19 +1,17 @@
model StockKeepingUnits {
id String @id @default(ulid())
code String @unique
id String @id @default(ulid())
code String @unique
name String
VAT Decimal @db.Decimal(5, 2)
is_public Boolean @default(true)
is_domestic Boolean @default(false)
guild_id String
guild Guild @relation(fields: [guild_id], references: [id])
created_at DateTime @default(now()) @db.Timestamp(0)
updated_at DateTime @updatedAt() @db.Timestamp(0)
goods Good[]
VAT Decimal @db.Decimal(5, 2)
is_public Boolean @default(true)
is_domestic Boolean @default(false)
guild_id String
created_at DateTime @default(now()) @db.Timestamp(0)
updated_at DateTime @updatedAt @db.Timestamp(0)
goods Good[]
guild Guild @relation(fields: [guild_id], references: [id])
@@index([code])
@@index([guild_id], map: "stock_keeping_units_guild_id_fkey")
@@map("stock_keeping_units")
}
+24 -32
View File
@@ -1,34 +1,28 @@
model Customer {
id String @id @default(ulid())
is_favorite Boolean? @default(false)
type CustomerType
created_at DateTime @default(now()) @db.Timestamp(0)
updated_at DateTime @updatedAt @db.Timestamp(0)
deleted_at DateTime? @db.Timestamp(0)
individual CustomerIndividual?
legal CustomerLegal?
id String @id @default(ulid())
is_favorite Boolean? @default(false)
type CustomerType
created_at DateTime @default(now()) @db.Timestamp(0)
updated_at DateTime @updatedAt @db.Timestamp(0)
deleted_at DateTime? @db.Timestamp(0)
individual CustomerIndividual?
legal CustomerLegal?
sales_invoices SalesInvoice[]
@@map("customers")
}
model CustomerIndividual {
first_name String @db.VarChar(255)
last_name String @db.VarChar(255)
national_id String @db.Char(10)
mobile_number String @db.Char(15)
postal_code String @db.Char(10)
economic_code String? @db.Char(10)
customer_id String @id
customer Customer @relation(fields: [customer_id], references: [id], onDelete: Cascade)
first_name String @db.VarChar(255)
last_name String @db.VarChar(255)
national_id String @db.Char(10)
mobile_number String @db.Char(15)
postal_code String @db.Char(10)
economic_code String? @db.Char(10)
customer_id String @id
business_activity_id String
business_activity BusinessActivity @relation(fields: [business_activity_id], references: id)
business_activity BusinessActivity @relation(fields: [business_activity_id], references: [id])
customer Customer @relation(fields: [customer_id], references: [id], onDelete: Cascade)
@@unique([business_activity_id, national_id])
@@index([business_activity_id])
@@ -36,16 +30,14 @@ model CustomerIndividual {
}
model CustomerLegal {
name String @db.VarChar(255)
economic_code String @db.Char(10)
registration_number String? @db.Char(20)
postal_code String @db.Char(10)
customer_id String @id
customer Customer @relation(fields: [customer_id], references: [id], onDelete: Cascade)
name String @db.VarChar(255)
economic_code String @db.Char(10)
registration_number String? @db.Char(20)
postal_code String @db.Char(10)
customer_id String @id
business_activity_id String
business_activity BusinessActivity @relation(fields: [business_activity_id], references: id)
business_activity BusinessActivity @relation(fields: [business_activity_id], references: [id])
customer Customer @relation(fields: [customer_id], references: [id], onDelete: Cascade)
@@unique([business_activity_id, economic_code])
@@index([business_activity_id])
-63
View File
@@ -9,16 +9,6 @@ enum PaymentMethodType {
OTHER
}
enum UnitType {
COUNT
GRAM
KILOGRAM
MILLILITER
LITER
METER
HOUR
}
enum GoodPricingModel {
STANDARD
GOLD
@@ -50,18 +40,6 @@ enum BusinessRole {
OPERATOR
}
enum LicenseType {
BASIC
PRO
ENTERPRISE
}
enum LicenseStatus {
ACTIVE
EXPIRED
SUSPENDED
}
enum POSType {
PSP
MOBILE
@@ -69,11 +47,6 @@ enum POSType {
API
}
enum UserType {
LEGAL
INDIVIDUAL
}
enum AccountType {
ADMIN
PROVIDER
@@ -81,17 +54,6 @@ enum AccountType {
CONSUMER
}
enum UserStatus {
ACTIVE
INACTIVE
}
enum AccountRole {
OWNER
OPERATOR
ACCOUNTANT
}
enum AccountStatus {
ACTIVE
SUSPENDED
@@ -114,11 +76,6 @@ enum ProviderRole {
OPERATOR
}
enum ProviderStatus {
ACTIVE
SUSPENDED
}
enum ConsumerRole {
OWNER
MANAGER
@@ -130,11 +87,6 @@ enum ConsumerStatus {
SUSPENDED
}
enum TokenType {
ACCESS
REFRESH
}
enum ApplicationPlatform {
ANDROID
IOS
@@ -146,12 +98,6 @@ enum ApplicationReleaseType {
ALPHA
}
enum ApplicationPublisher {
DIRECT
CAFE_BAZAR
MAYKET
}
enum ConsumerType {
INDIVIDUAL
LEGAL
@@ -184,15 +130,6 @@ enum TspProviderRequestType {
RETURN
}
enum TspProviderCustomerType {
Unknown
Known
}
enum SKUGuildType {
GOLD
}
enum InvoiceTemplateType {
SALE
FX_SALE
+76 -87
View File
@@ -1,92 +1,86 @@
model SalesInvoice {
id String @id @default(uuid())
code String @unique @db.VarChar(100)
total_amount Decimal @db.Decimal(15, 2)
invoice_number Int @db.Int()
invoice_date DateTime @default(now()) @db.Timestamp(0)
type TspProviderRequestType
settlement_type InvoiceSettlementType
tax_id String? @unique @db.VarChar(32)
notes String? @db.Text
unknown_customer Json? @db.Json
created_at DateTime @default(now()) @db.Timestamp(0)
updated_at DateTime @updatedAt @db.Timestamp(0)
main_id String? @db.VarChar(50)
ref_id String? @unique @db.VarChar(50)
reference_invoice SalesInvoice? @relation("SalesInvoiceReference", fields: [ref_id], references: [id])
customer_id String?
customer Customer? @relation(fields: [customer_id], references: [id])
id String @id @default(uuid())
code String @unique @db.VarChar(100)
total_amount Decimal @db.Decimal(15, 2)
invoice_number Int
invoice_date DateTime @default(now()) @db.Timestamp(0)
type TspProviderRequestType
tax_id String? @unique @db.VarChar(32)
notes String? @db.Text
unknown_customer Json?
created_at DateTime @default(now()) @db.Timestamp(0)
updated_at DateTime @updatedAt @db.Timestamp(0)
main_id String? @db.VarChar(50)
ref_id String? @unique @db.VarChar(50)
customer_id String?
consumer_account_id String
consumer_account ConsumerAccount @relation(fields: [consumer_account_id], references: [id])
pos_id String
pos Pos @relation(fields: [pos_id], references: [id])
referenced_by SalesInvoice? @relation("SalesInvoiceReference")
items SalesInvoiceItem[]
payments SalesInvoicePayment[]
tsp_attempts SaleInvoiceTspAttempts[]
pos_id String
settlement_type InvoiceSettlementType
discount_amount Decimal? @db.Decimal(15, 2)
tax_amount Decimal? @db.Decimal(15, 2)
tsp_attempts SaleInvoiceTspAttempts[]
items SalesInvoiceItem[]
payments SalesInvoicePayment[]
consumer_account ConsumerAccount @relation(fields: [consumer_account_id], references: [id])
customer Customer? @relation(fields: [customer_id], references: [id])
pos Pos @relation(fields: [pos_id], references: [id])
reference_invoice SalesInvoice? @relation("SalesInvoiceReference", fields: [ref_id], references: [id])
referenced_by SalesInvoice? @relation("SalesInvoiceReference")
@@unique([invoice_number, pos_id])
@@index([ref_id])
@@index([tax_id])
@@index([consumer_account_id], map: "sales_invoices_consumer_account_id_fkey")
@@index([customer_id], map: "sales_invoices_customer_id_fkey")
@@index([pos_id], map: "sales_invoices_pos_id_fkey")
@@map("sales_invoices")
}
model SalesInvoiceItem {
id String @id @default(ulid())
quantity Decimal @db.Decimal(10, 0)
measure_unit_text String @db.VarChar(50)
measure_unit_code String @db.VarChar(50)
sku_code String @db.VarChar(50)
sku_vat Decimal @default(0.00) @db.Decimal(15, 2)
unit_price Decimal @default(0.00) @db.Decimal(15, 2)
total_amount Decimal @default(0.00) @db.Decimal(15, 2)
created_at DateTime @default(now()) @db.Timestamp(0)
discount Decimal @default(0.00) @db.Decimal(15, 2)
notes String? @db.Text
payload Json?
good_snapshot Json
invoice_id String
invoice SalesInvoice @relation(fields: [invoice_id], references: [id])
good_id String
good Good @relation(fields: [good_id], references: [id])
service_id String?
service Service? @relation(fields: [service_id], references: [id])
id String @id @default(ulid())
quantity Decimal @db.Decimal(10, 0)
measure_unit_text String @db.VarChar(50)
measure_unit_code String @db.VarChar(50)
sku_code String @db.VarChar(50)
sku_vat Decimal @default(0.00) @db.Decimal(15, 2)
unit_price Decimal @default(0.00) @db.Decimal(15, 2)
total_amount Decimal @default(0.00) @db.Decimal(15, 2)
created_at DateTime @default(now()) @db.Timestamp(0)
discount Decimal @default(0.00) @db.Decimal(15, 2)
notes String? @db.Text
payload Json?
good_snapshot Json
invoice_id String
good_id String
service_id String?
discount_amount Decimal? @db.Decimal(15, 2)
tax_amount Decimal? @db.Decimal(15, 2)
good Good @relation(fields: [good_id], references: [id])
invoice SalesInvoice @relation(fields: [invoice_id], references: [id])
service Service? @relation(fields: [service_id], references: [id])
@@index([invoice_id, good_id])
@@index([good_id], map: "sales_invoice_items_good_id_fkey")
@@index([service_id], map: "sales_invoice_items_service_id_fkey")
@@map("sales_invoice_items")
}
model SaleInvoiceTspAttempts {
id String @id @default(ulid())
attempt_no Int
status TspProviderResponseStatus
raw_request_payload Json
id String @id @default(ulid())
attempt_no Int
status TspProviderResponseStatus
message String @db.Text
sent_at DateTime? @db.Timestamp(0)
received_at DateTime? @db.Timestamp(0)
created_at DateTime @default(now()) @db.Timestamp(0)
invoice_id String
provider_request_payload Json
provider_response Json?
message String @db.Text
error_message String? @db.Text
validation_errors Json?
raw_request_payload Json
error_message String? @db.Text
fiscal_warnings Json?
sent_at DateTime? @db.Timestamp(0)
received_at DateTime? @db.Timestamp(0)
created_at DateTime @default(now()) @db.Timestamp(0)
invoice_id String
invoice SalesInvoice @relation(fields: [invoice_id], references: [id], onDelete: Cascade)
provider_response Json?
validation_errors Json?
invoice SalesInvoice @relation(fields: [invoice_id], references: [id], onDelete: Cascade)
@@unique([invoice_id, attempt_no])
@@index([status])
@@ -95,35 +89,30 @@ model SaleInvoiceTspAttempts {
}
model SalesInvoicePayment {
id String @id @default(ulid())
amount Decimal @db.Decimal(15, 2)
id String @id @default(ulid())
amount Decimal @db.Decimal(15, 2)
payment_method PaymentMethodType
paid_at DateTime @db.Timestamp(0)
created_at DateTime @default(now()) @db.Timestamp(0)
invoice_id String
invoice SalesInvoice @relation(fields: [invoice_id], references: [id])
terminal_info SalesInvoicePaymentTerminalInfo?
paid_at DateTime @db.Timestamp(0)
created_at DateTime @default(now()) @db.Timestamp(0)
invoice_id String
terminal_info SalesInvoicePaymentTerminalInfo?
invoice SalesInvoice @relation(fields: [invoice_id], references: [id])
@@index([invoice_id])
@@map("sales_invoice_payments")
}
model SalesInvoicePaymentTerminalInfo {
id String @id @default(ulid())
id String @id @default(ulid())
terminal_id String
stan String
rrn String
transaction_date_time DateTime
customer_card_no String?
description String?
created_at DateTime @default(now()) @db.Timestamp(0)
payment_id String @unique
payment SalesInvoicePayment @relation(fields: [payment_id], references: [id])
created_at DateTime @default(now()) @db.Timestamp(0)
payment_id String @unique
payment SalesInvoicePayment @relation(fields: [payment_id], references: [id])
@@unique([terminal_id, stan, rrn, payment_id])
@@map("sales_invoice_payment_terminal_info")
+15 -17
View File
@@ -1,20 +1,19 @@
model Service {
id String @id @default(ulid())
name String @db.VarChar(255)
description String? @db.Text
sku String @unique() @db.VarChar(100)
local_sku String? @unique() @db.VarChar(100)
barcode String? @unique() @db.VarChar(100)
created_at DateTime @default(now()) @db.Timestamp(0)
updated_at DateTime @updatedAt @db.Timestamp(0)
deleted_at DateTime? @db.Timestamp(0)
category_id String?
base_sale_price Decimal @default(0.00) @db.Decimal(15, 0)
account_id String
complex_id String
category ServiceCategory? @relation(fields: [category_id], references: [id])
id String @id @default(ulid())
name String @db.VarChar(255)
description String? @db.Text
sku String @unique @db.VarChar(100)
local_sku String? @unique @db.VarChar(100)
barcode String? @unique @db.VarChar(100)
created_at DateTime @default(now()) @db.Timestamp(0)
updated_at DateTime @updatedAt @db.Timestamp(0)
deleted_at DateTime? @db.Timestamp(0)
category_id String?
base_sale_price Decimal @default(0) @db.Decimal(15, 0)
account_id String
complex_id String
sales_invoice_items SalesInvoiceItem[]
category ServiceCategory? @relation(fields: [category_id], references: [id])
@@index([category_id])
@@map("services")
@@ -30,8 +29,7 @@ model ServiceCategory {
created_at DateTime @default(now()) @db.Timestamp(0)
updated_at DateTime @updatedAt @db.Timestamp(0)
deleted_at DateTime? @db.Timestamp(0)
services Service[]
services Service[]
@@map("service_categories")
}