transform core api codes into this project, update modules as admin/pos context modules
This commit is contained in:
@@ -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")
|
||||
}
|
||||
@@ -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")
|
||||
// }
|
||||
@@ -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")
|
||||
}
|
||||
@@ -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")
|
||||
}
|
||||
@@ -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")
|
||||
// }
|
||||
@@ -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")
|
||||
}
|
||||
@@ -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")
|
||||
// }
|
||||
@@ -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
|
||||
}
|
||||
@@ -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")
|
||||
}
|
||||
@@ -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
|
||||
}
|
||||
@@ -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?
|
||||
Reference in New Issue
Block a user