diff --git a/prisma/migrations/20260406153630_init/migration.sql b/prisma/migrations/20260406153630_init/migration.sql new file mode 100644 index 0000000..812a79c --- /dev/null +++ b/prisma/migrations/20260406153630_init/migration.sql @@ -0,0 +1,25 @@ +/* + Warnings: + + - A unique constraint covering the columns `[license_id]` on the table `consumers` will be added. If there are existing duplicate values, this will fail. + - A unique constraint covering the columns `[consumer_id]` on the table `licenses` will be added. If there are existing duplicate values, this will fail. + - Added the required column `consumer_id` to the `licenses` table without a default value. This is not possible if the table is not empty. + +*/ +-- DropForeignKey +ALTER TABLE `consumers` DROP FOREIGN KEY `consumers_license_id_fkey`; + +-- DropIndex +DROP INDEX `consumers_license_id_fkey` ON `consumers`; + +-- AlterTable +ALTER TABLE `licenses` ADD COLUMN `consumer_id` VARCHAR(191) NOT NULL; + +-- CreateIndex +CREATE UNIQUE INDEX `consumers_license_id_key` ON `consumers`(`license_id`); + +-- CreateIndex +CREATE UNIQUE INDEX `licenses_consumer_id_key` ON `licenses`(`consumer_id`); + +-- AddForeignKey +ALTER TABLE `licenses` ADD CONSTRAINT `licenses_consumer_id_fkey` FOREIGN KEY (`consumer_id`) REFERENCES `consumers`(`id`) ON DELETE RESTRICT ON UPDATE CASCADE; diff --git a/prisma/schema/admin/consumers.prisma b/prisma/schema/admin/consumers.prisma index b81be8f..79ff42c 100644 --- a/prisma/schema/admin/consumers.prisma +++ b/prisma/schema/admin/consumers.prisma @@ -4,15 +4,16 @@ model Consumer { first_name String last_name String status ConsumerStatus @default(ACTIVE) - license_id String? + license_id String? @unique() created_at DateTime @default(now()) @db.Timestamp(0) updated_at DateTime @updatedAt() @db.Timestamp(0) - license License? @relation(fields: [license_id], references: [id]) accounts ConsumerAccount[] businessActivities BusinessActivity[] + license License? + @@map("consumers") } diff --git a/prisma/schema/admin/license.prisma b/prisma/schema/admin/license.prisma index c23845d..183ea35 100644 --- a/prisma/schema/admin/license.prisma +++ b/prisma/schema/admin/license.prisma @@ -8,11 +8,10 @@ model License { updated_at DateTime @updatedAt() @db.Timestamp(0) partner_id String? + partner Partner? @relation(fields: [partner_id], references: [id]) - // pos Pos @relation(fields: [pos_id], references: [id]) - partner Partner? @relation(fields: [partner_id], references: [id]) - - consumers Consumer[] + consumer_id String @unique + consumer Consumer @relation(fields: [consumer_id], references: [id]) @@map("licenses") } diff --git a/src/generated/prisma/internal/class.ts b/src/generated/prisma/internal/class.ts index 80048ce..4710c55 100644 --- a/src/generated/prisma/internal/class.ts +++ b/src/generated/prisma/internal/class.ts @@ -22,7 +22,7 @@ const config: runtime.GetPrismaClientConfig = { "clientVersion": "7.2.0", "engineVersion": "0c8ef2ce45c83248ab3df073180d5eda9e8be7a3", "activeProvider": "mysql", - "inlineSchema": "model Admin {\n id String @id @default(uuid())\n mobile_number String @unique()\n national_code String? @unique()\n first_name String\n last_name String\n\n created_at DateTime @default(now()) @db.Timestamp(0)\n updated_at DateTime @updatedAt() @db.Timestamp(0)\n\n accounts AdminAccount[]\n\n @@map(\"admins\")\n}\n\nmodel AdminAccount {\n id String @id @default(uuid())\n\n created_at DateTime @default(now()) @db.Timestamp(0)\n updated_at DateTime @updatedAt() @db.Timestamp(0)\n\n user_id String\n user Admin @relation(fields: [user_id], references: [id])\n\n account_id String @unique\n account Account @relation(fields: [account_id], references: [id])\n\n @@map(\"admin_accounts\")\n}\n\n// model LegalProfile {\n// user_id String @id\n// company_name String\n// register_no String @unique()\n// representative_name String?\n// representative_national_id String?\n\n// // user User @relation(fields: [user_id], references: [id])\n\n// @@map(\"legal_profiles\")\n// }\n\n// model IndividualProfile {\n// user_id String @id\n// national_code String @unique()\n// first_name String\n// last_name String\n// birth_date DateTime?\n// mobile_number String\n// // user User @relation(fields: [user_id], references: [id])\n\n// @@map(\"individual_profiles\")\n// }\n\nmodel Account {\n id String @id @default(uuid())\n username String @unique()\n password String\n status AccountStatus\n type AccountType\n\n admin_account AdminAccount?\n provider_account ProviderAccount?\n partner_account PartnerAccount?\n consumer_account ConsumerAccount?\n\n // tokens Token[]\n // refresh_tokens RefreshToken[]\n\n @@map(\"accounts\")\n}\n\n// model Token {\n// id String @id @d @uniqueefault(uuid())\n// token String @unique\n// type TokenType\n// created_at DateTime @default(now())\n// expires_at DateTime\n\n// account_id String\n// account Account @relation(fields: [account_id], references: [id])\n\n// @@unique([type, account_id])\n// @@map(\"tokens\")\n// }\n\n// model VerificationCode {\n// id String @id @default(uuid())\n// code String\n// is_used Boolean @default(false)\n// created_at DateTime @default(now())\n// expires_at DateTime\n\n// account_id String\n// account Account @relation(fields: [account_id], references: [id])\n\n// @@map(\"verification_codes\")\n// }\n\nmodel Consumer {\n id String @id @default(uuid())\n mobile_number String @unique()\n first_name String\n last_name String\n status ConsumerStatus @default(ACTIVE)\n license_id String?\n\n created_at DateTime @default(now()) @db.Timestamp(0)\n updated_at DateTime @updatedAt() @db.Timestamp(0)\n\n license License? @relation(fields: [license_id], references: [id])\n accounts ConsumerAccount[]\n businessActivities BusinessActivity[]\n\n @@map(\"consumers\")\n}\n\nmodel ConsumerAccount {\n id String @id @default(uuid())\n role ConsumerRole\n\n created_at DateTime @default(now()) @db.Timestamp(0)\n updated_at DateTime @updatedAt() @db.Timestamp(0)\n\n user_id String\n user Consumer @relation(fields: [user_id], references: [id])\n\n account_id String @unique\n account Account @relation(fields: [account_id], references: [id])\n\n permissions PermissionConsumer[]\n salesInvoices SalesInvoice[]\n\n @@map(\"consumer_accounts\")\n}\n\nmodel BusinessActivity {\n id String @id @default(uuid())\n name String\n created_at DateTime @default(now()) @db.Timestamp(0)\n updated_at DateTime @updatedAt() @db.Timestamp(0)\n\n guild_id String\n user_id String\n\n guild Guild @relation(fields: [guild_id], references: [id])\n user Consumer @relation(fields: [user_id], references: [id])\n\n complexes Complex[]\n permissionBusinesses PermissionBusiness[]\n\n @@map(\"business_activities\")\n}\n\nmodel Complex {\n id String @id @default(uuid())\n name String\n address String?\n tax_id String?\n\n created_at DateTime @default(now()) @db.Timestamp(0)\n updated_at DateTime @updatedAt() @db.Timestamp(0)\n\n business_activity_id String\n\n business_activity BusinessActivity @relation(fields: [business_activity_id], references: [id])\n\n pos_list Pos[]\n goods Good[]\n good_categories GoodCategory[]\n permissionComplexes PermissionComplex[]\n customerIndividuals CustomerIndividual[]\n customerLegals CustomerLegal[]\n\n @@map(\"complexes\")\n}\n\nmodel Pos {\n id String @id @default(uuid())\n name String\n serial String @unique\n model String?\n status POSStatus @default(ACTIVE)\n pos_type POSType\n created_at DateTime @default(now()) @db.Timestamp(0)\n updated_at DateTime @updatedAt() @db.Timestamp(0)\n\n complex_id String\n complex Complex @relation(fields: [complex_id], references: [id])\n\n device_id String?\n device Device? @relation(fields: [device_id], references: [id])\n\n provider_id String?\n provider Provider? @relation(fields: [provider_id], references: [id])\n\n permissionPos PermissionPos[]\n salesInvoices SalesInvoice[]\n\n @@map(\"poses\")\n}\n\n// model BusinessAccount {\n// id String @id @default(uuid())\n// role BusinessRole\n// status AccountStatus @default(ACTIVE)\n// created_at DateTime @default(now())\n// business_activity_id String\n// account_id String @unique\n\n// account Account @relation(fields: [account_id], references: [id])\n// owned_activities BusinessActivity[] @relation(\"business_owner\")\n\n// @@unique([business_activity_id, account_id])\n// @@map(\"business_accounts\")\n// }\n\n// model PosAccount {\n// id String @id @default(uuid())\n// pos_id String\n// account_id String\n// role POSRole\n// created_at DateTime @default(now())\n\n// pos Pos @relation(fields: [pos_id], references: [id])\n// account Account @relation(fields: [account_id], references: [id])\n\n// @@unique([pos_id, account_id])\n// @@map(\"pos_accounts\")\n// }\n\nmodel DeviceBrand {\n id String @id @default(uuid())\n name String\n\n created_at DateTime @default(now()) @db.Timestamp(0)\n updated_at DateTime @updatedAt() @db.Timestamp(0)\n\n devices Device[]\n\n @@map(\"device_brands\")\n}\n\nmodel Device {\n id String @id @default(uuid())\n name String\n os_version String?\n\n created_at DateTime @default(now()) @db.Timestamp(0)\n updated_at DateTime @updatedAt() @db.Timestamp(0)\n\n brand_id String\n\n brand DeviceBrand @relation(fields: [brand_id], references: [id])\n poses Pos[]\n\n @@map(\"devices\")\n}\n\nmodel License {\n id String @id @default(uuid())\n starts_at DateTime\n expires_at DateTime\n status LicenseStatus\n\n created_at DateTime @default(now()) @db.Timestamp(0)\n updated_at DateTime @updatedAt() @db.Timestamp(0)\n\n partner_id String?\n\n // pos Pos @relation(fields: [pos_id], references: [id])\n partner Partner? @relation(fields: [partner_id], references: [id])\n\n consumers Consumer[]\n\n @@map(\"licenses\")\n}\n\nmodel Partner {\n id String @id @default(uuid())\n name String\n code String @unique()\n license_quota Int? @default(0)\n status PartnerStatus @default(ACTIVE)\n\n created_at DateTime @default(now()) @db.Timestamp(0)\n updated_at DateTime @default(now()) @updatedAt @db.Timestamp(0)\n\n licenses License[]\n accounts PartnerAccount[]\n\n @@map(\"partners\")\n}\n\nmodel PartnerAccount {\n id String @id @default(uuid())\n role PartnerRole\n\n created_at DateTime @default(now()) @db.Timestamp(0)\n updated_at DateTime @default(now()) @updatedAt @db.Timestamp(0)\n\n user_id String\n user Partner @relation(fields: [user_id], references: [id])\n\n account_id String @unique\n account Account @relation(fields: [account_id], references: [id])\n\n @@map(\"partner_accounts\")\n}\n\nmodel PermissionConsumer {\n id String @id @default(uuid())\n\n account_id String @unique\n\n account ConsumerAccount @relation(fields: [account_id], references: [id])\n\n posPermissions PermissionPos[]\n complexPermissions PermissionComplex[]\n businessPermissions PermissionBusiness[]\n\n @@map(\"permission_consumers\")\n}\n\nmodel PermissionPos {\n id String @id @default(uuid())\n role POSRole\n\n pos_id String\n permission_id String\n\n pos Pos @relation(fields: [pos_id], references: [id])\n permission PermissionConsumer @relation(fields: [permission_id], references: [id])\n\n @@unique([permission_id, pos_id])\n @@map(\"permission_poses\")\n}\n\nmodel PermissionComplex {\n id String @id @default(uuid())\n role ComplexRole\n\n complex_id String\n permission_id String\n\n complex Complex @relation(fields: [complex_id], references: [id])\n permission PermissionConsumer @relation(fields: [permission_id], references: [id])\n\n @@unique([permission_id, complex_id])\n @@map(\"permission_complexes\")\n}\n\nmodel PermissionBusiness {\n id String @id @default(uuid())\n role BusinessRole\n\n business_id String\n permission_id String\n\n business BusinessActivity @relation(fields: [business_id], references: [id])\n permission PermissionConsumer @relation(fields: [permission_id], references: [id])\n\n @@unique([permission_id, business_id])\n @@map(\"permission_business_activities\")\n}\n\nmodel Provider {\n id String @id @default(uuid())\n code String @unique()\n status PartnerStatus @default(ACTIVE)\n name String\n\n created_at DateTime @default(now()) @db.Timestamp(0)\n updated_at DateTime @updatedAt @db.Timestamp(0)\n\n pos_list Pos[]\n accounts ProviderAccount[]\n\n @@map(\"providers\")\n}\n\nmodel ProviderAccount {\n id String @id @default(uuid())\n role ProviderRole\n\n created_at DateTime @default(now()) @db.Timestamp(0)\n updated_at DateTime @updatedAt() @db.Timestamp(0)\n\n user_id String\n user Provider @relation(fields: [user_id], references: [id])\n\n account_id String @unique\n account Account @relation(fields: [account_id], references: [id])\n\n @@map(\"provider_accounts\")\n}\n\nmodel TriggerLog {\n id Int @id @default(autoincrement())\n message String @db.Text\n createdAt DateTime @default(now()) @db.Timestamp(0)\n name String @db.Text\n\n @@map(\"trigger_logs\")\n}\n\nmodel UserDevices {\n account_id String? @db.VarChar(255)\n app_version String @db.VarChar(20)\n build_number String @db.VarChar(20)\n\n uuid String @id @unique() @db.VarChar(255)\n platform String @db.VarChar(100)\n brand String @db.VarChar(100)\n model String @db.VarChar(100)\n device String @db.VarChar(100)\n os_version String @db.VarChar(20)\n sdk_version String @db.VarChar(20)\n release_number String @db.VarChar(20)\n browser_name String? @db.VarChar(100)\n fcm_token String? @db.VarChar(100)\n\n @@map(\"user_devices\")\n}\n\n// generator client {\n// provider = \"prisma-client-js\"\n// // output = \"../../src/generated/prisma\"\n// // moduleFormat = \"cjs\"\n// previewFeatures = [\"views\"]\n// }\n\n// datasource db {\n// provider = \"mysql\"\n// }\n\ngenerator client {\n provider = \"prisma-client\"\n output = \"../../src/generated/prisma\"\n moduleFormat = \"cjs\"\n previewFeatures = [\"views\"]\n}\n\ndatasource db {\n provider = \"mysql\"\n}\n\nmodel Customer {\n id String @id @default(uuid())\n type CustomerType\n is_favorite Boolean? @default(false)\n\n created_at DateTime @default(now()) @db.Timestamp(0)\n updated_at DateTime @updatedAt @db.Timestamp(0)\n deleted_at DateTime? @db.Timestamp(0)\n\n sales_invoices SalesInvoice[]\n customer_individuals CustomerIndividual?\n customer_legals CustomerLegal?\n\n @@map(\"customers\")\n}\n\nmodel CustomerIndividual {\n customer_id String @id\n first_name String @db.VarChar(255)\n last_name String @db.VarChar(255)\n national_id String @db.Char(10)\n postal_code String @db.Char(10)\n economic_code String? @db.Char(10)\n complex_id String\n\n customer Customer @relation(fields: [customer_id], references: [id])\n complex Complex @relation(fields: [complex_id], references: [id])\n\n @@unique([complex_id, national_id])\n @@map(\"customer_individuals\")\n}\n\nmodel CustomerLegal {\n customer_id String @id\n company_name String @db.VarChar(255)\n economic_code String @db.Char(10)\n registration_number String @db.Char(20)\n postal_code String @db.Char(10)\n complex_id String\n\n customer Customer @relation(fields: [customer_id], references: [id])\n complex Complex @relation(fields: [complex_id], references: [id])\n\n @@unique([complex_id, registration_number])\n @@map(\"customer_legal\")\n}\n\nenum PaymentMethodType {\n TERMINAL\n CASH\n SET_OFF\n CARD\n BANK\n CHECK\n OTHER\n}\n\nenum UnitType {\n COUNT\n GRAM\n KILOGRAM\n MILLILITER\n LITER\n METER\n HOUR\n}\n\nenum GoodPricingModel {\n STANDARD\n GOLD\n}\n\nenum CustomerType {\n INDIVIDUAL\n LEGAL\n UNKNOWN\n}\n\nenum POSStatus {\n ACTIVE\n DISABLED\n}\n\nenum POSRole {\n MANAGER\n OPERATOR\n}\n\nenum ComplexRole {\n MANAGER\n OPERATOR\n}\n\nenum BusinessRole {\n MANAGER\n OPERATOR\n}\n\nenum LicenseType {\n BASIC\n PRO\n ENTERPRISE\n}\n\nenum LicenseStatus {\n ACTIVE\n EXPIRED\n SUSPENDED\n}\n\nenum POSType {\n PSP\n MOBILE\n WEB\n API\n}\n\nenum UserType {\n LEGAL\n INDIVIDUAL\n}\n\nenum AccountType {\n ADMIN\n PROVIDER\n PARTNER\n CONSUMER\n}\n\nenum UserStatus {\n ACTIVE\n INACTIVE\n}\n\nenum AccountRole {\n OWNER\n OPERATOR\n ACCOUNTANT\n}\n\nenum AccountStatus {\n ACTIVE\n SUSPENDED\n}\n\nenum PartnerRole {\n OWNER\n MANAGER\n OPERATOR\n}\n\nenum PartnerStatus {\n ACTIVE\n SUSPENDED\n}\n\nenum ProviderRole {\n OWNER\n MANAGER\n OPERATOR\n}\n\nenum ProviderStatus {\n ACTIVE\n SUSPENDED\n}\n\nenum ConsumerRole {\n OWNER\n MANAGER\n OPERATOR\n}\n\nenum ConsumerStatus {\n ACTIVE\n SUSPENDED\n}\n\nenum TokenType {\n ACCESS\n REFRESH\n}\n\nmodel Good {\n id String @id @default(uuid())\n name String @db.VarChar(255)\n is_default_guild_good Boolean @default(false)\n sku String @db.VarChar(100)\n unit_type UnitType\n pricing_model GoodPricingModel\n description String? @db.Text\n local_sku String? @unique() @db.VarChar(100)\n barcode String? @unique() @db.VarChar(100)\n base_sale_price Decimal? @default(0.00) @db.Decimal(15, 0)\n created_at DateTime @default(now()) @db.Timestamp(0)\n updated_at DateTime @updatedAt @db.Timestamp(0)\n deleted_at DateTime? @db.Timestamp(0)\n\n complex_id String?\n category_id String?\n\n category GoodCategory? @relation(fields: [category_id], references: [id])\n complex Complex? @relation(fields: [complex_id], references: [id])\n sales_invoice_items SalesInvoiceItem[]\n\n @@index([category_id])\n @@map(\"goods\")\n}\n\nmodel GoodCategory {\n id String @id @default(uuid())\n name String @db.VarChar(100)\n description String? @db.Text\n image_url String? @db.VarChar(255)\n complex_id String?\n is_default_guild_good Boolean @default(false)\n guild_id String?\n\n created_at DateTime @default(now()) @db.Timestamp(0)\n updated_at DateTime @updatedAt @db.Timestamp(0)\n deleted_at DateTime? @db.Timestamp(0)\n\n goods Good[]\n guild Guild? @relation(fields: [guild_id], references: [id])\n complex Complex? @relation(fields: [complex_id], references: [id])\n\n @@map(\"good_categories\")\n}\n\nmodel Guild {\n id String @id @default(uuid())\n name String\n code String?\n\n created_at DateTime @default(now()) @db.Timestamp(0)\n updated_at DateTime @updatedAt() @db.Timestamp(0)\n\n business_activities BusinessActivity[]\n good_categories GoodCategory[]\n\n @@map(\"guilds\")\n}\n\nmodel SalesInvoice {\n id String @id @default(uuid())\n code String @unique @db.VarChar(100)\n total_amount Decimal @db.Decimal(15, 2)\n notes String? @db.Text\n unknown_customer Json? @db.Json\n invoice_date DateTime? @default(now()) @db.Timestamp(0)\n created_at DateTime @default(now()) @db.Timestamp(0)\n updated_at DateTime @updatedAt @db.Timestamp(0)\n\n customer_id String?\n account_id String\n pos_id String\n\n customer Customer? @relation(fields: [customer_id], references: [id])\n pos Pos @relation(fields: [pos_id], references: [id])\n account ConsumerAccount @relation(fields: [account_id], references: [id])\n items SalesInvoiceItem[]\n payments SalesInvoicePayment[]\n\n @@map(\"sales_invoices\")\n}\n\nmodel SalesInvoiceItem {\n id String @id @default(uuid())\n quantity Decimal @db.Decimal(10, 0)\n unit_type UnitType\n unit_price Decimal @default(0.00) @db.Decimal(15, 2)\n total_amount Decimal @default(0.00) @db.Decimal(15, 2)\n created_at DateTime @default(now()) @db.Timestamp(0)\n discount Decimal @default(0.00) @db.Decimal(15, 2)\n notes String? @db.Text\n\n invoice_id String\n good_id String?\n service_id String?\n\n payload Json?\n\n invoice SalesInvoice @relation(fields: [invoice_id], references: [id])\n good Good? @relation(fields: [good_id], references: [id])\n service Service? @relation(fields: [service_id], references: [id])\n\n @@index([invoice_id, good_id])\n @@map(\"sales_invoice_items\")\n}\n\nmodel SalesInvoicePayment {\n id String @id @default(uuid())\n invoice_id String\n amount Decimal @db.Decimal(15, 2)\n payment_method PaymentMethodType\n paid_at DateTime\n created_at DateTime @default(now())\n\n invoice SalesInvoice @relation(fields: [invoice_id], references: [id])\n\n @@index([invoice_id])\n @@map(\"sales_invoice_payments\")\n}\n\nmodel Service {\n id String @id @default(uuid())\n name String @db.VarChar(255)\n description String? @db.Text\n sku String @unique() @db.VarChar(100)\n local_sku String? @unique() @db.VarChar(100)\n barcode String? @unique() @db.VarChar(100)\n created_at DateTime @default(now()) @db.Timestamp(0)\n updated_at DateTime @updatedAt @db.Timestamp(0)\n deleted_at DateTime? @db.Timestamp(0)\n category_id String?\n base_sale_price Decimal @default(0.00) @db.Decimal(15, 0)\n account_id String\n complex_id String\n\n category ServiceCategory? @relation(fields: [category_id], references: [id])\n sales_invoice_items SalesInvoiceItem[]\n\n @@index([category_id])\n @@map(\"services\")\n}\n\nmodel ServiceCategory {\n id String @id @default(uuid())\n name String @db.VarChar(100)\n description String? @db.Text\n image_url String? @db.VarChar(255)\n account_id String\n complex_id String\n created_at DateTime @default(now()) @db.Timestamp(0)\n updated_at DateTime @updatedAt @db.Timestamp(0)\n deleted_at DateTime? @db.Timestamp(0)\n\n services Service[]\n\n @@map(\"service_categories\")\n}\n", + "inlineSchema": "model Admin {\n id String @id @default(uuid())\n mobile_number String @unique()\n national_code String? @unique()\n first_name String\n last_name String\n\n created_at DateTime @default(now()) @db.Timestamp(0)\n updated_at DateTime @updatedAt() @db.Timestamp(0)\n\n accounts AdminAccount[]\n\n @@map(\"admins\")\n}\n\nmodel AdminAccount {\n id String @id @default(uuid())\n\n created_at DateTime @default(now()) @db.Timestamp(0)\n updated_at DateTime @updatedAt() @db.Timestamp(0)\n\n user_id String\n user Admin @relation(fields: [user_id], references: [id])\n\n account_id String @unique\n account Account @relation(fields: [account_id], references: [id])\n\n @@map(\"admin_accounts\")\n}\n\n// model LegalProfile {\n// user_id String @id\n// company_name String\n// register_no String @unique()\n// representative_name String?\n// representative_national_id String?\n\n// // user User @relation(fields: [user_id], references: [id])\n\n// @@map(\"legal_profiles\")\n// }\n\n// model IndividualProfile {\n// user_id String @id\n// national_code String @unique()\n// first_name String\n// last_name String\n// birth_date DateTime?\n// mobile_number String\n// // user User @relation(fields: [user_id], references: [id])\n\n// @@map(\"individual_profiles\")\n// }\n\nmodel Account {\n id String @id @default(uuid())\n username String @unique()\n password String\n status AccountStatus\n type AccountType\n\n admin_account AdminAccount?\n provider_account ProviderAccount?\n partner_account PartnerAccount?\n consumer_account ConsumerAccount?\n\n // tokens Token[]\n // refresh_tokens RefreshToken[]\n\n @@map(\"accounts\")\n}\n\n// model Token {\n// id String @id @d @uniqueefault(uuid())\n// token String @unique\n// type TokenType\n// created_at DateTime @default(now())\n// expires_at DateTime\n\n// account_id String\n// account Account @relation(fields: [account_id], references: [id])\n\n// @@unique([type, account_id])\n// @@map(\"tokens\")\n// }\n\n// model VerificationCode {\n// id String @id @default(uuid())\n// code String\n// is_used Boolean @default(false)\n// created_at DateTime @default(now())\n// expires_at DateTime\n\n// account_id String\n// account Account @relation(fields: [account_id], references: [id])\n\n// @@map(\"verification_codes\")\n// }\n\nmodel Consumer {\n id String @id @default(uuid())\n mobile_number String @unique()\n first_name String\n last_name String\n status ConsumerStatus @default(ACTIVE)\n license_id String? @unique()\n\n created_at DateTime @default(now()) @db.Timestamp(0)\n updated_at DateTime @updatedAt() @db.Timestamp(0)\n\n accounts ConsumerAccount[]\n businessActivities BusinessActivity[]\n\n license License?\n\n @@map(\"consumers\")\n}\n\nmodel ConsumerAccount {\n id String @id @default(uuid())\n role ConsumerRole\n\n created_at DateTime @default(now()) @db.Timestamp(0)\n updated_at DateTime @updatedAt() @db.Timestamp(0)\n\n user_id String\n user Consumer @relation(fields: [user_id], references: [id])\n\n account_id String @unique\n account Account @relation(fields: [account_id], references: [id])\n\n permissions PermissionConsumer[]\n salesInvoices SalesInvoice[]\n\n @@map(\"consumer_accounts\")\n}\n\nmodel BusinessActivity {\n id String @id @default(uuid())\n name String\n created_at DateTime @default(now()) @db.Timestamp(0)\n updated_at DateTime @updatedAt() @db.Timestamp(0)\n\n guild_id String\n user_id String\n\n guild Guild @relation(fields: [guild_id], references: [id])\n user Consumer @relation(fields: [user_id], references: [id])\n\n complexes Complex[]\n permissionBusinesses PermissionBusiness[]\n\n @@map(\"business_activities\")\n}\n\nmodel Complex {\n id String @id @default(uuid())\n name String\n address String?\n tax_id String?\n\n created_at DateTime @default(now()) @db.Timestamp(0)\n updated_at DateTime @updatedAt() @db.Timestamp(0)\n\n business_activity_id String\n\n business_activity BusinessActivity @relation(fields: [business_activity_id], references: [id])\n\n pos_list Pos[]\n goods Good[]\n good_categories GoodCategory[]\n permissionComplexes PermissionComplex[]\n customerIndividuals CustomerIndividual[]\n customerLegals CustomerLegal[]\n\n @@map(\"complexes\")\n}\n\nmodel Pos {\n id String @id @default(uuid())\n name String\n serial String @unique\n model String?\n status POSStatus @default(ACTIVE)\n pos_type POSType\n created_at DateTime @default(now()) @db.Timestamp(0)\n updated_at DateTime @updatedAt() @db.Timestamp(0)\n\n complex_id String\n complex Complex @relation(fields: [complex_id], references: [id])\n\n device_id String?\n device Device? @relation(fields: [device_id], references: [id])\n\n provider_id String?\n provider Provider? @relation(fields: [provider_id], references: [id])\n\n permissionPos PermissionPos[]\n salesInvoices SalesInvoice[]\n\n @@map(\"poses\")\n}\n\n// model BusinessAccount {\n// id String @id @default(uuid())\n// role BusinessRole\n// status AccountStatus @default(ACTIVE)\n// created_at DateTime @default(now())\n// business_activity_id String\n// account_id String @unique\n\n// account Account @relation(fields: [account_id], references: [id])\n// owned_activities BusinessActivity[] @relation(\"business_owner\")\n\n// @@unique([business_activity_id, account_id])\n// @@map(\"business_accounts\")\n// }\n\n// model PosAccount {\n// id String @id @default(uuid())\n// pos_id String\n// account_id String\n// role POSRole\n// created_at DateTime @default(now())\n\n// pos Pos @relation(fields: [pos_id], references: [id])\n// account Account @relation(fields: [account_id], references: [id])\n\n// @@unique([pos_id, account_id])\n// @@map(\"pos_accounts\")\n// }\n\nmodel DeviceBrand {\n id String @id @default(uuid())\n name String\n\n created_at DateTime @default(now()) @db.Timestamp(0)\n updated_at DateTime @updatedAt() @db.Timestamp(0)\n\n devices Device[]\n\n @@map(\"device_brands\")\n}\n\nmodel Device {\n id String @id @default(uuid())\n name String\n os_version String?\n\n created_at DateTime @default(now()) @db.Timestamp(0)\n updated_at DateTime @updatedAt() @db.Timestamp(0)\n\n brand_id String\n\n brand DeviceBrand @relation(fields: [brand_id], references: [id])\n poses Pos[]\n\n @@map(\"devices\")\n}\n\nmodel License {\n id String @id @default(uuid())\n starts_at DateTime\n expires_at DateTime\n status LicenseStatus\n\n created_at DateTime @default(now()) @db.Timestamp(0)\n updated_at DateTime @updatedAt() @db.Timestamp(0)\n\n partner_id String?\n partner Partner? @relation(fields: [partner_id], references: [id])\n\n consumer_id String @unique\n consumer Consumer @relation(fields: [consumer_id], references: [id])\n\n @@map(\"licenses\")\n}\n\nmodel Partner {\n id String @id @default(uuid())\n name String\n code String @unique()\n license_quota Int? @default(0)\n status PartnerStatus @default(ACTIVE)\n\n created_at DateTime @default(now()) @db.Timestamp(0)\n updated_at DateTime @default(now()) @updatedAt @db.Timestamp(0)\n\n licenses License[]\n accounts PartnerAccount[]\n\n @@map(\"partners\")\n}\n\nmodel PartnerAccount {\n id String @id @default(uuid())\n role PartnerRole\n\n created_at DateTime @default(now()) @db.Timestamp(0)\n updated_at DateTime @default(now()) @updatedAt @db.Timestamp(0)\n\n user_id String\n user Partner @relation(fields: [user_id], references: [id])\n\n account_id String @unique\n account Account @relation(fields: [account_id], references: [id])\n\n @@map(\"partner_accounts\")\n}\n\nmodel PermissionConsumer {\n id String @id @default(uuid())\n\n account_id String @unique\n\n account ConsumerAccount @relation(fields: [account_id], references: [id])\n\n posPermissions PermissionPos[]\n complexPermissions PermissionComplex[]\n businessPermissions PermissionBusiness[]\n\n @@map(\"permission_consumers\")\n}\n\nmodel PermissionPos {\n id String @id @default(uuid())\n role POSRole\n\n pos_id String\n permission_id String\n\n pos Pos @relation(fields: [pos_id], references: [id])\n permission PermissionConsumer @relation(fields: [permission_id], references: [id])\n\n @@unique([permission_id, pos_id])\n @@map(\"permission_poses\")\n}\n\nmodel PermissionComplex {\n id String @id @default(uuid())\n role ComplexRole\n\n complex_id String\n permission_id String\n\n complex Complex @relation(fields: [complex_id], references: [id])\n permission PermissionConsumer @relation(fields: [permission_id], references: [id])\n\n @@unique([permission_id, complex_id])\n @@map(\"permission_complexes\")\n}\n\nmodel PermissionBusiness {\n id String @id @default(uuid())\n role BusinessRole\n\n business_id String\n permission_id String\n\n business BusinessActivity @relation(fields: [business_id], references: [id])\n permission PermissionConsumer @relation(fields: [permission_id], references: [id])\n\n @@unique([permission_id, business_id])\n @@map(\"permission_business_activities\")\n}\n\nmodel Provider {\n id String @id @default(uuid())\n code String @unique()\n status PartnerStatus @default(ACTIVE)\n name String\n\n created_at DateTime @default(now()) @db.Timestamp(0)\n updated_at DateTime @updatedAt @db.Timestamp(0)\n\n pos_list Pos[]\n accounts ProviderAccount[]\n\n @@map(\"providers\")\n}\n\nmodel ProviderAccount {\n id String @id @default(uuid())\n role ProviderRole\n\n created_at DateTime @default(now()) @db.Timestamp(0)\n updated_at DateTime @updatedAt() @db.Timestamp(0)\n\n user_id String\n user Provider @relation(fields: [user_id], references: [id])\n\n account_id String @unique\n account Account @relation(fields: [account_id], references: [id])\n\n @@map(\"provider_accounts\")\n}\n\nmodel TriggerLog {\n id Int @id @default(autoincrement())\n message String @db.Text\n createdAt DateTime @default(now()) @db.Timestamp(0)\n name String @db.Text\n\n @@map(\"trigger_logs\")\n}\n\nmodel UserDevices {\n account_id String? @db.VarChar(255)\n app_version String @db.VarChar(20)\n build_number String @db.VarChar(20)\n\n uuid String @id @unique() @db.VarChar(255)\n platform String @db.VarChar(100)\n brand String @db.VarChar(100)\n model String @db.VarChar(100)\n device String @db.VarChar(100)\n os_version String @db.VarChar(20)\n sdk_version String @db.VarChar(20)\n release_number String @db.VarChar(20)\n browser_name String? @db.VarChar(100)\n fcm_token String? @db.VarChar(100)\n\n @@map(\"user_devices\")\n}\n\n// generator client {\n// provider = \"prisma-client-js\"\n// // output = \"../../src/generated/prisma\"\n// // moduleFormat = \"cjs\"\n// previewFeatures = [\"views\"]\n// }\n\n// datasource db {\n// provider = \"mysql\"\n// }\n\ngenerator client {\n provider = \"prisma-client\"\n output = \"../../src/generated/prisma\"\n moduleFormat = \"cjs\"\n previewFeatures = [\"views\"]\n}\n\ndatasource db {\n provider = \"mysql\"\n}\n\nmodel Customer {\n id String @id @default(uuid())\n type CustomerType\n is_favorite Boolean? @default(false)\n\n created_at DateTime @default(now()) @db.Timestamp(0)\n updated_at DateTime @updatedAt @db.Timestamp(0)\n deleted_at DateTime? @db.Timestamp(0)\n\n sales_invoices SalesInvoice[]\n customer_individuals CustomerIndividual?\n customer_legals CustomerLegal?\n\n @@map(\"customers\")\n}\n\nmodel CustomerIndividual {\n customer_id String @id\n first_name String @db.VarChar(255)\n last_name String @db.VarChar(255)\n national_id String @db.Char(10)\n postal_code String @db.Char(10)\n economic_code String? @db.Char(10)\n complex_id String\n\n customer Customer @relation(fields: [customer_id], references: [id])\n complex Complex @relation(fields: [complex_id], references: [id])\n\n @@unique([complex_id, national_id])\n @@map(\"customer_individuals\")\n}\n\nmodel CustomerLegal {\n customer_id String @id\n company_name String @db.VarChar(255)\n economic_code String @db.Char(10)\n registration_number String @db.Char(20)\n postal_code String @db.Char(10)\n complex_id String\n\n customer Customer @relation(fields: [customer_id], references: [id])\n complex Complex @relation(fields: [complex_id], references: [id])\n\n @@unique([complex_id, registration_number])\n @@map(\"customer_legal\")\n}\n\nenum PaymentMethodType {\n TERMINAL\n CASH\n SET_OFF\n CARD\n BANK\n CHECK\n OTHER\n}\n\nenum UnitType {\n COUNT\n GRAM\n KILOGRAM\n MILLILITER\n LITER\n METER\n HOUR\n}\n\nenum GoodPricingModel {\n STANDARD\n GOLD\n}\n\nenum CustomerType {\n INDIVIDUAL\n LEGAL\n UNKNOWN\n}\n\nenum POSStatus {\n ACTIVE\n DISABLED\n}\n\nenum POSRole {\n MANAGER\n OPERATOR\n}\n\nenum ComplexRole {\n MANAGER\n OPERATOR\n}\n\nenum BusinessRole {\n MANAGER\n OPERATOR\n}\n\nenum LicenseType {\n BASIC\n PRO\n ENTERPRISE\n}\n\nenum LicenseStatus {\n ACTIVE\n EXPIRED\n SUSPENDED\n}\n\nenum POSType {\n PSP\n MOBILE\n WEB\n API\n}\n\nenum UserType {\n LEGAL\n INDIVIDUAL\n}\n\nenum AccountType {\n ADMIN\n PROVIDER\n PARTNER\n CONSUMER\n}\n\nenum UserStatus {\n ACTIVE\n INACTIVE\n}\n\nenum AccountRole {\n OWNER\n OPERATOR\n ACCOUNTANT\n}\n\nenum AccountStatus {\n ACTIVE\n SUSPENDED\n}\n\nenum PartnerRole {\n OWNER\n MANAGER\n OPERATOR\n}\n\nenum PartnerStatus {\n ACTIVE\n SUSPENDED\n}\n\nenum ProviderRole {\n OWNER\n MANAGER\n OPERATOR\n}\n\nenum ProviderStatus {\n ACTIVE\n SUSPENDED\n}\n\nenum ConsumerRole {\n OWNER\n MANAGER\n OPERATOR\n}\n\nenum ConsumerStatus {\n ACTIVE\n SUSPENDED\n}\n\nenum TokenType {\n ACCESS\n REFRESH\n}\n\nmodel Good {\n id String @id @default(uuid())\n name String @db.VarChar(255)\n is_default_guild_good Boolean @default(false)\n sku String @db.VarChar(100)\n unit_type UnitType\n pricing_model GoodPricingModel\n description String? @db.Text\n local_sku String? @unique() @db.VarChar(100)\n barcode String? @unique() @db.VarChar(100)\n base_sale_price Decimal? @default(0.00) @db.Decimal(15, 0)\n created_at DateTime @default(now()) @db.Timestamp(0)\n updated_at DateTime @updatedAt @db.Timestamp(0)\n deleted_at DateTime? @db.Timestamp(0)\n\n complex_id String?\n category_id String?\n\n category GoodCategory? @relation(fields: [category_id], references: [id])\n complex Complex? @relation(fields: [complex_id], references: [id])\n sales_invoice_items SalesInvoiceItem[]\n\n @@index([category_id])\n @@map(\"goods\")\n}\n\nmodel GoodCategory {\n id String @id @default(uuid())\n name String @db.VarChar(100)\n description String? @db.Text\n image_url String? @db.VarChar(255)\n complex_id String?\n is_default_guild_good Boolean @default(false)\n guild_id String?\n\n created_at DateTime @default(now()) @db.Timestamp(0)\n updated_at DateTime @updatedAt @db.Timestamp(0)\n deleted_at DateTime? @db.Timestamp(0)\n\n goods Good[]\n guild Guild? @relation(fields: [guild_id], references: [id])\n complex Complex? @relation(fields: [complex_id], references: [id])\n\n @@map(\"good_categories\")\n}\n\nmodel Guild {\n id String @id @default(uuid())\n name String\n code String?\n\n created_at DateTime @default(now()) @db.Timestamp(0)\n updated_at DateTime @updatedAt() @db.Timestamp(0)\n\n business_activities BusinessActivity[]\n good_categories GoodCategory[]\n\n @@map(\"guilds\")\n}\n\nmodel SalesInvoice {\n id String @id @default(uuid())\n code String @unique @db.VarChar(100)\n total_amount Decimal @db.Decimal(15, 2)\n notes String? @db.Text\n unknown_customer Json? @db.Json\n invoice_date DateTime? @default(now()) @db.Timestamp(0)\n created_at DateTime @default(now()) @db.Timestamp(0)\n updated_at DateTime @updatedAt @db.Timestamp(0)\n\n customer_id String?\n account_id String\n pos_id String\n\n customer Customer? @relation(fields: [customer_id], references: [id])\n pos Pos @relation(fields: [pos_id], references: [id])\n account ConsumerAccount @relation(fields: [account_id], references: [id])\n items SalesInvoiceItem[]\n payments SalesInvoicePayment[]\n\n @@map(\"sales_invoices\")\n}\n\nmodel SalesInvoiceItem {\n id String @id @default(uuid())\n quantity Decimal @db.Decimal(10, 0)\n unit_type UnitType\n unit_price Decimal @default(0.00) @db.Decimal(15, 2)\n total_amount Decimal @default(0.00) @db.Decimal(15, 2)\n created_at DateTime @default(now()) @db.Timestamp(0)\n discount Decimal @default(0.00) @db.Decimal(15, 2)\n notes String? @db.Text\n\n invoice_id String\n good_id String?\n service_id String?\n\n payload Json?\n\n invoice SalesInvoice @relation(fields: [invoice_id], references: [id])\n good Good? @relation(fields: [good_id], references: [id])\n service Service? @relation(fields: [service_id], references: [id])\n\n @@index([invoice_id, good_id])\n @@map(\"sales_invoice_items\")\n}\n\nmodel SalesInvoicePayment {\n id String @id @default(uuid())\n invoice_id String\n amount Decimal @db.Decimal(15, 2)\n payment_method PaymentMethodType\n paid_at DateTime\n created_at DateTime @default(now())\n\n invoice SalesInvoice @relation(fields: [invoice_id], references: [id])\n\n @@index([invoice_id])\n @@map(\"sales_invoice_payments\")\n}\n\nmodel Service {\n id String @id @default(uuid())\n name String @db.VarChar(255)\n description String? @db.Text\n sku String @unique() @db.VarChar(100)\n local_sku String? @unique() @db.VarChar(100)\n barcode String? @unique() @db.VarChar(100)\n created_at DateTime @default(now()) @db.Timestamp(0)\n updated_at DateTime @updatedAt @db.Timestamp(0)\n deleted_at DateTime? @db.Timestamp(0)\n category_id String?\n base_sale_price Decimal @default(0.00) @db.Decimal(15, 0)\n account_id String\n complex_id String\n\n category ServiceCategory? @relation(fields: [category_id], references: [id])\n sales_invoice_items SalesInvoiceItem[]\n\n @@index([category_id])\n @@map(\"services\")\n}\n\nmodel ServiceCategory {\n id String @id @default(uuid())\n name String @db.VarChar(100)\n description String? @db.Text\n image_url String? @db.VarChar(255)\n account_id String\n complex_id String\n created_at DateTime @default(now()) @db.Timestamp(0)\n updated_at DateTime @updatedAt @db.Timestamp(0)\n deleted_at DateTime? @db.Timestamp(0)\n\n services Service[]\n\n @@map(\"service_categories\")\n}\n", "runtimeDataModel": { "models": {}, "enums": {}, @@ -30,7 +30,7 @@ const config: runtime.GetPrismaClientConfig = { } } -config.runtimeDataModel = JSON.parse("{\"models\":{\"Admin\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"mobile_number\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"national_code\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"first_name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"last_name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"accounts\",\"kind\":\"object\",\"type\":\"AdminAccount\",\"relationName\":\"AdminToAdminAccount\"}],\"dbName\":\"admins\"},\"AdminAccount\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"user_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"user\",\"kind\":\"object\",\"type\":\"Admin\",\"relationName\":\"AdminToAdminAccount\"},{\"name\":\"account_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"account\",\"kind\":\"object\",\"type\":\"Account\",\"relationName\":\"AccountToAdminAccount\"}],\"dbName\":\"admin_accounts\"},\"Account\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"username\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"password\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"status\",\"kind\":\"enum\",\"type\":\"AccountStatus\"},{\"name\":\"type\",\"kind\":\"enum\",\"type\":\"AccountType\"},{\"name\":\"admin_account\",\"kind\":\"object\",\"type\":\"AdminAccount\",\"relationName\":\"AccountToAdminAccount\"},{\"name\":\"provider_account\",\"kind\":\"object\",\"type\":\"ProviderAccount\",\"relationName\":\"AccountToProviderAccount\"},{\"name\":\"partner_account\",\"kind\":\"object\",\"type\":\"PartnerAccount\",\"relationName\":\"AccountToPartnerAccount\"},{\"name\":\"consumer_account\",\"kind\":\"object\",\"type\":\"ConsumerAccount\",\"relationName\":\"AccountToConsumerAccount\"}],\"dbName\":\"accounts\"},\"Consumer\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"mobile_number\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"first_name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"last_name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"status\",\"kind\":\"enum\",\"type\":\"ConsumerStatus\"},{\"name\":\"license_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"license\",\"kind\":\"object\",\"type\":\"License\",\"relationName\":\"ConsumerToLicense\"},{\"name\":\"accounts\",\"kind\":\"object\",\"type\":\"ConsumerAccount\",\"relationName\":\"ConsumerToConsumerAccount\"},{\"name\":\"businessActivities\",\"kind\":\"object\",\"type\":\"BusinessActivity\",\"relationName\":\"BusinessActivityToConsumer\"}],\"dbName\":\"consumers\"},\"ConsumerAccount\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"role\",\"kind\":\"enum\",\"type\":\"ConsumerRole\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"user_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"user\",\"kind\":\"object\",\"type\":\"Consumer\",\"relationName\":\"ConsumerToConsumerAccount\"},{\"name\":\"account_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"account\",\"kind\":\"object\",\"type\":\"Account\",\"relationName\":\"AccountToConsumerAccount\"},{\"name\":\"permissions\",\"kind\":\"object\",\"type\":\"PermissionConsumer\",\"relationName\":\"ConsumerAccountToPermissionConsumer\"},{\"name\":\"salesInvoices\",\"kind\":\"object\",\"type\":\"SalesInvoice\",\"relationName\":\"ConsumerAccountToSalesInvoice\"}],\"dbName\":\"consumer_accounts\"},\"BusinessActivity\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"guild_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"user_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"guild\",\"kind\":\"object\",\"type\":\"Guild\",\"relationName\":\"BusinessActivityToGuild\"},{\"name\":\"user\",\"kind\":\"object\",\"type\":\"Consumer\",\"relationName\":\"BusinessActivityToConsumer\"},{\"name\":\"complexes\",\"kind\":\"object\",\"type\":\"Complex\",\"relationName\":\"BusinessActivityToComplex\"},{\"name\":\"permissionBusinesses\",\"kind\":\"object\",\"type\":\"PermissionBusiness\",\"relationName\":\"BusinessActivityToPermissionBusiness\"}],\"dbName\":\"business_activities\"},\"Complex\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"address\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"tax_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"business_activity_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"business_activity\",\"kind\":\"object\",\"type\":\"BusinessActivity\",\"relationName\":\"BusinessActivityToComplex\"},{\"name\":\"pos_list\",\"kind\":\"object\",\"type\":\"Pos\",\"relationName\":\"ComplexToPos\"},{\"name\":\"goods\",\"kind\":\"object\",\"type\":\"Good\",\"relationName\":\"ComplexToGood\"},{\"name\":\"good_categories\",\"kind\":\"object\",\"type\":\"GoodCategory\",\"relationName\":\"ComplexToGoodCategory\"},{\"name\":\"permissionComplexes\",\"kind\":\"object\",\"type\":\"PermissionComplex\",\"relationName\":\"ComplexToPermissionComplex\"},{\"name\":\"customerIndividuals\",\"kind\":\"object\",\"type\":\"CustomerIndividual\",\"relationName\":\"ComplexToCustomerIndividual\"},{\"name\":\"customerLegals\",\"kind\":\"object\",\"type\":\"CustomerLegal\",\"relationName\":\"ComplexToCustomerLegal\"}],\"dbName\":\"complexes\"},\"Pos\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"serial\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"model\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"status\",\"kind\":\"enum\",\"type\":\"POSStatus\"},{\"name\":\"pos_type\",\"kind\":\"enum\",\"type\":\"POSType\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"complex_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"complex\",\"kind\":\"object\",\"type\":\"Complex\",\"relationName\":\"ComplexToPos\"},{\"name\":\"device_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"device\",\"kind\":\"object\",\"type\":\"Device\",\"relationName\":\"DeviceToPos\"},{\"name\":\"provider_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"provider\",\"kind\":\"object\",\"type\":\"Provider\",\"relationName\":\"PosToProvider\"},{\"name\":\"permissionPos\",\"kind\":\"object\",\"type\":\"PermissionPos\",\"relationName\":\"PermissionPosToPos\"},{\"name\":\"salesInvoices\",\"kind\":\"object\",\"type\":\"SalesInvoice\",\"relationName\":\"PosToSalesInvoice\"}],\"dbName\":\"poses\"},\"DeviceBrand\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"devices\",\"kind\":\"object\",\"type\":\"Device\",\"relationName\":\"DeviceToDeviceBrand\"}],\"dbName\":\"device_brands\"},\"Device\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"os_version\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"brand_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"brand\",\"kind\":\"object\",\"type\":\"DeviceBrand\",\"relationName\":\"DeviceToDeviceBrand\"},{\"name\":\"poses\",\"kind\":\"object\",\"type\":\"Pos\",\"relationName\":\"DeviceToPos\"}],\"dbName\":\"devices\"},\"License\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"starts_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"expires_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"status\",\"kind\":\"enum\",\"type\":\"LicenseStatus\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"partner_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"partner\",\"kind\":\"object\",\"type\":\"Partner\",\"relationName\":\"LicenseToPartner\"},{\"name\":\"consumers\",\"kind\":\"object\",\"type\":\"Consumer\",\"relationName\":\"ConsumerToLicense\"}],\"dbName\":\"licenses\"},\"Partner\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"code\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"license_quota\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"status\",\"kind\":\"enum\",\"type\":\"PartnerStatus\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"licenses\",\"kind\":\"object\",\"type\":\"License\",\"relationName\":\"LicenseToPartner\"},{\"name\":\"accounts\",\"kind\":\"object\",\"type\":\"PartnerAccount\",\"relationName\":\"PartnerToPartnerAccount\"}],\"dbName\":\"partners\"},\"PartnerAccount\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"role\",\"kind\":\"enum\",\"type\":\"PartnerRole\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"user_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"user\",\"kind\":\"object\",\"type\":\"Partner\",\"relationName\":\"PartnerToPartnerAccount\"},{\"name\":\"account_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"account\",\"kind\":\"object\",\"type\":\"Account\",\"relationName\":\"AccountToPartnerAccount\"}],\"dbName\":\"partner_accounts\"},\"PermissionConsumer\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"account_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"account\",\"kind\":\"object\",\"type\":\"ConsumerAccount\",\"relationName\":\"ConsumerAccountToPermissionConsumer\"},{\"name\":\"posPermissions\",\"kind\":\"object\",\"type\":\"PermissionPos\",\"relationName\":\"PermissionConsumerToPermissionPos\"},{\"name\":\"complexPermissions\",\"kind\":\"object\",\"type\":\"PermissionComplex\",\"relationName\":\"PermissionComplexToPermissionConsumer\"},{\"name\":\"businessPermissions\",\"kind\":\"object\",\"type\":\"PermissionBusiness\",\"relationName\":\"PermissionBusinessToPermissionConsumer\"}],\"dbName\":\"permission_consumers\"},\"PermissionPos\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"role\",\"kind\":\"enum\",\"type\":\"POSRole\"},{\"name\":\"pos_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"permission_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"pos\",\"kind\":\"object\",\"type\":\"Pos\",\"relationName\":\"PermissionPosToPos\"},{\"name\":\"permission\",\"kind\":\"object\",\"type\":\"PermissionConsumer\",\"relationName\":\"PermissionConsumerToPermissionPos\"}],\"dbName\":\"permission_poses\"},\"PermissionComplex\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"role\",\"kind\":\"enum\",\"type\":\"ComplexRole\"},{\"name\":\"complex_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"permission_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"complex\",\"kind\":\"object\",\"type\":\"Complex\",\"relationName\":\"ComplexToPermissionComplex\"},{\"name\":\"permission\",\"kind\":\"object\",\"type\":\"PermissionConsumer\",\"relationName\":\"PermissionComplexToPermissionConsumer\"}],\"dbName\":\"permission_complexes\"},\"PermissionBusiness\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"role\",\"kind\":\"enum\",\"type\":\"BusinessRole\"},{\"name\":\"business_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"permission_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"business\",\"kind\":\"object\",\"type\":\"BusinessActivity\",\"relationName\":\"BusinessActivityToPermissionBusiness\"},{\"name\":\"permission\",\"kind\":\"object\",\"type\":\"PermissionConsumer\",\"relationName\":\"PermissionBusinessToPermissionConsumer\"}],\"dbName\":\"permission_business_activities\"},\"Provider\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"code\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"status\",\"kind\":\"enum\",\"type\":\"PartnerStatus\"},{\"name\":\"name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"pos_list\",\"kind\":\"object\",\"type\":\"Pos\",\"relationName\":\"PosToProvider\"},{\"name\":\"accounts\",\"kind\":\"object\",\"type\":\"ProviderAccount\",\"relationName\":\"ProviderToProviderAccount\"}],\"dbName\":\"providers\"},\"ProviderAccount\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"role\",\"kind\":\"enum\",\"type\":\"ProviderRole\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"user_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"user\",\"kind\":\"object\",\"type\":\"Provider\",\"relationName\":\"ProviderToProviderAccount\"},{\"name\":\"account_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"account\",\"kind\":\"object\",\"type\":\"Account\",\"relationName\":\"AccountToProviderAccount\"}],\"dbName\":\"provider_accounts\"},\"TriggerLog\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"message\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"name\",\"kind\":\"scalar\",\"type\":\"String\"}],\"dbName\":\"trigger_logs\"},\"UserDevices\":{\"fields\":[{\"name\":\"account_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"app_version\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"build_number\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"uuid\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"platform\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"brand\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"model\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"device\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"os_version\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"sdk_version\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"release_number\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"browser_name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"fcm_token\",\"kind\":\"scalar\",\"type\":\"String\"}],\"dbName\":\"user_devices\"},\"Customer\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"type\",\"kind\":\"enum\",\"type\":\"CustomerType\"},{\"name\":\"is_favorite\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"deleted_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"sales_invoices\",\"kind\":\"object\",\"type\":\"SalesInvoice\",\"relationName\":\"CustomerToSalesInvoice\"},{\"name\":\"customer_individuals\",\"kind\":\"object\",\"type\":\"CustomerIndividual\",\"relationName\":\"CustomerToCustomerIndividual\"},{\"name\":\"customer_legals\",\"kind\":\"object\",\"type\":\"CustomerLegal\",\"relationName\":\"CustomerToCustomerLegal\"}],\"dbName\":\"customers\"},\"CustomerIndividual\":{\"fields\":[{\"name\":\"customer_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"first_name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"last_name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"national_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"postal_code\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"economic_code\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"complex_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"customer\",\"kind\":\"object\",\"type\":\"Customer\",\"relationName\":\"CustomerToCustomerIndividual\"},{\"name\":\"complex\",\"kind\":\"object\",\"type\":\"Complex\",\"relationName\":\"ComplexToCustomerIndividual\"}],\"dbName\":\"customer_individuals\"},\"CustomerLegal\":{\"fields\":[{\"name\":\"customer_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"company_name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"economic_code\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"registration_number\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"postal_code\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"complex_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"customer\",\"kind\":\"object\",\"type\":\"Customer\",\"relationName\":\"CustomerToCustomerLegal\"},{\"name\":\"complex\",\"kind\":\"object\",\"type\":\"Complex\",\"relationName\":\"ComplexToCustomerLegal\"}],\"dbName\":\"customer_legal\"},\"Good\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"is_default_guild_good\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"sku\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"unit_type\",\"kind\":\"enum\",\"type\":\"UnitType\"},{\"name\":\"pricing_model\",\"kind\":\"enum\",\"type\":\"GoodPricingModel\"},{\"name\":\"description\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"local_sku\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"barcode\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"base_sale_price\",\"kind\":\"scalar\",\"type\":\"Decimal\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"deleted_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"complex_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"category_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"category\",\"kind\":\"object\",\"type\":\"GoodCategory\",\"relationName\":\"GoodToGoodCategory\"},{\"name\":\"complex\",\"kind\":\"object\",\"type\":\"Complex\",\"relationName\":\"ComplexToGood\"},{\"name\":\"sales_invoice_items\",\"kind\":\"object\",\"type\":\"SalesInvoiceItem\",\"relationName\":\"GoodToSalesInvoiceItem\"}],\"dbName\":\"goods\"},\"GoodCategory\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"description\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"image_url\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"complex_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"is_default_guild_good\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"guild_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"deleted_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"goods\",\"kind\":\"object\",\"type\":\"Good\",\"relationName\":\"GoodToGoodCategory\"},{\"name\":\"guild\",\"kind\":\"object\",\"type\":\"Guild\",\"relationName\":\"GoodCategoryToGuild\"},{\"name\":\"complex\",\"kind\":\"object\",\"type\":\"Complex\",\"relationName\":\"ComplexToGoodCategory\"}],\"dbName\":\"good_categories\"},\"Guild\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"code\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"business_activities\",\"kind\":\"object\",\"type\":\"BusinessActivity\",\"relationName\":\"BusinessActivityToGuild\"},{\"name\":\"good_categories\",\"kind\":\"object\",\"type\":\"GoodCategory\",\"relationName\":\"GoodCategoryToGuild\"}],\"dbName\":\"guilds\"},\"SalesInvoice\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"code\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"total_amount\",\"kind\":\"scalar\",\"type\":\"Decimal\"},{\"name\":\"notes\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"unknown_customer\",\"kind\":\"scalar\",\"type\":\"Json\"},{\"name\":\"invoice_date\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"customer_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"account_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"pos_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"customer\",\"kind\":\"object\",\"type\":\"Customer\",\"relationName\":\"CustomerToSalesInvoice\"},{\"name\":\"pos\",\"kind\":\"object\",\"type\":\"Pos\",\"relationName\":\"PosToSalesInvoice\"},{\"name\":\"account\",\"kind\":\"object\",\"type\":\"ConsumerAccount\",\"relationName\":\"ConsumerAccountToSalesInvoice\"},{\"name\":\"items\",\"kind\":\"object\",\"type\":\"SalesInvoiceItem\",\"relationName\":\"SalesInvoiceToSalesInvoiceItem\"},{\"name\":\"payments\",\"kind\":\"object\",\"type\":\"SalesInvoicePayment\",\"relationName\":\"SalesInvoiceToSalesInvoicePayment\"}],\"dbName\":\"sales_invoices\"},\"SalesInvoiceItem\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"quantity\",\"kind\":\"scalar\",\"type\":\"Decimal\"},{\"name\":\"unit_type\",\"kind\":\"enum\",\"type\":\"UnitType\"},{\"name\":\"unit_price\",\"kind\":\"scalar\",\"type\":\"Decimal\"},{\"name\":\"total_amount\",\"kind\":\"scalar\",\"type\":\"Decimal\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"discount\",\"kind\":\"scalar\",\"type\":\"Decimal\"},{\"name\":\"notes\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"invoice_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"good_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"service_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"payload\",\"kind\":\"scalar\",\"type\":\"Json\"},{\"name\":\"invoice\",\"kind\":\"object\",\"type\":\"SalesInvoice\",\"relationName\":\"SalesInvoiceToSalesInvoiceItem\"},{\"name\":\"good\",\"kind\":\"object\",\"type\":\"Good\",\"relationName\":\"GoodToSalesInvoiceItem\"},{\"name\":\"service\",\"kind\":\"object\",\"type\":\"Service\",\"relationName\":\"SalesInvoiceItemToService\"}],\"dbName\":\"sales_invoice_items\"},\"SalesInvoicePayment\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"invoice_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"amount\",\"kind\":\"scalar\",\"type\":\"Decimal\"},{\"name\":\"payment_method\",\"kind\":\"enum\",\"type\":\"PaymentMethodType\"},{\"name\":\"paid_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"invoice\",\"kind\":\"object\",\"type\":\"SalesInvoice\",\"relationName\":\"SalesInvoiceToSalesInvoicePayment\"}],\"dbName\":\"sales_invoice_payments\"},\"Service\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"description\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"sku\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"local_sku\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"barcode\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"deleted_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"category_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"base_sale_price\",\"kind\":\"scalar\",\"type\":\"Decimal\"},{\"name\":\"account_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"complex_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"category\",\"kind\":\"object\",\"type\":\"ServiceCategory\",\"relationName\":\"ServiceToServiceCategory\"},{\"name\":\"sales_invoice_items\",\"kind\":\"object\",\"type\":\"SalesInvoiceItem\",\"relationName\":\"SalesInvoiceItemToService\"}],\"dbName\":\"services\"},\"ServiceCategory\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"description\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"image_url\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"account_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"complex_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"deleted_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"services\",\"kind\":\"object\",\"type\":\"Service\",\"relationName\":\"ServiceToServiceCategory\"}],\"dbName\":\"service_categories\"}},\"enums\":{},\"types\":{}}") +config.runtimeDataModel = JSON.parse("{\"models\":{\"Admin\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"mobile_number\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"national_code\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"first_name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"last_name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"accounts\",\"kind\":\"object\",\"type\":\"AdminAccount\",\"relationName\":\"AdminToAdminAccount\"}],\"dbName\":\"admins\"},\"AdminAccount\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"user_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"user\",\"kind\":\"object\",\"type\":\"Admin\",\"relationName\":\"AdminToAdminAccount\"},{\"name\":\"account_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"account\",\"kind\":\"object\",\"type\":\"Account\",\"relationName\":\"AccountToAdminAccount\"}],\"dbName\":\"admin_accounts\"},\"Account\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"username\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"password\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"status\",\"kind\":\"enum\",\"type\":\"AccountStatus\"},{\"name\":\"type\",\"kind\":\"enum\",\"type\":\"AccountType\"},{\"name\":\"admin_account\",\"kind\":\"object\",\"type\":\"AdminAccount\",\"relationName\":\"AccountToAdminAccount\"},{\"name\":\"provider_account\",\"kind\":\"object\",\"type\":\"ProviderAccount\",\"relationName\":\"AccountToProviderAccount\"},{\"name\":\"partner_account\",\"kind\":\"object\",\"type\":\"PartnerAccount\",\"relationName\":\"AccountToPartnerAccount\"},{\"name\":\"consumer_account\",\"kind\":\"object\",\"type\":\"ConsumerAccount\",\"relationName\":\"AccountToConsumerAccount\"}],\"dbName\":\"accounts\"},\"Consumer\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"mobile_number\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"first_name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"last_name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"status\",\"kind\":\"enum\",\"type\":\"ConsumerStatus\"},{\"name\":\"license_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"accounts\",\"kind\":\"object\",\"type\":\"ConsumerAccount\",\"relationName\":\"ConsumerToConsumerAccount\"},{\"name\":\"businessActivities\",\"kind\":\"object\",\"type\":\"BusinessActivity\",\"relationName\":\"BusinessActivityToConsumer\"},{\"name\":\"license\",\"kind\":\"object\",\"type\":\"License\",\"relationName\":\"ConsumerToLicense\"}],\"dbName\":\"consumers\"},\"ConsumerAccount\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"role\",\"kind\":\"enum\",\"type\":\"ConsumerRole\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"user_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"user\",\"kind\":\"object\",\"type\":\"Consumer\",\"relationName\":\"ConsumerToConsumerAccount\"},{\"name\":\"account_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"account\",\"kind\":\"object\",\"type\":\"Account\",\"relationName\":\"AccountToConsumerAccount\"},{\"name\":\"permissions\",\"kind\":\"object\",\"type\":\"PermissionConsumer\",\"relationName\":\"ConsumerAccountToPermissionConsumer\"},{\"name\":\"salesInvoices\",\"kind\":\"object\",\"type\":\"SalesInvoice\",\"relationName\":\"ConsumerAccountToSalesInvoice\"}],\"dbName\":\"consumer_accounts\"},\"BusinessActivity\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"guild_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"user_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"guild\",\"kind\":\"object\",\"type\":\"Guild\",\"relationName\":\"BusinessActivityToGuild\"},{\"name\":\"user\",\"kind\":\"object\",\"type\":\"Consumer\",\"relationName\":\"BusinessActivityToConsumer\"},{\"name\":\"complexes\",\"kind\":\"object\",\"type\":\"Complex\",\"relationName\":\"BusinessActivityToComplex\"},{\"name\":\"permissionBusinesses\",\"kind\":\"object\",\"type\":\"PermissionBusiness\",\"relationName\":\"BusinessActivityToPermissionBusiness\"}],\"dbName\":\"business_activities\"},\"Complex\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"address\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"tax_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"business_activity_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"business_activity\",\"kind\":\"object\",\"type\":\"BusinessActivity\",\"relationName\":\"BusinessActivityToComplex\"},{\"name\":\"pos_list\",\"kind\":\"object\",\"type\":\"Pos\",\"relationName\":\"ComplexToPos\"},{\"name\":\"goods\",\"kind\":\"object\",\"type\":\"Good\",\"relationName\":\"ComplexToGood\"},{\"name\":\"good_categories\",\"kind\":\"object\",\"type\":\"GoodCategory\",\"relationName\":\"ComplexToGoodCategory\"},{\"name\":\"permissionComplexes\",\"kind\":\"object\",\"type\":\"PermissionComplex\",\"relationName\":\"ComplexToPermissionComplex\"},{\"name\":\"customerIndividuals\",\"kind\":\"object\",\"type\":\"CustomerIndividual\",\"relationName\":\"ComplexToCustomerIndividual\"},{\"name\":\"customerLegals\",\"kind\":\"object\",\"type\":\"CustomerLegal\",\"relationName\":\"ComplexToCustomerLegal\"}],\"dbName\":\"complexes\"},\"Pos\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"serial\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"model\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"status\",\"kind\":\"enum\",\"type\":\"POSStatus\"},{\"name\":\"pos_type\",\"kind\":\"enum\",\"type\":\"POSType\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"complex_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"complex\",\"kind\":\"object\",\"type\":\"Complex\",\"relationName\":\"ComplexToPos\"},{\"name\":\"device_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"device\",\"kind\":\"object\",\"type\":\"Device\",\"relationName\":\"DeviceToPos\"},{\"name\":\"provider_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"provider\",\"kind\":\"object\",\"type\":\"Provider\",\"relationName\":\"PosToProvider\"},{\"name\":\"permissionPos\",\"kind\":\"object\",\"type\":\"PermissionPos\",\"relationName\":\"PermissionPosToPos\"},{\"name\":\"salesInvoices\",\"kind\":\"object\",\"type\":\"SalesInvoice\",\"relationName\":\"PosToSalesInvoice\"}],\"dbName\":\"poses\"},\"DeviceBrand\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"devices\",\"kind\":\"object\",\"type\":\"Device\",\"relationName\":\"DeviceToDeviceBrand\"}],\"dbName\":\"device_brands\"},\"Device\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"os_version\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"brand_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"brand\",\"kind\":\"object\",\"type\":\"DeviceBrand\",\"relationName\":\"DeviceToDeviceBrand\"},{\"name\":\"poses\",\"kind\":\"object\",\"type\":\"Pos\",\"relationName\":\"DeviceToPos\"}],\"dbName\":\"devices\"},\"License\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"starts_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"expires_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"status\",\"kind\":\"enum\",\"type\":\"LicenseStatus\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"partner_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"partner\",\"kind\":\"object\",\"type\":\"Partner\",\"relationName\":\"LicenseToPartner\"},{\"name\":\"consumer_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"consumer\",\"kind\":\"object\",\"type\":\"Consumer\",\"relationName\":\"ConsumerToLicense\"}],\"dbName\":\"licenses\"},\"Partner\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"code\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"license_quota\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"status\",\"kind\":\"enum\",\"type\":\"PartnerStatus\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"licenses\",\"kind\":\"object\",\"type\":\"License\",\"relationName\":\"LicenseToPartner\"},{\"name\":\"accounts\",\"kind\":\"object\",\"type\":\"PartnerAccount\",\"relationName\":\"PartnerToPartnerAccount\"}],\"dbName\":\"partners\"},\"PartnerAccount\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"role\",\"kind\":\"enum\",\"type\":\"PartnerRole\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"user_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"user\",\"kind\":\"object\",\"type\":\"Partner\",\"relationName\":\"PartnerToPartnerAccount\"},{\"name\":\"account_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"account\",\"kind\":\"object\",\"type\":\"Account\",\"relationName\":\"AccountToPartnerAccount\"}],\"dbName\":\"partner_accounts\"},\"PermissionConsumer\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"account_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"account\",\"kind\":\"object\",\"type\":\"ConsumerAccount\",\"relationName\":\"ConsumerAccountToPermissionConsumer\"},{\"name\":\"posPermissions\",\"kind\":\"object\",\"type\":\"PermissionPos\",\"relationName\":\"PermissionConsumerToPermissionPos\"},{\"name\":\"complexPermissions\",\"kind\":\"object\",\"type\":\"PermissionComplex\",\"relationName\":\"PermissionComplexToPermissionConsumer\"},{\"name\":\"businessPermissions\",\"kind\":\"object\",\"type\":\"PermissionBusiness\",\"relationName\":\"PermissionBusinessToPermissionConsumer\"}],\"dbName\":\"permission_consumers\"},\"PermissionPos\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"role\",\"kind\":\"enum\",\"type\":\"POSRole\"},{\"name\":\"pos_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"permission_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"pos\",\"kind\":\"object\",\"type\":\"Pos\",\"relationName\":\"PermissionPosToPos\"},{\"name\":\"permission\",\"kind\":\"object\",\"type\":\"PermissionConsumer\",\"relationName\":\"PermissionConsumerToPermissionPos\"}],\"dbName\":\"permission_poses\"},\"PermissionComplex\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"role\",\"kind\":\"enum\",\"type\":\"ComplexRole\"},{\"name\":\"complex_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"permission_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"complex\",\"kind\":\"object\",\"type\":\"Complex\",\"relationName\":\"ComplexToPermissionComplex\"},{\"name\":\"permission\",\"kind\":\"object\",\"type\":\"PermissionConsumer\",\"relationName\":\"PermissionComplexToPermissionConsumer\"}],\"dbName\":\"permission_complexes\"},\"PermissionBusiness\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"role\",\"kind\":\"enum\",\"type\":\"BusinessRole\"},{\"name\":\"business_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"permission_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"business\",\"kind\":\"object\",\"type\":\"BusinessActivity\",\"relationName\":\"BusinessActivityToPermissionBusiness\"},{\"name\":\"permission\",\"kind\":\"object\",\"type\":\"PermissionConsumer\",\"relationName\":\"PermissionBusinessToPermissionConsumer\"}],\"dbName\":\"permission_business_activities\"},\"Provider\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"code\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"status\",\"kind\":\"enum\",\"type\":\"PartnerStatus\"},{\"name\":\"name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"pos_list\",\"kind\":\"object\",\"type\":\"Pos\",\"relationName\":\"PosToProvider\"},{\"name\":\"accounts\",\"kind\":\"object\",\"type\":\"ProviderAccount\",\"relationName\":\"ProviderToProviderAccount\"}],\"dbName\":\"providers\"},\"ProviderAccount\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"role\",\"kind\":\"enum\",\"type\":\"ProviderRole\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"user_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"user\",\"kind\":\"object\",\"type\":\"Provider\",\"relationName\":\"ProviderToProviderAccount\"},{\"name\":\"account_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"account\",\"kind\":\"object\",\"type\":\"Account\",\"relationName\":\"AccountToProviderAccount\"}],\"dbName\":\"provider_accounts\"},\"TriggerLog\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"message\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"name\",\"kind\":\"scalar\",\"type\":\"String\"}],\"dbName\":\"trigger_logs\"},\"UserDevices\":{\"fields\":[{\"name\":\"account_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"app_version\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"build_number\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"uuid\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"platform\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"brand\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"model\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"device\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"os_version\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"sdk_version\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"release_number\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"browser_name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"fcm_token\",\"kind\":\"scalar\",\"type\":\"String\"}],\"dbName\":\"user_devices\"},\"Customer\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"type\",\"kind\":\"enum\",\"type\":\"CustomerType\"},{\"name\":\"is_favorite\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"deleted_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"sales_invoices\",\"kind\":\"object\",\"type\":\"SalesInvoice\",\"relationName\":\"CustomerToSalesInvoice\"},{\"name\":\"customer_individuals\",\"kind\":\"object\",\"type\":\"CustomerIndividual\",\"relationName\":\"CustomerToCustomerIndividual\"},{\"name\":\"customer_legals\",\"kind\":\"object\",\"type\":\"CustomerLegal\",\"relationName\":\"CustomerToCustomerLegal\"}],\"dbName\":\"customers\"},\"CustomerIndividual\":{\"fields\":[{\"name\":\"customer_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"first_name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"last_name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"national_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"postal_code\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"economic_code\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"complex_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"customer\",\"kind\":\"object\",\"type\":\"Customer\",\"relationName\":\"CustomerToCustomerIndividual\"},{\"name\":\"complex\",\"kind\":\"object\",\"type\":\"Complex\",\"relationName\":\"ComplexToCustomerIndividual\"}],\"dbName\":\"customer_individuals\"},\"CustomerLegal\":{\"fields\":[{\"name\":\"customer_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"company_name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"economic_code\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"registration_number\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"postal_code\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"complex_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"customer\",\"kind\":\"object\",\"type\":\"Customer\",\"relationName\":\"CustomerToCustomerLegal\"},{\"name\":\"complex\",\"kind\":\"object\",\"type\":\"Complex\",\"relationName\":\"ComplexToCustomerLegal\"}],\"dbName\":\"customer_legal\"},\"Good\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"is_default_guild_good\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"sku\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"unit_type\",\"kind\":\"enum\",\"type\":\"UnitType\"},{\"name\":\"pricing_model\",\"kind\":\"enum\",\"type\":\"GoodPricingModel\"},{\"name\":\"description\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"local_sku\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"barcode\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"base_sale_price\",\"kind\":\"scalar\",\"type\":\"Decimal\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"deleted_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"complex_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"category_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"category\",\"kind\":\"object\",\"type\":\"GoodCategory\",\"relationName\":\"GoodToGoodCategory\"},{\"name\":\"complex\",\"kind\":\"object\",\"type\":\"Complex\",\"relationName\":\"ComplexToGood\"},{\"name\":\"sales_invoice_items\",\"kind\":\"object\",\"type\":\"SalesInvoiceItem\",\"relationName\":\"GoodToSalesInvoiceItem\"}],\"dbName\":\"goods\"},\"GoodCategory\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"description\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"image_url\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"complex_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"is_default_guild_good\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"guild_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"deleted_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"goods\",\"kind\":\"object\",\"type\":\"Good\",\"relationName\":\"GoodToGoodCategory\"},{\"name\":\"guild\",\"kind\":\"object\",\"type\":\"Guild\",\"relationName\":\"GoodCategoryToGuild\"},{\"name\":\"complex\",\"kind\":\"object\",\"type\":\"Complex\",\"relationName\":\"ComplexToGoodCategory\"}],\"dbName\":\"good_categories\"},\"Guild\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"code\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"business_activities\",\"kind\":\"object\",\"type\":\"BusinessActivity\",\"relationName\":\"BusinessActivityToGuild\"},{\"name\":\"good_categories\",\"kind\":\"object\",\"type\":\"GoodCategory\",\"relationName\":\"GoodCategoryToGuild\"}],\"dbName\":\"guilds\"},\"SalesInvoice\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"code\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"total_amount\",\"kind\":\"scalar\",\"type\":\"Decimal\"},{\"name\":\"notes\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"unknown_customer\",\"kind\":\"scalar\",\"type\":\"Json\"},{\"name\":\"invoice_date\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"customer_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"account_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"pos_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"customer\",\"kind\":\"object\",\"type\":\"Customer\",\"relationName\":\"CustomerToSalesInvoice\"},{\"name\":\"pos\",\"kind\":\"object\",\"type\":\"Pos\",\"relationName\":\"PosToSalesInvoice\"},{\"name\":\"account\",\"kind\":\"object\",\"type\":\"ConsumerAccount\",\"relationName\":\"ConsumerAccountToSalesInvoice\"},{\"name\":\"items\",\"kind\":\"object\",\"type\":\"SalesInvoiceItem\",\"relationName\":\"SalesInvoiceToSalesInvoiceItem\"},{\"name\":\"payments\",\"kind\":\"object\",\"type\":\"SalesInvoicePayment\",\"relationName\":\"SalesInvoiceToSalesInvoicePayment\"}],\"dbName\":\"sales_invoices\"},\"SalesInvoiceItem\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"quantity\",\"kind\":\"scalar\",\"type\":\"Decimal\"},{\"name\":\"unit_type\",\"kind\":\"enum\",\"type\":\"UnitType\"},{\"name\":\"unit_price\",\"kind\":\"scalar\",\"type\":\"Decimal\"},{\"name\":\"total_amount\",\"kind\":\"scalar\",\"type\":\"Decimal\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"discount\",\"kind\":\"scalar\",\"type\":\"Decimal\"},{\"name\":\"notes\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"invoice_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"good_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"service_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"payload\",\"kind\":\"scalar\",\"type\":\"Json\"},{\"name\":\"invoice\",\"kind\":\"object\",\"type\":\"SalesInvoice\",\"relationName\":\"SalesInvoiceToSalesInvoiceItem\"},{\"name\":\"good\",\"kind\":\"object\",\"type\":\"Good\",\"relationName\":\"GoodToSalesInvoiceItem\"},{\"name\":\"service\",\"kind\":\"object\",\"type\":\"Service\",\"relationName\":\"SalesInvoiceItemToService\"}],\"dbName\":\"sales_invoice_items\"},\"SalesInvoicePayment\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"invoice_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"amount\",\"kind\":\"scalar\",\"type\":\"Decimal\"},{\"name\":\"payment_method\",\"kind\":\"enum\",\"type\":\"PaymentMethodType\"},{\"name\":\"paid_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"invoice\",\"kind\":\"object\",\"type\":\"SalesInvoice\",\"relationName\":\"SalesInvoiceToSalesInvoicePayment\"}],\"dbName\":\"sales_invoice_payments\"},\"Service\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"description\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"sku\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"local_sku\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"barcode\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"deleted_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"category_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"base_sale_price\",\"kind\":\"scalar\",\"type\":\"Decimal\"},{\"name\":\"account_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"complex_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"category\",\"kind\":\"object\",\"type\":\"ServiceCategory\",\"relationName\":\"ServiceToServiceCategory\"},{\"name\":\"sales_invoice_items\",\"kind\":\"object\",\"type\":\"SalesInvoiceItem\",\"relationName\":\"SalesInvoiceItemToService\"}],\"dbName\":\"services\"},\"ServiceCategory\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"description\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"image_url\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"account_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"complex_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"deleted_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"services\",\"kind\":\"object\",\"type\":\"Service\",\"relationName\":\"ServiceToServiceCategory\"}],\"dbName\":\"service_categories\"}},\"enums\":{},\"types\":{}}") async function decodeBase64AsWasm(wasmBase64: string): Promise { const { Buffer } = await import('node:buffer') diff --git a/src/generated/prisma/internal/prismaNamespace.ts b/src/generated/prisma/internal/prismaNamespace.ts index c93f105..85019cc 100644 --- a/src/generated/prisma/internal/prismaNamespace.ts +++ b/src/generated/prisma/internal/prismaNamespace.ts @@ -2718,7 +2718,8 @@ export const LicenseScalarFieldEnum = { status: 'status', created_at: 'created_at', updated_at: 'updated_at', - partner_id: 'partner_id' + partner_id: 'partner_id', + consumer_id: 'consumer_id' } as const export type LicenseScalarFieldEnum = (typeof LicenseScalarFieldEnum)[keyof typeof LicenseScalarFieldEnum] @@ -3133,7 +3134,8 @@ export type DeviceOrderByRelevanceFieldEnum = (typeof DeviceOrderByRelevanceFiel export const LicenseOrderByRelevanceFieldEnum = { id: 'id', - partner_id: 'partner_id' + partner_id: 'partner_id', + consumer_id: 'consumer_id' } as const export type LicenseOrderByRelevanceFieldEnum = (typeof LicenseOrderByRelevanceFieldEnum)[keyof typeof LicenseOrderByRelevanceFieldEnum] diff --git a/src/generated/prisma/internal/prismaNamespaceBrowser.ts b/src/generated/prisma/internal/prismaNamespaceBrowser.ts index 57acdd9..d331a03 100644 --- a/src/generated/prisma/internal/prismaNamespaceBrowser.ts +++ b/src/generated/prisma/internal/prismaNamespaceBrowser.ts @@ -233,7 +233,8 @@ export const LicenseScalarFieldEnum = { status: 'status', created_at: 'created_at', updated_at: 'updated_at', - partner_id: 'partner_id' + partner_id: 'partner_id', + consumer_id: 'consumer_id' } as const export type LicenseScalarFieldEnum = (typeof LicenseScalarFieldEnum)[keyof typeof LicenseScalarFieldEnum] @@ -648,7 +649,8 @@ export type DeviceOrderByRelevanceFieldEnum = (typeof DeviceOrderByRelevanceFiel export const LicenseOrderByRelevanceFieldEnum = { id: 'id', - partner_id: 'partner_id' + partner_id: 'partner_id', + consumer_id: 'consumer_id' } as const export type LicenseOrderByRelevanceFieldEnum = (typeof LicenseOrderByRelevanceFieldEnum)[keyof typeof LicenseOrderByRelevanceFieldEnum] diff --git a/src/generated/prisma/models/Consumer.ts b/src/generated/prisma/models/Consumer.ts index c9ec692..698d46c 100644 --- a/src/generated/prisma/models/Consumer.ts +++ b/src/generated/prisma/models/Consumer.ts @@ -206,9 +206,9 @@ export type ConsumerWhereInput = { license_id?: Prisma.StringNullableFilter<"Consumer"> | string | null created_at?: Prisma.DateTimeFilter<"Consumer"> | Date | string updated_at?: Prisma.DateTimeFilter<"Consumer"> | Date | string - license?: Prisma.XOR | null accounts?: Prisma.ConsumerAccountListRelationFilter businessActivities?: Prisma.BusinessActivityListRelationFilter + license?: Prisma.XOR | null } export type ConsumerOrderByWithRelationInput = { @@ -220,28 +220,28 @@ export type ConsumerOrderByWithRelationInput = { license_id?: Prisma.SortOrderInput | Prisma.SortOrder created_at?: Prisma.SortOrder updated_at?: Prisma.SortOrder - license?: Prisma.LicenseOrderByWithRelationInput accounts?: Prisma.ConsumerAccountOrderByRelationAggregateInput businessActivities?: Prisma.BusinessActivityOrderByRelationAggregateInput + license?: Prisma.LicenseOrderByWithRelationInput _relevance?: Prisma.ConsumerOrderByRelevanceInput } export type ConsumerWhereUniqueInput = Prisma.AtLeast<{ id?: string mobile_number?: string + license_id?: string AND?: Prisma.ConsumerWhereInput | Prisma.ConsumerWhereInput[] OR?: Prisma.ConsumerWhereInput[] NOT?: Prisma.ConsumerWhereInput | Prisma.ConsumerWhereInput[] first_name?: Prisma.StringFilter<"Consumer"> | string last_name?: Prisma.StringFilter<"Consumer"> | string status?: Prisma.EnumConsumerStatusFilter<"Consumer"> | $Enums.ConsumerStatus - license_id?: Prisma.StringNullableFilter<"Consumer"> | string | null created_at?: Prisma.DateTimeFilter<"Consumer"> | Date | string updated_at?: Prisma.DateTimeFilter<"Consumer"> | Date | string - license?: Prisma.XOR | null accounts?: Prisma.ConsumerAccountListRelationFilter businessActivities?: Prisma.BusinessActivityListRelationFilter -}, "id" | "mobile_number"> + license?: Prisma.XOR | null +}, "id" | "mobile_number" | "license_id"> export type ConsumerOrderByWithAggregationInput = { id?: Prisma.SortOrder @@ -277,11 +277,12 @@ export type ConsumerCreateInput = { first_name: string last_name: string status?: $Enums.ConsumerStatus + license_id?: string | null created_at?: Date | string updated_at?: Date | string - license?: Prisma.LicenseCreateNestedOneWithoutConsumersInput accounts?: Prisma.ConsumerAccountCreateNestedManyWithoutUserInput businessActivities?: Prisma.BusinessActivityCreateNestedManyWithoutUserInput + license?: Prisma.LicenseCreateNestedOneWithoutConsumerInput } export type ConsumerUncheckedCreateInput = { @@ -295,6 +296,7 @@ export type ConsumerUncheckedCreateInput = { updated_at?: Date | string accounts?: Prisma.ConsumerAccountUncheckedCreateNestedManyWithoutUserInput businessActivities?: Prisma.BusinessActivityUncheckedCreateNestedManyWithoutUserInput + license?: Prisma.LicenseUncheckedCreateNestedOneWithoutConsumerInput } export type ConsumerUpdateInput = { @@ -303,11 +305,12 @@ export type ConsumerUpdateInput = { first_name?: Prisma.StringFieldUpdateOperationsInput | string last_name?: Prisma.StringFieldUpdateOperationsInput | string status?: Prisma.EnumConsumerStatusFieldUpdateOperationsInput | $Enums.ConsumerStatus + license_id?: Prisma.NullableStringFieldUpdateOperationsInput | string | null created_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string updated_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string - license?: Prisma.LicenseUpdateOneWithoutConsumersNestedInput accounts?: Prisma.ConsumerAccountUpdateManyWithoutUserNestedInput businessActivities?: Prisma.BusinessActivityUpdateManyWithoutUserNestedInput + license?: Prisma.LicenseUpdateOneWithoutConsumerNestedInput } export type ConsumerUncheckedUpdateInput = { @@ -321,6 +324,7 @@ export type ConsumerUncheckedUpdateInput = { updated_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string accounts?: Prisma.ConsumerAccountUncheckedUpdateManyWithoutUserNestedInput businessActivities?: Prisma.BusinessActivityUncheckedUpdateManyWithoutUserNestedInput + license?: Prisma.LicenseUncheckedUpdateOneWithoutConsumerNestedInput } export type ConsumerCreateManyInput = { @@ -340,6 +344,7 @@ export type ConsumerUpdateManyMutationInput = { first_name?: Prisma.StringFieldUpdateOperationsInput | string last_name?: Prisma.StringFieldUpdateOperationsInput | string status?: Prisma.EnumConsumerStatusFieldUpdateOperationsInput | $Enums.ConsumerStatus + license_id?: Prisma.NullableStringFieldUpdateOperationsInput | string | null created_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string updated_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string } @@ -399,16 +404,6 @@ export type ConsumerScalarRelationFilter = { isNot?: Prisma.ConsumerWhereInput } -export type ConsumerListRelationFilter = { - every?: Prisma.ConsumerWhereInput - some?: Prisma.ConsumerWhereInput - none?: Prisma.ConsumerWhereInput -} - -export type ConsumerOrderByRelationAggregateInput = { - _count?: Prisma.SortOrder -} - export type EnumConsumerStatusFieldUpdateOperationsInput = { set?: $Enums.ConsumerStatus } @@ -441,46 +436,18 @@ export type ConsumerUpdateOneRequiredWithoutBusinessActivitiesNestedInput = { update?: Prisma.XOR, Prisma.ConsumerUncheckedUpdateWithoutBusinessActivitiesInput> } -export type ConsumerCreateNestedManyWithoutLicenseInput = { - create?: Prisma.XOR | Prisma.ConsumerCreateWithoutLicenseInput[] | Prisma.ConsumerUncheckedCreateWithoutLicenseInput[] - connectOrCreate?: Prisma.ConsumerCreateOrConnectWithoutLicenseInput | Prisma.ConsumerCreateOrConnectWithoutLicenseInput[] - createMany?: Prisma.ConsumerCreateManyLicenseInputEnvelope - connect?: Prisma.ConsumerWhereUniqueInput | Prisma.ConsumerWhereUniqueInput[] +export type ConsumerCreateNestedOneWithoutLicenseInput = { + create?: Prisma.XOR + connectOrCreate?: Prisma.ConsumerCreateOrConnectWithoutLicenseInput + connect?: Prisma.ConsumerWhereUniqueInput } -export type ConsumerUncheckedCreateNestedManyWithoutLicenseInput = { - create?: Prisma.XOR | Prisma.ConsumerCreateWithoutLicenseInput[] | Prisma.ConsumerUncheckedCreateWithoutLicenseInput[] - connectOrCreate?: Prisma.ConsumerCreateOrConnectWithoutLicenseInput | Prisma.ConsumerCreateOrConnectWithoutLicenseInput[] - createMany?: Prisma.ConsumerCreateManyLicenseInputEnvelope - connect?: Prisma.ConsumerWhereUniqueInput | Prisma.ConsumerWhereUniqueInput[] -} - -export type ConsumerUpdateManyWithoutLicenseNestedInput = { - create?: Prisma.XOR | Prisma.ConsumerCreateWithoutLicenseInput[] | Prisma.ConsumerUncheckedCreateWithoutLicenseInput[] - connectOrCreate?: Prisma.ConsumerCreateOrConnectWithoutLicenseInput | Prisma.ConsumerCreateOrConnectWithoutLicenseInput[] - upsert?: Prisma.ConsumerUpsertWithWhereUniqueWithoutLicenseInput | Prisma.ConsumerUpsertWithWhereUniqueWithoutLicenseInput[] - createMany?: Prisma.ConsumerCreateManyLicenseInputEnvelope - set?: Prisma.ConsumerWhereUniqueInput | Prisma.ConsumerWhereUniqueInput[] - disconnect?: Prisma.ConsumerWhereUniqueInput | Prisma.ConsumerWhereUniqueInput[] - delete?: Prisma.ConsumerWhereUniqueInput | Prisma.ConsumerWhereUniqueInput[] - connect?: Prisma.ConsumerWhereUniqueInput | Prisma.ConsumerWhereUniqueInput[] - update?: Prisma.ConsumerUpdateWithWhereUniqueWithoutLicenseInput | Prisma.ConsumerUpdateWithWhereUniqueWithoutLicenseInput[] - updateMany?: Prisma.ConsumerUpdateManyWithWhereWithoutLicenseInput | Prisma.ConsumerUpdateManyWithWhereWithoutLicenseInput[] - deleteMany?: Prisma.ConsumerScalarWhereInput | Prisma.ConsumerScalarWhereInput[] -} - -export type ConsumerUncheckedUpdateManyWithoutLicenseNestedInput = { - create?: Prisma.XOR | Prisma.ConsumerCreateWithoutLicenseInput[] | Prisma.ConsumerUncheckedCreateWithoutLicenseInput[] - connectOrCreate?: Prisma.ConsumerCreateOrConnectWithoutLicenseInput | Prisma.ConsumerCreateOrConnectWithoutLicenseInput[] - upsert?: Prisma.ConsumerUpsertWithWhereUniqueWithoutLicenseInput | Prisma.ConsumerUpsertWithWhereUniqueWithoutLicenseInput[] - createMany?: Prisma.ConsumerCreateManyLicenseInputEnvelope - set?: Prisma.ConsumerWhereUniqueInput | Prisma.ConsumerWhereUniqueInput[] - disconnect?: Prisma.ConsumerWhereUniqueInput | Prisma.ConsumerWhereUniqueInput[] - delete?: Prisma.ConsumerWhereUniqueInput | Prisma.ConsumerWhereUniqueInput[] - connect?: Prisma.ConsumerWhereUniqueInput | Prisma.ConsumerWhereUniqueInput[] - update?: Prisma.ConsumerUpdateWithWhereUniqueWithoutLicenseInput | Prisma.ConsumerUpdateWithWhereUniqueWithoutLicenseInput[] - updateMany?: Prisma.ConsumerUpdateManyWithWhereWithoutLicenseInput | Prisma.ConsumerUpdateManyWithWhereWithoutLicenseInput[] - deleteMany?: Prisma.ConsumerScalarWhereInput | Prisma.ConsumerScalarWhereInput[] +export type ConsumerUpdateOneRequiredWithoutLicenseNestedInput = { + create?: Prisma.XOR + connectOrCreate?: Prisma.ConsumerCreateOrConnectWithoutLicenseInput + upsert?: Prisma.ConsumerUpsertWithoutLicenseInput + connect?: Prisma.ConsumerWhereUniqueInput + update?: Prisma.XOR, Prisma.ConsumerUncheckedUpdateWithoutLicenseInput> } export type ConsumerCreateWithoutAccountsInput = { @@ -489,10 +456,11 @@ export type ConsumerCreateWithoutAccountsInput = { first_name: string last_name: string status?: $Enums.ConsumerStatus + license_id?: string | null created_at?: Date | string updated_at?: Date | string - license?: Prisma.LicenseCreateNestedOneWithoutConsumersInput businessActivities?: Prisma.BusinessActivityCreateNestedManyWithoutUserInput + license?: Prisma.LicenseCreateNestedOneWithoutConsumerInput } export type ConsumerUncheckedCreateWithoutAccountsInput = { @@ -505,6 +473,7 @@ export type ConsumerUncheckedCreateWithoutAccountsInput = { created_at?: Date | string updated_at?: Date | string businessActivities?: Prisma.BusinessActivityUncheckedCreateNestedManyWithoutUserInput + license?: Prisma.LicenseUncheckedCreateNestedOneWithoutConsumerInput } export type ConsumerCreateOrConnectWithoutAccountsInput = { @@ -529,10 +498,11 @@ export type ConsumerUpdateWithoutAccountsInput = { first_name?: Prisma.StringFieldUpdateOperationsInput | string last_name?: Prisma.StringFieldUpdateOperationsInput | string status?: Prisma.EnumConsumerStatusFieldUpdateOperationsInput | $Enums.ConsumerStatus + license_id?: Prisma.NullableStringFieldUpdateOperationsInput | string | null created_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string updated_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string - license?: Prisma.LicenseUpdateOneWithoutConsumersNestedInput businessActivities?: Prisma.BusinessActivityUpdateManyWithoutUserNestedInput + license?: Prisma.LicenseUpdateOneWithoutConsumerNestedInput } export type ConsumerUncheckedUpdateWithoutAccountsInput = { @@ -545,6 +515,7 @@ export type ConsumerUncheckedUpdateWithoutAccountsInput = { created_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string updated_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string businessActivities?: Prisma.BusinessActivityUncheckedUpdateManyWithoutUserNestedInput + license?: Prisma.LicenseUncheckedUpdateOneWithoutConsumerNestedInput } export type ConsumerCreateWithoutBusinessActivitiesInput = { @@ -553,10 +524,11 @@ export type ConsumerCreateWithoutBusinessActivitiesInput = { first_name: string last_name: string status?: $Enums.ConsumerStatus + license_id?: string | null created_at?: Date | string updated_at?: Date | string - license?: Prisma.LicenseCreateNestedOneWithoutConsumersInput accounts?: Prisma.ConsumerAccountCreateNestedManyWithoutUserInput + license?: Prisma.LicenseCreateNestedOneWithoutConsumerInput } export type ConsumerUncheckedCreateWithoutBusinessActivitiesInput = { @@ -569,6 +541,7 @@ export type ConsumerUncheckedCreateWithoutBusinessActivitiesInput = { created_at?: Date | string updated_at?: Date | string accounts?: Prisma.ConsumerAccountUncheckedCreateNestedManyWithoutUserInput + license?: Prisma.LicenseUncheckedCreateNestedOneWithoutConsumerInput } export type ConsumerCreateOrConnectWithoutBusinessActivitiesInput = { @@ -593,10 +566,11 @@ export type ConsumerUpdateWithoutBusinessActivitiesInput = { first_name?: Prisma.StringFieldUpdateOperationsInput | string last_name?: Prisma.StringFieldUpdateOperationsInput | string status?: Prisma.EnumConsumerStatusFieldUpdateOperationsInput | $Enums.ConsumerStatus + license_id?: Prisma.NullableStringFieldUpdateOperationsInput | string | null created_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string updated_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string - license?: Prisma.LicenseUpdateOneWithoutConsumersNestedInput accounts?: Prisma.ConsumerAccountUpdateManyWithoutUserNestedInput + license?: Prisma.LicenseUpdateOneWithoutConsumerNestedInput } export type ConsumerUncheckedUpdateWithoutBusinessActivitiesInput = { @@ -609,6 +583,7 @@ export type ConsumerUncheckedUpdateWithoutBusinessActivitiesInput = { created_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string updated_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string accounts?: Prisma.ConsumerAccountUncheckedUpdateManyWithoutUserNestedInput + license?: Prisma.LicenseUncheckedUpdateOneWithoutConsumerNestedInput } export type ConsumerCreateWithoutLicenseInput = { @@ -617,6 +592,7 @@ export type ConsumerCreateWithoutLicenseInput = { first_name: string last_name: string status?: $Enums.ConsumerStatus + license_id?: string | null created_at?: Date | string updated_at?: Date | string accounts?: Prisma.ConsumerAccountCreateNestedManyWithoutUserInput @@ -629,6 +605,7 @@ export type ConsumerUncheckedCreateWithoutLicenseInput = { first_name: string last_name: string status?: $Enums.ConsumerStatus + license_id?: string | null created_at?: Date | string updated_at?: Date | string accounts?: Prisma.ConsumerAccountUncheckedCreateNestedManyWithoutUserInput @@ -640,57 +617,24 @@ export type ConsumerCreateOrConnectWithoutLicenseInput = { create: Prisma.XOR } -export type ConsumerCreateManyLicenseInputEnvelope = { - data: Prisma.ConsumerCreateManyLicenseInput | Prisma.ConsumerCreateManyLicenseInput[] - skipDuplicates?: boolean -} - -export type ConsumerUpsertWithWhereUniqueWithoutLicenseInput = { - where: Prisma.ConsumerWhereUniqueInput +export type ConsumerUpsertWithoutLicenseInput = { update: Prisma.XOR create: Prisma.XOR + where?: Prisma.ConsumerWhereInput } -export type ConsumerUpdateWithWhereUniqueWithoutLicenseInput = { - where: Prisma.ConsumerWhereUniqueInput +export type ConsumerUpdateToOneWithWhereWithoutLicenseInput = { + where?: Prisma.ConsumerWhereInput data: Prisma.XOR } -export type ConsumerUpdateManyWithWhereWithoutLicenseInput = { - where: Prisma.ConsumerScalarWhereInput - data: Prisma.XOR -} - -export type ConsumerScalarWhereInput = { - AND?: Prisma.ConsumerScalarWhereInput | Prisma.ConsumerScalarWhereInput[] - OR?: Prisma.ConsumerScalarWhereInput[] - NOT?: Prisma.ConsumerScalarWhereInput | Prisma.ConsumerScalarWhereInput[] - id?: Prisma.StringFilter<"Consumer"> | string - mobile_number?: Prisma.StringFilter<"Consumer"> | string - first_name?: Prisma.StringFilter<"Consumer"> | string - last_name?: Prisma.StringFilter<"Consumer"> | string - status?: Prisma.EnumConsumerStatusFilter<"Consumer"> | $Enums.ConsumerStatus - license_id?: Prisma.StringNullableFilter<"Consumer"> | string | null - created_at?: Prisma.DateTimeFilter<"Consumer"> | Date | string - updated_at?: Prisma.DateTimeFilter<"Consumer"> | Date | string -} - -export type ConsumerCreateManyLicenseInput = { - id?: string - mobile_number: string - first_name: string - last_name: string - status?: $Enums.ConsumerStatus - created_at?: Date | string - updated_at?: Date | string -} - export type ConsumerUpdateWithoutLicenseInput = { id?: Prisma.StringFieldUpdateOperationsInput | string mobile_number?: Prisma.StringFieldUpdateOperationsInput | string first_name?: Prisma.StringFieldUpdateOperationsInput | string last_name?: Prisma.StringFieldUpdateOperationsInput | string status?: Prisma.EnumConsumerStatusFieldUpdateOperationsInput | $Enums.ConsumerStatus + license_id?: Prisma.NullableStringFieldUpdateOperationsInput | string | null created_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string updated_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string accounts?: Prisma.ConsumerAccountUpdateManyWithoutUserNestedInput @@ -703,22 +647,13 @@ export type ConsumerUncheckedUpdateWithoutLicenseInput = { first_name?: Prisma.StringFieldUpdateOperationsInput | string last_name?: Prisma.StringFieldUpdateOperationsInput | string status?: Prisma.EnumConsumerStatusFieldUpdateOperationsInput | $Enums.ConsumerStatus + license_id?: Prisma.NullableStringFieldUpdateOperationsInput | string | null created_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string updated_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string accounts?: Prisma.ConsumerAccountUncheckedUpdateManyWithoutUserNestedInput businessActivities?: Prisma.BusinessActivityUncheckedUpdateManyWithoutUserNestedInput } -export type ConsumerUncheckedUpdateManyWithoutLicenseInput = { - id?: Prisma.StringFieldUpdateOperationsInput | string - mobile_number?: Prisma.StringFieldUpdateOperationsInput | string - first_name?: Prisma.StringFieldUpdateOperationsInput | string - last_name?: Prisma.StringFieldUpdateOperationsInput | string - status?: Prisma.EnumConsumerStatusFieldUpdateOperationsInput | $Enums.ConsumerStatus - created_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string - updated_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string -} - /** * Count Type ConsumerCountOutputType @@ -768,9 +703,9 @@ export type ConsumerSelect accounts?: boolean | Prisma.Consumer$accountsArgs businessActivities?: boolean | Prisma.Consumer$businessActivitiesArgs + license?: boolean | Prisma.Consumer$licenseArgs _count?: boolean | Prisma.ConsumerCountOutputTypeDefaultArgs }, ExtArgs["result"]["consumer"]> @@ -789,18 +724,18 @@ export type ConsumerSelectScalar = { export type ConsumerOmit = runtime.Types.Extensions.GetOmit<"id" | "mobile_number" | "first_name" | "last_name" | "status" | "license_id" | "created_at" | "updated_at", ExtArgs["result"]["consumer"]> export type ConsumerInclude = { - license?: boolean | Prisma.Consumer$licenseArgs accounts?: boolean | Prisma.Consumer$accountsArgs businessActivities?: boolean | Prisma.Consumer$businessActivitiesArgs + license?: boolean | Prisma.Consumer$licenseArgs _count?: boolean | Prisma.ConsumerCountOutputTypeDefaultArgs } export type $ConsumerPayload = { name: "Consumer" objects: { - license: Prisma.$LicensePayload | null accounts: Prisma.$ConsumerAccountPayload[] businessActivities: Prisma.$BusinessActivityPayload[] + license: Prisma.$LicensePayload | null } scalars: runtime.Types.Extensions.GetPayloadResult<{ id: string @@ -1151,9 +1086,9 @@ readonly fields: ConsumerFieldRefs; */ export interface Prisma__ConsumerClient extends Prisma.PrismaPromise { readonly [Symbol.toStringTag]: "PrismaPromise" - license = {}>(args?: Prisma.Subset>): Prisma.Prisma__LicenseClient, T, "findUniqueOrThrow", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions> accounts = {}>(args?: Prisma.Subset>): Prisma.PrismaPromise, T, "findMany", GlobalOmitOptions> | Null> businessActivities = {}>(args?: Prisma.Subset>): Prisma.PrismaPromise, T, "findMany", GlobalOmitOptions> | Null> + license = {}>(args?: Prisma.Subset>): Prisma.Prisma__LicenseClient, T, "findUniqueOrThrow", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions> /** * Attaches callbacks for the resolution and/or rejection of the Promise. * @param onfulfilled The callback to execute when the Promise is resolved. @@ -1533,25 +1468,6 @@ export type ConsumerDeleteManyArgs = { - /** - * Select specific fields to fetch from the License - */ - select?: Prisma.LicenseSelect | null - /** - * Omit specific fields from the License - */ - omit?: Prisma.LicenseOmit | null - /** - * Choose, which related nodes to fetch as well - */ - include?: Prisma.LicenseInclude | null - where?: Prisma.LicenseWhereInput -} - /** * Consumer.accounts */ @@ -1600,6 +1516,25 @@ export type Consumer$businessActivitiesArgs = { + /** + * Select specific fields to fetch from the License + */ + select?: Prisma.LicenseSelect | null + /** + * Omit specific fields from the License + */ + omit?: Prisma.LicenseOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.LicenseInclude | null + where?: Prisma.LicenseWhereInput +} + /** * Consumer without action */ diff --git a/src/generated/prisma/models/License.ts b/src/generated/prisma/models/License.ts index 343b070..3f10591 100644 --- a/src/generated/prisma/models/License.ts +++ b/src/generated/prisma/models/License.ts @@ -32,6 +32,7 @@ export type LicenseMinAggregateOutputType = { created_at: Date | null updated_at: Date | null partner_id: string | null + consumer_id: string | null } export type LicenseMaxAggregateOutputType = { @@ -42,6 +43,7 @@ export type LicenseMaxAggregateOutputType = { created_at: Date | null updated_at: Date | null partner_id: string | null + consumer_id: string | null } export type LicenseCountAggregateOutputType = { @@ -52,6 +54,7 @@ export type LicenseCountAggregateOutputType = { created_at: number updated_at: number partner_id: number + consumer_id: number _all: number } @@ -64,6 +67,7 @@ export type LicenseMinAggregateInputType = { created_at?: true updated_at?: true partner_id?: true + consumer_id?: true } export type LicenseMaxAggregateInputType = { @@ -74,6 +78,7 @@ export type LicenseMaxAggregateInputType = { created_at?: true updated_at?: true partner_id?: true + consumer_id?: true } export type LicenseCountAggregateInputType = { @@ -84,6 +89,7 @@ export type LicenseCountAggregateInputType = { created_at?: true updated_at?: true partner_id?: true + consumer_id?: true _all?: true } @@ -167,6 +173,7 @@ export type LicenseGroupByOutputType = { created_at: Date updated_at: Date partner_id: string | null + consumer_id: string _count: LicenseCountAggregateOutputType | null _min: LicenseMinAggregateOutputType | null _max: LicenseMaxAggregateOutputType | null @@ -198,8 +205,9 @@ export type LicenseWhereInput = { created_at?: Prisma.DateTimeFilter<"License"> | Date | string updated_at?: Prisma.DateTimeFilter<"License"> | Date | string partner_id?: Prisma.StringNullableFilter<"License"> | string | null + consumer_id?: Prisma.StringFilter<"License"> | string partner?: Prisma.XOR | null - consumers?: Prisma.ConsumerListRelationFilter + consumer?: Prisma.XOR } export type LicenseOrderByWithRelationInput = { @@ -210,13 +218,15 @@ export type LicenseOrderByWithRelationInput = { created_at?: Prisma.SortOrder updated_at?: Prisma.SortOrder partner_id?: Prisma.SortOrderInput | Prisma.SortOrder + consumer_id?: Prisma.SortOrder partner?: Prisma.PartnerOrderByWithRelationInput - consumers?: Prisma.ConsumerOrderByRelationAggregateInput + consumer?: Prisma.ConsumerOrderByWithRelationInput _relevance?: Prisma.LicenseOrderByRelevanceInput } export type LicenseWhereUniqueInput = Prisma.AtLeast<{ id?: string + consumer_id?: string AND?: Prisma.LicenseWhereInput | Prisma.LicenseWhereInput[] OR?: Prisma.LicenseWhereInput[] NOT?: Prisma.LicenseWhereInput | Prisma.LicenseWhereInput[] @@ -227,8 +237,8 @@ export type LicenseWhereUniqueInput = Prisma.AtLeast<{ updated_at?: Prisma.DateTimeFilter<"License"> | Date | string partner_id?: Prisma.StringNullableFilter<"License"> | string | null partner?: Prisma.XOR | null - consumers?: Prisma.ConsumerListRelationFilter -}, "id"> + consumer?: Prisma.XOR +}, "id" | "consumer_id"> export type LicenseOrderByWithAggregationInput = { id?: Prisma.SortOrder @@ -238,6 +248,7 @@ export type LicenseOrderByWithAggregationInput = { created_at?: Prisma.SortOrder updated_at?: Prisma.SortOrder partner_id?: Prisma.SortOrderInput | Prisma.SortOrder + consumer_id?: Prisma.SortOrder _count?: Prisma.LicenseCountOrderByAggregateInput _max?: Prisma.LicenseMaxOrderByAggregateInput _min?: Prisma.LicenseMinOrderByAggregateInput @@ -254,6 +265,7 @@ export type LicenseScalarWhereWithAggregatesInput = { created_at?: Prisma.DateTimeWithAggregatesFilter<"License"> | Date | string updated_at?: Prisma.DateTimeWithAggregatesFilter<"License"> | Date | string partner_id?: Prisma.StringNullableWithAggregatesFilter<"License"> | string | null + consumer_id?: Prisma.StringWithAggregatesFilter<"License"> | string } export type LicenseCreateInput = { @@ -264,7 +276,7 @@ export type LicenseCreateInput = { created_at?: Date | string updated_at?: Date | string partner?: Prisma.PartnerCreateNestedOneWithoutLicensesInput - consumers?: Prisma.ConsumerCreateNestedManyWithoutLicenseInput + consumer: Prisma.ConsumerCreateNestedOneWithoutLicenseInput } export type LicenseUncheckedCreateInput = { @@ -275,7 +287,7 @@ export type LicenseUncheckedCreateInput = { created_at?: Date | string updated_at?: Date | string partner_id?: string | null - consumers?: Prisma.ConsumerUncheckedCreateNestedManyWithoutLicenseInput + consumer_id: string } export type LicenseUpdateInput = { @@ -286,7 +298,7 @@ export type LicenseUpdateInput = { created_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string updated_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string partner?: Prisma.PartnerUpdateOneWithoutLicensesNestedInput - consumers?: Prisma.ConsumerUpdateManyWithoutLicenseNestedInput + consumer?: Prisma.ConsumerUpdateOneRequiredWithoutLicenseNestedInput } export type LicenseUncheckedUpdateInput = { @@ -297,7 +309,7 @@ export type LicenseUncheckedUpdateInput = { created_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string updated_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string partner_id?: Prisma.NullableStringFieldUpdateOperationsInput | string | null - consumers?: Prisma.ConsumerUncheckedUpdateManyWithoutLicenseNestedInput + consumer_id?: Prisma.StringFieldUpdateOperationsInput | string } export type LicenseCreateManyInput = { @@ -308,6 +320,7 @@ export type LicenseCreateManyInput = { created_at?: Date | string updated_at?: Date | string partner_id?: string | null + consumer_id: string } export type LicenseUpdateManyMutationInput = { @@ -327,6 +340,7 @@ export type LicenseUncheckedUpdateManyInput = { created_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string updated_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string partner_id?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + consumer_id?: Prisma.StringFieldUpdateOperationsInput | string } export type LicenseNullableScalarRelationFilter = { @@ -348,6 +362,7 @@ export type LicenseCountOrderByAggregateInput = { created_at?: Prisma.SortOrder updated_at?: Prisma.SortOrder partner_id?: Prisma.SortOrder + consumer_id?: Prisma.SortOrder } export type LicenseMaxOrderByAggregateInput = { @@ -358,6 +373,7 @@ export type LicenseMaxOrderByAggregateInput = { created_at?: Prisma.SortOrder updated_at?: Prisma.SortOrder partner_id?: Prisma.SortOrder + consumer_id?: Prisma.SortOrder } export type LicenseMinOrderByAggregateInput = { @@ -368,6 +384,7 @@ export type LicenseMinOrderByAggregateInput = { created_at?: Prisma.SortOrder updated_at?: Prisma.SortOrder partner_id?: Prisma.SortOrder + consumer_id?: Prisma.SortOrder } export type LicenseListRelationFilter = { @@ -380,20 +397,36 @@ export type LicenseOrderByRelationAggregateInput = { _count?: Prisma.SortOrder } -export type LicenseCreateNestedOneWithoutConsumersInput = { - create?: Prisma.XOR - connectOrCreate?: Prisma.LicenseCreateOrConnectWithoutConsumersInput +export type LicenseCreateNestedOneWithoutConsumerInput = { + create?: Prisma.XOR + connectOrCreate?: Prisma.LicenseCreateOrConnectWithoutConsumerInput connect?: Prisma.LicenseWhereUniqueInput } -export type LicenseUpdateOneWithoutConsumersNestedInput = { - create?: Prisma.XOR - connectOrCreate?: Prisma.LicenseCreateOrConnectWithoutConsumersInput - upsert?: Prisma.LicenseUpsertWithoutConsumersInput +export type LicenseUncheckedCreateNestedOneWithoutConsumerInput = { + create?: Prisma.XOR + connectOrCreate?: Prisma.LicenseCreateOrConnectWithoutConsumerInput + connect?: Prisma.LicenseWhereUniqueInput +} + +export type LicenseUpdateOneWithoutConsumerNestedInput = { + create?: Prisma.XOR + connectOrCreate?: Prisma.LicenseCreateOrConnectWithoutConsumerInput + upsert?: Prisma.LicenseUpsertWithoutConsumerInput disconnect?: Prisma.LicenseWhereInput | boolean delete?: Prisma.LicenseWhereInput | boolean connect?: Prisma.LicenseWhereUniqueInput - update?: Prisma.XOR, Prisma.LicenseUncheckedUpdateWithoutConsumersInput> + update?: Prisma.XOR, Prisma.LicenseUncheckedUpdateWithoutConsumerInput> +} + +export type LicenseUncheckedUpdateOneWithoutConsumerNestedInput = { + create?: Prisma.XOR + connectOrCreate?: Prisma.LicenseCreateOrConnectWithoutConsumerInput + upsert?: Prisma.LicenseUpsertWithoutConsumerInput + disconnect?: Prisma.LicenseWhereInput | boolean + delete?: Prisma.LicenseWhereInput | boolean + connect?: Prisma.LicenseWhereUniqueInput + update?: Prisma.XOR, Prisma.LicenseUncheckedUpdateWithoutConsumerInput> } export type EnumLicenseStatusFieldUpdateOperationsInput = { @@ -442,7 +475,7 @@ export type LicenseUncheckedUpdateManyWithoutPartnerNestedInput = { deleteMany?: Prisma.LicenseScalarWhereInput | Prisma.LicenseScalarWhereInput[] } -export type LicenseCreateWithoutConsumersInput = { +export type LicenseCreateWithoutConsumerInput = { id?: string starts_at: Date | string expires_at: Date | string @@ -452,7 +485,7 @@ export type LicenseCreateWithoutConsumersInput = { partner?: Prisma.PartnerCreateNestedOneWithoutLicensesInput } -export type LicenseUncheckedCreateWithoutConsumersInput = { +export type LicenseUncheckedCreateWithoutConsumerInput = { id?: string starts_at: Date | string expires_at: Date | string @@ -462,23 +495,23 @@ export type LicenseUncheckedCreateWithoutConsumersInput = { partner_id?: string | null } -export type LicenseCreateOrConnectWithoutConsumersInput = { +export type LicenseCreateOrConnectWithoutConsumerInput = { where: Prisma.LicenseWhereUniqueInput - create: Prisma.XOR + create: Prisma.XOR } -export type LicenseUpsertWithoutConsumersInput = { - update: Prisma.XOR - create: Prisma.XOR +export type LicenseUpsertWithoutConsumerInput = { + update: Prisma.XOR + create: Prisma.XOR where?: Prisma.LicenseWhereInput } -export type LicenseUpdateToOneWithWhereWithoutConsumersInput = { +export type LicenseUpdateToOneWithWhereWithoutConsumerInput = { where?: Prisma.LicenseWhereInput - data: Prisma.XOR + data: Prisma.XOR } -export type LicenseUpdateWithoutConsumersInput = { +export type LicenseUpdateWithoutConsumerInput = { id?: Prisma.StringFieldUpdateOperationsInput | string starts_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string expires_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string @@ -488,7 +521,7 @@ export type LicenseUpdateWithoutConsumersInput = { partner?: Prisma.PartnerUpdateOneWithoutLicensesNestedInput } -export type LicenseUncheckedUpdateWithoutConsumersInput = { +export type LicenseUncheckedUpdateWithoutConsumerInput = { id?: Prisma.StringFieldUpdateOperationsInput | string starts_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string expires_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string @@ -505,7 +538,7 @@ export type LicenseCreateWithoutPartnerInput = { status: $Enums.LicenseStatus created_at?: Date | string updated_at?: Date | string - consumers?: Prisma.ConsumerCreateNestedManyWithoutLicenseInput + consumer: Prisma.ConsumerCreateNestedOneWithoutLicenseInput } export type LicenseUncheckedCreateWithoutPartnerInput = { @@ -515,7 +548,7 @@ export type LicenseUncheckedCreateWithoutPartnerInput = { status: $Enums.LicenseStatus created_at?: Date | string updated_at?: Date | string - consumers?: Prisma.ConsumerUncheckedCreateNestedManyWithoutLicenseInput + consumer_id: string } export type LicenseCreateOrConnectWithoutPartnerInput = { @@ -555,6 +588,7 @@ export type LicenseScalarWhereInput = { created_at?: Prisma.DateTimeFilter<"License"> | Date | string updated_at?: Prisma.DateTimeFilter<"License"> | Date | string partner_id?: Prisma.StringNullableFilter<"License"> | string | null + consumer_id?: Prisma.StringFilter<"License"> | string } export type LicenseCreateManyPartnerInput = { @@ -564,6 +598,7 @@ export type LicenseCreateManyPartnerInput = { status: $Enums.LicenseStatus created_at?: Date | string updated_at?: Date | string + consumer_id: string } export type LicenseUpdateWithoutPartnerInput = { @@ -573,7 +608,7 @@ export type LicenseUpdateWithoutPartnerInput = { status?: Prisma.EnumLicenseStatusFieldUpdateOperationsInput | $Enums.LicenseStatus created_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string updated_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string - consumers?: Prisma.ConsumerUpdateManyWithoutLicenseNestedInput + consumer?: Prisma.ConsumerUpdateOneRequiredWithoutLicenseNestedInput } export type LicenseUncheckedUpdateWithoutPartnerInput = { @@ -583,7 +618,7 @@ export type LicenseUncheckedUpdateWithoutPartnerInput = { status?: Prisma.EnumLicenseStatusFieldUpdateOperationsInput | $Enums.LicenseStatus created_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string updated_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string - consumers?: Prisma.ConsumerUncheckedUpdateManyWithoutLicenseNestedInput + consumer_id?: Prisma.StringFieldUpdateOperationsInput | string } export type LicenseUncheckedUpdateManyWithoutPartnerInput = { @@ -593,38 +628,10 @@ export type LicenseUncheckedUpdateManyWithoutPartnerInput = { status?: Prisma.EnumLicenseStatusFieldUpdateOperationsInput | $Enums.LicenseStatus created_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string updated_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + consumer_id?: Prisma.StringFieldUpdateOperationsInput | string } -/** - * Count Type LicenseCountOutputType - */ - -export type LicenseCountOutputType = { - consumers: number -} - -export type LicenseCountOutputTypeSelect = { - consumers?: boolean | LicenseCountOutputTypeCountConsumersArgs -} - -/** - * LicenseCountOutputType without action - */ -export type LicenseCountOutputTypeDefaultArgs = { - /** - * Select specific fields to fetch from the LicenseCountOutputType - */ - select?: Prisma.LicenseCountOutputTypeSelect | null -} - -/** - * LicenseCountOutputType without action - */ -export type LicenseCountOutputTypeCountConsumersArgs = { - where?: Prisma.ConsumerWhereInput -} - export type LicenseSelect = runtime.Types.Extensions.GetSelect<{ id?: boolean @@ -634,9 +641,9 @@ export type LicenseSelect - consumers?: boolean | Prisma.License$consumersArgs - _count?: boolean | Prisma.LicenseCountOutputTypeDefaultArgs + consumer?: boolean | Prisma.ConsumerDefaultArgs }, ExtArgs["result"]["license"]> @@ -649,20 +656,20 @@ export type LicenseSelectScalar = { created_at?: boolean updated_at?: boolean partner_id?: boolean + consumer_id?: boolean } -export type LicenseOmit = runtime.Types.Extensions.GetOmit<"id" | "starts_at" | "expires_at" | "status" | "created_at" | "updated_at" | "partner_id", ExtArgs["result"]["license"]> +export type LicenseOmit = runtime.Types.Extensions.GetOmit<"id" | "starts_at" | "expires_at" | "status" | "created_at" | "updated_at" | "partner_id" | "consumer_id", ExtArgs["result"]["license"]> export type LicenseInclude = { partner?: boolean | Prisma.License$partnerArgs - consumers?: boolean | Prisma.License$consumersArgs - _count?: boolean | Prisma.LicenseCountOutputTypeDefaultArgs + consumer?: boolean | Prisma.ConsumerDefaultArgs } export type $LicensePayload = { name: "License" objects: { partner: Prisma.$PartnerPayload | null - consumers: Prisma.$ConsumerPayload[] + consumer: Prisma.$ConsumerPayload } scalars: runtime.Types.Extensions.GetPayloadResult<{ id: string @@ -672,6 +679,7 @@ export type $LicensePayload composites: {} } @@ -1013,7 +1021,7 @@ readonly fields: LicenseFieldRefs; export interface Prisma__LicenseClient extends Prisma.PrismaPromise { readonly [Symbol.toStringTag]: "PrismaPromise" partner = {}>(args?: Prisma.Subset>): Prisma.Prisma__PartnerClient, T, "findUniqueOrThrow", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions> - consumers = {}>(args?: Prisma.Subset>): Prisma.PrismaPromise, T, "findMany", GlobalOmitOptions> | Null> + consumer = {}>(args?: Prisma.Subset>): Prisma.Prisma__ConsumerClient, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions> /** * Attaches callbacks for the resolution and/or rejection of the Promise. * @param onfulfilled The callback to execute when the Promise is resolved. @@ -1050,6 +1058,7 @@ export interface LicenseFieldRefs { readonly created_at: Prisma.FieldRef<"License", 'DateTime'> readonly updated_at: Prisma.FieldRef<"License", 'DateTime'> readonly partner_id: Prisma.FieldRef<"License", 'String'> + readonly consumer_id: Prisma.FieldRef<"License", 'String'> } @@ -1411,30 +1420,6 @@ export type License$partnerArgs = { - /** - * Select specific fields to fetch from the Consumer - */ - select?: Prisma.ConsumerSelect | null - /** - * Omit specific fields from the Consumer - */ - omit?: Prisma.ConsumerOmit | null - /** - * Choose, which related nodes to fetch as well - */ - include?: Prisma.ConsumerInclude | null - where?: Prisma.ConsumerWhereInput - orderBy?: Prisma.ConsumerOrderByWithRelationInput | Prisma.ConsumerOrderByWithRelationInput[] - cursor?: Prisma.ConsumerWhereUniqueInput - take?: number - skip?: number - distinct?: Prisma.ConsumerScalarFieldEnum | Prisma.ConsumerScalarFieldEnum[] -} - /** * License without action */ diff --git a/src/modules/admin/consumers/consumers.service.ts b/src/modules/admin/consumers/consumers.service.ts index da0a79d..72e5d23 100644 --- a/src/modules/admin/consumers/consumers.service.ts +++ b/src/modules/admin/consumers/consumers.service.ts @@ -123,7 +123,9 @@ export class AdminUsersService { create: { starts_at: license.starts_at, expires_at: new Date( - new Date(license.starts_at).getFullYear() + 1, + new Date(license.starts_at).setFullYear( + new Date(license.starts_at).getFullYear() + 1, + ), ).toISOString(), status: LicenseStatus.ACTIVE, partner: { diff --git a/src/modules/admin/consumers/licenses/dto/license.dto.ts b/src/modules/admin/consumers/licenses/dto/license.dto.ts index 511edf9..048d0d6 100644 --- a/src/modules/admin/consumers/licenses/dto/license.dto.ts +++ b/src/modules/admin/consumers/licenses/dto/license.dto.ts @@ -1,5 +1,5 @@ import { LicenseStatus } from '@/generated/prisma/enums' -import { ApiProperty, OmitType, PartialType } from '@nestjs/swagger' +import { ApiProperty, PartialType } from '@nestjs/swagger' import { IsDateString, IsEnum } from 'class-validator' export class CreateLicenseDto { @@ -21,16 +21,7 @@ export class CreateLicenseDto { partner_id: string } -export class UpdateLicenseDto extends OmitType(PartialType(CreateLicenseDto), [ - 'starts_at', -]) { - @ApiProperty({ required: true, default: new Date().toISOString() }) - @IsDateString( - { strict: true }, - { message: 'invoice_date must be a valid ISO-8601 string' }, - ) - starts_at: Date - +export class UpdateLicenseDto extends PartialType(CreateLicenseDto) { @ApiProperty({ enum: LicenseStatus }) @IsEnum(LicenseStatus) status?: LicenseStatus diff --git a/src/modules/admin/consumers/licenses/licenses.service.ts b/src/modules/admin/consumers/licenses/licenses.service.ts index c8303bb..adeb22f 100644 --- a/src/modules/admin/consumers/licenses/licenses.service.ts +++ b/src/modules/admin/consumers/licenses/licenses.service.ts @@ -1,6 +1,7 @@ import { LicenseStatus } from '@/generated/prisma/enums' +import { LicenseUpdateInput } from '@/generated/prisma/models' import { PrismaService } from '@/prisma/prisma.service' -import { Injectable } from '@nestjs/common' +import { BadRequestException, Injectable } from '@nestjs/common' import { ResponseMapper } from 'common/response/response-mapper' import { CreateLicenseDto, UpdateLicenseDto } from './dto/license.dto' @@ -25,7 +26,7 @@ export class LicensesService { id: data.partner_id, }, }, - consumers: { + consumer: { connect: { id: consumerId, }, @@ -37,13 +38,54 @@ export class LicensesService { } async update(id: string, data: UpdateLicenseDto) { - const { starts_at, expires_at } = data + const { starts_at, expires_at, partner_id } = data + const currentLicense = await this.prisma.license.findUnique({ + where: { id }, + select: { + partner_id: true, + }, + }) + + if (partner_id && currentLicense?.partner_id !== partner_id) { + const partner = await this.prisma.partner.findUnique({ + where: { + id: partner_id, + }, + select: { + name: true, + license_quota: true, + _count: { + select: { + licenses: true, + }, + }, + }, + }) + + if (!((partner?.license_quota || 0) - (partner?._count.licenses || 0))) { + throw new BadRequestException(`تعداد لایسنس‌های ${partner?.name} کافی نیست.`) + } + } + + const dataToUpdate: LicenseUpdateInput = {} + + if (partner_id) { + dataToUpdate.partner = { + connect: { + id: partner_id, + }, + } + } + + if (starts_at) { + dataToUpdate.starts_at = starts_at + dataToUpdate.expires_at = this.setExpireDate(starts_at) + } + const license = await this.prisma.license.update({ where: { id }, data: { - ...data, - starts_at, - expires_at: expires_at ?? this.setExpireDate(starts_at), + ...dataToUpdate, }, }) return ResponseMapper.update(license) diff --git a/src/modules/admin/licenses/licenses.service.ts b/src/modules/admin/licenses/licenses.service.ts index e2998af..f9819eb 100644 --- a/src/modules/admin/licenses/licenses.service.ts +++ b/src/modules/admin/licenses/licenses.service.ts @@ -1,4 +1,4 @@ -import { LicenseInclude } from '@/generated/prisma/models' +import { LicenseSelect } from '@/generated/prisma/models' import { PrismaService } from '@/prisma/prisma.service' import { Injectable } from '@nestjs/common' import { ResponseMapper } from 'common/response/response-mapper' @@ -8,80 +8,52 @@ import { UpdateLicenseDto } from './dto/license.dto' export class PartnerLicensesService { constructor(private readonly prisma: PrismaService) {} - private readonly licenseInclude = { - partner: true, - pos: { - include: { - complex: true, - provider: true, - accounts: { - include: { - user: true, - }, - omit: { - business_id: true, - partner_id: true, - provider_id: true, - pos_id: true, - }, - }, - device: { - include: { - brand: true, - }, - omit: { - brand_id: true, - }, - }, + private readonly licenseDefaultSelect: LicenseSelect = { + id: true, + starts_at: true, + expires_at: true, + status: true, + consumer: { + select: { + first_name: true, + last_name: true, + mobile_number: true, + status: true, }, }, - } as LicenseInclude + partner: { + select: { + id: true, + name: true, + }, + }, + } - async findAll() { + async findAll(page = 1, pageSize = 10) { const [licenses, count] = await this.prisma.$transaction([ this.prisma.license.findMany({ - include: this.licenseInclude, - omit: { - partner_id: true, - }, + select: this.licenseDefaultSelect, + skip: (page - 1) * pageSize, + take: pageSize, }), this.prisma.license.count(), ]) - return ResponseMapper.paginate( - licenses.map(license => { - const { ...rest } = license - // @ts-ignore - const { accounts, ...posRest } = pos - return { - account: accounts[0], - pos: posRest, - ...rest, - } - }), - { - count, - }, - ) + + return ResponseMapper.paginate(licenses, { + count, + page, + pageSize, + }) } async findOne(id: string) { const license = await this.prisma.license.findFirst({ where: { id }, - include: this.licenseInclude, + include: this.licenseDefaultSelect, omit: { partner_id: true, }, }) - if (license) { - const { ...rest } = license - // @ts-ignore - const { accounts, ...posRest } = pos - return ResponseMapper.single({ - account: accounts[0], - pos: posRest, - ...rest, - }) - } return ResponseMapper.single(license) } @@ -93,9 +65,4 @@ export class PartnerLicensesService { }) return ResponseMapper.update(license) } - - async delete(id: string) { - await this.prisma.license.delete({ where: { id } }) - return ResponseMapper.delete() - } } diff --git a/src/modules/admin/partners/licenses/licenses.controller.ts b/src/modules/admin/partners/licenses/licenses.controller.ts index f1dffa3..e68b7d2 100644 --- a/src/modules/admin/partners/licenses/licenses.controller.ts +++ b/src/modules/admin/partners/licenses/licenses.controller.ts @@ -1,4 +1,4 @@ -import { Body, Controller, Delete, Get, Param, Patch, Post } from '@nestjs/common' +import { Body, Controller, Get, Param, Patch, Post } from '@nestjs/common' import { CreatePartnerLicenseDto, UpdateLicenseDto } from './dto/license.dto' import { PartnerLicensesService } from './licenses.service' @@ -32,9 +32,4 @@ export class PartnerLicensesController { ) { return this.licensesService.update(partnerId, id, data) } - - @Delete(':id') - async delete(@Param('partnerId') partnerId: string, @Param('id') id: string) { - return this.licensesService.delete(partnerId, id) - } } diff --git a/src/modules/admin/partners/licenses/licenses.service.ts b/src/modules/admin/partners/licenses/licenses.service.ts index 3116695..2e4dde9 100644 --- a/src/modules/admin/partners/licenses/licenses.service.ts +++ b/src/modules/admin/partners/licenses/licenses.service.ts @@ -7,52 +7,39 @@ import { CreatePartnerLicenseDto, UpdateLicenseDto } from './dto/license.dto' export class PartnerLicensesService { constructor(private readonly prisma: PrismaService) {} - async findAll(partnerId: string) { - // const licenses = await this.prisma.license.findMany({ - // where: { partner_id: partnerId }, - // include: { - // pos: { - // include: { - // complex: true, - // provider: true, - // accounts: { - // include: { - // user: true, - // }, - // omit: { - // business_id: true, - // partner_id: true, - // provider_id: true, - // pos_id: true, - // }, - // }, - // device: { - // include: { - // brand: true, - // }, - // omit: { - // brand_id: true, - // }, - // }, - // }, - // }, - // }, - // omit: { - // pos_id: true, - // partner_id: true, - // }, - // }) - // return ResponseMapper.list( - // licenses.map(license => { - // const { pos, ...rest } = license - // const { accounts, ...posRest } = pos - // return { - // account: accounts[0], - // pos: posRest, - // ...rest, - // } - // }), - // ) + async findAll(partner_id: string, page = 1, pageSize = 10) { + const [licenses, count] = await this.prisma.$transaction(async tx => [ + await tx.license.findMany({ + where: { + partner_id, + }, + skip: (page - 1) * pageSize, + take: pageSize, + select: { + id: true, + starts_at: true, + expires_at: true, + consumer: { + select: { + id: true, + first_name: true, + last_name: true, + }, + }, + }, + }), + await tx.license.count({ + where: { + partner_id, + }, + }), + ]) + + return ResponseMapper.paginate(licenses, { + page, + pageSize, + count, + }) } async findOne(partnerId: string, id: string) {