2026-01-04 13:45:26 +03:30
|
|
|
model SalesInvoice {
|
2026-04-27 22:11:05 +03:30
|
|
|
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)
|
|
|
|
|
|
|
|
|
|
notes String? @db.Text
|
|
|
|
|
unknown_customer Json? @db.Json
|
2026-04-27 10:45:39 +03:30
|
|
|
|
|
|
|
|
created_at DateTime @default(now()) @db.Timestamp(0)
|
|
|
|
|
updated_at DateTime @updatedAt @db.Timestamp(0)
|
2026-02-24 12:42:10 +03:30
|
|
|
|
|
|
|
|
customer_id String?
|
2026-04-27 10:45:39 +03:30
|
|
|
customer Customer? @relation(fields: [customer_id], references: [id])
|
|
|
|
|
|
2026-04-27 22:11:05 +03:30
|
|
|
consumer_account_id String
|
|
|
|
|
consumer_account ConsumerAccount @relation(fields: [consumer_account_id], references: [id])
|
2026-04-27 10:45:39 +03:30
|
|
|
|
|
|
|
|
pos_id String
|
|
|
|
|
pos Pos @relation(fields: [pos_id], references: [id])
|
2026-02-24 12:42:10 +03:30
|
|
|
|
2026-04-27 22:11:05 +03:30
|
|
|
fiscal SaleInvoiceFiscals?
|
|
|
|
|
|
2026-04-27 10:45:39 +03:30
|
|
|
items SalesInvoiceItem[]
|
|
|
|
|
payments SalesInvoicePayment[]
|
2026-02-12 20:31:04 +03:30
|
|
|
|
2026-04-27 22:11:05 +03:30
|
|
|
@@unique([invoice_number, pos_id])
|
2026-02-12 20:31:04 +03:30
|
|
|
@@map("sales_invoices")
|
2026-01-04 13:45:26 +03:30
|
|
|
}
|
|
|
|
|
|
|
|
|
|
model SalesInvoiceItem {
|
2026-05-01 19:43:59 +03:30
|
|
|
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
|
2026-02-24 12:42:10 +03:30
|
|
|
|
2026-04-27 22:11:05 +03:30
|
|
|
payload Json?
|
|
|
|
|
good_snapshot Json?
|
|
|
|
|
|
2026-02-24 12:42:10 +03:30
|
|
|
invoice_id String
|
2026-04-27 22:11:05 +03:30
|
|
|
invoice SalesInvoice @relation(fields: [invoice_id], references: [id])
|
2026-02-16 20:51:34 +03:30
|
|
|
|
2026-04-27 22:11:05 +03:30
|
|
|
good_id String?
|
|
|
|
|
good Good? @relation(fields: [good_id], references: [id])
|
2026-02-12 20:31:04 +03:30
|
|
|
|
2026-04-27 22:11:05 +03:30
|
|
|
service_id String?
|
|
|
|
|
service Service? @relation(fields: [service_id], references: [id])
|
2026-02-12 20:31:04 +03:30
|
|
|
|
|
|
|
|
@@index([invoice_id, good_id])
|
|
|
|
|
@@map("sales_invoice_items")
|
2026-01-04 13:45:26 +03:30
|
|
|
}
|
|
|
|
|
|
2026-04-27 22:11:05 +03:30
|
|
|
model SaleInvoiceFiscals {
|
|
|
|
|
id String @id @default(ulid())
|
|
|
|
|
|
|
|
|
|
retry_count Int @default(0)
|
|
|
|
|
last_attempt_at DateTime? @db.Timestamp(0)
|
|
|
|
|
|
|
|
|
|
created_at DateTime @default(now()) @db.Timestamp(0)
|
|
|
|
|
updated_at DateTime @updatedAt() @db.Timestamp(0)
|
|
|
|
|
|
|
|
|
|
invoice_id String @unique
|
|
|
|
|
invoice SalesInvoice @relation(fields: [invoice_id], references: [id], onDelete: Cascade)
|
|
|
|
|
|
|
|
|
|
attempts SaleInvoiceFiscalAttempts[]
|
|
|
|
|
|
|
|
|
|
@@map("sale_invoice_fiscals")
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
model SaleInvoiceFiscalAttempts {
|
|
|
|
|
id String @id @default(ulid())
|
|
|
|
|
|
|
|
|
|
attempt_no Int
|
2026-05-01 19:43:59 +03:30
|
|
|
status FiscalResponseStatus
|
|
|
|
|
tax_id String? @unique @db.VarChar(191)
|
|
|
|
|
type FiscalRequestType
|
2026-04-27 22:11:05 +03:30
|
|
|
|
|
|
|
|
request_payload Json?
|
|
|
|
|
response_payload Json?
|
|
|
|
|
error_message String? @db.Text
|
|
|
|
|
|
|
|
|
|
sent_at DateTime? @db.Timestamp(0)
|
|
|
|
|
received_at DateTime? @db.Timestamp(0)
|
|
|
|
|
created_at DateTime @default(now()) @db.Timestamp(0)
|
|
|
|
|
|
|
|
|
|
fiscal_id String
|
|
|
|
|
fiscal SaleInvoiceFiscals @relation(fields: [fiscal_id], references: [id], onDelete: Cascade)
|
|
|
|
|
|
|
|
|
|
@@unique([fiscal_id, attempt_no])
|
|
|
|
|
@@index([status])
|
|
|
|
|
@@index([tax_id])
|
|
|
|
|
@@map("sale_invoice_fiscal_attempts")
|
|
|
|
|
}
|
|
|
|
|
|
2026-01-04 13:45:26 +03:30
|
|
|
model SalesInvoicePayment {
|
2026-04-23 20:59:39 +03:30
|
|
|
id String @id @default(ulid())
|
2026-02-12 20:31:04 +03:30
|
|
|
amount Decimal @db.Decimal(15, 2)
|
|
|
|
|
payment_method PaymentMethodType
|
2026-04-27 22:11:05 +03:30
|
|
|
paid_at DateTime @db.Timestamp(0)
|
2026-01-04 13:45:26 +03:30
|
|
|
|
2026-04-27 22:11:05 +03:30
|
|
|
created_at DateTime @default(now()) @db.Timestamp(0)
|
|
|
|
|
|
|
|
|
|
invoice_id String
|
|
|
|
|
invoice SalesInvoice @relation(fields: [invoice_id], references: [id])
|
2026-01-04 13:45:26 +03:30
|
|
|
|
2026-04-30 16:27:46 +03:30
|
|
|
terminal_info SalesInvoicePaymentTerminalInfo?
|
|
|
|
|
|
2026-02-12 20:31:04 +03:30
|
|
|
@@index([invoice_id])
|
|
|
|
|
@@map("sales_invoice_payments")
|
2026-01-04 13:45:26 +03:30
|
|
|
}
|
2026-04-30 16:27:46 +03:30
|
|
|
|
|
|
|
|
model SalesInvoicePaymentTerminalInfo {
|
|
|
|
|
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])
|
|
|
|
|
|
|
|
|
|
@@unique([terminal_id, stan, rrn, payment_id])
|
|
|
|
|
@@map("sales_invoice_payment_terminal_info")
|
|
|
|
|
}
|