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:
2026-04-23 20:59:39 +03:30
parent f9e1ad69dc
commit a350ec7990
104 changed files with 13233 additions and 4105 deletions
+81 -12
View File
@@ -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")
}