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()) type ConsumerType status ConsumerStatus @default(ACTIVE) created_at DateTime @default(now()) @db.Timestamp(0) updated_at DateTime @updatedAt() @db.Timestamp(0) accounts ConsumerAccount[] business_activities BusinessActivity[] devices ConsumerDevices[] individual ConsumerIndividual? legal ConsumerLegal? @@map("consumers") } model ConsumerIndividual { first_name String last_name String mobile_number String national_code String 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_id String @id consumer Consumer @relation(fields: [consumer_id], references: [id], onDelete: Cascade) @@unique([mobile_number, consumer_id]) @@unique([partner_id, national_code]) @@map("consumers_individual") } model ConsumerLegal { name String registration_code String 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_id String @id consumer Consumer @relation(fields: [consumer_id], references: [id], onDelete: Cascade) @@unique([partner_id, registration_code]) @@map("consumers_legal") } model BusinessActivity { id String @id @default(ulid()) economic_code String 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? goods Good[] customer_individuals CustomerIndividual[] customer_legals CustomerLegal[] @@unique([economic_code, consumer_id]) @@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[] good_categories GoodCategory[] permission_complexes PermissionComplex[] @@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]) provider_id String? provider Provider? @relation(fields: [provider_id], references: [id]) account_id String @unique account ConsumerAccount @relation(fields: [account_id], references: [id]) permission_pos PermissionPos[] sales_invoices SalesInvoice[] @@map("poses") }