transform core api codes into this project, update modules as admin/pos context modules

This commit is contained in:
2026-03-07 11:25:11 +03:30
parent b949500482
commit 8c5f1d4d49
167 changed files with 26975 additions and 1837 deletions
+26
View File
@@ -0,0 +1,26 @@
model Token {
id String @id @default(uuid())
token String @unique
type TokenType
created_at DateTime @default(now())
expires_at DateTime
account_id String
account Account @relation(fields: [account_id], references: [id])
@@unique([type, account_id])
@@map("tokens")
}
model VerificationCode {
id String @id @default(uuid())
code String
is_used Boolean @default(false)
created_at DateTime @default(now())
expires_at DateTime
account_id String
account Account @relation(fields: [account_id], references: [id])
@@map("verification_codes")
}
+96
View File
@@ -0,0 +1,96 @@
model Guild {
id String @id @default(uuid())
name String
code String?
business_activities BusinessActivity[]
goods Good[]
good_categories GoodCategory[]
@@map("guilds")
}
model BusinessActivity {
id String @id @default(uuid())
name String
created_at DateTime @default(now())
guild_id String
owner_id String
guild Guild @relation(fields: [guild_id], references: [id])
user User @relation(fields: [owner_id], references: [id])
complexes Complex[]
accounts Account[]
@@map("business_activities")
}
model Complex {
id String @id @default(uuid())
name String
address String?
tax_id String?
business_activity_id String
business_activity BusinessActivity @relation(fields: [business_activity_id], references: [id])
pos_list Pos[]
goods Good[]
good_categories GoodCategory[]
@@map("complexes")
}
model Pos {
id String @id @default(uuid())
serial String @unique
model String?
status POSStatus @default(ACTIVE)
pos_type POSType
created_at DateTime @default(now())
updated_at DateTime @updatedAt()
complex_id String
device_id String
provider_id String?
complex Complex @relation(fields: [complex_id], references: [id])
device Device @relation(fields: [device_id], references: [id])
provider Provider? @relation(fields: [provider_id], references: [id])
licenses License[]
accounts Account[]
@@map("poses")
}
// model BusinessAccount {
// id String @id @default(uuid())
// role BusinessRole
// status AccountStatus @default(ACTIVE)
// created_at DateTime @default(now())
// business_activity_id String
// account_id String @unique
// account Account @relation(fields: [account_id], references: [id])
// owned_activities BusinessActivity[] @relation("business_owner")
// @@unique([business_activity_id, account_id])
// @@map("business_accounts")
// }
// model PosAccount {
// id String @id @default(uuid())
// pos_id String
// account_id String
// role POSRole
// created_at DateTime @default(now())
// pos Pos @relation(fields: [pos_id], references: [id])
// account Account @relation(fields: [account_id], references: [id])
// @@unique([pos_id, account_id])
// @@map("pos_accounts")
// }
+25
View File
@@ -0,0 +1,25 @@
model DeviceBrand {
id String @id @default(uuid())
name String
created_at DateTime @default(now())
updated_at DateTime @updatedAt()
devices Device[]
@@map("device_brands")
}
model Device {
id String @id @default(uuid())
name String
os_version String?
created_at DateTime @default(now())
updated_at DateTime @updatedAt()
brand_id String
brand DeviceBrand @relation(fields: [brand_id], references: [id])
poses Pos[]
@@map("devices")
}
+14
View File
@@ -0,0 +1,14 @@
model License {
id String @id @default(uuid())
starts_at DateTime
expires_at DateTime
status LicenseStatus
pos_id String
partner_id String
pos Pos @relation(fields: [pos_id], references: [id])
partner Partner @relation(fields: [partner_id], references: [id])
@@map("licenses")
}
+25
View File
@@ -0,0 +1,25 @@
model Partner {
id String @id @default(uuid())
name String
code String?
licenses License[]
account Account[]
@@map("partners")
}
// model PartnerAccount {
// id String @id @default(uuid())
// role PartnerRole
// status AccountStatus @default(ACTIVE)
// created_at DateTime @default(now())
// partner_id String
// account_id String @unique
// partner Partner @relation(fields: [partner_id], references: [id])
// account Account @relation(fields: [account_id], references: [id])
// @@unique([partner_id, account_id])
// @@map("partner_accounts")
// }
+72
View File
@@ -0,0 +1,72 @@
model User {
id String @id @default(uuid())
// user_type UserType
created_at DateTime @default(now())
// individual_profile IndividualProfile?
// legal_profile LegalProfile?
mobile_number String @unique()
national_code String? @unique()
first_name String
last_name String
// username String
accounts Account[]
businessActivities BusinessActivity[]
@@map("users")
}
// model LegalProfile {
// user_id String @id
// company_name String
// register_no String @unique()
// representative_name String?
// representative_national_id String?
// // user User @relation(fields: [user_id], references: [id])
// @@map("legal_profiles")
// }
// model IndividualProfile {
// user_id String @id
// national_code String @unique()
// first_name String
// last_name String
// birth_date DateTime?
// mobile_number String
// // user User @relation(fields: [user_id], references: [id])
// @@map("individual_profiles")
// }
model Account {
id String @id @default(uuid())
username String @unique()
// first_name String
// last_name String
type AccountType
status AccountStatus
password String
created_at DateTime @default(now())
user_id String
user User @relation(fields: [user_id], references: [id])
partner_id String?
partner Partner? @relation(fields: [partner_id], references: [id])
business_id String?
business BusinessActivity? @relation(fields: [business_id], references: [id])
provider_id String?
provider Provider? @relation(fields: [provider_id], references: [id])
pos_id String?
pos Pos? @relation(fields: [pos_id], references: [id])
verification_codes VerificationCode[]
tokens Token[]
@@map("accounts")
}
+25
View File
@@ -0,0 +1,25 @@
model Provider {
id String @id @default(uuid())
name String
code String?
pos_list Pos[]
accounts Account[]
@@map("providers")
}
// model ProviderAccount {
// id String @id @default(uuid())
// role ProviderRole
// status AccountStatus @default(ACTIVE)
// created_at DateTime @default(now())
// provider_id String
// account_id String @unique
// provider Provider @relation(fields: [provider_id], references: [id])
// account Account @relation(fields: [account_id], references: [id])
// @@unique([provider_id, account_id])
// @@map("provider_accounts")
// }
-40
View File
@@ -1,40 +0,0 @@
enum PaymentMethodType {
TERMINAL
CASH
SET_OFF
CARD
BANK
CHECK
OTHER
}
enum PurchaseReceiptStatus {
UNPAID
PARTIALLY_PAID
PAID
}
enum SalesInvoiceType {
GOOD
SERVICE
}
enum UnitType {
COUNT
GRAM
KILOGRAM
LITER
METER
HOUR
}
enum CustomerType {
INDIVIDUAL
LEGAL
UNKNOWN
}
enum SalesInvoiceItemPricingModel {
STANDARD
GOLD
}
-37
View File
@@ -1,37 +0,0 @@
model Good {
id String @id @default(uuid())
name String @db.VarChar(255)
description String? @db.Text
sku String @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 GoodCategory? @relation(fields: [category_id], references: [id])
sales_invoice_items SalesInvoiceItem[]
@@index([category_id])
@@map("goods")
}
model GoodCategory {
id String @id @default(uuid())
name String @db.VarChar(100)
description String? @db.Text
image_url String? @db.VarChar(255)
account_id String
complex_id String
created_at DateTime @default(now()) @db.Timestamp(0)
updated_at DateTime @updatedAt @db.Timestamp(0)
deleted_at DateTime? @db.Timestamp(0)
goods Good[]
@@map("good_categories")
}
@@ -1,4 +1,4 @@
model Device {
model UserDevices {
account_id String? @db.VarChar(255)
app_version String @db.VarChar(20)
build_number String @db.VarChar(20)
@@ -14,5 +14,5 @@ model Device {
browser_name String? @db.VarChar(100)
fcm_token String? @db.VarChar(100)
@@map("devices")
@@map("user_devices")
}
+119
View File
@@ -0,0 +1,119 @@
enum PaymentMethodType {
TERMINAL
CASH
SET_OFF
CARD
BANK
CHECK
OTHER
}
enum PurchaseReceiptStatus {
UNPAID
PARTIALLY_PAID
PAID
}
enum SalesInvoiceType {
GOOD
SERVICE
}
enum UnitType {
COUNT
GRAM
KILOGRAM
MILLILITER
LITER
METER
HOUR
}
enum GoodPricingModel {
STANDARD
GOLD
}
enum CustomerType {
INDIVIDUAL
LEGAL
UNKNOWN
}
enum UserStatus {
ACTIVE
INACTIVE
}
enum AccountRole {
OWNER
OPERATOR
ACCOUNTANT
}
enum AccountStatus {
ACTIVE
SUSPENDED
}
enum POSStatus {
ACTIVE
DISABLED
}
enum POSRole {
MANAGER
OPERATOR
VIEWER
}
enum LicenseType {
BASIC
PRO
ENTERPRISE
}
enum LicenseStatus {
ACTIVE
EXPIRED
SUSPENDED
}
enum POSType {
PSP
MOBILE
API
}
enum UserType {
LEGAL
INDIVIDUAL
}
enum AccountType {
PARTNER
BUSINESS
ADMIN
PROVIDER
POS
}
enum PartnerRole {
ADMIN
OPERATOR
}
enum BusinessRole {
ADMIN
OPERATOR
}
enum ProviderRole {
ADMIN
OPERATOR
}
enum TokenType {
ACCESS
REFRESH
}
+45
View File
@@ -0,0 +1,45 @@
model Good {
id String @id @default(uuid())
name String @db.VarChar(255)
description String? @db.Text
sku String @db.VarChar(100)
local_sku String? @unique() @db.VarChar(100)
barcode String? @unique() @db.VarChar(100)
base_sale_price Decimal? @default(0.00) @db.Decimal(15, 0)
is_default_guild_good Boolean @default(false)
created_at DateTime @default(now()) @db.Timestamp(0)
updated_at DateTime @updatedAt @db.Timestamp(0)
deleted_at DateTime? @db.Timestamp(0)
complex_id String?
category_id String?
guild_id String?
category GoodCategory? @relation(fields: [category_id], references: [id])
complex Complex? @relation(fields: [complex_id], references: [id])
guild Guild? @relation(fields: [guild_id], references: [id])
sales_invoice_items SalesInvoiceItem[]
@@index([category_id])
@@map("goods")
}
model GoodCategory {
id String @id @default(uuid())
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)
guild_id String?
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])
@@map("good_categories")
}
@@ -20,15 +20,14 @@ model SalesInvoice {
}
model SalesInvoiceItem {
id String @id @default(uuid())
quantity Decimal @db.Decimal(10, 0)
id String @id @default(uuid())
quantity Decimal @db.Decimal(10, 0)
unit_type UnitType
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
pricingModel SalesInvoiceItemPricingModel @default(STANDARD)
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
invoice_id String
good_id String?