From 89726c8904e977f11a6fc52575fe5a47a0f7c942 Mon Sep 17 00:00:00 2001 From: ahasani194 Date: Wed, 8 Apr 2026 18:15:44 +0330 Subject: [PATCH] set consumer customers and saleInvoices --- .../20260407115701_init/migration.sql | 20 + prisma/schema/shared/customers.prisma | 33 +- .../decorators/consumerInfo.decorator.ts | 2 +- src/common/guards/auth-consumer.guard.ts | 4 +- src/generated/prisma/commonInputTypes.ts | 198 +++++----- src/generated/prisma/internal/class.ts | 4 +- .../prisma/internal/prismaNamespace.ts | 79 ++-- .../prisma/internal/prismaNamespaceBrowser.ts | 47 +-- src/generated/prisma/models/Customer.ts | 346 ++++++++++-------- .../prisma/models/CustomerIndividual.ts | 68 ++-- src/generated/prisma/models/CustomerLegal.ts | 68 ++-- .../sales-invoices/sales-invoices.service.ts | 4 +- src/modules/consumer/consumer.controller.ts | 4 +- src/modules/consumer/consumer.module.ts | 7 +- .../customers/customers.controller.ts | 40 ++ .../consumer/customers/customers.module.ts | 12 + .../consumer/customers/customers.service.ts | 145 ++++++++ .../customers/dto/create-customers.dto.ts | 74 ++++ .../sale-invoices/sale-invoices.controller.ts | 27 ++ .../sale-invoices/sale-invoices.module.ts | 11 + .../sale-invoices/sale-invoices.service.ts | 152 ++++++++ .../sales-invoices/sales-invoices.service.ts | 2 + 22 files changed, 936 insertions(+), 411 deletions(-) create mode 100644 prisma/migrations/20260407115701_init/migration.sql create mode 100644 src/modules/consumer/customers/customers.controller.ts create mode 100644 src/modules/consumer/customers/customers.module.ts create mode 100644 src/modules/consumer/customers/customers.service.ts create mode 100644 src/modules/consumer/customers/dto/create-customers.dto.ts create mode 100644 src/modules/consumer/customers/sale-invoices/sale-invoices.controller.ts create mode 100644 src/modules/consumer/customers/sale-invoices/sale-invoices.module.ts create mode 100644 src/modules/consumer/customers/sale-invoices/sale-invoices.service.ts diff --git a/prisma/migrations/20260407115701_init/migration.sql b/prisma/migrations/20260407115701_init/migration.sql new file mode 100644 index 0000000..a91fad2 --- /dev/null +++ b/prisma/migrations/20260407115701_init/migration.sql @@ -0,0 +1,20 @@ +-- DropForeignKey +ALTER TABLE `customer_individuals` DROP FOREIGN KEY `customer_individuals_customer_id_fkey`; + +-- DropForeignKey +ALTER TABLE `customer_legal` DROP FOREIGN KEY `customer_legal_customer_id_fkey`; + +-- AlterTable +ALTER TABLE `customers` ADD COLUMN `unknown_customer` JSON NULL; + +-- CreateIndex +CREATE INDEX `customer_individuals_complex_id_idx` ON `customer_individuals`(`complex_id`); + +-- CreateIndex +CREATE INDEX `customer_legal_complex_id_idx` ON `customer_legal`(`complex_id`); + +-- AddForeignKey +ALTER TABLE `customer_individuals` ADD CONSTRAINT `customer_individuals_customer_id_fkey` FOREIGN KEY (`customer_id`) REFERENCES `customers`(`id`) ON DELETE CASCADE ON UPDATE CASCADE; + +-- AddForeignKey +ALTER TABLE `customer_legal` ADD CONSTRAINT `customer_legal_customer_id_fkey` FOREIGN KEY (`customer_id`) REFERENCES `customers`(`id`) ON DELETE CASCADE ON UPDATE CASCADE; diff --git a/prisma/schema/shared/customers.prisma b/prisma/schema/shared/customers.prisma index 001a8a9..b7c9385 100644 --- a/prisma/schema/shared/customers.prisma +++ b/prisma/schema/shared/customers.prisma @@ -1,46 +1,51 @@ model Customer { - id String @id @default(uuid()) - type CustomerType - is_favorite Boolean? @default(false) + id String @id @default(uuid()) + is_favorite Boolean? @default(false) created_at DateTime @default(now()) @db.Timestamp(0) updated_at DateTime @updatedAt @db.Timestamp(0) deleted_at DateTime? @db.Timestamp(0) - sales_invoices SalesInvoice[] - customer_individuals CustomerIndividual? - customer_legals CustomerLegal? + type CustomerType + unknown_customer Json? + customer_individual CustomerIndividual? + customer_legal CustomerLegal? + sales_invoices SalesInvoice[] @@map("customers") } model CustomerIndividual { - customer_id String @id first_name String @db.VarChar(255) last_name String @db.VarChar(255) national_id String @db.Char(10) postal_code String @db.Char(10) economic_code String? @db.Char(10) - complex_id String - customer Customer @relation(fields: [customer_id], references: [id]) - complex Complex @relation(fields: [complex_id], references: [id]) + customer_id String @id + customer Customer @relation(fields: [customer_id], references: [id], onDelete: Cascade) + + complex_id String + complex Complex @relation(fields: [complex_id], references: [id]) @@unique([complex_id, national_id]) + @@index([complex_id]) @@map("customer_individuals") } model CustomerLegal { - customer_id String @id company_name String @db.VarChar(255) economic_code String @db.Char(10) registration_number String @db.Char(20) postal_code String @db.Char(10) - complex_id String - customer Customer @relation(fields: [customer_id], references: [id]) - complex Complex @relation(fields: [complex_id], references: [id]) + customer_id String @id + customer Customer @relation(fields: [customer_id], references: [id], onDelete: Cascade) + + complex_id String + complex Complex @relation(fields: [complex_id], references: [id]) @@unique([complex_id, registration_number]) + @@index([complex_id]) @@map("customer_legal") } diff --git a/src/common/decorators/consumerInfo.decorator.ts b/src/common/decorators/consumerInfo.decorator.ts index 09ef882..b303bc5 100644 --- a/src/common/decorators/consumerInfo.decorator.ts +++ b/src/common/decorators/consumerInfo.decorator.ts @@ -7,7 +7,7 @@ import { import { Request } from 'express' import { IConsumerPayload } from '../models' -export const ConsumerInfoInfo = createParamDecorator( +export const ConsumerInfo = createParamDecorator( (data: keyof IConsumerPayload | undefined, ctx: ExecutionContext) => { try { const request = ctx.switchToHttp().getRequest() diff --git a/src/common/guards/auth-consumer.guard.ts b/src/common/guards/auth-consumer.guard.ts index 3921a33..4dbf693 100644 --- a/src/common/guards/auth-consumer.guard.ts +++ b/src/common/guards/auth-consumer.guard.ts @@ -41,9 +41,7 @@ export class ConsumerGuard { if (!consumer.license?.expires_at) { throw new ForbiddenException('برای کاربر شما لایسنس ایجاد نشده است.') } - if ( - new Date().toUTCString() > new Date(consumer.license?.expires_at).toUTCString() - ) { + if (new Date().getTime() > new Date(consumer.license?.expires_at).getTime()) { throw new ForbiddenException('لایسنس شما منقضی شده است.') } } diff --git a/src/generated/prisma/commonInputTypes.ts b/src/generated/prisma/commonInputTypes.ts index b8983ef..f20061a 100644 --- a/src/generated/prisma/commonInputTypes.ts +++ b/src/generated/prisma/commonInputTypes.ts @@ -385,13 +385,6 @@ export type IntWithAggregatesFilter<$PrismaModel = never> = { _max?: Prisma.NestedIntFilter<$PrismaModel> } -export type EnumCustomerTypeFilter<$PrismaModel = never> = { - equals?: $Enums.CustomerType | Prisma.EnumCustomerTypeFieldRefInput<$PrismaModel> - in?: $Enums.CustomerType[] - notIn?: $Enums.CustomerType[] - not?: Prisma.NestedEnumCustomerTypeFilter<$PrismaModel> | $Enums.CustomerType -} - export type BoolNullableFilter<$PrismaModel = never> = { equals?: boolean | Prisma.BooleanFieldRefInput<$PrismaModel> | null not?: Prisma.NestedBoolNullableFilter<$PrismaModel> | boolean | null @@ -408,14 +401,35 @@ export type DateTimeNullableFilter<$PrismaModel = never> = { not?: Prisma.NestedDateTimeNullableFilter<$PrismaModel> | Date | string | null } -export type EnumCustomerTypeWithAggregatesFilter<$PrismaModel = never> = { +export type EnumCustomerTypeFilter<$PrismaModel = never> = { equals?: $Enums.CustomerType | Prisma.EnumCustomerTypeFieldRefInput<$PrismaModel> in?: $Enums.CustomerType[] notIn?: $Enums.CustomerType[] - not?: Prisma.NestedEnumCustomerTypeWithAggregatesFilter<$PrismaModel> | $Enums.CustomerType - _count?: Prisma.NestedIntFilter<$PrismaModel> - _min?: Prisma.NestedEnumCustomerTypeFilter<$PrismaModel> - _max?: Prisma.NestedEnumCustomerTypeFilter<$PrismaModel> + not?: Prisma.NestedEnumCustomerTypeFilter<$PrismaModel> | $Enums.CustomerType +} + +export type JsonNullableFilter<$PrismaModel = never> = +| Prisma.PatchUndefined< + Prisma.Either>, Exclude>, 'path'>>, + Required> + > +| Prisma.OptionalFlat>, 'path'>> + +export type JsonNullableFilterBase<$PrismaModel = never> = { + equals?: runtime.InputJsonValue | Prisma.JsonFieldRefInput<$PrismaModel> | Prisma.JsonNullValueFilter + path?: string + mode?: Prisma.QueryMode | Prisma.EnumQueryModeFieldRefInput<$PrismaModel> + string_contains?: string | Prisma.StringFieldRefInput<$PrismaModel> + string_starts_with?: string | Prisma.StringFieldRefInput<$PrismaModel> + string_ends_with?: string | Prisma.StringFieldRefInput<$PrismaModel> + array_starts_with?: runtime.InputJsonValue | Prisma.JsonFieldRefInput<$PrismaModel> | null + array_ends_with?: runtime.InputJsonValue | Prisma.JsonFieldRefInput<$PrismaModel> | null + array_contains?: runtime.InputJsonValue | Prisma.JsonFieldRefInput<$PrismaModel> | null + lt?: runtime.InputJsonValue + lte?: runtime.InputJsonValue + gt?: runtime.InputJsonValue + gte?: runtime.InputJsonValue + not?: runtime.InputJsonValue | Prisma.JsonFieldRefInput<$PrismaModel> | Prisma.JsonNullValueFilter } export type BoolNullableWithAggregatesFilter<$PrismaModel = never> = { @@ -440,6 +454,43 @@ export type DateTimeNullableWithAggregatesFilter<$PrismaModel = never> = { _max?: Prisma.NestedDateTimeNullableFilter<$PrismaModel> } +export type EnumCustomerTypeWithAggregatesFilter<$PrismaModel = never> = { + equals?: $Enums.CustomerType | Prisma.EnumCustomerTypeFieldRefInput<$PrismaModel> + in?: $Enums.CustomerType[] + notIn?: $Enums.CustomerType[] + not?: Prisma.NestedEnumCustomerTypeWithAggregatesFilter<$PrismaModel> | $Enums.CustomerType + _count?: Prisma.NestedIntFilter<$PrismaModel> + _min?: Prisma.NestedEnumCustomerTypeFilter<$PrismaModel> + _max?: Prisma.NestedEnumCustomerTypeFilter<$PrismaModel> +} + +export type JsonNullableWithAggregatesFilter<$PrismaModel = never> = +| Prisma.PatchUndefined< + Prisma.Either>, Exclude>, 'path'>>, + Required> + > +| Prisma.OptionalFlat>, 'path'>> + +export type JsonNullableWithAggregatesFilterBase<$PrismaModel = never> = { + equals?: runtime.InputJsonValue | Prisma.JsonFieldRefInput<$PrismaModel> | Prisma.JsonNullValueFilter + path?: string + mode?: Prisma.QueryMode | Prisma.EnumQueryModeFieldRefInput<$PrismaModel> + string_contains?: string | Prisma.StringFieldRefInput<$PrismaModel> + string_starts_with?: string | Prisma.StringFieldRefInput<$PrismaModel> + string_ends_with?: string | Prisma.StringFieldRefInput<$PrismaModel> + array_starts_with?: runtime.InputJsonValue | Prisma.JsonFieldRefInput<$PrismaModel> | null + array_ends_with?: runtime.InputJsonValue | Prisma.JsonFieldRefInput<$PrismaModel> | null + array_contains?: runtime.InputJsonValue | Prisma.JsonFieldRefInput<$PrismaModel> | null + lt?: runtime.InputJsonValue + lte?: runtime.InputJsonValue + gt?: runtime.InputJsonValue + gte?: runtime.InputJsonValue + not?: runtime.InputJsonValue | Prisma.JsonFieldRefInput<$PrismaModel> | Prisma.JsonNullValueFilter + _count?: Prisma.NestedIntNullableFilter<$PrismaModel> + _min?: Prisma.NestedJsonNullableFilter<$PrismaModel> + _max?: Prisma.NestedJsonNullableFilter<$PrismaModel> +} + export type BoolFilter<$PrismaModel = never> = { equals?: boolean | Prisma.BooleanFieldRefInput<$PrismaModel> not?: Prisma.NestedBoolFilter<$PrismaModel> | boolean @@ -525,30 +576,6 @@ export type DecimalFilter<$PrismaModel = never> = { not?: Prisma.NestedDecimalFilter<$PrismaModel> | runtime.Decimal | runtime.DecimalJsLike | number | string } -export type JsonNullableFilter<$PrismaModel = never> = -| Prisma.PatchUndefined< - Prisma.Either>, Exclude>, 'path'>>, - Required> - > -| Prisma.OptionalFlat>, 'path'>> - -export type JsonNullableFilterBase<$PrismaModel = never> = { - equals?: runtime.InputJsonValue | Prisma.JsonFieldRefInput<$PrismaModel> | Prisma.JsonNullValueFilter - path?: string - mode?: Prisma.QueryMode | Prisma.EnumQueryModeFieldRefInput<$PrismaModel> - string_contains?: string | Prisma.StringFieldRefInput<$PrismaModel> - string_starts_with?: string | Prisma.StringFieldRefInput<$PrismaModel> - string_ends_with?: string | Prisma.StringFieldRefInput<$PrismaModel> - array_starts_with?: runtime.InputJsonValue | Prisma.JsonFieldRefInput<$PrismaModel> | null - array_ends_with?: runtime.InputJsonValue | Prisma.JsonFieldRefInput<$PrismaModel> | null - array_contains?: runtime.InputJsonValue | Prisma.JsonFieldRefInput<$PrismaModel> | null - lt?: runtime.InputJsonValue - lte?: runtime.InputJsonValue - gt?: runtime.InputJsonValue - gte?: runtime.InputJsonValue - not?: runtime.InputJsonValue | Prisma.JsonFieldRefInput<$PrismaModel> | Prisma.JsonNullValueFilter -} - export type DecimalWithAggregatesFilter<$PrismaModel = never> = { equals?: runtime.Decimal | runtime.DecimalJsLike | number | string | Prisma.DecimalFieldRefInput<$PrismaModel> in?: runtime.Decimal[] | runtime.DecimalJsLike[] | number[] | string[] @@ -565,33 +592,6 @@ export type DecimalWithAggregatesFilter<$PrismaModel = never> = { _max?: Prisma.NestedDecimalFilter<$PrismaModel> } -export type JsonNullableWithAggregatesFilter<$PrismaModel = never> = -| Prisma.PatchUndefined< - Prisma.Either>, Exclude>, 'path'>>, - Required> - > -| Prisma.OptionalFlat>, 'path'>> - -export type JsonNullableWithAggregatesFilterBase<$PrismaModel = never> = { - equals?: runtime.InputJsonValue | Prisma.JsonFieldRefInput<$PrismaModel> | Prisma.JsonNullValueFilter - path?: string - mode?: Prisma.QueryMode | Prisma.EnumQueryModeFieldRefInput<$PrismaModel> - string_contains?: string | Prisma.StringFieldRefInput<$PrismaModel> - string_starts_with?: string | Prisma.StringFieldRefInput<$PrismaModel> - string_ends_with?: string | Prisma.StringFieldRefInput<$PrismaModel> - array_starts_with?: runtime.InputJsonValue | Prisma.JsonFieldRefInput<$PrismaModel> | null - array_ends_with?: runtime.InputJsonValue | Prisma.JsonFieldRefInput<$PrismaModel> | null - array_contains?: runtime.InputJsonValue | Prisma.JsonFieldRefInput<$PrismaModel> | null - lt?: runtime.InputJsonValue - lte?: runtime.InputJsonValue - gt?: runtime.InputJsonValue - gte?: runtime.InputJsonValue - not?: runtime.InputJsonValue | Prisma.JsonFieldRefInput<$PrismaModel> | Prisma.JsonNullValueFilter - _count?: Prisma.NestedIntNullableFilter<$PrismaModel> - _min?: Prisma.NestedJsonNullableFilter<$PrismaModel> - _max?: Prisma.NestedJsonNullableFilter<$PrismaModel> -} - export type EnumPaymentMethodTypeFilter<$PrismaModel = never> = { equals?: $Enums.PaymentMethodType | Prisma.EnumPaymentMethodTypeFieldRefInput<$PrismaModel> in?: $Enums.PaymentMethodType[] @@ -997,13 +997,6 @@ export type NestedFloatFilter<$PrismaModel = never> = { not?: Prisma.NestedFloatFilter<$PrismaModel> | number } -export type NestedEnumCustomerTypeFilter<$PrismaModel = never> = { - equals?: $Enums.CustomerType | Prisma.EnumCustomerTypeFieldRefInput<$PrismaModel> - in?: $Enums.CustomerType[] - notIn?: $Enums.CustomerType[] - not?: Prisma.NestedEnumCustomerTypeFilter<$PrismaModel> | $Enums.CustomerType -} - export type NestedBoolNullableFilter<$PrismaModel = never> = { equals?: boolean | Prisma.BooleanFieldRefInput<$PrismaModel> | null not?: Prisma.NestedBoolNullableFilter<$PrismaModel> | boolean | null @@ -1020,14 +1013,11 @@ export type NestedDateTimeNullableFilter<$PrismaModel = never> = { not?: Prisma.NestedDateTimeNullableFilter<$PrismaModel> | Date | string | null } -export type NestedEnumCustomerTypeWithAggregatesFilter<$PrismaModel = never> = { +export type NestedEnumCustomerTypeFilter<$PrismaModel = never> = { equals?: $Enums.CustomerType | Prisma.EnumCustomerTypeFieldRefInput<$PrismaModel> in?: $Enums.CustomerType[] notIn?: $Enums.CustomerType[] - not?: Prisma.NestedEnumCustomerTypeWithAggregatesFilter<$PrismaModel> | $Enums.CustomerType - _count?: Prisma.NestedIntFilter<$PrismaModel> - _min?: Prisma.NestedEnumCustomerTypeFilter<$PrismaModel> - _max?: Prisma.NestedEnumCustomerTypeFilter<$PrismaModel> + not?: Prisma.NestedEnumCustomerTypeFilter<$PrismaModel> | $Enums.CustomerType } export type NestedBoolNullableWithAggregatesFilter<$PrismaModel = never> = { @@ -1052,6 +1042,40 @@ export type NestedDateTimeNullableWithAggregatesFilter<$PrismaModel = never> = { _max?: Prisma.NestedDateTimeNullableFilter<$PrismaModel> } +export type NestedEnumCustomerTypeWithAggregatesFilter<$PrismaModel = never> = { + equals?: $Enums.CustomerType | Prisma.EnumCustomerTypeFieldRefInput<$PrismaModel> + in?: $Enums.CustomerType[] + notIn?: $Enums.CustomerType[] + not?: Prisma.NestedEnumCustomerTypeWithAggregatesFilter<$PrismaModel> | $Enums.CustomerType + _count?: Prisma.NestedIntFilter<$PrismaModel> + _min?: Prisma.NestedEnumCustomerTypeFilter<$PrismaModel> + _max?: Prisma.NestedEnumCustomerTypeFilter<$PrismaModel> +} + +export type NestedJsonNullableFilter<$PrismaModel = never> = +| Prisma.PatchUndefined< + Prisma.Either>, Exclude>, 'path'>>, + Required> + > +| Prisma.OptionalFlat>, 'path'>> + +export type NestedJsonNullableFilterBase<$PrismaModel = never> = { + equals?: runtime.InputJsonValue | Prisma.JsonFieldRefInput<$PrismaModel> | Prisma.JsonNullValueFilter + path?: string + mode?: Prisma.QueryMode | Prisma.EnumQueryModeFieldRefInput<$PrismaModel> + string_contains?: string | Prisma.StringFieldRefInput<$PrismaModel> + string_starts_with?: string | Prisma.StringFieldRefInput<$PrismaModel> + string_ends_with?: string | Prisma.StringFieldRefInput<$PrismaModel> + array_starts_with?: runtime.InputJsonValue | Prisma.JsonFieldRefInput<$PrismaModel> | null + array_ends_with?: runtime.InputJsonValue | Prisma.JsonFieldRefInput<$PrismaModel> | null + array_contains?: runtime.InputJsonValue | Prisma.JsonFieldRefInput<$PrismaModel> | null + lt?: runtime.InputJsonValue + lte?: runtime.InputJsonValue + gt?: runtime.InputJsonValue + gte?: runtime.InputJsonValue + not?: runtime.InputJsonValue | Prisma.JsonFieldRefInput<$PrismaModel> | Prisma.JsonNullValueFilter +} + export type NestedBoolFilter<$PrismaModel = never> = { equals?: boolean | Prisma.BooleanFieldRefInput<$PrismaModel> not?: Prisma.NestedBoolFilter<$PrismaModel> | boolean @@ -1153,30 +1177,6 @@ export type NestedDecimalWithAggregatesFilter<$PrismaModel = never> = { _max?: Prisma.NestedDecimalFilter<$PrismaModel> } -export type NestedJsonNullableFilter<$PrismaModel = never> = -| Prisma.PatchUndefined< - Prisma.Either>, Exclude>, 'path'>>, - Required> - > -| Prisma.OptionalFlat>, 'path'>> - -export type NestedJsonNullableFilterBase<$PrismaModel = never> = { - equals?: runtime.InputJsonValue | Prisma.JsonFieldRefInput<$PrismaModel> | Prisma.JsonNullValueFilter - path?: string - mode?: Prisma.QueryMode | Prisma.EnumQueryModeFieldRefInput<$PrismaModel> - string_contains?: string | Prisma.StringFieldRefInput<$PrismaModel> - string_starts_with?: string | Prisma.StringFieldRefInput<$PrismaModel> - string_ends_with?: string | Prisma.StringFieldRefInput<$PrismaModel> - array_starts_with?: runtime.InputJsonValue | Prisma.JsonFieldRefInput<$PrismaModel> | null - array_ends_with?: runtime.InputJsonValue | Prisma.JsonFieldRefInput<$PrismaModel> | null - array_contains?: runtime.InputJsonValue | Prisma.JsonFieldRefInput<$PrismaModel> | null - lt?: runtime.InputJsonValue - lte?: runtime.InputJsonValue - gt?: runtime.InputJsonValue - gte?: runtime.InputJsonValue - not?: runtime.InputJsonValue | Prisma.JsonFieldRefInput<$PrismaModel> | Prisma.JsonNullValueFilter -} - export type NestedEnumPaymentMethodTypeFilter<$PrismaModel = never> = { equals?: $Enums.PaymentMethodType | Prisma.EnumPaymentMethodTypeFieldRefInput<$PrismaModel> in?: $Enums.PaymentMethodType[] diff --git a/src/generated/prisma/internal/class.ts b/src/generated/prisma/internal/class.ts index 4710c55..d639a4d 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? @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", + "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 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 type CustomerType\n unknown_customer Json?\n customer_individual CustomerIndividual?\n customer_legal CustomerLegal?\n sales_invoices SalesInvoice[]\n\n @@map(\"customers\")\n}\n\nmodel CustomerIndividual {\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\n customer_id String @id\n customer Customer @relation(fields: [customer_id], references: [id], onDelete: Cascade)\n\n complex_id String\n complex Complex @relation(fields: [complex_id], references: [id])\n\n @@unique([complex_id, national_id])\n @@index([complex_id])\n @@map(\"customer_individuals\")\n}\n\nmodel CustomerLegal {\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\n customer_id String @id\n customer Customer @relation(fields: [customer_id], references: [id], onDelete: Cascade)\n\n complex_id String\n complex Complex @relation(fields: [complex_id], references: [id])\n\n @@unique([complex_id, registration_number])\n @@index([complex_id])\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\":\"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\":{}}") +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\":\"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\":\"type\",\"kind\":\"enum\",\"type\":\"CustomerType\"},{\"name\":\"unknown_customer\",\"kind\":\"scalar\",\"type\":\"Json\"},{\"name\":\"customer_individual\",\"kind\":\"object\",\"type\":\"CustomerIndividual\",\"relationName\":\"CustomerToCustomerIndividual\"},{\"name\":\"customer_legal\",\"kind\":\"object\",\"type\":\"CustomerLegal\",\"relationName\":\"CustomerToCustomerLegal\"},{\"name\":\"sales_invoices\",\"kind\":\"object\",\"type\":\"SalesInvoice\",\"relationName\":\"CustomerToSalesInvoice\"}],\"dbName\":\"customers\"},\"CustomerIndividual\":{\"fields\":[{\"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\":\"customer_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"customer\",\"kind\":\"object\",\"type\":\"Customer\",\"relationName\":\"CustomerToCustomerIndividual\"},{\"name\":\"complex_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"complex\",\"kind\":\"object\",\"type\":\"Complex\",\"relationName\":\"ComplexToCustomerIndividual\"}],\"dbName\":\"customer_individuals\"},\"CustomerLegal\":{\"fields\":[{\"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\":\"customer_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"customer\",\"kind\":\"object\",\"type\":\"Customer\",\"relationName\":\"CustomerToCustomerLegal\"},{\"name\":\"complex_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"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 85019cc..4860c5b 100644 --- a/src/generated/prisma/internal/prismaNamespace.ts +++ b/src/generated/prisma/internal/prismaNamespace.ts @@ -2843,23 +2843,24 @@ export type UserDevicesScalarFieldEnum = (typeof UserDevicesScalarFieldEnum)[key export const CustomerScalarFieldEnum = { id: 'id', - type: 'type', is_favorite: 'is_favorite', created_at: 'created_at', updated_at: 'updated_at', - deleted_at: 'deleted_at' + deleted_at: 'deleted_at', + type: 'type', + unknown_customer: 'unknown_customer' } as const export type CustomerScalarFieldEnum = (typeof CustomerScalarFieldEnum)[keyof typeof CustomerScalarFieldEnum] export const CustomerIndividualScalarFieldEnum = { - customer_id: 'customer_id', first_name: 'first_name', last_name: 'last_name', national_id: 'national_id', postal_code: 'postal_code', economic_code: 'economic_code', + customer_id: 'customer_id', complex_id: 'complex_id' } as const @@ -2867,11 +2868,11 @@ export type CustomerIndividualScalarFieldEnum = (typeof CustomerIndividualScalar export const CustomerLegalScalarFieldEnum = { - customer_id: 'customer_id', company_name: 'company_name', economic_code: 'economic_code', registration_number: 'registration_number', postal_code: 'postal_code', + customer_id: 'customer_id', complex_id: 'complex_id' } as const @@ -3239,6 +3240,23 @@ export const UserDevicesOrderByRelevanceFieldEnum = { export type UserDevicesOrderByRelevanceFieldEnum = (typeof UserDevicesOrderByRelevanceFieldEnum)[keyof typeof UserDevicesOrderByRelevanceFieldEnum] +export const JsonNullValueFilter = { + DbNull: DbNull, + JsonNull: JsonNull, + AnyNull: AnyNull +} as const + +export type JsonNullValueFilter = (typeof JsonNullValueFilter)[keyof typeof JsonNullValueFilter] + + +export const QueryMode = { + default: 'default', + insensitive: 'insensitive' +} as const + +export type QueryMode = (typeof QueryMode)[keyof typeof QueryMode] + + export const CustomerOrderByRelevanceFieldEnum = { id: 'id' } as const @@ -3247,12 +3265,12 @@ export type CustomerOrderByRelevanceFieldEnum = (typeof CustomerOrderByRelevance export const CustomerIndividualOrderByRelevanceFieldEnum = { - customer_id: 'customer_id', first_name: 'first_name', last_name: 'last_name', national_id: 'national_id', postal_code: 'postal_code', economic_code: 'economic_code', + customer_id: 'customer_id', complex_id: 'complex_id' } as const @@ -3260,11 +3278,11 @@ export type CustomerIndividualOrderByRelevanceFieldEnum = (typeof CustomerIndivi export const CustomerLegalOrderByRelevanceFieldEnum = { - customer_id: 'customer_id', company_name: 'company_name', economic_code: 'economic_code', registration_number: 'registration_number', postal_code: 'postal_code', + customer_id: 'customer_id', complex_id: 'complex_id' } as const @@ -3306,23 +3324,6 @@ export const GuildOrderByRelevanceFieldEnum = { export type GuildOrderByRelevanceFieldEnum = (typeof GuildOrderByRelevanceFieldEnum)[keyof typeof GuildOrderByRelevanceFieldEnum] -export const JsonNullValueFilter = { - DbNull: DbNull, - JsonNull: JsonNull, - AnyNull: AnyNull -} as const - -export type JsonNullValueFilter = (typeof JsonNullValueFilter)[keyof typeof JsonNullValueFilter] - - -export const QueryMode = { - default: 'default', - insensitive: 'insensitive' -} as const - -export type QueryMode = (typeof QueryMode)[keyof typeof QueryMode] - - export const SalesInvoiceOrderByRelevanceFieldEnum = { id: 'id', code: 'code', @@ -3499,6 +3500,13 @@ export type EnumProviderRoleFieldRefInput<$PrismaModel> = FieldRefInputType<$Pri +/** + * Reference to a field of type 'Boolean' + */ +export type BooleanFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'Boolean'> + + + /** * Reference to a field of type 'CustomerType' */ @@ -3507,9 +3515,16 @@ export type EnumCustomerTypeFieldRefInput<$PrismaModel> = FieldRefInputType<$Pri /** - * Reference to a field of type 'Boolean' + * Reference to a field of type 'Json' */ -export type BooleanFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'Boolean'> +export type JsonFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'Json'> + + + +/** + * Reference to a field of type 'QueryMode' + */ +export type EnumQueryModeFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'QueryMode'> @@ -3534,20 +3549,6 @@ export type DecimalFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, -/** - * Reference to a field of type 'Json' - */ -export type JsonFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'Json'> - - - -/** - * Reference to a field of type 'QueryMode' - */ -export type EnumQueryModeFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'QueryMode'> - - - /** * Reference to a field of type 'PaymentMethodType' */ diff --git a/src/generated/prisma/internal/prismaNamespaceBrowser.ts b/src/generated/prisma/internal/prismaNamespaceBrowser.ts index d331a03..f7c4774 100644 --- a/src/generated/prisma/internal/prismaNamespaceBrowser.ts +++ b/src/generated/prisma/internal/prismaNamespaceBrowser.ts @@ -358,23 +358,24 @@ export type UserDevicesScalarFieldEnum = (typeof UserDevicesScalarFieldEnum)[key export const CustomerScalarFieldEnum = { id: 'id', - type: 'type', is_favorite: 'is_favorite', created_at: 'created_at', updated_at: 'updated_at', - deleted_at: 'deleted_at' + deleted_at: 'deleted_at', + type: 'type', + unknown_customer: 'unknown_customer' } as const export type CustomerScalarFieldEnum = (typeof CustomerScalarFieldEnum)[keyof typeof CustomerScalarFieldEnum] export const CustomerIndividualScalarFieldEnum = { - customer_id: 'customer_id', first_name: 'first_name', last_name: 'last_name', national_id: 'national_id', postal_code: 'postal_code', economic_code: 'economic_code', + customer_id: 'customer_id', complex_id: 'complex_id' } as const @@ -382,11 +383,11 @@ export type CustomerIndividualScalarFieldEnum = (typeof CustomerIndividualScalar export const CustomerLegalScalarFieldEnum = { - customer_id: 'customer_id', company_name: 'company_name', economic_code: 'economic_code', registration_number: 'registration_number', postal_code: 'postal_code', + customer_id: 'customer_id', complex_id: 'complex_id' } as const @@ -754,6 +755,23 @@ export const UserDevicesOrderByRelevanceFieldEnum = { export type UserDevicesOrderByRelevanceFieldEnum = (typeof UserDevicesOrderByRelevanceFieldEnum)[keyof typeof UserDevicesOrderByRelevanceFieldEnum] +export const JsonNullValueFilter = { + DbNull: 'DbNull', + JsonNull: 'JsonNull', + AnyNull: 'AnyNull' +} as const + +export type JsonNullValueFilter = (typeof JsonNullValueFilter)[keyof typeof JsonNullValueFilter] + + +export const QueryMode = { + default: 'default', + insensitive: 'insensitive' +} as const + +export type QueryMode = (typeof QueryMode)[keyof typeof QueryMode] + + export const CustomerOrderByRelevanceFieldEnum = { id: 'id' } as const @@ -762,12 +780,12 @@ export type CustomerOrderByRelevanceFieldEnum = (typeof CustomerOrderByRelevance export const CustomerIndividualOrderByRelevanceFieldEnum = { - customer_id: 'customer_id', first_name: 'first_name', last_name: 'last_name', national_id: 'national_id', postal_code: 'postal_code', economic_code: 'economic_code', + customer_id: 'customer_id', complex_id: 'complex_id' } as const @@ -775,11 +793,11 @@ export type CustomerIndividualOrderByRelevanceFieldEnum = (typeof CustomerIndivi export const CustomerLegalOrderByRelevanceFieldEnum = { - customer_id: 'customer_id', company_name: 'company_name', economic_code: 'economic_code', registration_number: 'registration_number', postal_code: 'postal_code', + customer_id: 'customer_id', complex_id: 'complex_id' } as const @@ -821,23 +839,6 @@ export const GuildOrderByRelevanceFieldEnum = { export type GuildOrderByRelevanceFieldEnum = (typeof GuildOrderByRelevanceFieldEnum)[keyof typeof GuildOrderByRelevanceFieldEnum] -export const JsonNullValueFilter = { - DbNull: 'DbNull', - JsonNull: 'JsonNull', - AnyNull: 'AnyNull' -} as const - -export type JsonNullValueFilter = (typeof JsonNullValueFilter)[keyof typeof JsonNullValueFilter] - - -export const QueryMode = { - default: 'default', - insensitive: 'insensitive' -} as const - -export type QueryMode = (typeof QueryMode)[keyof typeof QueryMode] - - export const SalesInvoiceOrderByRelevanceFieldEnum = { id: 'id', code: 'code', diff --git a/src/generated/prisma/models/Customer.ts b/src/generated/prisma/models/Customer.ts index 0d87a41..6633cb4 100644 --- a/src/generated/prisma/models/Customer.ts +++ b/src/generated/prisma/models/Customer.ts @@ -26,58 +26,60 @@ export type AggregateCustomer = { export type CustomerMinAggregateOutputType = { id: string | null - type: $Enums.CustomerType | null is_favorite: boolean | null created_at: Date | null updated_at: Date | null deleted_at: Date | null + type: $Enums.CustomerType | null } export type CustomerMaxAggregateOutputType = { id: string | null - type: $Enums.CustomerType | null is_favorite: boolean | null created_at: Date | null updated_at: Date | null deleted_at: Date | null + type: $Enums.CustomerType | null } export type CustomerCountAggregateOutputType = { id: number - type: number is_favorite: number created_at: number updated_at: number deleted_at: number + type: number + unknown_customer: number _all: number } export type CustomerMinAggregateInputType = { id?: true - type?: true is_favorite?: true created_at?: true updated_at?: true deleted_at?: true + type?: true } export type CustomerMaxAggregateInputType = { id?: true - type?: true is_favorite?: true created_at?: true updated_at?: true deleted_at?: true + type?: true } export type CustomerCountAggregateInputType = { id?: true - type?: true is_favorite?: true created_at?: true updated_at?: true deleted_at?: true + type?: true + unknown_customer?: true _all?: true } @@ -155,11 +157,12 @@ export type CustomerGroupByArgs | string - type?: Prisma.EnumCustomerTypeFilter<"Customer"> | $Enums.CustomerType is_favorite?: Prisma.BoolNullableFilter<"Customer"> | boolean | null created_at?: Prisma.DateTimeFilter<"Customer"> | Date | string updated_at?: Prisma.DateTimeFilter<"Customer"> | Date | string deleted_at?: Prisma.DateTimeNullableFilter<"Customer"> | Date | string | null + type?: Prisma.EnumCustomerTypeFilter<"Customer"> | $Enums.CustomerType + unknown_customer?: Prisma.JsonNullableFilter<"Customer"> + customer_individual?: Prisma.XOR | null + customer_legal?: Prisma.XOR | null sales_invoices?: Prisma.SalesInvoiceListRelationFilter - customer_individuals?: Prisma.XOR | null - customer_legals?: Prisma.XOR | null } export type CustomerOrderByWithRelationInput = { id?: Prisma.SortOrder - type?: Prisma.SortOrder is_favorite?: Prisma.SortOrderInput | Prisma.SortOrder created_at?: Prisma.SortOrder updated_at?: Prisma.SortOrder deleted_at?: Prisma.SortOrderInput | Prisma.SortOrder + type?: Prisma.SortOrder + unknown_customer?: Prisma.SortOrderInput | Prisma.SortOrder + customer_individual?: Prisma.CustomerIndividualOrderByWithRelationInput + customer_legal?: Prisma.CustomerLegalOrderByWithRelationInput sales_invoices?: Prisma.SalesInvoiceOrderByRelationAggregateInput - customer_individuals?: Prisma.CustomerIndividualOrderByWithRelationInput - customer_legals?: Prisma.CustomerLegalOrderByWithRelationInput _relevance?: Prisma.CustomerOrderByRelevanceInput } @@ -213,23 +218,25 @@ export type CustomerWhereUniqueInput = Prisma.AtLeast<{ AND?: Prisma.CustomerWhereInput | Prisma.CustomerWhereInput[] OR?: Prisma.CustomerWhereInput[] NOT?: Prisma.CustomerWhereInput | Prisma.CustomerWhereInput[] - type?: Prisma.EnumCustomerTypeFilter<"Customer"> | $Enums.CustomerType is_favorite?: Prisma.BoolNullableFilter<"Customer"> | boolean | null created_at?: Prisma.DateTimeFilter<"Customer"> | Date | string updated_at?: Prisma.DateTimeFilter<"Customer"> | Date | string deleted_at?: Prisma.DateTimeNullableFilter<"Customer"> | Date | string | null + type?: Prisma.EnumCustomerTypeFilter<"Customer"> | $Enums.CustomerType + unknown_customer?: Prisma.JsonNullableFilter<"Customer"> + customer_individual?: Prisma.XOR | null + customer_legal?: Prisma.XOR | null sales_invoices?: Prisma.SalesInvoiceListRelationFilter - customer_individuals?: Prisma.XOR | null - customer_legals?: Prisma.XOR | null }, "id"> export type CustomerOrderByWithAggregationInput = { id?: Prisma.SortOrder - type?: Prisma.SortOrder is_favorite?: Prisma.SortOrderInput | Prisma.SortOrder created_at?: Prisma.SortOrder updated_at?: Prisma.SortOrder deleted_at?: Prisma.SortOrderInput | Prisma.SortOrder + type?: Prisma.SortOrder + unknown_customer?: Prisma.SortOrderInput | Prisma.SortOrder _count?: Prisma.CustomerCountOrderByAggregateInput _max?: Prisma.CustomerMaxOrderByAggregateInput _min?: Prisma.CustomerMinOrderByAggregateInput @@ -240,86 +247,94 @@ export type CustomerScalarWhereWithAggregatesInput = { OR?: Prisma.CustomerScalarWhereWithAggregatesInput[] NOT?: Prisma.CustomerScalarWhereWithAggregatesInput | Prisma.CustomerScalarWhereWithAggregatesInput[] id?: Prisma.StringWithAggregatesFilter<"Customer"> | string - type?: Prisma.EnumCustomerTypeWithAggregatesFilter<"Customer"> | $Enums.CustomerType is_favorite?: Prisma.BoolNullableWithAggregatesFilter<"Customer"> | boolean | null created_at?: Prisma.DateTimeWithAggregatesFilter<"Customer"> | Date | string updated_at?: Prisma.DateTimeWithAggregatesFilter<"Customer"> | Date | string deleted_at?: Prisma.DateTimeNullableWithAggregatesFilter<"Customer"> | Date | string | null + type?: Prisma.EnumCustomerTypeWithAggregatesFilter<"Customer"> | $Enums.CustomerType + unknown_customer?: Prisma.JsonNullableWithAggregatesFilter<"Customer"> } export type CustomerCreateInput = { id?: string - type: $Enums.CustomerType is_favorite?: boolean | null created_at?: Date | string updated_at?: Date | string deleted_at?: Date | string | null + type: $Enums.CustomerType + unknown_customer?: Prisma.NullableJsonNullValueInput | runtime.InputJsonValue + customer_individual?: Prisma.CustomerIndividualCreateNestedOneWithoutCustomerInput + customer_legal?: Prisma.CustomerLegalCreateNestedOneWithoutCustomerInput sales_invoices?: Prisma.SalesInvoiceCreateNestedManyWithoutCustomerInput - customer_individuals?: Prisma.CustomerIndividualCreateNestedOneWithoutCustomerInput - customer_legals?: Prisma.CustomerLegalCreateNestedOneWithoutCustomerInput } export type CustomerUncheckedCreateInput = { id?: string - type: $Enums.CustomerType is_favorite?: boolean | null created_at?: Date | string updated_at?: Date | string deleted_at?: Date | string | null + type: $Enums.CustomerType + unknown_customer?: Prisma.NullableJsonNullValueInput | runtime.InputJsonValue + customer_individual?: Prisma.CustomerIndividualUncheckedCreateNestedOneWithoutCustomerInput + customer_legal?: Prisma.CustomerLegalUncheckedCreateNestedOneWithoutCustomerInput sales_invoices?: Prisma.SalesInvoiceUncheckedCreateNestedManyWithoutCustomerInput - customer_individuals?: Prisma.CustomerIndividualUncheckedCreateNestedOneWithoutCustomerInput - customer_legals?: Prisma.CustomerLegalUncheckedCreateNestedOneWithoutCustomerInput } export type CustomerUpdateInput = { id?: Prisma.StringFieldUpdateOperationsInput | string - type?: Prisma.EnumCustomerTypeFieldUpdateOperationsInput | $Enums.CustomerType is_favorite?: Prisma.NullableBoolFieldUpdateOperationsInput | boolean | null created_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string updated_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string deleted_at?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null + type?: Prisma.EnumCustomerTypeFieldUpdateOperationsInput | $Enums.CustomerType + unknown_customer?: Prisma.NullableJsonNullValueInput | runtime.InputJsonValue + customer_individual?: Prisma.CustomerIndividualUpdateOneWithoutCustomerNestedInput + customer_legal?: Prisma.CustomerLegalUpdateOneWithoutCustomerNestedInput sales_invoices?: Prisma.SalesInvoiceUpdateManyWithoutCustomerNestedInput - customer_individuals?: Prisma.CustomerIndividualUpdateOneWithoutCustomerNestedInput - customer_legals?: Prisma.CustomerLegalUpdateOneWithoutCustomerNestedInput } export type CustomerUncheckedUpdateInput = { id?: Prisma.StringFieldUpdateOperationsInput | string - type?: Prisma.EnumCustomerTypeFieldUpdateOperationsInput | $Enums.CustomerType is_favorite?: Prisma.NullableBoolFieldUpdateOperationsInput | boolean | null created_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string updated_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string deleted_at?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null + type?: Prisma.EnumCustomerTypeFieldUpdateOperationsInput | $Enums.CustomerType + unknown_customer?: Prisma.NullableJsonNullValueInput | runtime.InputJsonValue + customer_individual?: Prisma.CustomerIndividualUncheckedUpdateOneWithoutCustomerNestedInput + customer_legal?: Prisma.CustomerLegalUncheckedUpdateOneWithoutCustomerNestedInput sales_invoices?: Prisma.SalesInvoiceUncheckedUpdateManyWithoutCustomerNestedInput - customer_individuals?: Prisma.CustomerIndividualUncheckedUpdateOneWithoutCustomerNestedInput - customer_legals?: Prisma.CustomerLegalUncheckedUpdateOneWithoutCustomerNestedInput } export type CustomerCreateManyInput = { id?: string - type: $Enums.CustomerType is_favorite?: boolean | null created_at?: Date | string updated_at?: Date | string deleted_at?: Date | string | null + type: $Enums.CustomerType + unknown_customer?: Prisma.NullableJsonNullValueInput | runtime.InputJsonValue } export type CustomerUpdateManyMutationInput = { id?: Prisma.StringFieldUpdateOperationsInput | string - type?: Prisma.EnumCustomerTypeFieldUpdateOperationsInput | $Enums.CustomerType is_favorite?: Prisma.NullableBoolFieldUpdateOperationsInput | boolean | null created_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string updated_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string deleted_at?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null + type?: Prisma.EnumCustomerTypeFieldUpdateOperationsInput | $Enums.CustomerType + unknown_customer?: Prisma.NullableJsonNullValueInput | runtime.InputJsonValue } export type CustomerUncheckedUpdateManyInput = { id?: Prisma.StringFieldUpdateOperationsInput | string - type?: Prisma.EnumCustomerTypeFieldUpdateOperationsInput | $Enums.CustomerType is_favorite?: Prisma.NullableBoolFieldUpdateOperationsInput | boolean | null created_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string updated_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string deleted_at?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null + type?: Prisma.EnumCustomerTypeFieldUpdateOperationsInput | $Enums.CustomerType + unknown_customer?: Prisma.NullableJsonNullValueInput | runtime.InputJsonValue } export type CustomerOrderByRelevanceInput = { @@ -330,29 +345,30 @@ export type CustomerOrderByRelevanceInput = { export type CustomerCountOrderByAggregateInput = { id?: Prisma.SortOrder - type?: Prisma.SortOrder is_favorite?: Prisma.SortOrder created_at?: Prisma.SortOrder updated_at?: Prisma.SortOrder deleted_at?: Prisma.SortOrder + type?: Prisma.SortOrder + unknown_customer?: Prisma.SortOrder } export type CustomerMaxOrderByAggregateInput = { id?: Prisma.SortOrder - type?: Prisma.SortOrder is_favorite?: Prisma.SortOrder created_at?: Prisma.SortOrder updated_at?: Prisma.SortOrder deleted_at?: Prisma.SortOrder + type?: Prisma.SortOrder } export type CustomerMinOrderByAggregateInput = { id?: Prisma.SortOrder - type?: Prisma.SortOrder is_favorite?: Prisma.SortOrder created_at?: Prisma.SortOrder updated_at?: Prisma.SortOrder deleted_at?: Prisma.SortOrder + type?: Prisma.SortOrder } export type CustomerScalarRelationFilter = { @@ -365,10 +381,6 @@ export type CustomerNullableScalarRelationFilter = { isNot?: Prisma.CustomerWhereInput | null } -export type EnumCustomerTypeFieldUpdateOperationsInput = { - set?: $Enums.CustomerType -} - export type NullableBoolFieldUpdateOperationsInput = { set?: boolean | null } @@ -377,32 +389,36 @@ export type NullableDateTimeFieldUpdateOperationsInput = { set?: Date | string | null } -export type CustomerCreateNestedOneWithoutCustomer_individualsInput = { - create?: Prisma.XOR - connectOrCreate?: Prisma.CustomerCreateOrConnectWithoutCustomer_individualsInput +export type EnumCustomerTypeFieldUpdateOperationsInput = { + set?: $Enums.CustomerType +} + +export type CustomerCreateNestedOneWithoutCustomer_individualInput = { + create?: Prisma.XOR + connectOrCreate?: Prisma.CustomerCreateOrConnectWithoutCustomer_individualInput connect?: Prisma.CustomerWhereUniqueInput } -export type CustomerUpdateOneRequiredWithoutCustomer_individualsNestedInput = { - create?: Prisma.XOR - connectOrCreate?: Prisma.CustomerCreateOrConnectWithoutCustomer_individualsInput - upsert?: Prisma.CustomerUpsertWithoutCustomer_individualsInput +export type CustomerUpdateOneRequiredWithoutCustomer_individualNestedInput = { + create?: Prisma.XOR + connectOrCreate?: Prisma.CustomerCreateOrConnectWithoutCustomer_individualInput + upsert?: Prisma.CustomerUpsertWithoutCustomer_individualInput connect?: Prisma.CustomerWhereUniqueInput - update?: Prisma.XOR, Prisma.CustomerUncheckedUpdateWithoutCustomer_individualsInput> + update?: Prisma.XOR, Prisma.CustomerUncheckedUpdateWithoutCustomer_individualInput> } -export type CustomerCreateNestedOneWithoutCustomer_legalsInput = { - create?: Prisma.XOR - connectOrCreate?: Prisma.CustomerCreateOrConnectWithoutCustomer_legalsInput +export type CustomerCreateNestedOneWithoutCustomer_legalInput = { + create?: Prisma.XOR + connectOrCreate?: Prisma.CustomerCreateOrConnectWithoutCustomer_legalInput connect?: Prisma.CustomerWhereUniqueInput } -export type CustomerUpdateOneRequiredWithoutCustomer_legalsNestedInput = { - create?: Prisma.XOR - connectOrCreate?: Prisma.CustomerCreateOrConnectWithoutCustomer_legalsInput - upsert?: Prisma.CustomerUpsertWithoutCustomer_legalsInput +export type CustomerUpdateOneRequiredWithoutCustomer_legalNestedInput = { + create?: Prisma.XOR + connectOrCreate?: Prisma.CustomerCreateOrConnectWithoutCustomer_legalInput + upsert?: Prisma.CustomerUpsertWithoutCustomer_legalInput connect?: Prisma.CustomerWhereUniqueInput - update?: Prisma.XOR, Prisma.CustomerUncheckedUpdateWithoutCustomer_legalsInput> + update?: Prisma.XOR, Prisma.CustomerUncheckedUpdateWithoutCustomer_legalInput> } export type CustomerCreateNestedOneWithoutSales_invoicesInput = { @@ -421,146 +437,156 @@ export type CustomerUpdateOneWithoutSales_invoicesNestedInput = { update?: Prisma.XOR, Prisma.CustomerUncheckedUpdateWithoutSales_invoicesInput> } -export type CustomerCreateWithoutCustomer_individualsInput = { +export type CustomerCreateWithoutCustomer_individualInput = { id?: string - type: $Enums.CustomerType is_favorite?: boolean | null created_at?: Date | string updated_at?: Date | string deleted_at?: Date | string | null + type: $Enums.CustomerType + unknown_customer?: Prisma.NullableJsonNullValueInput | runtime.InputJsonValue + customer_legal?: Prisma.CustomerLegalCreateNestedOneWithoutCustomerInput sales_invoices?: Prisma.SalesInvoiceCreateNestedManyWithoutCustomerInput - customer_legals?: Prisma.CustomerLegalCreateNestedOneWithoutCustomerInput } -export type CustomerUncheckedCreateWithoutCustomer_individualsInput = { +export type CustomerUncheckedCreateWithoutCustomer_individualInput = { id?: string - type: $Enums.CustomerType is_favorite?: boolean | null created_at?: Date | string updated_at?: Date | string deleted_at?: Date | string | null + type: $Enums.CustomerType + unknown_customer?: Prisma.NullableJsonNullValueInput | runtime.InputJsonValue + customer_legal?: Prisma.CustomerLegalUncheckedCreateNestedOneWithoutCustomerInput sales_invoices?: Prisma.SalesInvoiceUncheckedCreateNestedManyWithoutCustomerInput - customer_legals?: Prisma.CustomerLegalUncheckedCreateNestedOneWithoutCustomerInput } -export type CustomerCreateOrConnectWithoutCustomer_individualsInput = { +export type CustomerCreateOrConnectWithoutCustomer_individualInput = { where: Prisma.CustomerWhereUniqueInput - create: Prisma.XOR + create: Prisma.XOR } -export type CustomerUpsertWithoutCustomer_individualsInput = { - update: Prisma.XOR - create: Prisma.XOR +export type CustomerUpsertWithoutCustomer_individualInput = { + update: Prisma.XOR + create: Prisma.XOR where?: Prisma.CustomerWhereInput } -export type CustomerUpdateToOneWithWhereWithoutCustomer_individualsInput = { +export type CustomerUpdateToOneWithWhereWithoutCustomer_individualInput = { where?: Prisma.CustomerWhereInput - data: Prisma.XOR + data: Prisma.XOR } -export type CustomerUpdateWithoutCustomer_individualsInput = { +export type CustomerUpdateWithoutCustomer_individualInput = { id?: Prisma.StringFieldUpdateOperationsInput | string - type?: Prisma.EnumCustomerTypeFieldUpdateOperationsInput | $Enums.CustomerType is_favorite?: Prisma.NullableBoolFieldUpdateOperationsInput | boolean | null created_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string updated_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string deleted_at?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null + type?: Prisma.EnumCustomerTypeFieldUpdateOperationsInput | $Enums.CustomerType + unknown_customer?: Prisma.NullableJsonNullValueInput | runtime.InputJsonValue + customer_legal?: Prisma.CustomerLegalUpdateOneWithoutCustomerNestedInput sales_invoices?: Prisma.SalesInvoiceUpdateManyWithoutCustomerNestedInput - customer_legals?: Prisma.CustomerLegalUpdateOneWithoutCustomerNestedInput } -export type CustomerUncheckedUpdateWithoutCustomer_individualsInput = { +export type CustomerUncheckedUpdateWithoutCustomer_individualInput = { id?: Prisma.StringFieldUpdateOperationsInput | string - type?: Prisma.EnumCustomerTypeFieldUpdateOperationsInput | $Enums.CustomerType is_favorite?: Prisma.NullableBoolFieldUpdateOperationsInput | boolean | null created_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string updated_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string deleted_at?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null + type?: Prisma.EnumCustomerTypeFieldUpdateOperationsInput | $Enums.CustomerType + unknown_customer?: Prisma.NullableJsonNullValueInput | runtime.InputJsonValue + customer_legal?: Prisma.CustomerLegalUncheckedUpdateOneWithoutCustomerNestedInput sales_invoices?: Prisma.SalesInvoiceUncheckedUpdateManyWithoutCustomerNestedInput - customer_legals?: Prisma.CustomerLegalUncheckedUpdateOneWithoutCustomerNestedInput } -export type CustomerCreateWithoutCustomer_legalsInput = { +export type CustomerCreateWithoutCustomer_legalInput = { id?: string - type: $Enums.CustomerType is_favorite?: boolean | null created_at?: Date | string updated_at?: Date | string deleted_at?: Date | string | null + type: $Enums.CustomerType + unknown_customer?: Prisma.NullableJsonNullValueInput | runtime.InputJsonValue + customer_individual?: Prisma.CustomerIndividualCreateNestedOneWithoutCustomerInput sales_invoices?: Prisma.SalesInvoiceCreateNestedManyWithoutCustomerInput - customer_individuals?: Prisma.CustomerIndividualCreateNestedOneWithoutCustomerInput } -export type CustomerUncheckedCreateWithoutCustomer_legalsInput = { +export type CustomerUncheckedCreateWithoutCustomer_legalInput = { id?: string - type: $Enums.CustomerType is_favorite?: boolean | null created_at?: Date | string updated_at?: Date | string deleted_at?: Date | string | null + type: $Enums.CustomerType + unknown_customer?: Prisma.NullableJsonNullValueInput | runtime.InputJsonValue + customer_individual?: Prisma.CustomerIndividualUncheckedCreateNestedOneWithoutCustomerInput sales_invoices?: Prisma.SalesInvoiceUncheckedCreateNestedManyWithoutCustomerInput - customer_individuals?: Prisma.CustomerIndividualUncheckedCreateNestedOneWithoutCustomerInput } -export type CustomerCreateOrConnectWithoutCustomer_legalsInput = { +export type CustomerCreateOrConnectWithoutCustomer_legalInput = { where: Prisma.CustomerWhereUniqueInput - create: Prisma.XOR + create: Prisma.XOR } -export type CustomerUpsertWithoutCustomer_legalsInput = { - update: Prisma.XOR - create: Prisma.XOR +export type CustomerUpsertWithoutCustomer_legalInput = { + update: Prisma.XOR + create: Prisma.XOR where?: Prisma.CustomerWhereInput } -export type CustomerUpdateToOneWithWhereWithoutCustomer_legalsInput = { +export type CustomerUpdateToOneWithWhereWithoutCustomer_legalInput = { where?: Prisma.CustomerWhereInput - data: Prisma.XOR + data: Prisma.XOR } -export type CustomerUpdateWithoutCustomer_legalsInput = { +export type CustomerUpdateWithoutCustomer_legalInput = { id?: Prisma.StringFieldUpdateOperationsInput | string - type?: Prisma.EnumCustomerTypeFieldUpdateOperationsInput | $Enums.CustomerType is_favorite?: Prisma.NullableBoolFieldUpdateOperationsInput | boolean | null created_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string updated_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string deleted_at?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null + type?: Prisma.EnumCustomerTypeFieldUpdateOperationsInput | $Enums.CustomerType + unknown_customer?: Prisma.NullableJsonNullValueInput | runtime.InputJsonValue + customer_individual?: Prisma.CustomerIndividualUpdateOneWithoutCustomerNestedInput sales_invoices?: Prisma.SalesInvoiceUpdateManyWithoutCustomerNestedInput - customer_individuals?: Prisma.CustomerIndividualUpdateOneWithoutCustomerNestedInput } -export type CustomerUncheckedUpdateWithoutCustomer_legalsInput = { +export type CustomerUncheckedUpdateWithoutCustomer_legalInput = { id?: Prisma.StringFieldUpdateOperationsInput | string - type?: Prisma.EnumCustomerTypeFieldUpdateOperationsInput | $Enums.CustomerType is_favorite?: Prisma.NullableBoolFieldUpdateOperationsInput | boolean | null created_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string updated_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string deleted_at?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null + type?: Prisma.EnumCustomerTypeFieldUpdateOperationsInput | $Enums.CustomerType + unknown_customer?: Prisma.NullableJsonNullValueInput | runtime.InputJsonValue + customer_individual?: Prisma.CustomerIndividualUncheckedUpdateOneWithoutCustomerNestedInput sales_invoices?: Prisma.SalesInvoiceUncheckedUpdateManyWithoutCustomerNestedInput - customer_individuals?: Prisma.CustomerIndividualUncheckedUpdateOneWithoutCustomerNestedInput } export type CustomerCreateWithoutSales_invoicesInput = { id?: string - type: $Enums.CustomerType is_favorite?: boolean | null created_at?: Date | string updated_at?: Date | string deleted_at?: Date | string | null - customer_individuals?: Prisma.CustomerIndividualCreateNestedOneWithoutCustomerInput - customer_legals?: Prisma.CustomerLegalCreateNestedOneWithoutCustomerInput + type: $Enums.CustomerType + unknown_customer?: Prisma.NullableJsonNullValueInput | runtime.InputJsonValue + customer_individual?: Prisma.CustomerIndividualCreateNestedOneWithoutCustomerInput + customer_legal?: Prisma.CustomerLegalCreateNestedOneWithoutCustomerInput } export type CustomerUncheckedCreateWithoutSales_invoicesInput = { id?: string - type: $Enums.CustomerType is_favorite?: boolean | null created_at?: Date | string updated_at?: Date | string deleted_at?: Date | string | null - customer_individuals?: Prisma.CustomerIndividualUncheckedCreateNestedOneWithoutCustomerInput - customer_legals?: Prisma.CustomerLegalUncheckedCreateNestedOneWithoutCustomerInput + type: $Enums.CustomerType + unknown_customer?: Prisma.NullableJsonNullValueInput | runtime.InputJsonValue + customer_individual?: Prisma.CustomerIndividualUncheckedCreateNestedOneWithoutCustomerInput + customer_legal?: Prisma.CustomerLegalUncheckedCreateNestedOneWithoutCustomerInput } export type CustomerCreateOrConnectWithoutSales_invoicesInput = { @@ -581,24 +607,26 @@ export type CustomerUpdateToOneWithWhereWithoutSales_invoicesInput = { export type CustomerUpdateWithoutSales_invoicesInput = { id?: Prisma.StringFieldUpdateOperationsInput | string - type?: Prisma.EnumCustomerTypeFieldUpdateOperationsInput | $Enums.CustomerType is_favorite?: Prisma.NullableBoolFieldUpdateOperationsInput | boolean | null created_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string updated_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string deleted_at?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null - customer_individuals?: Prisma.CustomerIndividualUpdateOneWithoutCustomerNestedInput - customer_legals?: Prisma.CustomerLegalUpdateOneWithoutCustomerNestedInput + type?: Prisma.EnumCustomerTypeFieldUpdateOperationsInput | $Enums.CustomerType + unknown_customer?: Prisma.NullableJsonNullValueInput | runtime.InputJsonValue + customer_individual?: Prisma.CustomerIndividualUpdateOneWithoutCustomerNestedInput + customer_legal?: Prisma.CustomerLegalUpdateOneWithoutCustomerNestedInput } export type CustomerUncheckedUpdateWithoutSales_invoicesInput = { id?: Prisma.StringFieldUpdateOperationsInput | string - type?: Prisma.EnumCustomerTypeFieldUpdateOperationsInput | $Enums.CustomerType is_favorite?: Prisma.NullableBoolFieldUpdateOperationsInput | boolean | null created_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string updated_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string deleted_at?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null - customer_individuals?: Prisma.CustomerIndividualUncheckedUpdateOneWithoutCustomerNestedInput - customer_legals?: Prisma.CustomerLegalUncheckedUpdateOneWithoutCustomerNestedInput + type?: Prisma.EnumCustomerTypeFieldUpdateOperationsInput | $Enums.CustomerType + unknown_customer?: Prisma.NullableJsonNullValueInput | runtime.InputJsonValue + customer_individual?: Prisma.CustomerIndividualUncheckedUpdateOneWithoutCustomerNestedInput + customer_legal?: Prisma.CustomerLegalUncheckedUpdateOneWithoutCustomerNestedInput } @@ -634,14 +662,15 @@ export type CustomerCountOutputTypeCountSales_invoicesArgs = runtime.Types.Extensions.GetSelect<{ id?: boolean - type?: boolean is_favorite?: boolean created_at?: boolean updated_at?: boolean deleted_at?: boolean + type?: boolean + unknown_customer?: boolean + customer_individual?: boolean | Prisma.Customer$customer_individualArgs + customer_legal?: boolean | Prisma.Customer$customer_legalArgs sales_invoices?: boolean | Prisma.Customer$sales_invoicesArgs - customer_individuals?: boolean | Prisma.Customer$customer_individualsArgs - customer_legals?: boolean | Prisma.Customer$customer_legalsArgs _count?: boolean | Prisma.CustomerCountOutputTypeDefaultArgs }, ExtArgs["result"]["customer"]> @@ -649,35 +678,37 @@ export type CustomerSelect = runtime.Types.Extensions.GetOmit<"id" | "type" | "is_favorite" | "created_at" | "updated_at" | "deleted_at", ExtArgs["result"]["customer"]> +export type CustomerOmit = runtime.Types.Extensions.GetOmit<"id" | "is_favorite" | "created_at" | "updated_at" | "deleted_at" | "type" | "unknown_customer", ExtArgs["result"]["customer"]> export type CustomerInclude = { + customer_individual?: boolean | Prisma.Customer$customer_individualArgs + customer_legal?: boolean | Prisma.Customer$customer_legalArgs sales_invoices?: boolean | Prisma.Customer$sales_invoicesArgs - customer_individuals?: boolean | Prisma.Customer$customer_individualsArgs - customer_legals?: boolean | Prisma.Customer$customer_legalsArgs _count?: boolean | Prisma.CustomerCountOutputTypeDefaultArgs } export type $CustomerPayload = { name: "Customer" objects: { + customer_individual: Prisma.$CustomerIndividualPayload | null + customer_legal: Prisma.$CustomerLegalPayload | null sales_invoices: Prisma.$SalesInvoicePayload[] - customer_individuals: Prisma.$CustomerIndividualPayload | null - customer_legals: Prisma.$CustomerLegalPayload | null } scalars: runtime.Types.Extensions.GetPayloadResult<{ id: string - type: $Enums.CustomerType is_favorite: boolean | null created_at: Date updated_at: Date deleted_at: Date | null + type: $Enums.CustomerType + unknown_customer: runtime.JsonValue | null }, ExtArgs["result"]["customer"]> composites: {} } @@ -1018,9 +1049,9 @@ readonly fields: CustomerFieldRefs; */ export interface Prisma__CustomerClient extends Prisma.PrismaPromise { readonly [Symbol.toStringTag]: "PrismaPromise" + customer_individual = {}>(args?: Prisma.Subset>): Prisma.Prisma__CustomerIndividualClient, T, "findUniqueOrThrow", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions> + customer_legal = {}>(args?: Prisma.Subset>): Prisma.Prisma__CustomerLegalClient, T, "findUniqueOrThrow", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions> sales_invoices = {}>(args?: Prisma.Subset>): Prisma.PrismaPromise, T, "findMany", GlobalOmitOptions> | Null> - customer_individuals = {}>(args?: Prisma.Subset>): Prisma.Prisma__CustomerIndividualClient, T, "findUniqueOrThrow", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions> - customer_legals = {}>(args?: Prisma.Subset>): Prisma.Prisma__CustomerLegalClient, 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. @@ -1051,11 +1082,12 @@ export interface Prisma__CustomerClient - readonly type: Prisma.FieldRef<"Customer", 'CustomerType'> readonly is_favorite: Prisma.FieldRef<"Customer", 'Boolean'> readonly created_at: Prisma.FieldRef<"Customer", 'DateTime'> readonly updated_at: Prisma.FieldRef<"Customer", 'DateTime'> readonly deleted_at: Prisma.FieldRef<"Customer", 'DateTime'> + readonly type: Prisma.FieldRef<"Customer", 'CustomerType'> + readonly unknown_customer: Prisma.FieldRef<"Customer", 'Json'> } @@ -1398,6 +1430,44 @@ export type CustomerDeleteManyArgs = { + /** + * Select specific fields to fetch from the CustomerIndividual + */ + select?: Prisma.CustomerIndividualSelect | null + /** + * Omit specific fields from the CustomerIndividual + */ + omit?: Prisma.CustomerIndividualOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.CustomerIndividualInclude | null + where?: Prisma.CustomerIndividualWhereInput +} + +/** + * Customer.customer_legal + */ +export type Customer$customer_legalArgs = { + /** + * Select specific fields to fetch from the CustomerLegal + */ + select?: Prisma.CustomerLegalSelect | null + /** + * Omit specific fields from the CustomerLegal + */ + omit?: Prisma.CustomerLegalOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.CustomerLegalInclude | null + where?: Prisma.CustomerLegalWhereInput +} + /** * Customer.sales_invoices */ @@ -1422,44 +1492,6 @@ export type Customer$sales_invoicesArgs = { - /** - * Select specific fields to fetch from the CustomerIndividual - */ - select?: Prisma.CustomerIndividualSelect | null - /** - * Omit specific fields from the CustomerIndividual - */ - omit?: Prisma.CustomerIndividualOmit | null - /** - * Choose, which related nodes to fetch as well - */ - include?: Prisma.CustomerIndividualInclude | null - where?: Prisma.CustomerIndividualWhereInput -} - -/** - * Customer.customer_legals - */ -export type Customer$customer_legalsArgs = { - /** - * Select specific fields to fetch from the CustomerLegal - */ - select?: Prisma.CustomerLegalSelect | null - /** - * Omit specific fields from the CustomerLegal - */ - omit?: Prisma.CustomerLegalOmit | null - /** - * Choose, which related nodes to fetch as well - */ - include?: Prisma.CustomerLegalInclude | null - where?: Prisma.CustomerLegalWhereInput -} - /** * Customer without action */ diff --git a/src/generated/prisma/models/CustomerIndividual.ts b/src/generated/prisma/models/CustomerIndividual.ts index 8b5b7d5..f169627 100644 --- a/src/generated/prisma/models/CustomerIndividual.ts +++ b/src/generated/prisma/models/CustomerIndividual.ts @@ -25,64 +25,64 @@ export type AggregateCustomerIndividual = { } export type CustomerIndividualMinAggregateOutputType = { - customer_id: string | null first_name: string | null last_name: string | null national_id: string | null postal_code: string | null economic_code: string | null + customer_id: string | null complex_id: string | null } export type CustomerIndividualMaxAggregateOutputType = { - customer_id: string | null first_name: string | null last_name: string | null national_id: string | null postal_code: string | null economic_code: string | null + customer_id: string | null complex_id: string | null } export type CustomerIndividualCountAggregateOutputType = { - customer_id: number first_name: number last_name: number national_id: number postal_code: number economic_code: number + customer_id: number complex_id: number _all: number } export type CustomerIndividualMinAggregateInputType = { - customer_id?: true first_name?: true last_name?: true national_id?: true postal_code?: true economic_code?: true + customer_id?: true complex_id?: true } export type CustomerIndividualMaxAggregateInputType = { - customer_id?: true first_name?: true last_name?: true national_id?: true postal_code?: true economic_code?: true + customer_id?: true complex_id?: true } export type CustomerIndividualCountAggregateInputType = { - customer_id?: true first_name?: true last_name?: true national_id?: true postal_code?: true economic_code?: true + customer_id?: true complex_id?: true _all?: true } @@ -160,12 +160,12 @@ export type CustomerIndividualGroupByArgs | string first_name?: Prisma.StringFilter<"CustomerIndividual"> | string last_name?: Prisma.StringFilter<"CustomerIndividual"> | string national_id?: Prisma.StringFilter<"CustomerIndividual"> | string postal_code?: Prisma.StringFilter<"CustomerIndividual"> | string economic_code?: Prisma.StringNullableFilter<"CustomerIndividual"> | string | null + customer_id?: Prisma.StringFilter<"CustomerIndividual"> | string complex_id?: Prisma.StringFilter<"CustomerIndividual"> | string customer?: Prisma.XOR complex?: Prisma.XOR } export type CustomerIndividualOrderByWithRelationInput = { - customer_id?: Prisma.SortOrder first_name?: Prisma.SortOrder last_name?: Prisma.SortOrder national_id?: Prisma.SortOrder postal_code?: Prisma.SortOrder economic_code?: Prisma.SortOrderInput | Prisma.SortOrder + customer_id?: Prisma.SortOrder complex_id?: Prisma.SortOrder customer?: Prisma.CustomerOrderByWithRelationInput complex?: Prisma.ComplexOrderByWithRelationInput @@ -232,12 +232,12 @@ export type CustomerIndividualWhereUniqueInput = Prisma.AtLeast<{ }, "customer_id" | "complex_id_national_id"> export type CustomerIndividualOrderByWithAggregationInput = { - customer_id?: Prisma.SortOrder first_name?: Prisma.SortOrder last_name?: Prisma.SortOrder national_id?: Prisma.SortOrder postal_code?: Prisma.SortOrder economic_code?: Prisma.SortOrderInput | Prisma.SortOrder + customer_id?: Prisma.SortOrder complex_id?: Prisma.SortOrder _count?: Prisma.CustomerIndividualCountOrderByAggregateInput _max?: Prisma.CustomerIndividualMaxOrderByAggregateInput @@ -248,12 +248,12 @@ export type CustomerIndividualScalarWhereWithAggregatesInput = { AND?: Prisma.CustomerIndividualScalarWhereWithAggregatesInput | Prisma.CustomerIndividualScalarWhereWithAggregatesInput[] OR?: Prisma.CustomerIndividualScalarWhereWithAggregatesInput[] NOT?: Prisma.CustomerIndividualScalarWhereWithAggregatesInput | Prisma.CustomerIndividualScalarWhereWithAggregatesInput[] - customer_id?: Prisma.StringWithAggregatesFilter<"CustomerIndividual"> | string first_name?: Prisma.StringWithAggregatesFilter<"CustomerIndividual"> | string last_name?: Prisma.StringWithAggregatesFilter<"CustomerIndividual"> | string national_id?: Prisma.StringWithAggregatesFilter<"CustomerIndividual"> | string postal_code?: Prisma.StringWithAggregatesFilter<"CustomerIndividual"> | string economic_code?: Prisma.StringNullableWithAggregatesFilter<"CustomerIndividual"> | string | null + customer_id?: Prisma.StringWithAggregatesFilter<"CustomerIndividual"> | string complex_id?: Prisma.StringWithAggregatesFilter<"CustomerIndividual"> | string } @@ -263,17 +263,17 @@ export type CustomerIndividualCreateInput = { national_id: string postal_code: string economic_code?: string | null - customer: Prisma.CustomerCreateNestedOneWithoutCustomer_individualsInput + customer: Prisma.CustomerCreateNestedOneWithoutCustomer_individualInput complex: Prisma.ComplexCreateNestedOneWithoutCustomerIndividualsInput } export type CustomerIndividualUncheckedCreateInput = { - customer_id: string first_name: string last_name: string national_id: string postal_code: string economic_code?: string | null + customer_id: string complex_id: string } @@ -283,27 +283,27 @@ export type CustomerIndividualUpdateInput = { national_id?: Prisma.StringFieldUpdateOperationsInput | string postal_code?: Prisma.StringFieldUpdateOperationsInput | string economic_code?: Prisma.NullableStringFieldUpdateOperationsInput | string | null - customer?: Prisma.CustomerUpdateOneRequiredWithoutCustomer_individualsNestedInput + customer?: Prisma.CustomerUpdateOneRequiredWithoutCustomer_individualNestedInput complex?: Prisma.ComplexUpdateOneRequiredWithoutCustomerIndividualsNestedInput } export type CustomerIndividualUncheckedUpdateInput = { - customer_id?: Prisma.StringFieldUpdateOperationsInput | string first_name?: Prisma.StringFieldUpdateOperationsInput | string last_name?: Prisma.StringFieldUpdateOperationsInput | string national_id?: Prisma.StringFieldUpdateOperationsInput | string postal_code?: Prisma.StringFieldUpdateOperationsInput | string economic_code?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + customer_id?: Prisma.StringFieldUpdateOperationsInput | string complex_id?: Prisma.StringFieldUpdateOperationsInput | string } export type CustomerIndividualCreateManyInput = { - customer_id: string first_name: string last_name: string national_id: string postal_code: string economic_code?: string | null + customer_id: string complex_id: string } @@ -316,12 +316,12 @@ export type CustomerIndividualUpdateManyMutationInput = { } export type CustomerIndividualUncheckedUpdateManyInput = { - customer_id?: Prisma.StringFieldUpdateOperationsInput | string first_name?: Prisma.StringFieldUpdateOperationsInput | string last_name?: Prisma.StringFieldUpdateOperationsInput | string national_id?: Prisma.StringFieldUpdateOperationsInput | string postal_code?: Prisma.StringFieldUpdateOperationsInput | string economic_code?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + customer_id?: Prisma.StringFieldUpdateOperationsInput | string complex_id?: Prisma.StringFieldUpdateOperationsInput | string } @@ -352,32 +352,32 @@ export type CustomerIndividualComplex_idNational_idCompoundUniqueInput = { } export type CustomerIndividualCountOrderByAggregateInput = { - customer_id?: Prisma.SortOrder first_name?: Prisma.SortOrder last_name?: Prisma.SortOrder national_id?: Prisma.SortOrder postal_code?: Prisma.SortOrder economic_code?: Prisma.SortOrder + customer_id?: Prisma.SortOrder complex_id?: Prisma.SortOrder } export type CustomerIndividualMaxOrderByAggregateInput = { - customer_id?: Prisma.SortOrder first_name?: Prisma.SortOrder last_name?: Prisma.SortOrder national_id?: Prisma.SortOrder postal_code?: Prisma.SortOrder economic_code?: Prisma.SortOrder + customer_id?: Prisma.SortOrder complex_id?: Prisma.SortOrder } export type CustomerIndividualMinOrderByAggregateInput = { - customer_id?: Prisma.SortOrder first_name?: Prisma.SortOrder last_name?: Prisma.SortOrder national_id?: Prisma.SortOrder postal_code?: Prisma.SortOrder economic_code?: Prisma.SortOrder + customer_id?: Prisma.SortOrder complex_id?: Prisma.SortOrder } @@ -461,16 +461,16 @@ export type CustomerIndividualCreateWithoutComplexInput = { national_id: string postal_code: string economic_code?: string | null - customer: Prisma.CustomerCreateNestedOneWithoutCustomer_individualsInput + customer: Prisma.CustomerCreateNestedOneWithoutCustomer_individualInput } export type CustomerIndividualUncheckedCreateWithoutComplexInput = { - customer_id: string first_name: string last_name: string national_id: string postal_code: string economic_code?: string | null + customer_id: string } export type CustomerIndividualCreateOrConnectWithoutComplexInput = { @@ -503,12 +503,12 @@ export type CustomerIndividualScalarWhereInput = { AND?: Prisma.CustomerIndividualScalarWhereInput | Prisma.CustomerIndividualScalarWhereInput[] OR?: Prisma.CustomerIndividualScalarWhereInput[] NOT?: Prisma.CustomerIndividualScalarWhereInput | Prisma.CustomerIndividualScalarWhereInput[] - customer_id?: Prisma.StringFilter<"CustomerIndividual"> | string first_name?: Prisma.StringFilter<"CustomerIndividual"> | string last_name?: Prisma.StringFilter<"CustomerIndividual"> | string national_id?: Prisma.StringFilter<"CustomerIndividual"> | string postal_code?: Prisma.StringFilter<"CustomerIndividual"> | string economic_code?: Prisma.StringNullableFilter<"CustomerIndividual"> | string | null + customer_id?: Prisma.StringFilter<"CustomerIndividual"> | string complex_id?: Prisma.StringFilter<"CustomerIndividual"> | string } @@ -565,12 +565,12 @@ export type CustomerIndividualUncheckedUpdateWithoutCustomerInput = { } export type CustomerIndividualCreateManyComplexInput = { - customer_id: string first_name: string last_name: string national_id: string postal_code: string economic_code?: string | null + customer_id: string } export type CustomerIndividualUpdateWithoutComplexInput = { @@ -579,36 +579,36 @@ export type CustomerIndividualUpdateWithoutComplexInput = { national_id?: Prisma.StringFieldUpdateOperationsInput | string postal_code?: Prisma.StringFieldUpdateOperationsInput | string economic_code?: Prisma.NullableStringFieldUpdateOperationsInput | string | null - customer?: Prisma.CustomerUpdateOneRequiredWithoutCustomer_individualsNestedInput + customer?: Prisma.CustomerUpdateOneRequiredWithoutCustomer_individualNestedInput } export type CustomerIndividualUncheckedUpdateWithoutComplexInput = { - customer_id?: Prisma.StringFieldUpdateOperationsInput | string first_name?: Prisma.StringFieldUpdateOperationsInput | string last_name?: Prisma.StringFieldUpdateOperationsInput | string national_id?: Prisma.StringFieldUpdateOperationsInput | string postal_code?: Prisma.StringFieldUpdateOperationsInput | string economic_code?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + customer_id?: Prisma.StringFieldUpdateOperationsInput | string } export type CustomerIndividualUncheckedUpdateManyWithoutComplexInput = { - customer_id?: Prisma.StringFieldUpdateOperationsInput | string first_name?: Prisma.StringFieldUpdateOperationsInput | string last_name?: Prisma.StringFieldUpdateOperationsInput | string national_id?: Prisma.StringFieldUpdateOperationsInput | string postal_code?: Prisma.StringFieldUpdateOperationsInput | string economic_code?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + customer_id?: Prisma.StringFieldUpdateOperationsInput | string } export type CustomerIndividualSelect = runtime.Types.Extensions.GetSelect<{ - customer_id?: boolean first_name?: boolean last_name?: boolean national_id?: boolean postal_code?: boolean economic_code?: boolean + customer_id?: boolean complex_id?: boolean customer?: boolean | Prisma.CustomerDefaultArgs complex?: boolean | Prisma.ComplexDefaultArgs @@ -617,16 +617,16 @@ export type CustomerIndividualSelect = runtime.Types.Extensions.GetOmit<"customer_id" | "first_name" | "last_name" | "national_id" | "postal_code" | "economic_code" | "complex_id", ExtArgs["result"]["customerIndividual"]> +export type CustomerIndividualOmit = runtime.Types.Extensions.GetOmit<"first_name" | "last_name" | "national_id" | "postal_code" | "economic_code" | "customer_id" | "complex_id", ExtArgs["result"]["customerIndividual"]> export type CustomerIndividualInclude = { customer?: boolean | Prisma.CustomerDefaultArgs complex?: boolean | Prisma.ComplexDefaultArgs @@ -639,12 +639,12 @@ export type $CustomerIndividualPayload } scalars: runtime.Types.Extensions.GetPayloadResult<{ - customer_id: string first_name: string last_name: string national_id: string postal_code: string economic_code: string | null + customer_id: string complex_id: string }, ExtArgs["result"]["customerIndividual"]> composites: {} @@ -729,8 +729,8 @@ export interface CustomerIndividualDelegate(args?: Prisma.SelectSubset>): Prisma.PrismaPromise, T, "findMany", GlobalOmitOptions>> @@ -1017,12 +1017,12 @@ export interface Prisma__CustomerIndividualClient readonly first_name: Prisma.FieldRef<"CustomerIndividual", 'String'> readonly last_name: Prisma.FieldRef<"CustomerIndividual", 'String'> readonly national_id: Prisma.FieldRef<"CustomerIndividual", 'String'> readonly postal_code: Prisma.FieldRef<"CustomerIndividual", 'String'> readonly economic_code: Prisma.FieldRef<"CustomerIndividual", 'String'> + readonly customer_id: Prisma.FieldRef<"CustomerIndividual", 'String'> readonly complex_id: Prisma.FieldRef<"CustomerIndividual", 'String'> } diff --git a/src/generated/prisma/models/CustomerLegal.ts b/src/generated/prisma/models/CustomerLegal.ts index 6b090d9..9521cfd 100644 --- a/src/generated/prisma/models/CustomerLegal.ts +++ b/src/generated/prisma/models/CustomerLegal.ts @@ -25,58 +25,58 @@ export type AggregateCustomerLegal = { } export type CustomerLegalMinAggregateOutputType = { - customer_id: string | null company_name: string | null economic_code: string | null registration_number: string | null postal_code: string | null + customer_id: string | null complex_id: string | null } export type CustomerLegalMaxAggregateOutputType = { - customer_id: string | null company_name: string | null economic_code: string | null registration_number: string | null postal_code: string | null + customer_id: string | null complex_id: string | null } export type CustomerLegalCountAggregateOutputType = { - customer_id: number company_name: number economic_code: number registration_number: number postal_code: number + customer_id: number complex_id: number _all: number } export type CustomerLegalMinAggregateInputType = { - customer_id?: true company_name?: true economic_code?: true registration_number?: true postal_code?: true + customer_id?: true complex_id?: true } export type CustomerLegalMaxAggregateInputType = { - customer_id?: true company_name?: true economic_code?: true registration_number?: true postal_code?: true + customer_id?: true complex_id?: true } export type CustomerLegalCountAggregateInputType = { - customer_id?: true company_name?: true economic_code?: true registration_number?: true postal_code?: true + customer_id?: true complex_id?: true _all?: true } @@ -154,11 +154,11 @@ export type CustomerLegalGroupByArgs | string company_name?: Prisma.StringFilter<"CustomerLegal"> | string economic_code?: Prisma.StringFilter<"CustomerLegal"> | string registration_number?: Prisma.StringFilter<"CustomerLegal"> | string postal_code?: Prisma.StringFilter<"CustomerLegal"> | string + customer_id?: Prisma.StringFilter<"CustomerLegal"> | string complex_id?: Prisma.StringFilter<"CustomerLegal"> | string customer?: Prisma.XOR complex?: Prisma.XOR } export type CustomerLegalOrderByWithRelationInput = { - customer_id?: Prisma.SortOrder company_name?: Prisma.SortOrder economic_code?: Prisma.SortOrder registration_number?: Prisma.SortOrder postal_code?: Prisma.SortOrder + customer_id?: Prisma.SortOrder complex_id?: Prisma.SortOrder customer?: Prisma.CustomerOrderByWithRelationInput complex?: Prisma.ComplexOrderByWithRelationInput @@ -222,11 +222,11 @@ export type CustomerLegalWhereUniqueInput = Prisma.AtLeast<{ }, "customer_id" | "complex_id_registration_number"> export type CustomerLegalOrderByWithAggregationInput = { - customer_id?: Prisma.SortOrder company_name?: Prisma.SortOrder economic_code?: Prisma.SortOrder registration_number?: Prisma.SortOrder postal_code?: Prisma.SortOrder + customer_id?: Prisma.SortOrder complex_id?: Prisma.SortOrder _count?: Prisma.CustomerLegalCountOrderByAggregateInput _max?: Prisma.CustomerLegalMaxOrderByAggregateInput @@ -237,11 +237,11 @@ export type CustomerLegalScalarWhereWithAggregatesInput = { AND?: Prisma.CustomerLegalScalarWhereWithAggregatesInput | Prisma.CustomerLegalScalarWhereWithAggregatesInput[] OR?: Prisma.CustomerLegalScalarWhereWithAggregatesInput[] NOT?: Prisma.CustomerLegalScalarWhereWithAggregatesInput | Prisma.CustomerLegalScalarWhereWithAggregatesInput[] - customer_id?: Prisma.StringWithAggregatesFilter<"CustomerLegal"> | string company_name?: Prisma.StringWithAggregatesFilter<"CustomerLegal"> | string economic_code?: Prisma.StringWithAggregatesFilter<"CustomerLegal"> | string registration_number?: Prisma.StringWithAggregatesFilter<"CustomerLegal"> | string postal_code?: Prisma.StringWithAggregatesFilter<"CustomerLegal"> | string + customer_id?: Prisma.StringWithAggregatesFilter<"CustomerLegal"> | string complex_id?: Prisma.StringWithAggregatesFilter<"CustomerLegal"> | string } @@ -250,16 +250,16 @@ export type CustomerLegalCreateInput = { economic_code: string registration_number: string postal_code: string - customer: Prisma.CustomerCreateNestedOneWithoutCustomer_legalsInput + customer: Prisma.CustomerCreateNestedOneWithoutCustomer_legalInput complex: Prisma.ComplexCreateNestedOneWithoutCustomerLegalsInput } export type CustomerLegalUncheckedCreateInput = { - customer_id: string company_name: string economic_code: string registration_number: string postal_code: string + customer_id: string complex_id: string } @@ -268,25 +268,25 @@ export type CustomerLegalUpdateInput = { economic_code?: Prisma.StringFieldUpdateOperationsInput | string registration_number?: Prisma.StringFieldUpdateOperationsInput | string postal_code?: Prisma.StringFieldUpdateOperationsInput | string - customer?: Prisma.CustomerUpdateOneRequiredWithoutCustomer_legalsNestedInput + customer?: Prisma.CustomerUpdateOneRequiredWithoutCustomer_legalNestedInput complex?: Prisma.ComplexUpdateOneRequiredWithoutCustomerLegalsNestedInput } export type CustomerLegalUncheckedUpdateInput = { - customer_id?: Prisma.StringFieldUpdateOperationsInput | string company_name?: Prisma.StringFieldUpdateOperationsInput | string economic_code?: Prisma.StringFieldUpdateOperationsInput | string registration_number?: Prisma.StringFieldUpdateOperationsInput | string postal_code?: Prisma.StringFieldUpdateOperationsInput | string + customer_id?: Prisma.StringFieldUpdateOperationsInput | string complex_id?: Prisma.StringFieldUpdateOperationsInput | string } export type CustomerLegalCreateManyInput = { - customer_id: string company_name: string economic_code: string registration_number: string postal_code: string + customer_id: string complex_id: string } @@ -298,11 +298,11 @@ export type CustomerLegalUpdateManyMutationInput = { } export type CustomerLegalUncheckedUpdateManyInput = { - customer_id?: Prisma.StringFieldUpdateOperationsInput | string company_name?: Prisma.StringFieldUpdateOperationsInput | string economic_code?: Prisma.StringFieldUpdateOperationsInput | string registration_number?: Prisma.StringFieldUpdateOperationsInput | string postal_code?: Prisma.StringFieldUpdateOperationsInput | string + customer_id?: Prisma.StringFieldUpdateOperationsInput | string complex_id?: Prisma.StringFieldUpdateOperationsInput | string } @@ -333,29 +333,29 @@ export type CustomerLegalComplex_idRegistration_numberCompoundUniqueInput = { } export type CustomerLegalCountOrderByAggregateInput = { - customer_id?: Prisma.SortOrder company_name?: Prisma.SortOrder economic_code?: Prisma.SortOrder registration_number?: Prisma.SortOrder postal_code?: Prisma.SortOrder + customer_id?: Prisma.SortOrder complex_id?: Prisma.SortOrder } export type CustomerLegalMaxOrderByAggregateInput = { - customer_id?: Prisma.SortOrder company_name?: Prisma.SortOrder economic_code?: Prisma.SortOrder registration_number?: Prisma.SortOrder postal_code?: Prisma.SortOrder + customer_id?: Prisma.SortOrder complex_id?: Prisma.SortOrder } export type CustomerLegalMinOrderByAggregateInput = { - customer_id?: Prisma.SortOrder company_name?: Prisma.SortOrder economic_code?: Prisma.SortOrder registration_number?: Prisma.SortOrder postal_code?: Prisma.SortOrder + customer_id?: Prisma.SortOrder complex_id?: Prisma.SortOrder } @@ -438,15 +438,15 @@ export type CustomerLegalCreateWithoutComplexInput = { economic_code: string registration_number: string postal_code: string - customer: Prisma.CustomerCreateNestedOneWithoutCustomer_legalsInput + customer: Prisma.CustomerCreateNestedOneWithoutCustomer_legalInput } export type CustomerLegalUncheckedCreateWithoutComplexInput = { - customer_id: string company_name: string economic_code: string registration_number: string postal_code: string + customer_id: string } export type CustomerLegalCreateOrConnectWithoutComplexInput = { @@ -479,11 +479,11 @@ export type CustomerLegalScalarWhereInput = { AND?: Prisma.CustomerLegalScalarWhereInput | Prisma.CustomerLegalScalarWhereInput[] OR?: Prisma.CustomerLegalScalarWhereInput[] NOT?: Prisma.CustomerLegalScalarWhereInput | Prisma.CustomerLegalScalarWhereInput[] - customer_id?: Prisma.StringFilter<"CustomerLegal"> | string company_name?: Prisma.StringFilter<"CustomerLegal"> | string economic_code?: Prisma.StringFilter<"CustomerLegal"> | string registration_number?: Prisma.StringFilter<"CustomerLegal"> | string postal_code?: Prisma.StringFilter<"CustomerLegal"> | string + customer_id?: Prisma.StringFilter<"CustomerLegal"> | string complex_id?: Prisma.StringFilter<"CustomerLegal"> | string } @@ -536,11 +536,11 @@ export type CustomerLegalUncheckedUpdateWithoutCustomerInput = { } export type CustomerLegalCreateManyComplexInput = { - customer_id: string company_name: string economic_code: string registration_number: string postal_code: string + customer_id: string } export type CustomerLegalUpdateWithoutComplexInput = { @@ -548,33 +548,33 @@ export type CustomerLegalUpdateWithoutComplexInput = { economic_code?: Prisma.StringFieldUpdateOperationsInput | string registration_number?: Prisma.StringFieldUpdateOperationsInput | string postal_code?: Prisma.StringFieldUpdateOperationsInput | string - customer?: Prisma.CustomerUpdateOneRequiredWithoutCustomer_legalsNestedInput + customer?: Prisma.CustomerUpdateOneRequiredWithoutCustomer_legalNestedInput } export type CustomerLegalUncheckedUpdateWithoutComplexInput = { - customer_id?: Prisma.StringFieldUpdateOperationsInput | string company_name?: Prisma.StringFieldUpdateOperationsInput | string economic_code?: Prisma.StringFieldUpdateOperationsInput | string registration_number?: Prisma.StringFieldUpdateOperationsInput | string postal_code?: Prisma.StringFieldUpdateOperationsInput | string + customer_id?: Prisma.StringFieldUpdateOperationsInput | string } export type CustomerLegalUncheckedUpdateManyWithoutComplexInput = { - customer_id?: Prisma.StringFieldUpdateOperationsInput | string company_name?: Prisma.StringFieldUpdateOperationsInput | string economic_code?: Prisma.StringFieldUpdateOperationsInput | string registration_number?: Prisma.StringFieldUpdateOperationsInput | string postal_code?: Prisma.StringFieldUpdateOperationsInput | string + customer_id?: Prisma.StringFieldUpdateOperationsInput | string } export type CustomerLegalSelect = runtime.Types.Extensions.GetSelect<{ - customer_id?: boolean company_name?: boolean economic_code?: boolean registration_number?: boolean postal_code?: boolean + customer_id?: boolean complex_id?: boolean customer?: boolean | Prisma.CustomerDefaultArgs complex?: boolean | Prisma.ComplexDefaultArgs @@ -583,15 +583,15 @@ export type CustomerLegalSelect = runtime.Types.Extensions.GetOmit<"customer_id" | "company_name" | "economic_code" | "registration_number" | "postal_code" | "complex_id", ExtArgs["result"]["customerLegal"]> +export type CustomerLegalOmit = runtime.Types.Extensions.GetOmit<"company_name" | "economic_code" | "registration_number" | "postal_code" | "customer_id" | "complex_id", ExtArgs["result"]["customerLegal"]> export type CustomerLegalInclude = { customer?: boolean | Prisma.CustomerDefaultArgs complex?: boolean | Prisma.ComplexDefaultArgs @@ -604,11 +604,11 @@ export type $CustomerLegalPayload } scalars: runtime.Types.Extensions.GetPayloadResult<{ - customer_id: string company_name: string economic_code: string registration_number: string postal_code: string + customer_id: string complex_id: string }, ExtArgs["result"]["customerLegal"]> composites: {} @@ -693,8 +693,8 @@ export interface CustomerLegalDelegate(args?: Prisma.SelectSubset>): Prisma.PrismaPromise, T, "findMany", GlobalOmitOptions>> @@ -981,11 +981,11 @@ export interface Prisma__CustomerLegalClient readonly company_name: Prisma.FieldRef<"CustomerLegal", 'String'> readonly economic_code: Prisma.FieldRef<"CustomerLegal", 'String'> readonly registration_number: Prisma.FieldRef<"CustomerLegal", 'String'> readonly postal_code: Prisma.FieldRef<"CustomerLegal", 'String'> + readonly customer_id: Prisma.FieldRef<"CustomerLegal", 'String'> readonly complex_id: Prisma.FieldRef<"CustomerLegal", 'String'> } diff --git a/src/modules/consumer/business-activities/complexes/poses/sales-invoices/sales-invoices.service.ts b/src/modules/consumer/business-activities/complexes/poses/sales-invoices/sales-invoices.service.ts index a8bc2b3..03b1c24 100644 --- a/src/modules/consumer/business-activities/complexes/poses/sales-invoices/sales-invoices.service.ts +++ b/src/modules/consumer/business-activities/complexes/poses/sales-invoices/sales-invoices.service.ts @@ -71,7 +71,7 @@ export class SalesInvoicesService { customer: { select: { type: true, - customer_individuals: { + customer_individual: { select: { economic_code: true, first_name: true, @@ -80,7 +80,7 @@ export class SalesInvoicesService { national_id: true, }, }, - customer_legals: { + customer_legal: { select: { economic_code: true, postal_code: true, diff --git a/src/modules/consumer/consumer.controller.ts b/src/modules/consumer/consumer.controller.ts index 7110f90..d924785 100644 --- a/src/modules/consumer/consumer.controller.ts +++ b/src/modules/consumer/consumer.controller.ts @@ -1,4 +1,4 @@ -import { ConsumerInfoInfo } from '@/common/decorators/consumerInfo.decorator' +import { ConsumerInfo } from '@/common/decorators/consumerInfo.decorator' import { Controller, Get } from '@nestjs/common' import { ApiTags } from '@nestjs/swagger' import { ConsumerService } from './consumer.service' @@ -9,7 +9,7 @@ export class ConsumerController { constructor(private service: ConsumerService) {} @Get('') - async findOne(@ConsumerInfoInfo('user_id') userId: string) { + async findOne(@ConsumerInfo('user_id') userId: string) { return this.service.getInfo(userId) } } diff --git a/src/modules/consumer/consumer.module.ts b/src/modules/consumer/consumer.module.ts index 14e4f8d..e3bf9e9 100644 --- a/src/modules/consumer/consumer.module.ts +++ b/src/modules/consumer/consumer.module.ts @@ -5,10 +5,15 @@ import { ConsumerBusinessActivitiesModule } from './business-activities/business import { ConsumerController } from './consumer.controller' import { ConsumerMiddleware } from './consumer.middleware' import { ConsumerService } from './consumer.service' +import { ConsumerCustomersModule } from './customers/customers.module' @Module({ controllers: [ConsumerController], - imports: [ConsumerAccountsModule, ConsumerBusinessActivitiesModule], + imports: [ + ConsumerAccountsModule, + ConsumerBusinessActivitiesModule, + ConsumerCustomersModule, + ], providers: [JwtService, ConsumerService], }) export class ConsumerModule implements NestModule { diff --git a/src/modules/consumer/customers/customers.controller.ts b/src/modules/consumer/customers/customers.controller.ts new file mode 100644 index 0000000..bc66bed --- /dev/null +++ b/src/modules/consumer/customers/customers.controller.ts @@ -0,0 +1,40 @@ +import { ConsumerInfo } from '@/common/decorators/consumerInfo.decorator' +import { Body, Controller, Get, Param, Patch } from '@nestjs/common' +import { consumerCustomersService } from './customers.service' +import { + UpdateCustomerIndividualDto, + UpdateCustomerLegalDto, +} from './dto/create-customers.dto' + +@Controller('consumer/customers') +export class consumerCustomersController { + constructor(private readonly service: consumerCustomersService) {} + + @Get() + async findAll(@ConsumerInfo('user_id') userId: string) { + return this.service.findAll(userId) + } + + @Get(':id') + async findOne(@ConsumerInfo('user_id') userId: string, @Param('id') id: string) { + return this.service.findOne(userId, id) + } + + @Patch(':id/legal') + async updateLegal( + @ConsumerInfo('user_id') userId: string, + @Param('id') id: string, + @Body() data: UpdateCustomerLegalDto, + ) { + return this.service.updateLegal(userId, id, data) + } + + @Patch(':id/individual') + async updateIndividual( + @ConsumerInfo('user_id') userId: string, + @Param('id') id: string, + @Body() data: UpdateCustomerIndividualDto, + ) { + return this.service.updateIndividual(userId, id, data) + } +} diff --git a/src/modules/consumer/customers/customers.module.ts b/src/modules/consumer/customers/customers.module.ts new file mode 100644 index 0000000..d75b53e --- /dev/null +++ b/src/modules/consumer/customers/customers.module.ts @@ -0,0 +1,12 @@ +import { PrismaModule } from '@/prisma/prisma.module' +import { Module } from '@nestjs/common' +import { consumerCustomersController } from './customers.controller' +import { consumerCustomersService } from './customers.service' +import { ConsumerSaleInvoicesModule } from './sale-invoices/sale-invoices.module' + +@Module({ + imports: [PrismaModule, ConsumerSaleInvoicesModule], + controllers: [consumerCustomersController], + providers: [consumerCustomersService], +}) +export class ConsumerCustomersModule {} diff --git a/src/modules/consumer/customers/customers.service.ts b/src/modules/consumer/customers/customers.service.ts new file mode 100644 index 0000000..04ec855 --- /dev/null +++ b/src/modules/consumer/customers/customers.service.ts @@ -0,0 +1,145 @@ +import { CustomerSelect, CustomerWhereInput } from '@/generated/prisma/models' +import { PrismaService } from '@/prisma/prisma.service' +import { Injectable } from '@nestjs/common' +import { ResponseMapper } from 'common/response/response-mapper' +import { + UpdateCustomerIndividualDto, + UpdateCustomerLegalDto, +} from './dto/create-customers.dto' + +@Injectable() +export class consumerCustomersService { + constructor(private readonly prisma: PrismaService) {} + + defaultSelect: CustomerSelect = { + id: true, + type: true, + is_favorite: true, + created_at: true, + customer_individual: { + select: { + first_name: true, + last_name: true, + national_id: true, + postal_code: true, + economic_code: true, + }, + }, + customer_legal: { + select: { + company_name: true, + registration_number: true, + postal_code: true, + economic_code: true, + }, + }, + } + + private defaultWhere(user_id: string): CustomerWhereInput { + return { + OR: [ + { + customer_individual: { + complex: { + business_activity: { + user_id, + }, + }, + }, + }, + { + customer_legal: { + complex: { + business_activity: { + user_id, + }, + }, + }, + }, + ], + } + } + + async findAll(user_id: string, page = 1, pageSize = 10) { + const [customers, count] = await this.prisma.$transaction(async tx => [ + await tx.customer.findMany({ + where: this.defaultWhere(user_id), + select: this.defaultSelect, + skip: (page - 1) * pageSize, + take: 10, + }), + await tx.customer.count({ + where: this.defaultWhere(user_id), + }), + ]) + return ResponseMapper.paginate(customers, { count, page, pageSize }) + } + + async findOne(user_id: string, customer_id: string) { + const customer = await this.prisma.customer.findUniqueOrThrow({ + where: { + ...this.defaultWhere(user_id), + id: customer_id, + }, + select: this.defaultSelect, + }) + + console.log(customer) + + return ResponseMapper.single(customer) + } + + async updateLegal(user_id: string, customer_id: string, data: UpdateCustomerLegalDto) { + const customer = await this.prisma.customer.update({ + where: { + id: customer_id, + customer_legal: { + complex: { + business_activity: { + user_id, + }, + }, + }, + }, + data: { + is_favorite: data.is_favorite, + customer_legal: { + update: { + ...data, + }, + }, + }, + }) + + return ResponseMapper.update(customer) + } + + async updateIndividual( + user_id: string, + customer_id: string, + data: UpdateCustomerIndividualDto, + ) { + const customer = await this.prisma.customer.update({ + where: { + id: customer_id, + customer_individual: { + complex: { + business_activity: { + user_id, + }, + }, + }, + }, + data: { + is_favorite: data.is_favorite, + + customer_individual: { + update: { + ...data, + }, + }, + }, + }) + return ResponseMapper.update(customer) + } +} diff --git a/src/modules/consumer/customers/dto/create-customers.dto.ts b/src/modules/consumer/customers/dto/create-customers.dto.ts new file mode 100644 index 0000000..1099b32 --- /dev/null +++ b/src/modules/consumer/customers/dto/create-customers.dto.ts @@ -0,0 +1,74 @@ +import { ApiProperty } from '@nestjs/swagger' +import { + IsBoolean, + IsNumber, + IsOptional, + IsString, + MaxLength, + MinLength, +} from 'class-validator' + +export class UpdateCustomerLegalDto { + @IsString() + @IsOptional() + @ApiProperty({ required: true }) + company_name?: string + + @IsString() + @IsOptional() + @ApiProperty({ required: true }) + economic_code?: string + + @IsString() + @IsOptional() + @ApiProperty({ required: true }) + registration_number?: string + + @IsNumber() + @MaxLength(10) + @MinLength(10) + @IsOptional() + @ApiProperty({ maxLength: 10, minLength: 10 }) + postal_code?: string + + @IsBoolean() + @IsOptional() + @ApiProperty({ required: false }) + is_favorite?: boolean +} + +export class UpdateCustomerIndividualDto { + @IsString() + @IsOptional() + @ApiProperty({ required: true }) + first_name?: string + + @IsString() + @IsOptional() + @ApiProperty({ required: true }) + last_name?: string + + @IsNumber() + @MaxLength(10) + @MinLength(10) + @IsOptional() + @ApiProperty({ required: true, maxLength: 10, minLength: 10 }) + national_code?: string + + @IsNumber() + @MaxLength(10) + @MinLength(10) + @IsOptional() + @ApiProperty({ maxLength: 10, minLength: 10 }) + postal_code?: string + + @IsBoolean() + @IsOptional() + @ApiProperty({ required: false }) + is_favorite?: boolean + + @IsNumber() + @IsOptional() + @ApiProperty({ required: false }) + economic_code?: string +} diff --git a/src/modules/consumer/customers/sale-invoices/sale-invoices.controller.ts b/src/modules/consumer/customers/sale-invoices/sale-invoices.controller.ts new file mode 100644 index 0000000..5bd30bb --- /dev/null +++ b/src/modules/consumer/customers/sale-invoices/sale-invoices.controller.ts @@ -0,0 +1,27 @@ +import { TokenAccount } from '@/common/decorators/tokenInfo.decorator' +import { Controller, Get, Param } from '@nestjs/common' +import { ApiTags } from '@nestjs/swagger' +import { CustomerSaleInvoicesService } from './sale-invoices.service' + +@ApiTags('customerSaleInvoices') +@Controller('consumer/customers/:customerId/sale-invoices') +export class CustomerSaleInvoicesController { + constructor(private readonly service: CustomerSaleInvoicesService) {} + + @Get() + async findAll( + @TokenAccount('userId') userId: string, + @Param('customerId') customerId: string, + ) { + return this.service.findAll(userId, customerId) + } + + @Get(':id') + async findOne( + @TokenAccount('userId') userId: string, + @Param('customerId') customerId: string, + @Param('id') id: string, + ) { + return this.service.findOne(userId, customerId, id) + } +} diff --git a/src/modules/consumer/customers/sale-invoices/sale-invoices.module.ts b/src/modules/consumer/customers/sale-invoices/sale-invoices.module.ts new file mode 100644 index 0000000..43b993f --- /dev/null +++ b/src/modules/consumer/customers/sale-invoices/sale-invoices.module.ts @@ -0,0 +1,11 @@ +import { PrismaModule } from '@/prisma/prisma.module' +import { Module } from '@nestjs/common' +import { CustomerSaleInvoicesController } from './sale-invoices.controller' +import { CustomerSaleInvoicesService } from './sale-invoices.service' + +@Module({ + imports: [PrismaModule], + controllers: [CustomerSaleInvoicesController], + providers: [CustomerSaleInvoicesService], +}) +export class ConsumerSaleInvoicesModule {} diff --git a/src/modules/consumer/customers/sale-invoices/sale-invoices.service.ts b/src/modules/consumer/customers/sale-invoices/sale-invoices.service.ts new file mode 100644 index 0000000..d593319 --- /dev/null +++ b/src/modules/consumer/customers/sale-invoices/sale-invoices.service.ts @@ -0,0 +1,152 @@ +import { SalesInvoiceSelect, SalesInvoiceWhereInput } from '@/generated/prisma/models' +import { PrismaService } from '@/prisma/prisma.service' +import { Injectable } from '@nestjs/common' +import { ResponseMapper } from 'common/response/response-mapper' + +@Injectable() +export class CustomerSaleInvoicesService { + constructor(private readonly prisma: PrismaService) {} + + defaultSelect: SalesInvoiceSelect = { + id: true, + code: true, + invoice_date: true, + notes: true, + total_amount: true, + pos: { + select: { + id: true, + name: true, + complex: { + select: { + id: true, + name: true, + business_activity: { + select: { + id: true, + name: true, + }, + }, + }, + }, + }, + }, + account: { + select: { + role: true, + user: { + select: { + first_name: true, + last_name: true, + }, + }, + account: { + select: { + username: true, + }, + }, + }, + }, + created_at: true, + } + + async findAll(user_id: string, customer_id: string, page = 1, pageSize = 10) { + const salesWhere: SalesInvoiceWhereInput = { + customer_id, + pos: { + complex: { + business_activity: { + user_id, + }, + }, + }, + } + + const [accounts, count] = await this.prisma.$transaction(async tx => [ + await tx.salesInvoice.findMany({ + where: salesWhere, + select: { + ...this.defaultSelect, + _count: { + select: { + items: true, + }, + }, + }, + skip: (page - 1) * pageSize, + take: 10, + }), + await tx.salesInvoice.count({ + where: salesWhere, + }), + ]) + + const mappedAccounts = accounts.map(account => { + const { _count, ...rest } = account + return { + ...rest, + items_count: _count.items, + } + }) + + return ResponseMapper.paginate(mappedAccounts, { + count, + page, + pageSize, + }) + } + + async findOne(user_id: string, customer_id: string, id: string) { + const account = await this.prisma.salesInvoice.findUniqueOrThrow({ + where: { + id, + customer_id, + pos: { + complex: { + business_activity: { + user_id, + }, + }, + }, + }, + select: { + ...this.defaultSelect, + + items: { + select: { + id: true, + notes: true, + unit_price: true, + discount: true, + quantity: true, + total_amount: true, + payload: true, + good: { + select: { + id: true, + name: true, + pricing_model: true, + unit_type: true, + category: { + select: { + id: true, + name: true, + image_url: true, + }, + }, + }, + }, + }, + }, + payments: { + select: { + amount: true, + paid_at: true, + payment_method: true, + }, + }, + }, + }) + return ResponseMapper.single(account) + } +} diff --git a/src/modules/pos/sales-invoices/sales-invoices.service.ts b/src/modules/pos/sales-invoices/sales-invoices.service.ts index 5e5b743..ae4e01f 100644 --- a/src/modules/pos/sales-invoices/sales-invoices.service.ts +++ b/src/modules/pos/sales-invoices/sales-invoices.service.ts @@ -40,6 +40,8 @@ export class SalesInvoicesService { } async create(data: CreateSalesInvoiceDto, posInfo: IPosPayload) { + console.log(posInfo) + data.invoice_date = new Date(data.invoice_date).toISOString() as any const { complex_id, pos_id, consumer_account_id } = posInfo