12506de863
- Implemented `getPartnerBusinessActivityAllocationLimits` to retrieve allocation limits for a partner's business activity. - Added `ensurePartnerBusinessActivityHasRemainingAllocation` to validate remaining allocation credits. - Created `getPartnerRemainingLicenses` to count remaining licenses for a partner. - Developed `getPartnerFirstRemainingLicense` to fetch the first unused license for a partner. - Introduced `ensurePartnerHasRemainingLicense` to ensure a partner has at least one unused license.
117 lines
3.1 KiB
Plaintext
117 lines
3.1 KiB
Plaintext
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?
|
|
sales_invoices SalesInvoice[]
|
|
|
|
@@map("consumer_accounts")
|
|
}
|
|
|
|
model Consumer {
|
|
id String @id @default(ulid())
|
|
mobile_number String
|
|
national_code String
|
|
first_name String
|
|
last_name String
|
|
status ConsumerStatus @default(ACTIVE)
|
|
|
|
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_accounts ConsumerAccount[]
|
|
business_activities BusinessActivity[]
|
|
consumer_devices ConsumerDevices[]
|
|
|
|
@@unique([mobile_number, partner_id])
|
|
@@unique([national_code, partner_id])
|
|
@@map("consumers")
|
|
}
|
|
|
|
model BusinessActivity {
|
|
id String @id @default(ulid())
|
|
economic_code String @unique()
|
|
name String
|
|
|
|
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])
|
|
|
|
complexes Complex[]
|
|
permission_businesses PermissionBusiness[]
|
|
license_activation LicenseActivation?
|
|
|
|
@@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)
|
|
|
|
business_activity_id String
|
|
|
|
business_activity BusinessActivity @relation(fields: [business_activity_id], references: [id])
|
|
|
|
pos_list Pos[]
|
|
goods Good[]
|
|
good_categories GoodCategory[]
|
|
permission_complexes PermissionComplex[]
|
|
customer_individuals CustomerIndividual[]
|
|
customer_legals CustomerLegal[]
|
|
|
|
@@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])
|
|
|
|
account_id String? @unique
|
|
account ConsumerAccount? @relation(fields: [account_id], references: [id])
|
|
|
|
provider_id String?
|
|
provider Provider? @relation(fields: [provider_id], references: [id])
|
|
|
|
permission_pos PermissionPos[]
|
|
sales_invoices SalesInvoice[]
|
|
|
|
@@map("poses")
|
|
}
|