feat: implement tax switch functionality with Nama adapter

- Add DTOs for tax switch operations including payloads and results.
- Create SalesInvoiceFiscalSwitchService to handle sending and retrieving tax data.
- Implement SalesInvoiceFiscalService for managing invoice tax submissions and results persistence.
- Develop NamaTaxSwitchAdapter for interfacing with the external tax service.
- Introduce NamaTaxRequestDto and related classes for structured tax requests.
This commit is contained in:
2026-04-30 16:27:46 +03:30
parent 58a7c359d8
commit a68a7f594d
38 changed files with 2678 additions and 287 deletions
+11
View File
@@ -155,3 +155,14 @@ enum ConsumerType {
INDIVIDUAL
LEGAL
}
enum PartnerFiscalSwitchType {
NAMA
SUN
}
enum FiscalResponseStatus {
SUCCESS
FAILURE
NOT_SEND
}
+20
View File
@@ -107,6 +107,26 @@ model SalesInvoicePayment {
invoice_id String
invoice SalesInvoice @relation(fields: [invoice_id], references: [id])
terminal_info SalesInvoicePaymentTerminalInfo?
@@index([invoice_id])
@@map("sales_invoice_payments")
}
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")
}