feat: add consumer accounts and business activities management
- Implemented AccountsService for managing consumer accounts including create, update, delete, and find operations. - Created DTOs for account creation and updates. - Developed BusinessActivitiesController and BusinessActivitiesService for handling business activities related to consumers. - Added complexes management with ComplexesController and ComplexesService. - Introduced POS management with ComplexPosesController and ComplexPosesService. - Created necessary DTOs for business activities and POS. - Established Licenses management with LicensesController and LicensesService. - Integrated consumer management with PartnerConsumersController and PartnerConsumersService. - Added Prisma module imports and service connections across modules.
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
model AdminAccount {
|
||||
id String @id @default(uuid())
|
||||
id String @id @default(ulid())
|
||||
|
||||
created_at DateTime @default(now()) @db.Timestamp(0)
|
||||
updated_at DateTime @updatedAt() @db.Timestamp(0)
|
||||
@@ -14,7 +14,7 @@ model AdminAccount {
|
||||
}
|
||||
|
||||
model Admin {
|
||||
id String @id @default(uuid())
|
||||
id String @id @default(ulid())
|
||||
mobile_number String @unique()
|
||||
national_code String? @unique()
|
||||
first_name String
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
model Account {
|
||||
id String @id @default(uuid())
|
||||
id String @id @default(ulid())
|
||||
username String @unique()
|
||||
password String
|
||||
status AccountStatus
|
||||
@@ -17,7 +17,7 @@ model Account {
|
||||
}
|
||||
|
||||
// model Token {
|
||||
// id String @id @d @uniqueefault(uuid())
|
||||
// id String @id @d @uniqueefault(ulid())
|
||||
// token String @unique
|
||||
// type TokenType
|
||||
// created_at DateTime @default(now())
|
||||
@@ -31,7 +31,7 @@ model Account {
|
||||
// }
|
||||
|
||||
// model VerificationCode {
|
||||
// id String @id @default(uuid())
|
||||
// id String @id @default(ulid())
|
||||
// code String
|
||||
// is_used Boolean @default(false)
|
||||
// created_at DateTime @default(now())
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
model ConsumerAccount {
|
||||
id String @id @default(uuid())
|
||||
id String @id @default(ulid())
|
||||
role ConsumerRole
|
||||
|
||||
created_at DateTime @default(now()) @db.Timestamp(0)
|
||||
@@ -8,7 +8,7 @@ model ConsumerAccount {
|
||||
consumer_id String
|
||||
consumer Consumer @relation(fields: [consumer_id], references: [id])
|
||||
|
||||
account_id String @unique
|
||||
account_id String @unique()
|
||||
account Account @relation(fields: [account_id], references: [id])
|
||||
|
||||
permission PermissionConsumer?
|
||||
@@ -18,8 +18,9 @@ model ConsumerAccount {
|
||||
}
|
||||
|
||||
model Consumer {
|
||||
id String @id @default(uuid())
|
||||
mobile_number String @unique()
|
||||
id String @id @default(ulid())
|
||||
mobile_number String
|
||||
national_code String
|
||||
first_name String
|
||||
last_name String
|
||||
status ConsumerStatus @default(ACTIVE)
|
||||
@@ -27,17 +28,23 @@ model Consumer {
|
||||
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[]
|
||||
activated_licenses ActivatedLicense[]
|
||||
consumer_devices ConsumerDevices[]
|
||||
|
||||
@@unique([mobile_number, partner_id])
|
||||
@@unique([national_code, partner_id])
|
||||
@@map("consumers")
|
||||
}
|
||||
|
||||
model BusinessActivity {
|
||||
id String @id @default(uuid())
|
||||
name String
|
||||
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)
|
||||
|
||||
@@ -49,15 +56,16 @@ model BusinessActivity {
|
||||
|
||||
complexes Complex[]
|
||||
permission_businesses PermissionBusiness[]
|
||||
license_activation LicenseActivation?
|
||||
|
||||
@@map("business_activities")
|
||||
}
|
||||
|
||||
model Complex {
|
||||
id String @id @default(uuid())
|
||||
name String
|
||||
address String?
|
||||
tax_id String?
|
||||
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)
|
||||
@@ -77,14 +85,15 @@ model Complex {
|
||||
}
|
||||
|
||||
model Pos {
|
||||
id String @id @default(uuid())
|
||||
name String
|
||||
serial String @unique
|
||||
model String?
|
||||
status POSStatus @default(ACTIVE)
|
||||
pos_type POSType
|
||||
created_at DateTime @default(now()) @db.Timestamp(0)
|
||||
updated_at DateTime @updatedAt() @db.Timestamp(0)
|
||||
id String @id @default(ulid())
|
||||
name String
|
||||
serial String @unique()
|
||||
model String?
|
||||
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])
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
model DeviceBrand {
|
||||
id String @id @default(uuid())
|
||||
id String @id @default(ulid())
|
||||
name String
|
||||
|
||||
created_at DateTime @default(now()) @db.Timestamp(0)
|
||||
@@ -11,7 +11,7 @@ model DeviceBrand {
|
||||
}
|
||||
|
||||
model Device {
|
||||
id String @id @default(uuid())
|
||||
id String @id @default(ulid())
|
||||
name String
|
||||
os_version String?
|
||||
|
||||
|
||||
@@ -1,19 +1,21 @@
|
||||
model License {
|
||||
id String @id @default(uuid())
|
||||
id String @id @default(ulid())
|
||||
accounts_limit Int @default(3)
|
||||
|
||||
created_at DateTime @default(now()) @db.Timestamp(0)
|
||||
updated_at DateTime @updatedAt() @db.Timestamp(0)
|
||||
|
||||
charged_license_transaction_id String
|
||||
charged_license_transaction ChargedLicenseTransactions @relation(fields: [charged_license_transaction_id], references: [id])
|
||||
charge_transaction_id String
|
||||
charge_transaction LicenseChargeTransaction @relation(fields: [charge_transaction_id], references: [id])
|
||||
|
||||
activated_license ActivatedLicense?
|
||||
activation LicenseActivation?
|
||||
allocations PartnerAccountQuotaAllocation[]
|
||||
|
||||
@@map("licenses")
|
||||
}
|
||||
|
||||
model ActivatedLicense {
|
||||
id String @id @unique() @default(uuid())
|
||||
model LicenseActivation {
|
||||
id String @id @unique() @default(ulid())
|
||||
starts_at DateTime
|
||||
expires_at DateTime
|
||||
|
||||
@@ -23,16 +25,18 @@ model ActivatedLicense {
|
||||
license_id String @unique
|
||||
license License @relation(fields: [license_id], references: [id])
|
||||
|
||||
consumer_id String
|
||||
consumer Consumer @relation(fields: [consumer_id], references: [id])
|
||||
business_activity_id String @unique
|
||||
business_activity BusinessActivity @relation(fields: [business_activity_id], references: [id])
|
||||
license_renews LicenseRenew[]
|
||||
|
||||
@@map("activated_licenses")
|
||||
@@map("licenses_activated")
|
||||
}
|
||||
|
||||
model ChargedLicenseTransactions {
|
||||
id String @id @default(uuid())
|
||||
model LicenseChargeTransaction {
|
||||
id String @id @default(ulid())
|
||||
activation_expires_at DateTime
|
||||
tracking_code String @unique()
|
||||
purchased_count Int
|
||||
|
||||
created_at DateTime @default(now()) @db.Timestamp(0)
|
||||
updated_at DateTime @updatedAt() @db.Timestamp(0)
|
||||
@@ -42,5 +46,70 @@ model ChargedLicenseTransactions {
|
||||
|
||||
licenses License[]
|
||||
|
||||
@@map("charged_license_transactions")
|
||||
@@map("license_charged_transactions")
|
||||
}
|
||||
|
||||
model LicenseRenew {
|
||||
id String @id @default(ulid())
|
||||
expires_at DateTime
|
||||
|
||||
created_at DateTime @default(now()) @db.Timestamp(0)
|
||||
updated_at DateTime @updatedAt() @db.Timestamp(0)
|
||||
|
||||
charge_transaction_id String
|
||||
charge_transaction LicenseRenewChargeTransaction @relation(fields: [charge_transaction_id], references: [id])
|
||||
|
||||
activation_id String
|
||||
activation LicenseActivation @relation(fields: [activation_id], references: [id])
|
||||
|
||||
@@map("license_renew")
|
||||
}
|
||||
|
||||
model LicenseRenewChargeTransaction {
|
||||
id String @id @default(ulid())
|
||||
activation_expires_at DateTime
|
||||
tracking_code String @unique()
|
||||
purchased_count Int
|
||||
|
||||
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])
|
||||
|
||||
license_renews LicenseRenew[]
|
||||
|
||||
@@map("license_renew_charge_transaction")
|
||||
}
|
||||
|
||||
model PartnerAccountQuotaChargeTransaction {
|
||||
id String @id @default(ulid())
|
||||
activation_expires_at DateTime
|
||||
tracking_code String @unique()
|
||||
purchased_count Int
|
||||
|
||||
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])
|
||||
|
||||
allocations PartnerAccountQuotaAllocation[]
|
||||
|
||||
@@map("partner_account_quota_charge_transaction")
|
||||
}
|
||||
|
||||
model PartnerAccountQuotaAllocation {
|
||||
id String @id @default(ulid())
|
||||
|
||||
created_at DateTime @default(now()) @db.Timestamp(0)
|
||||
updated_at DateTime @updatedAt() @db.Timestamp(0)
|
||||
|
||||
charge_transaction_id String
|
||||
charge_transaction PartnerAccountQuotaChargeTransaction @relation(fields: [charge_transaction_id], references: [id])
|
||||
|
||||
license_id String?
|
||||
license License? @relation(fields: [license_id], references: [id])
|
||||
|
||||
@@map("partner_account_quota_allocation")
|
||||
}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
model PartnerAccount {
|
||||
id String @id @default(uuid())
|
||||
id String @id @default(ulid())
|
||||
role PartnerRole
|
||||
|
||||
created_at DateTime @default(now()) @db.Timestamp(0)
|
||||
@@ -15,7 +15,7 @@ model PartnerAccount {
|
||||
}
|
||||
|
||||
model Partner {
|
||||
id String @id @default(uuid())
|
||||
id String @id @default(ulid())
|
||||
name String
|
||||
code String @unique()
|
||||
status PartnerStatus @default(ACTIVE)
|
||||
@@ -23,8 +23,11 @@ model Partner {
|
||||
created_at DateTime @default(now()) @db.Timestamp(0)
|
||||
updated_at DateTime @default(now()) @updatedAt @db.Timestamp(0)
|
||||
|
||||
partner_accounts PartnerAccount[]
|
||||
chargedLicenseTransactions ChargedLicenseTransactions[]
|
||||
consumers Consumer[]
|
||||
partner_accounts PartnerAccount[]
|
||||
license_charge_transactions LicenseChargeTransaction[]
|
||||
account_quota_charge_transactions PartnerAccountQuotaChargeTransaction[]
|
||||
license_renew_charge_transactions LicenseRenewChargeTransaction[]
|
||||
|
||||
@@map("partners")
|
||||
}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
model PermissionConsumer {
|
||||
id String @id @default(uuid())
|
||||
id String @id @default(ulid())
|
||||
|
||||
consumer_account_id String @unique
|
||||
consumer_account ConsumerAccount @relation(fields: [consumer_account_id], references: [id], onDelete: Cascade)
|
||||
@@ -12,7 +12,7 @@ model PermissionConsumer {
|
||||
}
|
||||
|
||||
model PermissionPos {
|
||||
id String @id @default(uuid())
|
||||
id String @id @default(ulid())
|
||||
role POSRole
|
||||
|
||||
pos_id String
|
||||
@@ -26,7 +26,7 @@ model PermissionPos {
|
||||
}
|
||||
|
||||
model PermissionComplex {
|
||||
id String @id @default(uuid())
|
||||
id String @id @default(ulid())
|
||||
role ComplexRole
|
||||
|
||||
complex_id String
|
||||
@@ -40,7 +40,7 @@ model PermissionComplex {
|
||||
}
|
||||
|
||||
model PermissionBusiness {
|
||||
id String @id @default(uuid())
|
||||
id String @id @default(ulid())
|
||||
role BusinessRole
|
||||
|
||||
business_id String
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
model ProviderAccount {
|
||||
id String @id @default(uuid())
|
||||
id String @id @default(ulid())
|
||||
role ProviderRole
|
||||
|
||||
created_at DateTime @default(now()) @db.Timestamp(0)
|
||||
@@ -15,7 +15,7 @@ model ProviderAccount {
|
||||
}
|
||||
|
||||
model Provider {
|
||||
id String @id @default(uuid())
|
||||
id String @id @default(ulid())
|
||||
code String @unique()
|
||||
status PartnerStatus @default(ACTIVE)
|
||||
name String
|
||||
|
||||
Reference in New Issue
Block a user