diff --git a/prisma/migrations/20260415113308_init/migration.sql b/prisma/migrations/20260415113308_init/migration.sql new file mode 100644 index 0000000..1ac1011 --- /dev/null +++ b/prisma/migrations/20260415113308_init/migration.sql @@ -0,0 +1,2 @@ +-- AlterTable +ALTER TABLE `goods` ADD COLUMN `image_url` VARCHAR(255) NULL; diff --git a/prisma/migrations/20260416100419_init/migration.sql b/prisma/migrations/20260416100419_init/migration.sql new file mode 100644 index 0000000..42ca7fd --- /dev/null +++ b/prisma/migrations/20260416100419_init/migration.sql @@ -0,0 +1,78 @@ +/* + Warnings: + + - You are about to drop the column `consumer_id` on the `licenses` table. All the data in the column will be lost. + - You are about to drop the column `expires_at` on the `licenses` table. All the data in the column will be lost. + - You are about to drop the column `starts_at` on the `licenses` table. All the data in the column will be lost. + - You are about to drop the column `status` on the `licenses` table. All the data in the column will be lost. + - A unique constraint covering the columns `[activated_license_id]` on the table `consumers` will be added. If there are existing duplicate values, this will fail. + - Added the required column `activation_expires_at` to the `licenses` table without a default value. This is not possible if the table is not empty. + - Added the required column `charged_license_transaction_id` to the `licenses` table without a default value. This is not possible if the table is not empty. + - Made the column `partner_id` on table `licenses` required. This step will fail if there are existing NULL values in that column. + +*/ +-- DropForeignKey +ALTER TABLE `licenses` DROP FOREIGN KEY `licenses_consumer_id_fkey`; + +-- DropForeignKey +ALTER TABLE `licenses` DROP FOREIGN KEY `licenses_partner_id_fkey`; + +-- DropIndex +DROP INDEX `licenses_consumer_id_key` ON `licenses`; + +-- DropIndex +DROP INDEX `licenses_partner_id_fkey` ON `licenses`; + +-- AlterTable +ALTER TABLE `consumers` ADD COLUMN `activated_license_id` VARCHAR(191) NULL; + +-- AlterTable +ALTER TABLE `licenses` DROP COLUMN `consumer_id`, + DROP COLUMN `expires_at`, + DROP COLUMN `starts_at`, + DROP COLUMN `status`, + ADD COLUMN `activation_expires_at` DATETIME(3) NOT NULL, + ADD COLUMN `charged_license_transaction_id` VARCHAR(191) NOT NULL, + MODIFY `partner_id` VARCHAR(191) NOT NULL; + +-- CreateTable +CREATE TABLE `activated_licenses` ( + `id` VARCHAR(191) NOT NULL, + `starts_at` DATETIME(3) NOT NULL, + `expires_at` DATETIME(3) NOT NULL, + `created_at` TIMESTAMP(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0), + `updated_at` TIMESTAMP(0) NOT NULL, + `license_id` VARCHAR(191) NOT NULL, + + UNIQUE INDEX `activated_licenses_id_key`(`id`), + UNIQUE INDEX `activated_licenses_license_id_key`(`license_id`), + PRIMARY KEY (`id`) +) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; + +-- CreateTable +CREATE TABLE `charged_license_transactions` ( + `id` VARCHAR(191) NOT NULL, + `created_at` TIMESTAMP(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0), + `updated_at` TIMESTAMP(0) NOT NULL, + `partner_id` VARCHAR(191) NOT NULL, + + PRIMARY KEY (`id`) +) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; + +-- CreateIndex +CREATE UNIQUE INDEX `consumers_activated_license_id_key` ON `consumers`(`activated_license_id`); + +-- AddForeignKey +ALTER TABLE `consumers` ADD CONSTRAINT `consumers_activated_license_id_fkey` FOREIGN KEY (`activated_license_id`) REFERENCES `activated_licenses`(`id`) ON DELETE SET NULL ON UPDATE CASCADE; + +-- AddForeignKey +ALTER TABLE `licenses` ADD CONSTRAINT `licenses_partner_id_fkey` FOREIGN KEY (`partner_id`) REFERENCES `partners`(`id`) ON DELETE RESTRICT ON UPDATE CASCADE; + +-- AddForeignKey +ALTER TABLE `licenses` ADD CONSTRAINT `licenses_charged_license_transaction_id_fkey` FOREIGN KEY (`charged_license_transaction_id`) REFERENCES `charged_license_transactions`(`id`) ON DELETE RESTRICT ON UPDATE CASCADE; + +-- AddForeignKey +ALTER TABLE `activated_licenses` ADD CONSTRAINT `activated_licenses_license_id_fkey` FOREIGN KEY (`license_id`) REFERENCES `licenses`(`id`) ON DELETE RESTRICT ON UPDATE CASCADE; + +-- AddForeignKey +ALTER TABLE `charged_license_transactions` ADD CONSTRAINT `charged_license_transactions_partner_id_fkey` FOREIGN KEY (`partner_id`) REFERENCES `partners`(`id`) ON DELETE RESTRICT ON UPDATE CASCADE; diff --git a/prisma/migrations/20260416125205_init/migration.sql b/prisma/migrations/20260416125205_init/migration.sql new file mode 100644 index 0000000..49ae8f9 --- /dev/null +++ b/prisma/migrations/20260416125205_init/migration.sql @@ -0,0 +1,41 @@ +/* + Warnings: + + - You are about to drop the column `activated_license_id` on the `consumers` table. All the data in the column will be lost. + - You are about to drop the column `activation_expires_at` on the `licenses` table. All the data in the column will be lost. + - You are about to drop the column `partner_id` on the `licenses` table. All the data in the column will be lost. + - You are about to drop the column `license_quota` on the `partners` table. All the data in the column will be lost. + - Added the required column `consumer_id` to the `activated_licenses` table without a default value. This is not possible if the table is not empty. + - Added the required column `activation_expires_at` to the `charged_license_transactions` table without a default value. This is not possible if the table is not empty. + +*/ +-- DropForeignKey +ALTER TABLE `consumers` DROP FOREIGN KEY `consumers_activated_license_id_fkey`; + +-- DropForeignKey +ALTER TABLE `licenses` DROP FOREIGN KEY `licenses_partner_id_fkey`; + +-- DropIndex +DROP INDEX `consumers_activated_license_id_key` ON `consumers`; + +-- DropIndex +DROP INDEX `licenses_partner_id_fkey` ON `licenses`; + +-- AlterTable +ALTER TABLE `activated_licenses` ADD COLUMN `consumer_id` VARCHAR(191) NOT NULL; + +-- AlterTable +ALTER TABLE `charged_license_transactions` ADD COLUMN `activation_expires_at` DATETIME(3) NOT NULL; + +-- AlterTable +ALTER TABLE `consumers` DROP COLUMN `activated_license_id`; + +-- AlterTable +ALTER TABLE `licenses` DROP COLUMN `activation_expires_at`, + DROP COLUMN `partner_id`; + +-- AlterTable +ALTER TABLE `partners` DROP COLUMN `license_quota`; + +-- AddForeignKey +ALTER TABLE `activated_licenses` ADD CONSTRAINT `activated_licenses_consumer_id_fkey` FOREIGN KEY (`consumer_id`) REFERENCES `consumers`(`id`) ON DELETE RESTRICT ON UPDATE CASCADE; diff --git a/prisma/schema/admin/consumers.prisma b/prisma/schema/admin/consumers.prisma index a7b3881..8e4aa54 100644 --- a/prisma/schema/admin/consumers.prisma +++ b/prisma/schema/admin/consumers.prisma @@ -29,8 +29,7 @@ model Consumer { consumer_accounts ConsumerAccount[] business_activities BusinessActivity[] - - license License? @relation() + activated_licenses ActivatedLicense[] @@map("consumers") } diff --git a/prisma/schema/admin/license.prisma b/prisma/schema/admin/license.prisma index 183ea35..cc05539 100644 --- a/prisma/schema/admin/license.prisma +++ b/prisma/schema/admin/license.prisma @@ -1,17 +1,45 @@ model License { - id String @id @default(uuid()) - starts_at DateTime - expires_at DateTime - status LicenseStatus + id String @id @default(uuid()) created_at DateTime @default(now()) @db.Timestamp(0) updated_at DateTime @updatedAt() @db.Timestamp(0) - partner_id String? - partner Partner? @relation(fields: [partner_id], references: [id]) + charged_license_transaction_id String + charged_license_transaction ChargedLicenseTransactions @relation(fields: [charged_license_transaction_id], references: [id]) - consumer_id String @unique - consumer Consumer @relation(fields: [consumer_id], references: [id]) + activated_license ActivatedLicense? @@map("licenses") } + +model ActivatedLicense { + id String @id @unique() @default(uuid()) + starts_at DateTime + expires_at DateTime + + created_at DateTime @default(now()) @db.Timestamp(0) + updated_at DateTime @updatedAt() @db.Timestamp(0) + + license_id String @unique + license License @relation(fields: [license_id], references: [id]) + + consumer_id String + consumer Consumer @relation(fields: [consumer_id], references: [id]) + + @@map("activated_licenses") +} + +model ChargedLicenseTransactions { + id String @id @default(uuid()) + activation_expires_at DateTime + + created_at DateTime @default(now()) @db.Timestamp(0) + updated_at DateTime @updatedAt() @db.Timestamp(0) + + partner_id String + partner Partner @relation(fields: [partner_id], references: [id]) + + licenses License[] + + @@map("charged_license_transactions") +} diff --git a/prisma/schema/admin/partners.prisma b/prisma/schema/admin/partners.prisma index 3cc6c5d..99ac9f1 100644 --- a/prisma/schema/admin/partners.prisma +++ b/prisma/schema/admin/partners.prisma @@ -15,17 +15,16 @@ model PartnerAccount { } model Partner { - id String @id @default(uuid()) - name String - code String @unique() - license_quota Int? @default(0) - status PartnerStatus @default(ACTIVE) + id String @id @default(uuid()) + name String + code String @unique() + status PartnerStatus @default(ACTIVE) created_at DateTime @default(now()) @db.Timestamp(0) updated_at DateTime @default(now()) @updatedAt @db.Timestamp(0) - licenses License[] - partner_accounts PartnerAccount[] + partner_accounts PartnerAccount[] + chargedLicenseTransactions ChargedLicenseTransactions[] @@map("partners") } diff --git a/prisma/schema/shared/good.prisma b/prisma/schema/shared/good.prisma index dfc5e89..edf65f9 100644 --- a/prisma/schema/shared/good.prisma +++ b/prisma/schema/shared/good.prisma @@ -9,9 +9,11 @@ model Good { local_sku String? @unique() @db.VarChar(100) barcode String? @unique() @db.VarChar(100) base_sale_price Decimal? @default(0.00) @db.Decimal(15, 0) - created_at DateTime @default(now()) @db.Timestamp(0) - updated_at DateTime @updatedAt @db.Timestamp(0) - deleted_at DateTime? @db.Timestamp(0) + image_url String? @db.VarChar(255) + + created_at DateTime @default(now()) @db.Timestamp(0) + updated_at DateTime @updatedAt @db.Timestamp(0) + deleted_at DateTime? @db.Timestamp(0) complex_id String? category_id String? diff --git a/prisma/seed.ts b/prisma/seed.ts index f575b2e..b5b4cb9 100644 --- a/prisma/seed.ts +++ b/prisma/seed.ts @@ -293,13 +293,12 @@ async function main() { // ****************** BA Start ****************** // // ****************** partner Start ****************** // - const partner = await prisma.partner.count() + let partner = await prisma.partner.findFirst() if (!partner) { - await prisma.partner.create({ + partner = await prisma.partner.create({ data: { name: 'تیس', code: 'TIS', - license_quota: 5, status: 'ACTIVE', partner_accounts: { create: { @@ -317,6 +316,47 @@ async function main() { }, }) } + if (partner) { + await prisma.$transaction(async tx => { + const startOfToday = new Date() + startOfToday.setHours(0, 0, 0, 0) + + const month = startOfToday.getMonth() + let year = startOfToday.getFullYear() + let expMonth = month + 3 + if (expMonth > 11) { + expMonth = expMonth - 11 + year = year + 1 + } + + startOfToday.setFullYear(year) + startOfToday.setMonth(expMonth) + + const transaction = await tx.chargedLicenseTransactions.create({ + data: { + activation_expires_at: startOfToday, + partner: { + connect: { + id: partner.id, + }, + }, + }, + select: { + id: true, + }, + }) + if (transaction) + await tx.license.create({ + data: { + charged_license_transaction: { + connect: { + id: transaction.id, + }, + }, + }, + }) + }) + } // ****************** provider Start ****************** // const provider = await prisma.provider.count() diff --git a/src/app.module.ts b/src/app.module.ts index ccb5d11..1d27007 100644 --- a/src/app.module.ts +++ b/src/app.module.ts @@ -11,7 +11,7 @@ import { PosModule } from './modules/pos/pos.module' import { SalesInvoiceItemsModule } from './modules/pos/sales-invoices/sales-invoice-items/sales-invoice-items.module' import { SalesInvoicePaymentsModule } from './modules/pos/sales-invoices/sales-invoice-payments/sales-invoice-payments.module' import { TriggerLogsModule } from './modules/trigger-logs/trigger-logs.module' -import { UploaderModule } from './modules/uploaders/uploader.module' +import { UploaderModule } from './modules/uploader/uploader.module' import { PrismaModule } from './prisma/prisma.module' @Module({ diff --git a/src/common/enums/enums.ts b/src/common/enums/enums.ts index 914509d..4d48f4d 100644 --- a/src/common/enums/enums.ts +++ b/src/common/enums/enums.ts @@ -16,3 +16,10 @@ export enum GoldKarat { KARAT_21 = '21', KARAT_24 = '24', } + +export const UploadedFileTypes = { + GOOD: 'good', + SERVICE: 'service', + PROFILE_AVATAR: 'profile_avatar', +} +export type UploadedFileTypes = (typeof UploadedFileTypes)[keyof typeof UploadedFileTypes] diff --git a/src/common/guards/auth-consumer.guard.ts b/src/common/guards/auth-consumer.guard.ts index b1857ea..77480cf 100644 --- a/src/common/guards/auth-consumer.guard.ts +++ b/src/common/guards/auth-consumer.guard.ts @@ -39,7 +39,7 @@ export class ConsumerGuard { role: true, }, }, - license: { + activated_licenses: { select: { expires_at: true, }, @@ -54,10 +54,14 @@ export class ConsumerGuard { const req = context.switchToHttp().getRequest() if (req.method !== 'GET') { - if (!consumer.license?.expires_at) { + if (!consumer.activated_licenses) { throw new ForbiddenException('برای کاربر شما لایسنس ایجاد نشده است.') } - if (new Date().getTime() > new Date(consumer.license?.expires_at).getTime()) { + if ( + consumer.activated_licenses.every( + license => new Date().getTime() > new Date(license?.expires_at).getTime(), + ) + ) { throw new ForbiddenException('لایسنس شما منقضی شده است.') } } diff --git a/src/common/guards/auth-pos.guard.ts b/src/common/guards/auth-pos.guard.ts index bcb0afa..1aced16 100644 --- a/src/common/guards/auth-pos.guard.ts +++ b/src/common/guards/auth-pos.guard.ts @@ -25,6 +25,9 @@ export class PosGuard { return false } + const startOfToday = new Date() + startOfToday.setHours(0, 0, 0, 0) + const pos = await this.prisma.pos.findUnique({ where: { id: posId, @@ -44,7 +47,20 @@ export class PosGuard { complex: { select: { id: true, - business_activity_id: true, + business_activity: { + select: { + id: true, + consumer: { + select: { + activated_licenses: { + select: { + expires_at: true, + }, + }, + }, + }, + }, + }, }, }, }, @@ -54,6 +70,19 @@ export class PosGuard { throw new ForbiddenException('شما دسترسی لازم را ندارید.') } + if (req.method !== 'GET') { + if (!pos.complex.business_activity.consumer.activated_licenses.length) { + throw new ForbiddenException('برای کاربر شما لایسنس ایجاد نشده است.') + } + if ( + pos.complex.business_activity.consumer.activated_licenses.every( + license => new Date().getTime() > new Date(license?.expires_at).getTime(), + ) + ) { + throw new ForbiddenException('لایسنس شما منقضی شده است.') + } + } + const foundedAccount = await this.prisma.consumerAccount.findUnique({ where: { id: tokenPayload.account_id, @@ -88,14 +117,12 @@ export class PosGuard { } if ( accountPermissions?.business_permissions.some( - p => p.business_id === pos.complex.business_activity_id, + p => p.business_id === pos.complex.business_activity.id, ) ) { return true } - return true - throw new ForbiddenException('شما دسترسی لازم را ندارید.') } } diff --git a/src/common/guards/jwt-auth.guard.ts b/src/common/guards/jwt-auth.guard.ts index f17a0be..8cda5ef 100644 --- a/src/common/guards/jwt-auth.guard.ts +++ b/src/common/guards/jwt-auth.guard.ts @@ -2,6 +2,7 @@ import { ITokenPayload } from '@/modules/auth/auth.utils' import { CanActivate, ExecutionContext, + ForbiddenException, Injectable, UnauthorizedException, } from '@nestjs/common' @@ -63,14 +64,15 @@ export class JwtAuthGuard implements CanActivate { // if (req.url.startsWith('/api/v1/partner')) { // await this.partnerGuard.canActivate(tokenPayload, context) // } - // if (req.url.startsWith('/api/v1/consumer')) { - // await this.consumerGuard.canActivate(tokenPayload, context) - // } else if (req.url.startsWith('/api/v1/pos')) { - // // await this.consumerGuard.canActivate(tokenPayload, context) - // await this.posGuard.canActivate(tokenPayload, context) - // } else if (tokenPayload.type != 'ADMIN') { - // throw new ForbiddenException('شما دسترسی لازم را ندارید') - // } + if (req.url.startsWith('/api/v1/consumer')) { + await this.consumerGuard.canActivate(tokenPayload, context) + } else if (req.url.startsWith('/api/v1/pos')) { + // await this.consumerGuard.canActivate(tokenPayload, context) + // await this.consumerGuard.canActivate(tokenPayload, context) + await this.posGuard.canActivate(tokenPayload, context) + } else if (tokenPayload.type != 'ADMIN') { + throw new ForbiddenException('شما دسترسی لازم را ندارید') + } return true } catch (err) { if (err) throw err diff --git a/src/common/models/index.ts b/src/common/models/index.ts index 6b2c11d..98a87d5 100644 --- a/src/common/models/index.ts +++ b/src/common/models/index.ts @@ -1,4 +1,4 @@ export * from './consumerPayload.model' export * from './posPayload.model' export * from './tokenPayload.model' -export * from './uploadedFileTypes.model' +export * from './uploadFile.model' diff --git a/src/common/models/uploadFile.model.ts b/src/common/models/uploadFile.model.ts new file mode 100644 index 0000000..f5921a3 --- /dev/null +++ b/src/common/models/uploadFile.model.ts @@ -0,0 +1,12 @@ +import { UploadedFileTypes } from '@/common/enums/enums' +import { ApiProperty } from '@nestjs/swagger' +import { IsEnum } from 'class-validator' + +export class UploadImageDto { + @ApiProperty({ + enum: UploadedFileTypes, + example: UploadedFileTypes.GOOD, + }) + @IsEnum(UploadedFileTypes) + type: UploadedFileTypes +} diff --git a/src/common/models/uploadedFileTypes.model.ts b/src/common/models/uploadedFileTypes.model.ts deleted file mode 100644 index a7350d1..0000000 --- a/src/common/models/uploadedFileTypes.model.ts +++ /dev/null @@ -1 +0,0 @@ -export type TUploadedFileTypes = 'good' | 'service' | 'profile_avatar' diff --git a/src/generated/prisma/browser.ts b/src/generated/prisma/browser.ts index b47ccc9..043d7d5 100644 --- a/src/generated/prisma/browser.ts +++ b/src/generated/prisma/browser.ts @@ -72,6 +72,16 @@ export type Device = Prisma.DeviceModel * */ export type License = Prisma.LicenseModel +/** + * Model ActivatedLicense + * + */ +export type ActivatedLicense = Prisma.ActivatedLicenseModel +/** + * Model ChargedLicenseTransactions + * + */ +export type ChargedLicenseTransactions = Prisma.ChargedLicenseTransactionsModel /** * Model PartnerAccount * diff --git a/src/generated/prisma/client.ts b/src/generated/prisma/client.ts index 332d950..7647719 100644 --- a/src/generated/prisma/client.ts +++ b/src/generated/prisma/client.ts @@ -92,6 +92,16 @@ export type Device = Prisma.DeviceModel * */ export type License = Prisma.LicenseModel +/** + * Model ActivatedLicense + * + */ +export type ActivatedLicense = Prisma.ActivatedLicenseModel +/** + * Model ChargedLicenseTransactions + * + */ +export type ChargedLicenseTransactions = Prisma.ChargedLicenseTransactionsModel /** * Model PartnerAccount * diff --git a/src/generated/prisma/commonInputTypes.ts b/src/generated/prisma/commonInputTypes.ts index b27f06f..31627d6 100644 --- a/src/generated/prisma/commonInputTypes.ts +++ b/src/generated/prisma/commonInputTypes.ts @@ -212,23 +212,6 @@ export type EnumPOSTypeWithAggregatesFilter<$PrismaModel = never> = { _max?: Prisma.NestedEnumPOSTypeFilter<$PrismaModel> } -export type EnumLicenseStatusFilter<$PrismaModel = never> = { - equals?: $Enums.LicenseStatus | Prisma.EnumLicenseStatusFieldRefInput<$PrismaModel> - in?: $Enums.LicenseStatus[] - notIn?: $Enums.LicenseStatus[] - not?: Prisma.NestedEnumLicenseStatusFilter<$PrismaModel> | $Enums.LicenseStatus -} - -export type EnumLicenseStatusWithAggregatesFilter<$PrismaModel = never> = { - equals?: $Enums.LicenseStatus | Prisma.EnumLicenseStatusFieldRefInput<$PrismaModel> - in?: $Enums.LicenseStatus[] - notIn?: $Enums.LicenseStatus[] - not?: Prisma.NestedEnumLicenseStatusWithAggregatesFilter<$PrismaModel> | $Enums.LicenseStatus - _count?: Prisma.NestedIntFilter<$PrismaModel> - _min?: Prisma.NestedEnumLicenseStatusFilter<$PrismaModel> - _max?: Prisma.NestedEnumLicenseStatusFilter<$PrismaModel> -} - export type EnumPartnerRoleFilter<$PrismaModel = never> = { equals?: $Enums.PartnerRole | Prisma.EnumPartnerRoleFieldRefInput<$PrismaModel> in?: $Enums.PartnerRole[] @@ -246,17 +229,6 @@ export type EnumPartnerRoleWithAggregatesFilter<$PrismaModel = never> = { _max?: Prisma.NestedEnumPartnerRoleFilter<$PrismaModel> } -export type IntNullableFilter<$PrismaModel = never> = { - equals?: number | Prisma.IntFieldRefInput<$PrismaModel> | null - in?: number[] | null - notIn?: number[] | null - lt?: number | Prisma.IntFieldRefInput<$PrismaModel> - lte?: number | Prisma.IntFieldRefInput<$PrismaModel> - gt?: number | Prisma.IntFieldRefInput<$PrismaModel> - gte?: number | Prisma.IntFieldRefInput<$PrismaModel> - not?: Prisma.NestedIntNullableFilter<$PrismaModel> | number | null -} - export type EnumPartnerStatusFilter<$PrismaModel = never> = { equals?: $Enums.PartnerStatus | Prisma.EnumPartnerStatusFieldRefInput<$PrismaModel> in?: $Enums.PartnerStatus[] @@ -264,22 +236,6 @@ export type EnumPartnerStatusFilter<$PrismaModel = never> = { not?: Prisma.NestedEnumPartnerStatusFilter<$PrismaModel> | $Enums.PartnerStatus } -export type IntNullableWithAggregatesFilter<$PrismaModel = never> = { - equals?: number | Prisma.IntFieldRefInput<$PrismaModel> | null - in?: number[] | null - notIn?: number[] | null - lt?: number | Prisma.IntFieldRefInput<$PrismaModel> - lte?: number | Prisma.IntFieldRefInput<$PrismaModel> - gt?: number | Prisma.IntFieldRefInput<$PrismaModel> - gte?: number | Prisma.IntFieldRefInput<$PrismaModel> - not?: Prisma.NestedIntNullableWithAggregatesFilter<$PrismaModel> | number | null - _count?: Prisma.NestedIntNullableFilter<$PrismaModel> - _avg?: Prisma.NestedFloatNullableFilter<$PrismaModel> - _sum?: Prisma.NestedIntNullableFilter<$PrismaModel> - _min?: Prisma.NestedIntNullableFilter<$PrismaModel> - _max?: Prisma.NestedIntNullableFilter<$PrismaModel> -} - export type EnumPartnerStatusWithAggregatesFilter<$PrismaModel = never> = { equals?: $Enums.PartnerStatus | Prisma.EnumPartnerStatusFieldRefInput<$PrismaModel> in?: $Enums.PartnerStatus[] @@ -824,23 +780,6 @@ export type NestedEnumPOSTypeWithAggregatesFilter<$PrismaModel = never> = { _max?: Prisma.NestedEnumPOSTypeFilter<$PrismaModel> } -export type NestedEnumLicenseStatusFilter<$PrismaModel = never> = { - equals?: $Enums.LicenseStatus | Prisma.EnumLicenseStatusFieldRefInput<$PrismaModel> - in?: $Enums.LicenseStatus[] - notIn?: $Enums.LicenseStatus[] - not?: Prisma.NestedEnumLicenseStatusFilter<$PrismaModel> | $Enums.LicenseStatus -} - -export type NestedEnumLicenseStatusWithAggregatesFilter<$PrismaModel = never> = { - equals?: $Enums.LicenseStatus | Prisma.EnumLicenseStatusFieldRefInput<$PrismaModel> - in?: $Enums.LicenseStatus[] - notIn?: $Enums.LicenseStatus[] - not?: Prisma.NestedEnumLicenseStatusWithAggregatesFilter<$PrismaModel> | $Enums.LicenseStatus - _count?: Prisma.NestedIntFilter<$PrismaModel> - _min?: Prisma.NestedEnumLicenseStatusFilter<$PrismaModel> - _max?: Prisma.NestedEnumLicenseStatusFilter<$PrismaModel> -} - export type NestedEnumPartnerRoleFilter<$PrismaModel = never> = { equals?: $Enums.PartnerRole | Prisma.EnumPartnerRoleFieldRefInput<$PrismaModel> in?: $Enums.PartnerRole[] @@ -865,33 +804,6 @@ export type NestedEnumPartnerStatusFilter<$PrismaModel = never> = { not?: Prisma.NestedEnumPartnerStatusFilter<$PrismaModel> | $Enums.PartnerStatus } -export type NestedIntNullableWithAggregatesFilter<$PrismaModel = never> = { - equals?: number | Prisma.IntFieldRefInput<$PrismaModel> | null - in?: number[] | null - notIn?: number[] | null - lt?: number | Prisma.IntFieldRefInput<$PrismaModel> - lte?: number | Prisma.IntFieldRefInput<$PrismaModel> - gt?: number | Prisma.IntFieldRefInput<$PrismaModel> - gte?: number | Prisma.IntFieldRefInput<$PrismaModel> - not?: Prisma.NestedIntNullableWithAggregatesFilter<$PrismaModel> | number | null - _count?: Prisma.NestedIntNullableFilter<$PrismaModel> - _avg?: Prisma.NestedFloatNullableFilter<$PrismaModel> - _sum?: Prisma.NestedIntNullableFilter<$PrismaModel> - _min?: Prisma.NestedIntNullableFilter<$PrismaModel> - _max?: Prisma.NestedIntNullableFilter<$PrismaModel> -} - -export type NestedFloatNullableFilter<$PrismaModel = never> = { - equals?: number | Prisma.FloatFieldRefInput<$PrismaModel> | null - in?: number[] | null - notIn?: number[] | null - lt?: number | Prisma.FloatFieldRefInput<$PrismaModel> - lte?: number | Prisma.FloatFieldRefInput<$PrismaModel> - gt?: number | Prisma.FloatFieldRefInput<$PrismaModel> - gte?: number | Prisma.FloatFieldRefInput<$PrismaModel> - not?: Prisma.NestedFloatNullableFilter<$PrismaModel> | number | null -} - export type NestedEnumPartnerStatusWithAggregatesFilter<$PrismaModel = never> = { equals?: $Enums.PartnerStatus | Prisma.EnumPartnerStatusFieldRefInput<$PrismaModel> in?: $Enums.PartnerStatus[] diff --git a/src/generated/prisma/internal/class.ts b/src/generated/prisma/internal/class.ts index 5c1caf4..b365d88 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 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 admin_id String\n admin Admin @relation(fields: [admin_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\nmodel 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 adminAccounts AdminAccount[]\n\n @@map(\"admins\")\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 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 consumer_id String\n consumer Consumer @relation(fields: [consumer_id], references: [id])\n\n account_id String @unique\n account Account @relation(fields: [account_id], references: [id])\n\n permission PermissionConsumer?\n sales_invoices SalesInvoice[]\n\n @@map(\"consumer_accounts\")\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\n created_at DateTime @default(now()) @db.Timestamp(0)\n updated_at DateTime @updatedAt() @db.Timestamp(0)\n\n consumer_accounts ConsumerAccount[]\n business_activities BusinessActivity[]\n\n license License? @relation()\n\n @@map(\"consumers\")\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 guild Guild @relation(fields: [guild_id], references: [id])\n\n consumer_id String\n consumer Consumer @relation(fields: [consumer_id], references: [id])\n\n complexes Complex[]\n permission_businesses 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 permission_complexes PermissionComplex[]\n customer_individuals CustomerIndividual[]\n customer_legals 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 permission_pos PermissionPos[]\n sales_invoices SalesInvoice[]\n\n @@map(\"poses\")\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 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 partner_id String\n partner Partner @relation(fields: [partner_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 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 partner_accounts PartnerAccount[]\n\n @@map(\"partners\")\n}\n\nmodel PermissionConsumer {\n id String @id @default(uuid())\n\n consumer_account_id String @unique\n consumer_account ConsumerAccount @relation(fields: [consumer_account_id], references: [id], onDelete: Cascade)\n\n pos_permissions PermissionPos[]\n complex_permissions PermissionComplex[]\n business_permissions 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], onDelete: Cascade)\n permission PermissionConsumer @relation(fields: [permission_id], references: [id], onDelete: Cascade)\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], onDelete: Cascade)\n permission PermissionConsumer @relation(fields: [permission_id], references: [id], onDelete: Cascade)\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], onDelete: Cascade)\n permission PermissionConsumer @relation(fields: [permission_id], references: [id], onDelete: Cascade)\n\n @@unique([permission_id, business_id])\n @@map(\"permission_business_activities\")\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 provider_id String\n provider Provider @relation(fields: [provider_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 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 provider_accounts ProviderAccount[]\n\n @@map(\"providers\")\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 consumer_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 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 admin_id String\n admin Admin @relation(fields: [admin_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\nmodel 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 adminAccounts AdminAccount[]\n\n @@map(\"admins\")\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 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 consumer_id String\n consumer Consumer @relation(fields: [consumer_id], references: [id])\n\n account_id String @unique\n account Account @relation(fields: [account_id], references: [id])\n\n permission PermissionConsumer?\n sales_invoices SalesInvoice[]\n\n @@map(\"consumer_accounts\")\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\n created_at DateTime @default(now()) @db.Timestamp(0)\n updated_at DateTime @updatedAt() @db.Timestamp(0)\n\n consumer_accounts ConsumerAccount[]\n business_activities BusinessActivity[]\n activated_licenses ActivatedLicense[]\n\n @@map(\"consumers\")\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 guild Guild @relation(fields: [guild_id], references: [id])\n\n consumer_id String\n consumer Consumer @relation(fields: [consumer_id], references: [id])\n\n complexes Complex[]\n permission_businesses 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 permission_complexes PermissionComplex[]\n customer_individuals CustomerIndividual[]\n customer_legals 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 permission_pos PermissionPos[]\n sales_invoices SalesInvoice[]\n\n @@map(\"poses\")\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\n created_at DateTime @default(now()) @db.Timestamp(0)\n updated_at DateTime @updatedAt() @db.Timestamp(0)\n\n charged_license_transaction_id String\n charged_license_transaction ChargedLicenseTransactions @relation(fields: [charged_license_transaction_id], references: [id])\n\n activated_license ActivatedLicense?\n\n @@map(\"licenses\")\n}\n\nmodel ActivatedLicense {\n id String @id @unique() @default(uuid())\n starts_at DateTime\n expires_at DateTime\n\n created_at DateTime @default(now()) @db.Timestamp(0)\n updated_at DateTime @updatedAt() @db.Timestamp(0)\n\n license_id String @unique\n license License @relation(fields: [license_id], references: [id])\n\n consumer_id String\n consumer Consumer @relation(fields: [consumer_id], references: [id])\n\n @@map(\"activated_licenses\")\n}\n\nmodel ChargedLicenseTransactions {\n id String @id @default(uuid())\n activation_expires_at DateTime\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 licenses License[]\n\n @@map(\"charged_license_transactions\")\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 partner_id String\n partner Partner @relation(fields: [partner_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 Partner {\n id String @id @default(uuid())\n name String\n code String @unique()\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 partner_accounts PartnerAccount[]\n chargedLicenseTransactions ChargedLicenseTransactions[]\n\n @@map(\"partners\")\n}\n\nmodel PermissionConsumer {\n id String @id @default(uuid())\n\n consumer_account_id String @unique\n consumer_account ConsumerAccount @relation(fields: [consumer_account_id], references: [id], onDelete: Cascade)\n\n pos_permissions PermissionPos[]\n complex_permissions PermissionComplex[]\n business_permissions 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], onDelete: Cascade)\n permission PermissionConsumer @relation(fields: [permission_id], references: [id], onDelete: Cascade)\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], onDelete: Cascade)\n permission PermissionConsumer @relation(fields: [permission_id], references: [id], onDelete: Cascade)\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], onDelete: Cascade)\n permission PermissionConsumer @relation(fields: [permission_id], references: [id], onDelete: Cascade)\n\n @@unique([permission_id, business_id])\n @@map(\"permission_business_activities\")\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 provider_id String\n provider Provider @relation(fields: [provider_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 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 provider_accounts ProviderAccount[]\n\n @@map(\"providers\")\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 image_url String? @db.VarChar(255)\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 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 consumer_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\":{\"AdminAccount\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"admin_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"admin\",\"kind\":\"object\",\"type\":\"Admin\",\"relationName\":\"AdminToAdminAccount\"},{\"name\":\"account_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"account\",\"kind\":\"object\",\"type\":\"Account\",\"relationName\":\"AccountToAdminAccount\"}],\"dbName\":\"admin_accounts\"},\"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\":\"adminAccounts\",\"kind\":\"object\",\"type\":\"AdminAccount\",\"relationName\":\"AdminToAdminAccount\"}],\"dbName\":\"admins\"},\"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\"},\"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\":\"consumer_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"consumer\",\"kind\":\"object\",\"type\":\"Consumer\",\"relationName\":\"ConsumerToConsumerAccount\"},{\"name\":\"account_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"account\",\"kind\":\"object\",\"type\":\"Account\",\"relationName\":\"AccountToConsumerAccount\"},{\"name\":\"permission\",\"kind\":\"object\",\"type\":\"PermissionConsumer\",\"relationName\":\"ConsumerAccountToPermissionConsumer\"},{\"name\":\"sales_invoices\",\"kind\":\"object\",\"type\":\"SalesInvoice\",\"relationName\":\"ConsumerAccountToSalesInvoice\"}],\"dbName\":\"consumer_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\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"consumer_accounts\",\"kind\":\"object\",\"type\":\"ConsumerAccount\",\"relationName\":\"ConsumerToConsumerAccount\"},{\"name\":\"business_activities\",\"kind\":\"object\",\"type\":\"BusinessActivity\",\"relationName\":\"BusinessActivityToConsumer\"},{\"name\":\"license\",\"kind\":\"object\",\"type\":\"License\",\"relationName\":\"ConsumerToLicense\"}],\"dbName\":\"consumers\"},\"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\":\"guild\",\"kind\":\"object\",\"type\":\"Guild\",\"relationName\":\"BusinessActivityToGuild\"},{\"name\":\"consumer_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"consumer\",\"kind\":\"object\",\"type\":\"Consumer\",\"relationName\":\"BusinessActivityToConsumer\"},{\"name\":\"complexes\",\"kind\":\"object\",\"type\":\"Complex\",\"relationName\":\"BusinessActivityToComplex\"},{\"name\":\"permission_businesses\",\"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\":\"permission_complexes\",\"kind\":\"object\",\"type\":\"PermissionComplex\",\"relationName\":\"ComplexToPermissionComplex\"},{\"name\":\"customer_individuals\",\"kind\":\"object\",\"type\":\"CustomerIndividual\",\"relationName\":\"ComplexToCustomerIndividual\"},{\"name\":\"customer_legals\",\"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\":\"permission_pos\",\"kind\":\"object\",\"type\":\"PermissionPos\",\"relationName\":\"PermissionPosToPos\"},{\"name\":\"sales_invoices\",\"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\"},\"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\":\"partner_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"partner\",\"kind\":\"object\",\"type\":\"Partner\",\"relationName\":\"PartnerToPartnerAccount\"},{\"name\":\"account_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"account\",\"kind\":\"object\",\"type\":\"Account\",\"relationName\":\"AccountToPartnerAccount\"}],\"dbName\":\"partner_accounts\"},\"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\":\"partner_accounts\",\"kind\":\"object\",\"type\":\"PartnerAccount\",\"relationName\":\"PartnerToPartnerAccount\"}],\"dbName\":\"partners\"},\"PermissionConsumer\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"consumer_account_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"consumer_account\",\"kind\":\"object\",\"type\":\"ConsumerAccount\",\"relationName\":\"ConsumerAccountToPermissionConsumer\"},{\"name\":\"pos_permissions\",\"kind\":\"object\",\"type\":\"PermissionPos\",\"relationName\":\"PermissionConsumerToPermissionPos\"},{\"name\":\"complex_permissions\",\"kind\":\"object\",\"type\":\"PermissionComplex\",\"relationName\":\"PermissionComplexToPermissionConsumer\"},{\"name\":\"business_permissions\",\"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\"},\"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\":\"provider_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"provider\",\"kind\":\"object\",\"type\":\"Provider\",\"relationName\":\"ProviderToProviderAccount\"},{\"name\":\"account_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"account\",\"kind\":\"object\",\"type\":\"Account\",\"relationName\":\"AccountToProviderAccount\"}],\"dbName\":\"provider_accounts\"},\"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\":\"provider_accounts\",\"kind\":\"object\",\"type\":\"ProviderAccount\",\"relationName\":\"ProviderToProviderAccount\"}],\"dbName\":\"providers\"},\"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\":\"consumer_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\":{\"AdminAccount\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"admin_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"admin\",\"kind\":\"object\",\"type\":\"Admin\",\"relationName\":\"AdminToAdminAccount\"},{\"name\":\"account_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"account\",\"kind\":\"object\",\"type\":\"Account\",\"relationName\":\"AccountToAdminAccount\"}],\"dbName\":\"admin_accounts\"},\"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\":\"adminAccounts\",\"kind\":\"object\",\"type\":\"AdminAccount\",\"relationName\":\"AdminToAdminAccount\"}],\"dbName\":\"admins\"},\"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\"},\"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\":\"consumer_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"consumer\",\"kind\":\"object\",\"type\":\"Consumer\",\"relationName\":\"ConsumerToConsumerAccount\"},{\"name\":\"account_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"account\",\"kind\":\"object\",\"type\":\"Account\",\"relationName\":\"AccountToConsumerAccount\"},{\"name\":\"permission\",\"kind\":\"object\",\"type\":\"PermissionConsumer\",\"relationName\":\"ConsumerAccountToPermissionConsumer\"},{\"name\":\"sales_invoices\",\"kind\":\"object\",\"type\":\"SalesInvoice\",\"relationName\":\"ConsumerAccountToSalesInvoice\"}],\"dbName\":\"consumer_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\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"consumer_accounts\",\"kind\":\"object\",\"type\":\"ConsumerAccount\",\"relationName\":\"ConsumerToConsumerAccount\"},{\"name\":\"business_activities\",\"kind\":\"object\",\"type\":\"BusinessActivity\",\"relationName\":\"BusinessActivityToConsumer\"},{\"name\":\"activated_licenses\",\"kind\":\"object\",\"type\":\"ActivatedLicense\",\"relationName\":\"ActivatedLicenseToConsumer\"}],\"dbName\":\"consumers\"},\"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\":\"guild\",\"kind\":\"object\",\"type\":\"Guild\",\"relationName\":\"BusinessActivityToGuild\"},{\"name\":\"consumer_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"consumer\",\"kind\":\"object\",\"type\":\"Consumer\",\"relationName\":\"BusinessActivityToConsumer\"},{\"name\":\"complexes\",\"kind\":\"object\",\"type\":\"Complex\",\"relationName\":\"BusinessActivityToComplex\"},{\"name\":\"permission_businesses\",\"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\":\"permission_complexes\",\"kind\":\"object\",\"type\":\"PermissionComplex\",\"relationName\":\"ComplexToPermissionComplex\"},{\"name\":\"customer_individuals\",\"kind\":\"object\",\"type\":\"CustomerIndividual\",\"relationName\":\"ComplexToCustomerIndividual\"},{\"name\":\"customer_legals\",\"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\":\"permission_pos\",\"kind\":\"object\",\"type\":\"PermissionPos\",\"relationName\":\"PermissionPosToPos\"},{\"name\":\"sales_invoices\",\"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\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"charged_license_transaction_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"charged_license_transaction\",\"kind\":\"object\",\"type\":\"ChargedLicenseTransactions\",\"relationName\":\"ChargedLicenseTransactionsToLicense\"},{\"name\":\"activated_license\",\"kind\":\"object\",\"type\":\"ActivatedLicense\",\"relationName\":\"ActivatedLicenseToLicense\"}],\"dbName\":\"licenses\"},\"ActivatedLicense\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"starts_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"expires_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"license_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"license\",\"kind\":\"object\",\"type\":\"License\",\"relationName\":\"ActivatedLicenseToLicense\"},{\"name\":\"consumer_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"consumer\",\"kind\":\"object\",\"type\":\"Consumer\",\"relationName\":\"ActivatedLicenseToConsumer\"}],\"dbName\":\"activated_licenses\"},\"ChargedLicenseTransactions\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"activation_expires_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"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\":\"ChargedLicenseTransactionsToPartner\"},{\"name\":\"licenses\",\"kind\":\"object\",\"type\":\"License\",\"relationName\":\"ChargedLicenseTransactionsToLicense\"}],\"dbName\":\"charged_license_transactions\"},\"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\":\"partner_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"partner\",\"kind\":\"object\",\"type\":\"Partner\",\"relationName\":\"PartnerToPartnerAccount\"},{\"name\":\"account_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"account\",\"kind\":\"object\",\"type\":\"Account\",\"relationName\":\"AccountToPartnerAccount\"}],\"dbName\":\"partner_accounts\"},\"Partner\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"code\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"status\",\"kind\":\"enum\",\"type\":\"PartnerStatus\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"partner_accounts\",\"kind\":\"object\",\"type\":\"PartnerAccount\",\"relationName\":\"PartnerToPartnerAccount\"},{\"name\":\"chargedLicenseTransactions\",\"kind\":\"object\",\"type\":\"ChargedLicenseTransactions\",\"relationName\":\"ChargedLicenseTransactionsToPartner\"}],\"dbName\":\"partners\"},\"PermissionConsumer\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"consumer_account_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"consumer_account\",\"kind\":\"object\",\"type\":\"ConsumerAccount\",\"relationName\":\"ConsumerAccountToPermissionConsumer\"},{\"name\":\"pos_permissions\",\"kind\":\"object\",\"type\":\"PermissionPos\",\"relationName\":\"PermissionConsumerToPermissionPos\"},{\"name\":\"complex_permissions\",\"kind\":\"object\",\"type\":\"PermissionComplex\",\"relationName\":\"PermissionComplexToPermissionConsumer\"},{\"name\":\"business_permissions\",\"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\"},\"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\":\"provider_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"provider\",\"kind\":\"object\",\"type\":\"Provider\",\"relationName\":\"ProviderToProviderAccount\"},{\"name\":\"account_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"account\",\"kind\":\"object\",\"type\":\"Account\",\"relationName\":\"AccountToProviderAccount\"}],\"dbName\":\"provider_accounts\"},\"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\":\"provider_accounts\",\"kind\":\"object\",\"type\":\"ProviderAccount\",\"relationName\":\"ProviderToProviderAccount\"}],\"dbName\":\"providers\"},\"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\":\"image_url\",\"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\":\"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\":\"consumer_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') @@ -286,6 +286,26 @@ export interface PrismaClient< */ get license(): Prisma.LicenseDelegate; + /** + * `prisma.activatedLicense`: Exposes CRUD operations for the **ActivatedLicense** model. + * Example usage: + * ```ts + * // Fetch zero or more ActivatedLicenses + * const activatedLicenses = await prisma.activatedLicense.findMany() + * ``` + */ + get activatedLicense(): Prisma.ActivatedLicenseDelegate; + + /** + * `prisma.chargedLicenseTransactions`: Exposes CRUD operations for the **ChargedLicenseTransactions** model. + * Example usage: + * ```ts + * // Fetch zero or more ChargedLicenseTransactions + * const chargedLicenseTransactions = await prisma.chargedLicenseTransactions.findMany() + * ``` + */ + get chargedLicenseTransactions(): Prisma.ChargedLicenseTransactionsDelegate; + /** * `prisma.partnerAccount`: Exposes CRUD operations for the **PartnerAccount** model. * Example usage: diff --git a/src/generated/prisma/internal/prismaNamespace.ts b/src/generated/prisma/internal/prismaNamespace.ts index 1a62861..28aa9d6 100644 --- a/src/generated/prisma/internal/prismaNamespace.ts +++ b/src/generated/prisma/internal/prismaNamespace.ts @@ -395,6 +395,8 @@ export const ModelName = { DeviceBrand: 'DeviceBrand', Device: 'Device', License: 'License', + ActivatedLicense: 'ActivatedLicense', + ChargedLicenseTransactions: 'ChargedLicenseTransactions', PartnerAccount: 'PartnerAccount', Partner: 'Partner', PermissionConsumer: 'PermissionConsumer', @@ -431,7 +433,7 @@ export type TypeMap + fields: Prisma.ActivatedLicenseFieldRefs + operations: { + findUnique: { + args: Prisma.ActivatedLicenseFindUniqueArgs + result: runtime.Types.Utils.PayloadToResult | null + } + findUniqueOrThrow: { + args: Prisma.ActivatedLicenseFindUniqueOrThrowArgs + result: runtime.Types.Utils.PayloadToResult + } + findFirst: { + args: Prisma.ActivatedLicenseFindFirstArgs + result: runtime.Types.Utils.PayloadToResult | null + } + findFirstOrThrow: { + args: Prisma.ActivatedLicenseFindFirstOrThrowArgs + result: runtime.Types.Utils.PayloadToResult + } + findMany: { + args: Prisma.ActivatedLicenseFindManyArgs + result: runtime.Types.Utils.PayloadToResult[] + } + create: { + args: Prisma.ActivatedLicenseCreateArgs + result: runtime.Types.Utils.PayloadToResult + } + createMany: { + args: Prisma.ActivatedLicenseCreateManyArgs + result: BatchPayload + } + delete: { + args: Prisma.ActivatedLicenseDeleteArgs + result: runtime.Types.Utils.PayloadToResult + } + update: { + args: Prisma.ActivatedLicenseUpdateArgs + result: runtime.Types.Utils.PayloadToResult + } + deleteMany: { + args: Prisma.ActivatedLicenseDeleteManyArgs + result: BatchPayload + } + updateMany: { + args: Prisma.ActivatedLicenseUpdateManyArgs + result: BatchPayload + } + upsert: { + args: Prisma.ActivatedLicenseUpsertArgs + result: runtime.Types.Utils.PayloadToResult + } + aggregate: { + args: Prisma.ActivatedLicenseAggregateArgs + result: runtime.Types.Utils.Optional + } + groupBy: { + args: Prisma.ActivatedLicenseGroupByArgs + result: runtime.Types.Utils.Optional[] + } + count: { + args: Prisma.ActivatedLicenseCountArgs + result: runtime.Types.Utils.Optional | number + } + } + } + ChargedLicenseTransactions: { + payload: Prisma.$ChargedLicenseTransactionsPayload + fields: Prisma.ChargedLicenseTransactionsFieldRefs + operations: { + findUnique: { + args: Prisma.ChargedLicenseTransactionsFindUniqueArgs + result: runtime.Types.Utils.PayloadToResult | null + } + findUniqueOrThrow: { + args: Prisma.ChargedLicenseTransactionsFindUniqueOrThrowArgs + result: runtime.Types.Utils.PayloadToResult + } + findFirst: { + args: Prisma.ChargedLicenseTransactionsFindFirstArgs + result: runtime.Types.Utils.PayloadToResult | null + } + findFirstOrThrow: { + args: Prisma.ChargedLicenseTransactionsFindFirstOrThrowArgs + result: runtime.Types.Utils.PayloadToResult + } + findMany: { + args: Prisma.ChargedLicenseTransactionsFindManyArgs + result: runtime.Types.Utils.PayloadToResult[] + } + create: { + args: Prisma.ChargedLicenseTransactionsCreateArgs + result: runtime.Types.Utils.PayloadToResult + } + createMany: { + args: Prisma.ChargedLicenseTransactionsCreateManyArgs + result: BatchPayload + } + delete: { + args: Prisma.ChargedLicenseTransactionsDeleteArgs + result: runtime.Types.Utils.PayloadToResult + } + update: { + args: Prisma.ChargedLicenseTransactionsUpdateArgs + result: runtime.Types.Utils.PayloadToResult + } + deleteMany: { + args: Prisma.ChargedLicenseTransactionsDeleteManyArgs + result: BatchPayload + } + updateMany: { + args: Prisma.ChargedLicenseTransactionsUpdateManyArgs + result: BatchPayload + } + upsert: { + args: Prisma.ChargedLicenseTransactionsUpsertArgs + result: runtime.Types.Utils.PayloadToResult + } + aggregate: { + args: Prisma.ChargedLicenseTransactionsAggregateArgs + result: runtime.Types.Utils.Optional + } + groupBy: { + args: Prisma.ChargedLicenseTransactionsGroupByArgs + result: runtime.Types.Utils.Optional[] + } + count: { + args: Prisma.ChargedLicenseTransactionsCountArgs + result: runtime.Types.Utils.Optional | number + } + } + } PartnerAccount: { payload: Prisma.$PartnerAccountPayload fields: Prisma.PartnerAccountFieldRefs @@ -2712,18 +2846,38 @@ export type DeviceScalarFieldEnum = (typeof DeviceScalarFieldEnum)[keyof typeof export const LicenseScalarFieldEnum = { id: 'id', - starts_at: 'starts_at', - expires_at: 'expires_at', - status: 'status', created_at: 'created_at', updated_at: 'updated_at', - partner_id: 'partner_id', - consumer_id: 'consumer_id' + charged_license_transaction_id: 'charged_license_transaction_id' } as const export type LicenseScalarFieldEnum = (typeof LicenseScalarFieldEnum)[keyof typeof LicenseScalarFieldEnum] +export const ActivatedLicenseScalarFieldEnum = { + id: 'id', + starts_at: 'starts_at', + expires_at: 'expires_at', + created_at: 'created_at', + updated_at: 'updated_at', + license_id: 'license_id', + consumer_id: 'consumer_id' +} as const + +export type ActivatedLicenseScalarFieldEnum = (typeof ActivatedLicenseScalarFieldEnum)[keyof typeof ActivatedLicenseScalarFieldEnum] + + +export const ChargedLicenseTransactionsScalarFieldEnum = { + id: 'id', + activation_expires_at: 'activation_expires_at', + created_at: 'created_at', + updated_at: 'updated_at', + partner_id: 'partner_id' +} as const + +export type ChargedLicenseTransactionsScalarFieldEnum = (typeof ChargedLicenseTransactionsScalarFieldEnum)[keyof typeof ChargedLicenseTransactionsScalarFieldEnum] + + export const PartnerAccountScalarFieldEnum = { id: 'id', role: 'role', @@ -2740,7 +2894,6 @@ export const PartnerScalarFieldEnum = { id: 'id', name: 'name', code: 'code', - license_quota: 'license_quota', status: 'status', created_at: 'created_at', updated_at: 'updated_at' @@ -2889,6 +3042,7 @@ export const GoodScalarFieldEnum = { local_sku: 'local_sku', barcode: 'barcode', base_sale_price: 'base_sale_price', + image_url: 'image_url', created_at: 'created_at', updated_at: 'updated_at', deleted_at: 'deleted_at', @@ -3133,13 +3287,29 @@ export type DeviceOrderByRelevanceFieldEnum = (typeof DeviceOrderByRelevanceFiel export const LicenseOrderByRelevanceFieldEnum = { id: 'id', - partner_id: 'partner_id', - consumer_id: 'consumer_id' + charged_license_transaction_id: 'charged_license_transaction_id' } as const export type LicenseOrderByRelevanceFieldEnum = (typeof LicenseOrderByRelevanceFieldEnum)[keyof typeof LicenseOrderByRelevanceFieldEnum] +export const ActivatedLicenseOrderByRelevanceFieldEnum = { + id: 'id', + license_id: 'license_id', + consumer_id: 'consumer_id' +} as const + +export type ActivatedLicenseOrderByRelevanceFieldEnum = (typeof ActivatedLicenseOrderByRelevanceFieldEnum)[keyof typeof ActivatedLicenseOrderByRelevanceFieldEnum] + + +export const ChargedLicenseTransactionsOrderByRelevanceFieldEnum = { + id: 'id', + partner_id: 'partner_id' +} as const + +export type ChargedLicenseTransactionsOrderByRelevanceFieldEnum = (typeof ChargedLicenseTransactionsOrderByRelevanceFieldEnum)[keyof typeof ChargedLicenseTransactionsOrderByRelevanceFieldEnum] + + export const PartnerAccountOrderByRelevanceFieldEnum = { id: 'id', partner_id: 'partner_id', @@ -3294,6 +3464,7 @@ export const GoodOrderByRelevanceFieldEnum = { description: 'description', local_sku: 'local_sku', barcode: 'barcode', + image_url: 'image_url', complex_id: 'complex_id', category_id: 'category_id' } as const @@ -3442,13 +3613,6 @@ export type EnumPOSTypeFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaMo -/** - * Reference to a field of type 'LicenseStatus' - */ -export type EnumLicenseStatusFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'LicenseStatus'> - - - /** * Reference to a field of type 'PartnerRole' */ @@ -3456,13 +3620,6 @@ export type EnumPartnerRoleFieldRefInput<$PrismaModel> = FieldRefInputType<$Pris -/** - * Reference to a field of type 'Int' - */ -export type IntFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'Int'> - - - /** * Reference to a field of type 'PartnerStatus' */ @@ -3498,6 +3655,13 @@ export type EnumProviderRoleFieldRefInput<$PrismaModel> = FieldRefInputType<$Pri +/** + * Reference to a field of type 'Int' + */ +export type IntFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'Int'> + + + /** * Reference to a field of type 'Boolean' */ @@ -3666,6 +3830,8 @@ export type GlobalOmitConfig = { deviceBrand?: Prisma.DeviceBrandOmit device?: Prisma.DeviceOmit license?: Prisma.LicenseOmit + activatedLicense?: Prisma.ActivatedLicenseOmit + chargedLicenseTransactions?: Prisma.ChargedLicenseTransactionsOmit partnerAccount?: Prisma.PartnerAccountOmit partner?: Prisma.PartnerOmit permissionConsumer?: Prisma.PermissionConsumerOmit diff --git a/src/generated/prisma/internal/prismaNamespaceBrowser.ts b/src/generated/prisma/internal/prismaNamespaceBrowser.ts index 832179c..783a393 100644 --- a/src/generated/prisma/internal/prismaNamespaceBrowser.ts +++ b/src/generated/prisma/internal/prismaNamespaceBrowser.ts @@ -62,6 +62,8 @@ export const ModelName = { DeviceBrand: 'DeviceBrand', Device: 'Device', License: 'License', + ActivatedLicense: 'ActivatedLicense', + ChargedLicenseTransactions: 'ChargedLicenseTransactions', PartnerAccount: 'PartnerAccount', Partner: 'Partner', PermissionConsumer: 'PermissionConsumer', @@ -227,18 +229,38 @@ export type DeviceScalarFieldEnum = (typeof DeviceScalarFieldEnum)[keyof typeof export const LicenseScalarFieldEnum = { id: 'id', - starts_at: 'starts_at', - expires_at: 'expires_at', - status: 'status', created_at: 'created_at', updated_at: 'updated_at', - partner_id: 'partner_id', - consumer_id: 'consumer_id' + charged_license_transaction_id: 'charged_license_transaction_id' } as const export type LicenseScalarFieldEnum = (typeof LicenseScalarFieldEnum)[keyof typeof LicenseScalarFieldEnum] +export const ActivatedLicenseScalarFieldEnum = { + id: 'id', + starts_at: 'starts_at', + expires_at: 'expires_at', + created_at: 'created_at', + updated_at: 'updated_at', + license_id: 'license_id', + consumer_id: 'consumer_id' +} as const + +export type ActivatedLicenseScalarFieldEnum = (typeof ActivatedLicenseScalarFieldEnum)[keyof typeof ActivatedLicenseScalarFieldEnum] + + +export const ChargedLicenseTransactionsScalarFieldEnum = { + id: 'id', + activation_expires_at: 'activation_expires_at', + created_at: 'created_at', + updated_at: 'updated_at', + partner_id: 'partner_id' +} as const + +export type ChargedLicenseTransactionsScalarFieldEnum = (typeof ChargedLicenseTransactionsScalarFieldEnum)[keyof typeof ChargedLicenseTransactionsScalarFieldEnum] + + export const PartnerAccountScalarFieldEnum = { id: 'id', role: 'role', @@ -255,7 +277,6 @@ export const PartnerScalarFieldEnum = { id: 'id', name: 'name', code: 'code', - license_quota: 'license_quota', status: 'status', created_at: 'created_at', updated_at: 'updated_at' @@ -404,6 +425,7 @@ export const GoodScalarFieldEnum = { local_sku: 'local_sku', barcode: 'barcode', base_sale_price: 'base_sale_price', + image_url: 'image_url', created_at: 'created_at', updated_at: 'updated_at', deleted_at: 'deleted_at', @@ -648,13 +670,29 @@ export type DeviceOrderByRelevanceFieldEnum = (typeof DeviceOrderByRelevanceFiel export const LicenseOrderByRelevanceFieldEnum = { id: 'id', - partner_id: 'partner_id', - consumer_id: 'consumer_id' + charged_license_transaction_id: 'charged_license_transaction_id' } as const export type LicenseOrderByRelevanceFieldEnum = (typeof LicenseOrderByRelevanceFieldEnum)[keyof typeof LicenseOrderByRelevanceFieldEnum] +export const ActivatedLicenseOrderByRelevanceFieldEnum = { + id: 'id', + license_id: 'license_id', + consumer_id: 'consumer_id' +} as const + +export type ActivatedLicenseOrderByRelevanceFieldEnum = (typeof ActivatedLicenseOrderByRelevanceFieldEnum)[keyof typeof ActivatedLicenseOrderByRelevanceFieldEnum] + + +export const ChargedLicenseTransactionsOrderByRelevanceFieldEnum = { + id: 'id', + partner_id: 'partner_id' +} as const + +export type ChargedLicenseTransactionsOrderByRelevanceFieldEnum = (typeof ChargedLicenseTransactionsOrderByRelevanceFieldEnum)[keyof typeof ChargedLicenseTransactionsOrderByRelevanceFieldEnum] + + export const PartnerAccountOrderByRelevanceFieldEnum = { id: 'id', partner_id: 'partner_id', @@ -809,6 +847,7 @@ export const GoodOrderByRelevanceFieldEnum = { description: 'description', local_sku: 'local_sku', barcode: 'barcode', + image_url: 'image_url', complex_id: 'complex_id', category_id: 'category_id' } as const diff --git a/src/generated/prisma/models.ts b/src/generated/prisma/models.ts index 83d12fa..b191f9a 100644 --- a/src/generated/prisma/models.ts +++ b/src/generated/prisma/models.ts @@ -19,6 +19,8 @@ export type * from './models/Pos.js' export type * from './models/DeviceBrand.js' export type * from './models/Device.js' export type * from './models/License.js' +export type * from './models/ActivatedLicense.js' +export type * from './models/ChargedLicenseTransactions.js' export type * from './models/PartnerAccount.js' export type * from './models/Partner.js' export type * from './models/PermissionConsumer.js' diff --git a/src/generated/prisma/models/ActivatedLicense.ts b/src/generated/prisma/models/ActivatedLicense.ts new file mode 100644 index 0000000..7779d90 --- /dev/null +++ b/src/generated/prisma/models/ActivatedLicense.ts @@ -0,0 +1,1379 @@ + +/* !!! This is code generated by Prisma. Do not edit directly. !!! */ +/* eslint-disable */ +// biome-ignore-all lint: generated file +// @ts-nocheck +/* + * This file exports the `ActivatedLicense` model and its related types. + * + * 🟢 You can import this file directly. + */ +import type * as runtime from "@prisma/client/runtime/client" +import type * as $Enums from "../enums.js" +import type * as Prisma from "../internal/prismaNamespace.js" + +/** + * Model ActivatedLicense + * + */ +export type ActivatedLicenseModel = runtime.Types.Result.DefaultSelection + +export type AggregateActivatedLicense = { + _count: ActivatedLicenseCountAggregateOutputType | null + _min: ActivatedLicenseMinAggregateOutputType | null + _max: ActivatedLicenseMaxAggregateOutputType | null +} + +export type ActivatedLicenseMinAggregateOutputType = { + id: string | null + starts_at: Date | null + expires_at: Date | null + created_at: Date | null + updated_at: Date | null + license_id: string | null + consumer_id: string | null +} + +export type ActivatedLicenseMaxAggregateOutputType = { + id: string | null + starts_at: Date | null + expires_at: Date | null + created_at: Date | null + updated_at: Date | null + license_id: string | null + consumer_id: string | null +} + +export type ActivatedLicenseCountAggregateOutputType = { + id: number + starts_at: number + expires_at: number + created_at: number + updated_at: number + license_id: number + consumer_id: number + _all: number +} + + +export type ActivatedLicenseMinAggregateInputType = { + id?: true + starts_at?: true + expires_at?: true + created_at?: true + updated_at?: true + license_id?: true + consumer_id?: true +} + +export type ActivatedLicenseMaxAggregateInputType = { + id?: true + starts_at?: true + expires_at?: true + created_at?: true + updated_at?: true + license_id?: true + consumer_id?: true +} + +export type ActivatedLicenseCountAggregateInputType = { + id?: true + starts_at?: true + expires_at?: true + created_at?: true + updated_at?: true + license_id?: true + consumer_id?: true + _all?: true +} + +export type ActivatedLicenseAggregateArgs = { + /** + * Filter which ActivatedLicense to aggregate. + */ + where?: Prisma.ActivatedLicenseWhereInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} + * + * Determine the order of ActivatedLicenses to fetch. + */ + orderBy?: Prisma.ActivatedLicenseOrderByWithRelationInput | Prisma.ActivatedLicenseOrderByWithRelationInput[] + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} + * + * Sets the start position + */ + cursor?: Prisma.ActivatedLicenseWhereUniqueInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Take `±n` ActivatedLicenses from the position of the cursor. + */ + take?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Skip the first `n` ActivatedLicenses. + */ + skip?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} + * + * Count returned ActivatedLicenses + **/ + _count?: true | ActivatedLicenseCountAggregateInputType + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} + * + * Select which fields to find the minimum value + **/ + _min?: ActivatedLicenseMinAggregateInputType + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} + * + * Select which fields to find the maximum value + **/ + _max?: ActivatedLicenseMaxAggregateInputType +} + +export type GetActivatedLicenseAggregateType = { + [P in keyof T & keyof AggregateActivatedLicense]: P extends '_count' | 'count' + ? T[P] extends true + ? number + : Prisma.GetScalarType + : Prisma.GetScalarType +} + + + + +export type ActivatedLicenseGroupByArgs = { + where?: Prisma.ActivatedLicenseWhereInput + orderBy?: Prisma.ActivatedLicenseOrderByWithAggregationInput | Prisma.ActivatedLicenseOrderByWithAggregationInput[] + by: Prisma.ActivatedLicenseScalarFieldEnum[] | Prisma.ActivatedLicenseScalarFieldEnum + having?: Prisma.ActivatedLicenseScalarWhereWithAggregatesInput + take?: number + skip?: number + _count?: ActivatedLicenseCountAggregateInputType | true + _min?: ActivatedLicenseMinAggregateInputType + _max?: ActivatedLicenseMaxAggregateInputType +} + +export type ActivatedLicenseGroupByOutputType = { + id: string + starts_at: Date + expires_at: Date + created_at: Date + updated_at: Date + license_id: string + consumer_id: string + _count: ActivatedLicenseCountAggregateOutputType | null + _min: ActivatedLicenseMinAggregateOutputType | null + _max: ActivatedLicenseMaxAggregateOutputType | null +} + +type GetActivatedLicenseGroupByPayload = Prisma.PrismaPromise< + Array< + Prisma.PickEnumerable & + { + [P in ((keyof T) & (keyof ActivatedLicenseGroupByOutputType))]: P extends '_count' + ? T[P] extends boolean + ? number + : Prisma.GetScalarType + : Prisma.GetScalarType + } + > + > + + + +export type ActivatedLicenseWhereInput = { + AND?: Prisma.ActivatedLicenseWhereInput | Prisma.ActivatedLicenseWhereInput[] + OR?: Prisma.ActivatedLicenseWhereInput[] + NOT?: Prisma.ActivatedLicenseWhereInput | Prisma.ActivatedLicenseWhereInput[] + id?: Prisma.StringFilter<"ActivatedLicense"> | string + starts_at?: Prisma.DateTimeFilter<"ActivatedLicense"> | Date | string + expires_at?: Prisma.DateTimeFilter<"ActivatedLicense"> | Date | string + created_at?: Prisma.DateTimeFilter<"ActivatedLicense"> | Date | string + updated_at?: Prisma.DateTimeFilter<"ActivatedLicense"> | Date | string + license_id?: Prisma.StringFilter<"ActivatedLicense"> | string + consumer_id?: Prisma.StringFilter<"ActivatedLicense"> | string + license?: Prisma.XOR + consumer?: Prisma.XOR +} + +export type ActivatedLicenseOrderByWithRelationInput = { + id?: Prisma.SortOrder + starts_at?: Prisma.SortOrder + expires_at?: Prisma.SortOrder + created_at?: Prisma.SortOrder + updated_at?: Prisma.SortOrder + license_id?: Prisma.SortOrder + consumer_id?: Prisma.SortOrder + license?: Prisma.LicenseOrderByWithRelationInput + consumer?: Prisma.ConsumerOrderByWithRelationInput + _relevance?: Prisma.ActivatedLicenseOrderByRelevanceInput +} + +export type ActivatedLicenseWhereUniqueInput = Prisma.AtLeast<{ + id?: string + license_id?: string + AND?: Prisma.ActivatedLicenseWhereInput | Prisma.ActivatedLicenseWhereInput[] + OR?: Prisma.ActivatedLicenseWhereInput[] + NOT?: Prisma.ActivatedLicenseWhereInput | Prisma.ActivatedLicenseWhereInput[] + starts_at?: Prisma.DateTimeFilter<"ActivatedLicense"> | Date | string + expires_at?: Prisma.DateTimeFilter<"ActivatedLicense"> | Date | string + created_at?: Prisma.DateTimeFilter<"ActivatedLicense"> | Date | string + updated_at?: Prisma.DateTimeFilter<"ActivatedLicense"> | Date | string + consumer_id?: Prisma.StringFilter<"ActivatedLicense"> | string + license?: Prisma.XOR + consumer?: Prisma.XOR +}, "id" | "id" | "license_id"> + +export type ActivatedLicenseOrderByWithAggregationInput = { + id?: Prisma.SortOrder + starts_at?: Prisma.SortOrder + expires_at?: Prisma.SortOrder + created_at?: Prisma.SortOrder + updated_at?: Prisma.SortOrder + license_id?: Prisma.SortOrder + consumer_id?: Prisma.SortOrder + _count?: Prisma.ActivatedLicenseCountOrderByAggregateInput + _max?: Prisma.ActivatedLicenseMaxOrderByAggregateInput + _min?: Prisma.ActivatedLicenseMinOrderByAggregateInput +} + +export type ActivatedLicenseScalarWhereWithAggregatesInput = { + AND?: Prisma.ActivatedLicenseScalarWhereWithAggregatesInput | Prisma.ActivatedLicenseScalarWhereWithAggregatesInput[] + OR?: Prisma.ActivatedLicenseScalarWhereWithAggregatesInput[] + NOT?: Prisma.ActivatedLicenseScalarWhereWithAggregatesInput | Prisma.ActivatedLicenseScalarWhereWithAggregatesInput[] + id?: Prisma.StringWithAggregatesFilter<"ActivatedLicense"> | string + starts_at?: Prisma.DateTimeWithAggregatesFilter<"ActivatedLicense"> | Date | string + expires_at?: Prisma.DateTimeWithAggregatesFilter<"ActivatedLicense"> | Date | string + created_at?: Prisma.DateTimeWithAggregatesFilter<"ActivatedLicense"> | Date | string + updated_at?: Prisma.DateTimeWithAggregatesFilter<"ActivatedLicense"> | Date | string + license_id?: Prisma.StringWithAggregatesFilter<"ActivatedLicense"> | string + consumer_id?: Prisma.StringWithAggregatesFilter<"ActivatedLicense"> | string +} + +export type ActivatedLicenseCreateInput = { + id?: string + starts_at: Date | string + expires_at: Date | string + created_at?: Date | string + updated_at?: Date | string + license: Prisma.LicenseCreateNestedOneWithoutActivated_licenseInput + consumer: Prisma.ConsumerCreateNestedOneWithoutActivated_licensesInput +} + +export type ActivatedLicenseUncheckedCreateInput = { + id?: string + starts_at: Date | string + expires_at: Date | string + created_at?: Date | string + updated_at?: Date | string + license_id: string + consumer_id: string +} + +export type ActivatedLicenseUpdateInput = { + id?: Prisma.StringFieldUpdateOperationsInput | string + starts_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + expires_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + created_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + updated_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + license?: Prisma.LicenseUpdateOneRequiredWithoutActivated_licenseNestedInput + consumer?: Prisma.ConsumerUpdateOneRequiredWithoutActivated_licensesNestedInput +} + +export type ActivatedLicenseUncheckedUpdateInput = { + id?: Prisma.StringFieldUpdateOperationsInput | string + starts_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + expires_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + created_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + updated_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + license_id?: Prisma.StringFieldUpdateOperationsInput | string + consumer_id?: Prisma.StringFieldUpdateOperationsInput | string +} + +export type ActivatedLicenseCreateManyInput = { + id?: string + starts_at: Date | string + expires_at: Date | string + created_at?: Date | string + updated_at?: Date | string + license_id: string + consumer_id: string +} + +export type ActivatedLicenseUpdateManyMutationInput = { + id?: Prisma.StringFieldUpdateOperationsInput | string + starts_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + expires_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + created_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + updated_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string +} + +export type ActivatedLicenseUncheckedUpdateManyInput = { + id?: Prisma.StringFieldUpdateOperationsInput | string + starts_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + expires_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + created_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + updated_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + license_id?: Prisma.StringFieldUpdateOperationsInput | string + consumer_id?: Prisma.StringFieldUpdateOperationsInput | string +} + +export type ActivatedLicenseListRelationFilter = { + every?: Prisma.ActivatedLicenseWhereInput + some?: Prisma.ActivatedLicenseWhereInput + none?: Prisma.ActivatedLicenseWhereInput +} + +export type ActivatedLicenseOrderByRelationAggregateInput = { + _count?: Prisma.SortOrder +} + +export type ActivatedLicenseNullableScalarRelationFilter = { + is?: Prisma.ActivatedLicenseWhereInput | null + isNot?: Prisma.ActivatedLicenseWhereInput | null +} + +export type ActivatedLicenseOrderByRelevanceInput = { + fields: Prisma.ActivatedLicenseOrderByRelevanceFieldEnum | Prisma.ActivatedLicenseOrderByRelevanceFieldEnum[] + sort: Prisma.SortOrder + search: string +} + +export type ActivatedLicenseCountOrderByAggregateInput = { + id?: Prisma.SortOrder + starts_at?: Prisma.SortOrder + expires_at?: Prisma.SortOrder + created_at?: Prisma.SortOrder + updated_at?: Prisma.SortOrder + license_id?: Prisma.SortOrder + consumer_id?: Prisma.SortOrder +} + +export type ActivatedLicenseMaxOrderByAggregateInput = { + id?: Prisma.SortOrder + starts_at?: Prisma.SortOrder + expires_at?: Prisma.SortOrder + created_at?: Prisma.SortOrder + updated_at?: Prisma.SortOrder + license_id?: Prisma.SortOrder + consumer_id?: Prisma.SortOrder +} + +export type ActivatedLicenseMinOrderByAggregateInput = { + id?: Prisma.SortOrder + starts_at?: Prisma.SortOrder + expires_at?: Prisma.SortOrder + created_at?: Prisma.SortOrder + updated_at?: Prisma.SortOrder + license_id?: Prisma.SortOrder + consumer_id?: Prisma.SortOrder +} + +export type ActivatedLicenseCreateNestedManyWithoutConsumerInput = { + create?: Prisma.XOR | Prisma.ActivatedLicenseCreateWithoutConsumerInput[] | Prisma.ActivatedLicenseUncheckedCreateWithoutConsumerInput[] + connectOrCreate?: Prisma.ActivatedLicenseCreateOrConnectWithoutConsumerInput | Prisma.ActivatedLicenseCreateOrConnectWithoutConsumerInput[] + createMany?: Prisma.ActivatedLicenseCreateManyConsumerInputEnvelope + connect?: Prisma.ActivatedLicenseWhereUniqueInput | Prisma.ActivatedLicenseWhereUniqueInput[] +} + +export type ActivatedLicenseUncheckedCreateNestedManyWithoutConsumerInput = { + create?: Prisma.XOR | Prisma.ActivatedLicenseCreateWithoutConsumerInput[] | Prisma.ActivatedLicenseUncheckedCreateWithoutConsumerInput[] + connectOrCreate?: Prisma.ActivatedLicenseCreateOrConnectWithoutConsumerInput | Prisma.ActivatedLicenseCreateOrConnectWithoutConsumerInput[] + createMany?: Prisma.ActivatedLicenseCreateManyConsumerInputEnvelope + connect?: Prisma.ActivatedLicenseWhereUniqueInput | Prisma.ActivatedLicenseWhereUniqueInput[] +} + +export type ActivatedLicenseUpdateManyWithoutConsumerNestedInput = { + create?: Prisma.XOR | Prisma.ActivatedLicenseCreateWithoutConsumerInput[] | Prisma.ActivatedLicenseUncheckedCreateWithoutConsumerInput[] + connectOrCreate?: Prisma.ActivatedLicenseCreateOrConnectWithoutConsumerInput | Prisma.ActivatedLicenseCreateOrConnectWithoutConsumerInput[] + upsert?: Prisma.ActivatedLicenseUpsertWithWhereUniqueWithoutConsumerInput | Prisma.ActivatedLicenseUpsertWithWhereUniqueWithoutConsumerInput[] + createMany?: Prisma.ActivatedLicenseCreateManyConsumerInputEnvelope + set?: Prisma.ActivatedLicenseWhereUniqueInput | Prisma.ActivatedLicenseWhereUniqueInput[] + disconnect?: Prisma.ActivatedLicenseWhereUniqueInput | Prisma.ActivatedLicenseWhereUniqueInput[] + delete?: Prisma.ActivatedLicenseWhereUniqueInput | Prisma.ActivatedLicenseWhereUniqueInput[] + connect?: Prisma.ActivatedLicenseWhereUniqueInput | Prisma.ActivatedLicenseWhereUniqueInput[] + update?: Prisma.ActivatedLicenseUpdateWithWhereUniqueWithoutConsumerInput | Prisma.ActivatedLicenseUpdateWithWhereUniqueWithoutConsumerInput[] + updateMany?: Prisma.ActivatedLicenseUpdateManyWithWhereWithoutConsumerInput | Prisma.ActivatedLicenseUpdateManyWithWhereWithoutConsumerInput[] + deleteMany?: Prisma.ActivatedLicenseScalarWhereInput | Prisma.ActivatedLicenseScalarWhereInput[] +} + +export type ActivatedLicenseUncheckedUpdateManyWithoutConsumerNestedInput = { + create?: Prisma.XOR | Prisma.ActivatedLicenseCreateWithoutConsumerInput[] | Prisma.ActivatedLicenseUncheckedCreateWithoutConsumerInput[] + connectOrCreate?: Prisma.ActivatedLicenseCreateOrConnectWithoutConsumerInput | Prisma.ActivatedLicenseCreateOrConnectWithoutConsumerInput[] + upsert?: Prisma.ActivatedLicenseUpsertWithWhereUniqueWithoutConsumerInput | Prisma.ActivatedLicenseUpsertWithWhereUniqueWithoutConsumerInput[] + createMany?: Prisma.ActivatedLicenseCreateManyConsumerInputEnvelope + set?: Prisma.ActivatedLicenseWhereUniqueInput | Prisma.ActivatedLicenseWhereUniqueInput[] + disconnect?: Prisma.ActivatedLicenseWhereUniqueInput | Prisma.ActivatedLicenseWhereUniqueInput[] + delete?: Prisma.ActivatedLicenseWhereUniqueInput | Prisma.ActivatedLicenseWhereUniqueInput[] + connect?: Prisma.ActivatedLicenseWhereUniqueInput | Prisma.ActivatedLicenseWhereUniqueInput[] + update?: Prisma.ActivatedLicenseUpdateWithWhereUniqueWithoutConsumerInput | Prisma.ActivatedLicenseUpdateWithWhereUniqueWithoutConsumerInput[] + updateMany?: Prisma.ActivatedLicenseUpdateManyWithWhereWithoutConsumerInput | Prisma.ActivatedLicenseUpdateManyWithWhereWithoutConsumerInput[] + deleteMany?: Prisma.ActivatedLicenseScalarWhereInput | Prisma.ActivatedLicenseScalarWhereInput[] +} + +export type ActivatedLicenseCreateNestedOneWithoutLicenseInput = { + create?: Prisma.XOR + connectOrCreate?: Prisma.ActivatedLicenseCreateOrConnectWithoutLicenseInput + connect?: Prisma.ActivatedLicenseWhereUniqueInput +} + +export type ActivatedLicenseUncheckedCreateNestedOneWithoutLicenseInput = { + create?: Prisma.XOR + connectOrCreate?: Prisma.ActivatedLicenseCreateOrConnectWithoutLicenseInput + connect?: Prisma.ActivatedLicenseWhereUniqueInput +} + +export type ActivatedLicenseUpdateOneWithoutLicenseNestedInput = { + create?: Prisma.XOR + connectOrCreate?: Prisma.ActivatedLicenseCreateOrConnectWithoutLicenseInput + upsert?: Prisma.ActivatedLicenseUpsertWithoutLicenseInput + disconnect?: Prisma.ActivatedLicenseWhereInput | boolean + delete?: Prisma.ActivatedLicenseWhereInput | boolean + connect?: Prisma.ActivatedLicenseWhereUniqueInput + update?: Prisma.XOR, Prisma.ActivatedLicenseUncheckedUpdateWithoutLicenseInput> +} + +export type ActivatedLicenseUncheckedUpdateOneWithoutLicenseNestedInput = { + create?: Prisma.XOR + connectOrCreate?: Prisma.ActivatedLicenseCreateOrConnectWithoutLicenseInput + upsert?: Prisma.ActivatedLicenseUpsertWithoutLicenseInput + disconnect?: Prisma.ActivatedLicenseWhereInput | boolean + delete?: Prisma.ActivatedLicenseWhereInput | boolean + connect?: Prisma.ActivatedLicenseWhereUniqueInput + update?: Prisma.XOR, Prisma.ActivatedLicenseUncheckedUpdateWithoutLicenseInput> +} + +export type ActivatedLicenseCreateWithoutConsumerInput = { + id?: string + starts_at: Date | string + expires_at: Date | string + created_at?: Date | string + updated_at?: Date | string + license: Prisma.LicenseCreateNestedOneWithoutActivated_licenseInput +} + +export type ActivatedLicenseUncheckedCreateWithoutConsumerInput = { + id?: string + starts_at: Date | string + expires_at: Date | string + created_at?: Date | string + updated_at?: Date | string + license_id: string +} + +export type ActivatedLicenseCreateOrConnectWithoutConsumerInput = { + where: Prisma.ActivatedLicenseWhereUniqueInput + create: Prisma.XOR +} + +export type ActivatedLicenseCreateManyConsumerInputEnvelope = { + data: Prisma.ActivatedLicenseCreateManyConsumerInput | Prisma.ActivatedLicenseCreateManyConsumerInput[] + skipDuplicates?: boolean +} + +export type ActivatedLicenseUpsertWithWhereUniqueWithoutConsumerInput = { + where: Prisma.ActivatedLicenseWhereUniqueInput + update: Prisma.XOR + create: Prisma.XOR +} + +export type ActivatedLicenseUpdateWithWhereUniqueWithoutConsumerInput = { + where: Prisma.ActivatedLicenseWhereUniqueInput + data: Prisma.XOR +} + +export type ActivatedLicenseUpdateManyWithWhereWithoutConsumerInput = { + where: Prisma.ActivatedLicenseScalarWhereInput + data: Prisma.XOR +} + +export type ActivatedLicenseScalarWhereInput = { + AND?: Prisma.ActivatedLicenseScalarWhereInput | Prisma.ActivatedLicenseScalarWhereInput[] + OR?: Prisma.ActivatedLicenseScalarWhereInput[] + NOT?: Prisma.ActivatedLicenseScalarWhereInput | Prisma.ActivatedLicenseScalarWhereInput[] + id?: Prisma.StringFilter<"ActivatedLicense"> | string + starts_at?: Prisma.DateTimeFilter<"ActivatedLicense"> | Date | string + expires_at?: Prisma.DateTimeFilter<"ActivatedLicense"> | Date | string + created_at?: Prisma.DateTimeFilter<"ActivatedLicense"> | Date | string + updated_at?: Prisma.DateTimeFilter<"ActivatedLicense"> | Date | string + license_id?: Prisma.StringFilter<"ActivatedLicense"> | string + consumer_id?: Prisma.StringFilter<"ActivatedLicense"> | string +} + +export type ActivatedLicenseCreateWithoutLicenseInput = { + id?: string + starts_at: Date | string + expires_at: Date | string + created_at?: Date | string + updated_at?: Date | string + consumer: Prisma.ConsumerCreateNestedOneWithoutActivated_licensesInput +} + +export type ActivatedLicenseUncheckedCreateWithoutLicenseInput = { + id?: string + starts_at: Date | string + expires_at: Date | string + created_at?: Date | string + updated_at?: Date | string + consumer_id: string +} + +export type ActivatedLicenseCreateOrConnectWithoutLicenseInput = { + where: Prisma.ActivatedLicenseWhereUniqueInput + create: Prisma.XOR +} + +export type ActivatedLicenseUpsertWithoutLicenseInput = { + update: Prisma.XOR + create: Prisma.XOR + where?: Prisma.ActivatedLicenseWhereInput +} + +export type ActivatedLicenseUpdateToOneWithWhereWithoutLicenseInput = { + where?: Prisma.ActivatedLicenseWhereInput + data: Prisma.XOR +} + +export type ActivatedLicenseUpdateWithoutLicenseInput = { + id?: Prisma.StringFieldUpdateOperationsInput | string + starts_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + expires_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + created_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + updated_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + consumer?: Prisma.ConsumerUpdateOneRequiredWithoutActivated_licensesNestedInput +} + +export type ActivatedLicenseUncheckedUpdateWithoutLicenseInput = { + id?: Prisma.StringFieldUpdateOperationsInput | string + starts_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + expires_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + created_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + updated_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + consumer_id?: Prisma.StringFieldUpdateOperationsInput | string +} + +export type ActivatedLicenseCreateManyConsumerInput = { + id?: string + starts_at: Date | string + expires_at: Date | string + created_at?: Date | string + updated_at?: Date | string + license_id: string +} + +export type ActivatedLicenseUpdateWithoutConsumerInput = { + id?: Prisma.StringFieldUpdateOperationsInput | string + starts_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + expires_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + created_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + updated_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + license?: Prisma.LicenseUpdateOneRequiredWithoutActivated_licenseNestedInput +} + +export type ActivatedLicenseUncheckedUpdateWithoutConsumerInput = { + id?: Prisma.StringFieldUpdateOperationsInput | string + starts_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + expires_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + created_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + updated_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + license_id?: Prisma.StringFieldUpdateOperationsInput | string +} + +export type ActivatedLicenseUncheckedUpdateManyWithoutConsumerInput = { + id?: Prisma.StringFieldUpdateOperationsInput | string + starts_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + expires_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + created_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + updated_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + license_id?: Prisma.StringFieldUpdateOperationsInput | string +} + + + +export type ActivatedLicenseSelect = runtime.Types.Extensions.GetSelect<{ + id?: boolean + starts_at?: boolean + expires_at?: boolean + created_at?: boolean + updated_at?: boolean + license_id?: boolean + consumer_id?: boolean + license?: boolean | Prisma.LicenseDefaultArgs + consumer?: boolean | Prisma.ConsumerDefaultArgs +}, ExtArgs["result"]["activatedLicense"]> + + + +export type ActivatedLicenseSelectScalar = { + id?: boolean + starts_at?: boolean + expires_at?: boolean + created_at?: boolean + updated_at?: boolean + license_id?: boolean + consumer_id?: boolean +} + +export type ActivatedLicenseOmit = runtime.Types.Extensions.GetOmit<"id" | "starts_at" | "expires_at" | "created_at" | "updated_at" | "license_id" | "consumer_id", ExtArgs["result"]["activatedLicense"]> +export type ActivatedLicenseInclude = { + license?: boolean | Prisma.LicenseDefaultArgs + consumer?: boolean | Prisma.ConsumerDefaultArgs +} + +export type $ActivatedLicensePayload = { + name: "ActivatedLicense" + objects: { + license: Prisma.$LicensePayload + consumer: Prisma.$ConsumerPayload + } + scalars: runtime.Types.Extensions.GetPayloadResult<{ + id: string + starts_at: Date + expires_at: Date + created_at: Date + updated_at: Date + license_id: string + consumer_id: string + }, ExtArgs["result"]["activatedLicense"]> + composites: {} +} + +export type ActivatedLicenseGetPayload = runtime.Types.Result.GetResult + +export type ActivatedLicenseCountArgs = + Omit & { + select?: ActivatedLicenseCountAggregateInputType | true + } + +export interface ActivatedLicenseDelegate { + [K: symbol]: { types: Prisma.TypeMap['model']['ActivatedLicense'], meta: { name: 'ActivatedLicense' } } + /** + * Find zero or one ActivatedLicense that matches the filter. + * @param {ActivatedLicenseFindUniqueArgs} args - Arguments to find a ActivatedLicense + * @example + * // Get one ActivatedLicense + * const activatedLicense = await prisma.activatedLicense.findUnique({ + * where: { + * // ... provide filter here + * } + * }) + */ + findUnique(args: Prisma.SelectSubset>): Prisma.Prisma__ActivatedLicenseClient, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions> + + /** + * Find one ActivatedLicense that matches the filter or throw an error with `error.code='P2025'` + * if no matches were found. + * @param {ActivatedLicenseFindUniqueOrThrowArgs} args - Arguments to find a ActivatedLicense + * @example + * // Get one ActivatedLicense + * const activatedLicense = await prisma.activatedLicense.findUniqueOrThrow({ + * where: { + * // ... provide filter here + * } + * }) + */ + findUniqueOrThrow(args: Prisma.SelectSubset>): Prisma.Prisma__ActivatedLicenseClient, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + /** + * Find the first ActivatedLicense that matches the filter. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {ActivatedLicenseFindFirstArgs} args - Arguments to find a ActivatedLicense + * @example + * // Get one ActivatedLicense + * const activatedLicense = await prisma.activatedLicense.findFirst({ + * where: { + * // ... provide filter here + * } + * }) + */ + findFirst(args?: Prisma.SelectSubset>): Prisma.Prisma__ActivatedLicenseClient, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions> + + /** + * Find the first ActivatedLicense that matches the filter or + * throw `PrismaKnownClientError` with `P2025` code if no matches were found. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {ActivatedLicenseFindFirstOrThrowArgs} args - Arguments to find a ActivatedLicense + * @example + * // Get one ActivatedLicense + * const activatedLicense = await prisma.activatedLicense.findFirstOrThrow({ + * where: { + * // ... provide filter here + * } + * }) + */ + findFirstOrThrow(args?: Prisma.SelectSubset>): Prisma.Prisma__ActivatedLicenseClient, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + /** + * Find zero or more ActivatedLicenses that matches the filter. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {ActivatedLicenseFindManyArgs} args - Arguments to filter and select certain fields only. + * @example + * // Get all ActivatedLicenses + * const activatedLicenses = await prisma.activatedLicense.findMany() + * + * // Get first 10 ActivatedLicenses + * const activatedLicenses = await prisma.activatedLicense.findMany({ take: 10 }) + * + * // Only select the `id` + * const activatedLicenseWithIdOnly = await prisma.activatedLicense.findMany({ select: { id: true } }) + * + */ + findMany(args?: Prisma.SelectSubset>): Prisma.PrismaPromise, T, "findMany", GlobalOmitOptions>> + + /** + * Create a ActivatedLicense. + * @param {ActivatedLicenseCreateArgs} args - Arguments to create a ActivatedLicense. + * @example + * // Create one ActivatedLicense + * const ActivatedLicense = await prisma.activatedLicense.create({ + * data: { + * // ... data to create a ActivatedLicense + * } + * }) + * + */ + create(args: Prisma.SelectSubset>): Prisma.Prisma__ActivatedLicenseClient, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + /** + * Create many ActivatedLicenses. + * @param {ActivatedLicenseCreateManyArgs} args - Arguments to create many ActivatedLicenses. + * @example + * // Create many ActivatedLicenses + * const activatedLicense = await prisma.activatedLicense.createMany({ + * data: [ + * // ... provide data here + * ] + * }) + * + */ + createMany(args?: Prisma.SelectSubset>): Prisma.PrismaPromise + + /** + * Delete a ActivatedLicense. + * @param {ActivatedLicenseDeleteArgs} args - Arguments to delete one ActivatedLicense. + * @example + * // Delete one ActivatedLicense + * const ActivatedLicense = await prisma.activatedLicense.delete({ + * where: { + * // ... filter to delete one ActivatedLicense + * } + * }) + * + */ + delete(args: Prisma.SelectSubset>): Prisma.Prisma__ActivatedLicenseClient, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + /** + * Update one ActivatedLicense. + * @param {ActivatedLicenseUpdateArgs} args - Arguments to update one ActivatedLicense. + * @example + * // Update one ActivatedLicense + * const activatedLicense = await prisma.activatedLicense.update({ + * where: { + * // ... provide filter here + * }, + * data: { + * // ... provide data here + * } + * }) + * + */ + update(args: Prisma.SelectSubset>): Prisma.Prisma__ActivatedLicenseClient, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + /** + * Delete zero or more ActivatedLicenses. + * @param {ActivatedLicenseDeleteManyArgs} args - Arguments to filter ActivatedLicenses to delete. + * @example + * // Delete a few ActivatedLicenses + * const { count } = await prisma.activatedLicense.deleteMany({ + * where: { + * // ... provide filter here + * } + * }) + * + */ + deleteMany(args?: Prisma.SelectSubset>): Prisma.PrismaPromise + + /** + * Update zero or more ActivatedLicenses. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {ActivatedLicenseUpdateManyArgs} args - Arguments to update one or more rows. + * @example + * // Update many ActivatedLicenses + * const activatedLicense = await prisma.activatedLicense.updateMany({ + * where: { + * // ... provide filter here + * }, + * data: { + * // ... provide data here + * } + * }) + * + */ + updateMany(args: Prisma.SelectSubset>): Prisma.PrismaPromise + + /** + * Create or update one ActivatedLicense. + * @param {ActivatedLicenseUpsertArgs} args - Arguments to update or create a ActivatedLicense. + * @example + * // Update or create a ActivatedLicense + * const activatedLicense = await prisma.activatedLicense.upsert({ + * create: { + * // ... data to create a ActivatedLicense + * }, + * update: { + * // ... in case it already exists, update + * }, + * where: { + * // ... the filter for the ActivatedLicense we want to update + * } + * }) + */ + upsert(args: Prisma.SelectSubset>): Prisma.Prisma__ActivatedLicenseClient, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + + /** + * Count the number of ActivatedLicenses. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {ActivatedLicenseCountArgs} args - Arguments to filter ActivatedLicenses to count. + * @example + * // Count the number of ActivatedLicenses + * const count = await prisma.activatedLicense.count({ + * where: { + * // ... the filter for the ActivatedLicenses we want to count + * } + * }) + **/ + count( + args?: Prisma.Subset, + ): Prisma.PrismaPromise< + T extends runtime.Types.Utils.Record<'select', any> + ? T['select'] extends true + ? number + : Prisma.GetScalarType + : number + > + + /** + * Allows you to perform aggregations operations on a ActivatedLicense. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {ActivatedLicenseAggregateArgs} args - Select which aggregations you would like to apply and on what fields. + * @example + * // Ordered by age ascending + * // Where email contains prisma.io + * // Limited to the 10 users + * const aggregations = await prisma.user.aggregate({ + * _avg: { + * age: true, + * }, + * where: { + * email: { + * contains: "prisma.io", + * }, + * }, + * orderBy: { + * age: "asc", + * }, + * take: 10, + * }) + **/ + aggregate(args: Prisma.Subset): Prisma.PrismaPromise> + + /** + * Group by ActivatedLicense. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {ActivatedLicenseGroupByArgs} args - Group by arguments. + * @example + * // Group by city, order by createdAt, get count + * const result = await prisma.user.groupBy({ + * by: ['city', 'createdAt'], + * orderBy: { + * createdAt: true + * }, + * _count: { + * _all: true + * }, + * }) + * + **/ + groupBy< + T extends ActivatedLicenseGroupByArgs, + HasSelectOrTake extends Prisma.Or< + Prisma.Extends<'skip', Prisma.Keys>, + Prisma.Extends<'take', Prisma.Keys> + >, + OrderByArg extends Prisma.True extends HasSelectOrTake + ? { orderBy: ActivatedLicenseGroupByArgs['orderBy'] } + : { orderBy?: ActivatedLicenseGroupByArgs['orderBy'] }, + OrderFields extends Prisma.ExcludeUnderscoreKeys>>, + ByFields extends Prisma.MaybeTupleToUnion, + ByValid extends Prisma.Has, + HavingFields extends Prisma.GetHavingFields, + HavingValid extends Prisma.Has, + ByEmpty extends T['by'] extends never[] ? Prisma.True : Prisma.False, + InputErrors extends ByEmpty extends Prisma.True + ? `Error: "by" must not be empty.` + : HavingValid extends Prisma.False + ? { + [P in HavingFields]: P extends ByFields + ? never + : P extends string + ? `Error: Field "${P}" used in "having" needs to be provided in "by".` + : [ + Error, + 'Field ', + P, + ` in "having" needs to be provided in "by"`, + ] + }[HavingFields] + : 'take' extends Prisma.Keys + ? 'orderBy' extends Prisma.Keys + ? ByValid extends Prisma.True + ? {} + : { + [P in OrderFields]: P extends ByFields + ? never + : `Error: Field "${P}" in "orderBy" needs to be provided in "by"` + }[OrderFields] + : 'Error: If you provide "take", you also need to provide "orderBy"' + : 'skip' extends Prisma.Keys + ? 'orderBy' extends Prisma.Keys + ? ByValid extends Prisma.True + ? {} + : { + [P in OrderFields]: P extends ByFields + ? never + : `Error: Field "${P}" in "orderBy" needs to be provided in "by"` + }[OrderFields] + : 'Error: If you provide "skip", you also need to provide "orderBy"' + : ByValid extends Prisma.True + ? {} + : { + [P in OrderFields]: P extends ByFields + ? never + : `Error: Field "${P}" in "orderBy" needs to be provided in "by"` + }[OrderFields] + >(args: Prisma.SubsetIntersection & InputErrors): {} extends InputErrors ? GetActivatedLicenseGroupByPayload : Prisma.PrismaPromise +/** + * Fields of the ActivatedLicense model + */ +readonly fields: ActivatedLicenseFieldRefs; +} + +/** + * The delegate class that acts as a "Promise-like" for ActivatedLicense. + * Why is this prefixed with `Prisma__`? + * Because we want to prevent naming conflicts as mentioned in + * https://github.com/prisma/prisma-client-js/issues/707 + */ +export interface Prisma__ActivatedLicenseClient extends Prisma.PrismaPromise { + readonly [Symbol.toStringTag]: "PrismaPromise" + license = {}>(args?: Prisma.Subset>): Prisma.Prisma__LicenseClient, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions> + consumer = {}>(args?: Prisma.Subset>): Prisma.Prisma__ConsumerClient, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions> + /** + * Attaches callbacks for the resolution and/or rejection of the Promise. + * @param onfulfilled The callback to execute when the Promise is resolved. + * @param onrejected The callback to execute when the Promise is rejected. + * @returns A Promise for the completion of which ever callback is executed. + */ + then(onfulfilled?: ((value: T) => TResult1 | PromiseLike) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike) | undefined | null): runtime.Types.Utils.JsPromise + /** + * Attaches a callback for only the rejection of the Promise. + * @param onrejected The callback to execute when the Promise is rejected. + * @returns A Promise for the completion of the callback. + */ + catch(onrejected?: ((reason: any) => TResult | PromiseLike) | undefined | null): runtime.Types.Utils.JsPromise + /** + * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The + * resolved value cannot be modified from the callback. + * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected). + * @returns A Promise for the completion of the callback. + */ + finally(onfinally?: (() => void) | undefined | null): runtime.Types.Utils.JsPromise +} + + + + +/** + * Fields of the ActivatedLicense model + */ +export interface ActivatedLicenseFieldRefs { + readonly id: Prisma.FieldRef<"ActivatedLicense", 'String'> + readonly starts_at: Prisma.FieldRef<"ActivatedLicense", 'DateTime'> + readonly expires_at: Prisma.FieldRef<"ActivatedLicense", 'DateTime'> + readonly created_at: Prisma.FieldRef<"ActivatedLicense", 'DateTime'> + readonly updated_at: Prisma.FieldRef<"ActivatedLicense", 'DateTime'> + readonly license_id: Prisma.FieldRef<"ActivatedLicense", 'String'> + readonly consumer_id: Prisma.FieldRef<"ActivatedLicense", 'String'> +} + + +// Custom InputTypes +/** + * ActivatedLicense findUnique + */ +export type ActivatedLicenseFindUniqueArgs = { + /** + * Select specific fields to fetch from the ActivatedLicense + */ + select?: Prisma.ActivatedLicenseSelect | null + /** + * Omit specific fields from the ActivatedLicense + */ + omit?: Prisma.ActivatedLicenseOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.ActivatedLicenseInclude | null + /** + * Filter, which ActivatedLicense to fetch. + */ + where: Prisma.ActivatedLicenseWhereUniqueInput +} + +/** + * ActivatedLicense findUniqueOrThrow + */ +export type ActivatedLicenseFindUniqueOrThrowArgs = { + /** + * Select specific fields to fetch from the ActivatedLicense + */ + select?: Prisma.ActivatedLicenseSelect | null + /** + * Omit specific fields from the ActivatedLicense + */ + omit?: Prisma.ActivatedLicenseOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.ActivatedLicenseInclude | null + /** + * Filter, which ActivatedLicense to fetch. + */ + where: Prisma.ActivatedLicenseWhereUniqueInput +} + +/** + * ActivatedLicense findFirst + */ +export type ActivatedLicenseFindFirstArgs = { + /** + * Select specific fields to fetch from the ActivatedLicense + */ + select?: Prisma.ActivatedLicenseSelect | null + /** + * Omit specific fields from the ActivatedLicense + */ + omit?: Prisma.ActivatedLicenseOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.ActivatedLicenseInclude | null + /** + * Filter, which ActivatedLicense to fetch. + */ + where?: Prisma.ActivatedLicenseWhereInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} + * + * Determine the order of ActivatedLicenses to fetch. + */ + orderBy?: Prisma.ActivatedLicenseOrderByWithRelationInput | Prisma.ActivatedLicenseOrderByWithRelationInput[] + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} + * + * Sets the position for searching for ActivatedLicenses. + */ + cursor?: Prisma.ActivatedLicenseWhereUniqueInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Take `±n` ActivatedLicenses from the position of the cursor. + */ + take?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Skip the first `n` ActivatedLicenses. + */ + skip?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs} + * + * Filter by unique combinations of ActivatedLicenses. + */ + distinct?: Prisma.ActivatedLicenseScalarFieldEnum | Prisma.ActivatedLicenseScalarFieldEnum[] +} + +/** + * ActivatedLicense findFirstOrThrow + */ +export type ActivatedLicenseFindFirstOrThrowArgs = { + /** + * Select specific fields to fetch from the ActivatedLicense + */ + select?: Prisma.ActivatedLicenseSelect | null + /** + * Omit specific fields from the ActivatedLicense + */ + omit?: Prisma.ActivatedLicenseOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.ActivatedLicenseInclude | null + /** + * Filter, which ActivatedLicense to fetch. + */ + where?: Prisma.ActivatedLicenseWhereInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} + * + * Determine the order of ActivatedLicenses to fetch. + */ + orderBy?: Prisma.ActivatedLicenseOrderByWithRelationInput | Prisma.ActivatedLicenseOrderByWithRelationInput[] + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} + * + * Sets the position for searching for ActivatedLicenses. + */ + cursor?: Prisma.ActivatedLicenseWhereUniqueInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Take `±n` ActivatedLicenses from the position of the cursor. + */ + take?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Skip the first `n` ActivatedLicenses. + */ + skip?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs} + * + * Filter by unique combinations of ActivatedLicenses. + */ + distinct?: Prisma.ActivatedLicenseScalarFieldEnum | Prisma.ActivatedLicenseScalarFieldEnum[] +} + +/** + * ActivatedLicense findMany + */ +export type ActivatedLicenseFindManyArgs = { + /** + * Select specific fields to fetch from the ActivatedLicense + */ + select?: Prisma.ActivatedLicenseSelect | null + /** + * Omit specific fields from the ActivatedLicense + */ + omit?: Prisma.ActivatedLicenseOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.ActivatedLicenseInclude | null + /** + * Filter, which ActivatedLicenses to fetch. + */ + where?: Prisma.ActivatedLicenseWhereInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} + * + * Determine the order of ActivatedLicenses to fetch. + */ + orderBy?: Prisma.ActivatedLicenseOrderByWithRelationInput | Prisma.ActivatedLicenseOrderByWithRelationInput[] + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} + * + * Sets the position for listing ActivatedLicenses. + */ + cursor?: Prisma.ActivatedLicenseWhereUniqueInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Take `±n` ActivatedLicenses from the position of the cursor. + */ + take?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Skip the first `n` ActivatedLicenses. + */ + skip?: number + distinct?: Prisma.ActivatedLicenseScalarFieldEnum | Prisma.ActivatedLicenseScalarFieldEnum[] +} + +/** + * ActivatedLicense create + */ +export type ActivatedLicenseCreateArgs = { + /** + * Select specific fields to fetch from the ActivatedLicense + */ + select?: Prisma.ActivatedLicenseSelect | null + /** + * Omit specific fields from the ActivatedLicense + */ + omit?: Prisma.ActivatedLicenseOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.ActivatedLicenseInclude | null + /** + * The data needed to create a ActivatedLicense. + */ + data: Prisma.XOR +} + +/** + * ActivatedLicense createMany + */ +export type ActivatedLicenseCreateManyArgs = { + /** + * The data used to create many ActivatedLicenses. + */ + data: Prisma.ActivatedLicenseCreateManyInput | Prisma.ActivatedLicenseCreateManyInput[] + skipDuplicates?: boolean +} + +/** + * ActivatedLicense update + */ +export type ActivatedLicenseUpdateArgs = { + /** + * Select specific fields to fetch from the ActivatedLicense + */ + select?: Prisma.ActivatedLicenseSelect | null + /** + * Omit specific fields from the ActivatedLicense + */ + omit?: Prisma.ActivatedLicenseOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.ActivatedLicenseInclude | null + /** + * The data needed to update a ActivatedLicense. + */ + data: Prisma.XOR + /** + * Choose, which ActivatedLicense to update. + */ + where: Prisma.ActivatedLicenseWhereUniqueInput +} + +/** + * ActivatedLicense updateMany + */ +export type ActivatedLicenseUpdateManyArgs = { + /** + * The data used to update ActivatedLicenses. + */ + data: Prisma.XOR + /** + * Filter which ActivatedLicenses to update + */ + where?: Prisma.ActivatedLicenseWhereInput + /** + * Limit how many ActivatedLicenses to update. + */ + limit?: number +} + +/** + * ActivatedLicense upsert + */ +export type ActivatedLicenseUpsertArgs = { + /** + * Select specific fields to fetch from the ActivatedLicense + */ + select?: Prisma.ActivatedLicenseSelect | null + /** + * Omit specific fields from the ActivatedLicense + */ + omit?: Prisma.ActivatedLicenseOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.ActivatedLicenseInclude | null + /** + * The filter to search for the ActivatedLicense to update in case it exists. + */ + where: Prisma.ActivatedLicenseWhereUniqueInput + /** + * In case the ActivatedLicense found by the `where` argument doesn't exist, create a new ActivatedLicense with this data. + */ + create: Prisma.XOR + /** + * In case the ActivatedLicense was found with the provided `where` argument, update it with this data. + */ + update: Prisma.XOR +} + +/** + * ActivatedLicense delete + */ +export type ActivatedLicenseDeleteArgs = { + /** + * Select specific fields to fetch from the ActivatedLicense + */ + select?: Prisma.ActivatedLicenseSelect | null + /** + * Omit specific fields from the ActivatedLicense + */ + omit?: Prisma.ActivatedLicenseOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.ActivatedLicenseInclude | null + /** + * Filter which ActivatedLicense to delete. + */ + where: Prisma.ActivatedLicenseWhereUniqueInput +} + +/** + * ActivatedLicense deleteMany + */ +export type ActivatedLicenseDeleteManyArgs = { + /** + * Filter which ActivatedLicenses to delete + */ + where?: Prisma.ActivatedLicenseWhereInput + /** + * Limit how many ActivatedLicenses to delete. + */ + limit?: number +} + +/** + * ActivatedLicense without action + */ +export type ActivatedLicenseDefaultArgs = { + /** + * Select specific fields to fetch from the ActivatedLicense + */ + select?: Prisma.ActivatedLicenseSelect | null + /** + * Omit specific fields from the ActivatedLicense + */ + omit?: Prisma.ActivatedLicenseOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.ActivatedLicenseInclude | null +} diff --git a/src/generated/prisma/models/ChargedLicenseTransactions.ts b/src/generated/prisma/models/ChargedLicenseTransactions.ts new file mode 100644 index 0000000..72ebe1f --- /dev/null +++ b/src/generated/prisma/models/ChargedLicenseTransactions.ts @@ -0,0 +1,1355 @@ + +/* !!! This is code generated by Prisma. Do not edit directly. !!! */ +/* eslint-disable */ +// biome-ignore-all lint: generated file +// @ts-nocheck +/* + * This file exports the `ChargedLicenseTransactions` model and its related types. + * + * 🟢 You can import this file directly. + */ +import type * as runtime from "@prisma/client/runtime/client" +import type * as $Enums from "../enums.js" +import type * as Prisma from "../internal/prismaNamespace.js" + +/** + * Model ChargedLicenseTransactions + * + */ +export type ChargedLicenseTransactionsModel = runtime.Types.Result.DefaultSelection + +export type AggregateChargedLicenseTransactions = { + _count: ChargedLicenseTransactionsCountAggregateOutputType | null + _min: ChargedLicenseTransactionsMinAggregateOutputType | null + _max: ChargedLicenseTransactionsMaxAggregateOutputType | null +} + +export type ChargedLicenseTransactionsMinAggregateOutputType = { + id: string | null + activation_expires_at: Date | null + created_at: Date | null + updated_at: Date | null + partner_id: string | null +} + +export type ChargedLicenseTransactionsMaxAggregateOutputType = { + id: string | null + activation_expires_at: Date | null + created_at: Date | null + updated_at: Date | null + partner_id: string | null +} + +export type ChargedLicenseTransactionsCountAggregateOutputType = { + id: number + activation_expires_at: number + created_at: number + updated_at: number + partner_id: number + _all: number +} + + +export type ChargedLicenseTransactionsMinAggregateInputType = { + id?: true + activation_expires_at?: true + created_at?: true + updated_at?: true + partner_id?: true +} + +export type ChargedLicenseTransactionsMaxAggregateInputType = { + id?: true + activation_expires_at?: true + created_at?: true + updated_at?: true + partner_id?: true +} + +export type ChargedLicenseTransactionsCountAggregateInputType = { + id?: true + activation_expires_at?: true + created_at?: true + updated_at?: true + partner_id?: true + _all?: true +} + +export type ChargedLicenseTransactionsAggregateArgs = { + /** + * Filter which ChargedLicenseTransactions to aggregate. + */ + where?: Prisma.ChargedLicenseTransactionsWhereInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} + * + * Determine the order of ChargedLicenseTransactions to fetch. + */ + orderBy?: Prisma.ChargedLicenseTransactionsOrderByWithRelationInput | Prisma.ChargedLicenseTransactionsOrderByWithRelationInput[] + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} + * + * Sets the start position + */ + cursor?: Prisma.ChargedLicenseTransactionsWhereUniqueInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Take `±n` ChargedLicenseTransactions from the position of the cursor. + */ + take?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Skip the first `n` ChargedLicenseTransactions. + */ + skip?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} + * + * Count returned ChargedLicenseTransactions + **/ + _count?: true | ChargedLicenseTransactionsCountAggregateInputType + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} + * + * Select which fields to find the minimum value + **/ + _min?: ChargedLicenseTransactionsMinAggregateInputType + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} + * + * Select which fields to find the maximum value + **/ + _max?: ChargedLicenseTransactionsMaxAggregateInputType +} + +export type GetChargedLicenseTransactionsAggregateType = { + [P in keyof T & keyof AggregateChargedLicenseTransactions]: P extends '_count' | 'count' + ? T[P] extends true + ? number + : Prisma.GetScalarType + : Prisma.GetScalarType +} + + + + +export type ChargedLicenseTransactionsGroupByArgs = { + where?: Prisma.ChargedLicenseTransactionsWhereInput + orderBy?: Prisma.ChargedLicenseTransactionsOrderByWithAggregationInput | Prisma.ChargedLicenseTransactionsOrderByWithAggregationInput[] + by: Prisma.ChargedLicenseTransactionsScalarFieldEnum[] | Prisma.ChargedLicenseTransactionsScalarFieldEnum + having?: Prisma.ChargedLicenseTransactionsScalarWhereWithAggregatesInput + take?: number + skip?: number + _count?: ChargedLicenseTransactionsCountAggregateInputType | true + _min?: ChargedLicenseTransactionsMinAggregateInputType + _max?: ChargedLicenseTransactionsMaxAggregateInputType +} + +export type ChargedLicenseTransactionsGroupByOutputType = { + id: string + activation_expires_at: Date + created_at: Date + updated_at: Date + partner_id: string + _count: ChargedLicenseTransactionsCountAggregateOutputType | null + _min: ChargedLicenseTransactionsMinAggregateOutputType | null + _max: ChargedLicenseTransactionsMaxAggregateOutputType | null +} + +type GetChargedLicenseTransactionsGroupByPayload = Prisma.PrismaPromise< + Array< + Prisma.PickEnumerable & + { + [P in ((keyof T) & (keyof ChargedLicenseTransactionsGroupByOutputType))]: P extends '_count' + ? T[P] extends boolean + ? number + : Prisma.GetScalarType + : Prisma.GetScalarType + } + > + > + + + +export type ChargedLicenseTransactionsWhereInput = { + AND?: Prisma.ChargedLicenseTransactionsWhereInput | Prisma.ChargedLicenseTransactionsWhereInput[] + OR?: Prisma.ChargedLicenseTransactionsWhereInput[] + NOT?: Prisma.ChargedLicenseTransactionsWhereInput | Prisma.ChargedLicenseTransactionsWhereInput[] + id?: Prisma.StringFilter<"ChargedLicenseTransactions"> | string + activation_expires_at?: Prisma.DateTimeFilter<"ChargedLicenseTransactions"> | Date | string + created_at?: Prisma.DateTimeFilter<"ChargedLicenseTransactions"> | Date | string + updated_at?: Prisma.DateTimeFilter<"ChargedLicenseTransactions"> | Date | string + partner_id?: Prisma.StringFilter<"ChargedLicenseTransactions"> | string + partner?: Prisma.XOR + licenses?: Prisma.LicenseListRelationFilter +} + +export type ChargedLicenseTransactionsOrderByWithRelationInput = { + id?: Prisma.SortOrder + activation_expires_at?: Prisma.SortOrder + created_at?: Prisma.SortOrder + updated_at?: Prisma.SortOrder + partner_id?: Prisma.SortOrder + partner?: Prisma.PartnerOrderByWithRelationInput + licenses?: Prisma.LicenseOrderByRelationAggregateInput + _relevance?: Prisma.ChargedLicenseTransactionsOrderByRelevanceInput +} + +export type ChargedLicenseTransactionsWhereUniqueInput = Prisma.AtLeast<{ + id?: string + AND?: Prisma.ChargedLicenseTransactionsWhereInput | Prisma.ChargedLicenseTransactionsWhereInput[] + OR?: Prisma.ChargedLicenseTransactionsWhereInput[] + NOT?: Prisma.ChargedLicenseTransactionsWhereInput | Prisma.ChargedLicenseTransactionsWhereInput[] + activation_expires_at?: Prisma.DateTimeFilter<"ChargedLicenseTransactions"> | Date | string + created_at?: Prisma.DateTimeFilter<"ChargedLicenseTransactions"> | Date | string + updated_at?: Prisma.DateTimeFilter<"ChargedLicenseTransactions"> | Date | string + partner_id?: Prisma.StringFilter<"ChargedLicenseTransactions"> | string + partner?: Prisma.XOR + licenses?: Prisma.LicenseListRelationFilter +}, "id"> + +export type ChargedLicenseTransactionsOrderByWithAggregationInput = { + id?: Prisma.SortOrder + activation_expires_at?: Prisma.SortOrder + created_at?: Prisma.SortOrder + updated_at?: Prisma.SortOrder + partner_id?: Prisma.SortOrder + _count?: Prisma.ChargedLicenseTransactionsCountOrderByAggregateInput + _max?: Prisma.ChargedLicenseTransactionsMaxOrderByAggregateInput + _min?: Prisma.ChargedLicenseTransactionsMinOrderByAggregateInput +} + +export type ChargedLicenseTransactionsScalarWhereWithAggregatesInput = { + AND?: Prisma.ChargedLicenseTransactionsScalarWhereWithAggregatesInput | Prisma.ChargedLicenseTransactionsScalarWhereWithAggregatesInput[] + OR?: Prisma.ChargedLicenseTransactionsScalarWhereWithAggregatesInput[] + NOT?: Prisma.ChargedLicenseTransactionsScalarWhereWithAggregatesInput | Prisma.ChargedLicenseTransactionsScalarWhereWithAggregatesInput[] + id?: Prisma.StringWithAggregatesFilter<"ChargedLicenseTransactions"> | string + activation_expires_at?: Prisma.DateTimeWithAggregatesFilter<"ChargedLicenseTransactions"> | Date | string + created_at?: Prisma.DateTimeWithAggregatesFilter<"ChargedLicenseTransactions"> | Date | string + updated_at?: Prisma.DateTimeWithAggregatesFilter<"ChargedLicenseTransactions"> | Date | string + partner_id?: Prisma.StringWithAggregatesFilter<"ChargedLicenseTransactions"> | string +} + +export type ChargedLicenseTransactionsCreateInput = { + id?: string + activation_expires_at: Date | string + created_at?: Date | string + updated_at?: Date | string + partner: Prisma.PartnerCreateNestedOneWithoutChargedLicenseTransactionsInput + licenses?: Prisma.LicenseCreateNestedManyWithoutCharged_license_transactionInput +} + +export type ChargedLicenseTransactionsUncheckedCreateInput = { + id?: string + activation_expires_at: Date | string + created_at?: Date | string + updated_at?: Date | string + partner_id: string + licenses?: Prisma.LicenseUncheckedCreateNestedManyWithoutCharged_license_transactionInput +} + +export type ChargedLicenseTransactionsUpdateInput = { + id?: Prisma.StringFieldUpdateOperationsInput | string + activation_expires_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + created_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + updated_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + partner?: Prisma.PartnerUpdateOneRequiredWithoutChargedLicenseTransactionsNestedInput + licenses?: Prisma.LicenseUpdateManyWithoutCharged_license_transactionNestedInput +} + +export type ChargedLicenseTransactionsUncheckedUpdateInput = { + id?: Prisma.StringFieldUpdateOperationsInput | string + activation_expires_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + created_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + updated_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + partner_id?: Prisma.StringFieldUpdateOperationsInput | string + licenses?: Prisma.LicenseUncheckedUpdateManyWithoutCharged_license_transactionNestedInput +} + +export type ChargedLicenseTransactionsCreateManyInput = { + id?: string + activation_expires_at: Date | string + created_at?: Date | string + updated_at?: Date | string + partner_id: string +} + +export type ChargedLicenseTransactionsUpdateManyMutationInput = { + id?: Prisma.StringFieldUpdateOperationsInput | string + activation_expires_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + created_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + updated_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string +} + +export type ChargedLicenseTransactionsUncheckedUpdateManyInput = { + id?: Prisma.StringFieldUpdateOperationsInput | string + activation_expires_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + created_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + updated_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + partner_id?: Prisma.StringFieldUpdateOperationsInput | string +} + +export type ChargedLicenseTransactionsScalarRelationFilter = { + is?: Prisma.ChargedLicenseTransactionsWhereInput + isNot?: Prisma.ChargedLicenseTransactionsWhereInput +} + +export type ChargedLicenseTransactionsOrderByRelevanceInput = { + fields: Prisma.ChargedLicenseTransactionsOrderByRelevanceFieldEnum | Prisma.ChargedLicenseTransactionsOrderByRelevanceFieldEnum[] + sort: Prisma.SortOrder + search: string +} + +export type ChargedLicenseTransactionsCountOrderByAggregateInput = { + id?: Prisma.SortOrder + activation_expires_at?: Prisma.SortOrder + created_at?: Prisma.SortOrder + updated_at?: Prisma.SortOrder + partner_id?: Prisma.SortOrder +} + +export type ChargedLicenseTransactionsMaxOrderByAggregateInput = { + id?: Prisma.SortOrder + activation_expires_at?: Prisma.SortOrder + created_at?: Prisma.SortOrder + updated_at?: Prisma.SortOrder + partner_id?: Prisma.SortOrder +} + +export type ChargedLicenseTransactionsMinOrderByAggregateInput = { + id?: Prisma.SortOrder + activation_expires_at?: Prisma.SortOrder + created_at?: Prisma.SortOrder + updated_at?: Prisma.SortOrder + partner_id?: Prisma.SortOrder +} + +export type ChargedLicenseTransactionsListRelationFilter = { + every?: Prisma.ChargedLicenseTransactionsWhereInput + some?: Prisma.ChargedLicenseTransactionsWhereInput + none?: Prisma.ChargedLicenseTransactionsWhereInput +} + +export type ChargedLicenseTransactionsOrderByRelationAggregateInput = { + _count?: Prisma.SortOrder +} + +export type ChargedLicenseTransactionsCreateNestedOneWithoutLicensesInput = { + create?: Prisma.XOR + connectOrCreate?: Prisma.ChargedLicenseTransactionsCreateOrConnectWithoutLicensesInput + connect?: Prisma.ChargedLicenseTransactionsWhereUniqueInput +} + +export type ChargedLicenseTransactionsUpdateOneRequiredWithoutLicensesNestedInput = { + create?: Prisma.XOR + connectOrCreate?: Prisma.ChargedLicenseTransactionsCreateOrConnectWithoutLicensesInput + upsert?: Prisma.ChargedLicenseTransactionsUpsertWithoutLicensesInput + connect?: Prisma.ChargedLicenseTransactionsWhereUniqueInput + update?: Prisma.XOR, Prisma.ChargedLicenseTransactionsUncheckedUpdateWithoutLicensesInput> +} + +export type ChargedLicenseTransactionsCreateNestedManyWithoutPartnerInput = { + create?: Prisma.XOR | Prisma.ChargedLicenseTransactionsCreateWithoutPartnerInput[] | Prisma.ChargedLicenseTransactionsUncheckedCreateWithoutPartnerInput[] + connectOrCreate?: Prisma.ChargedLicenseTransactionsCreateOrConnectWithoutPartnerInput | Prisma.ChargedLicenseTransactionsCreateOrConnectWithoutPartnerInput[] + createMany?: Prisma.ChargedLicenseTransactionsCreateManyPartnerInputEnvelope + connect?: Prisma.ChargedLicenseTransactionsWhereUniqueInput | Prisma.ChargedLicenseTransactionsWhereUniqueInput[] +} + +export type ChargedLicenseTransactionsUncheckedCreateNestedManyWithoutPartnerInput = { + create?: Prisma.XOR | Prisma.ChargedLicenseTransactionsCreateWithoutPartnerInput[] | Prisma.ChargedLicenseTransactionsUncheckedCreateWithoutPartnerInput[] + connectOrCreate?: Prisma.ChargedLicenseTransactionsCreateOrConnectWithoutPartnerInput | Prisma.ChargedLicenseTransactionsCreateOrConnectWithoutPartnerInput[] + createMany?: Prisma.ChargedLicenseTransactionsCreateManyPartnerInputEnvelope + connect?: Prisma.ChargedLicenseTransactionsWhereUniqueInput | Prisma.ChargedLicenseTransactionsWhereUniqueInput[] +} + +export type ChargedLicenseTransactionsUpdateManyWithoutPartnerNestedInput = { + create?: Prisma.XOR | Prisma.ChargedLicenseTransactionsCreateWithoutPartnerInput[] | Prisma.ChargedLicenseTransactionsUncheckedCreateWithoutPartnerInput[] + connectOrCreate?: Prisma.ChargedLicenseTransactionsCreateOrConnectWithoutPartnerInput | Prisma.ChargedLicenseTransactionsCreateOrConnectWithoutPartnerInput[] + upsert?: Prisma.ChargedLicenseTransactionsUpsertWithWhereUniqueWithoutPartnerInput | Prisma.ChargedLicenseTransactionsUpsertWithWhereUniqueWithoutPartnerInput[] + createMany?: Prisma.ChargedLicenseTransactionsCreateManyPartnerInputEnvelope + set?: Prisma.ChargedLicenseTransactionsWhereUniqueInput | Prisma.ChargedLicenseTransactionsWhereUniqueInput[] + disconnect?: Prisma.ChargedLicenseTransactionsWhereUniqueInput | Prisma.ChargedLicenseTransactionsWhereUniqueInput[] + delete?: Prisma.ChargedLicenseTransactionsWhereUniqueInput | Prisma.ChargedLicenseTransactionsWhereUniqueInput[] + connect?: Prisma.ChargedLicenseTransactionsWhereUniqueInput | Prisma.ChargedLicenseTransactionsWhereUniqueInput[] + update?: Prisma.ChargedLicenseTransactionsUpdateWithWhereUniqueWithoutPartnerInput | Prisma.ChargedLicenseTransactionsUpdateWithWhereUniqueWithoutPartnerInput[] + updateMany?: Prisma.ChargedLicenseTransactionsUpdateManyWithWhereWithoutPartnerInput | Prisma.ChargedLicenseTransactionsUpdateManyWithWhereWithoutPartnerInput[] + deleteMany?: Prisma.ChargedLicenseTransactionsScalarWhereInput | Prisma.ChargedLicenseTransactionsScalarWhereInput[] +} + +export type ChargedLicenseTransactionsUncheckedUpdateManyWithoutPartnerNestedInput = { + create?: Prisma.XOR | Prisma.ChargedLicenseTransactionsCreateWithoutPartnerInput[] | Prisma.ChargedLicenseTransactionsUncheckedCreateWithoutPartnerInput[] + connectOrCreate?: Prisma.ChargedLicenseTransactionsCreateOrConnectWithoutPartnerInput | Prisma.ChargedLicenseTransactionsCreateOrConnectWithoutPartnerInput[] + upsert?: Prisma.ChargedLicenseTransactionsUpsertWithWhereUniqueWithoutPartnerInput | Prisma.ChargedLicenseTransactionsUpsertWithWhereUniqueWithoutPartnerInput[] + createMany?: Prisma.ChargedLicenseTransactionsCreateManyPartnerInputEnvelope + set?: Prisma.ChargedLicenseTransactionsWhereUniqueInput | Prisma.ChargedLicenseTransactionsWhereUniqueInput[] + disconnect?: Prisma.ChargedLicenseTransactionsWhereUniqueInput | Prisma.ChargedLicenseTransactionsWhereUniqueInput[] + delete?: Prisma.ChargedLicenseTransactionsWhereUniqueInput | Prisma.ChargedLicenseTransactionsWhereUniqueInput[] + connect?: Prisma.ChargedLicenseTransactionsWhereUniqueInput | Prisma.ChargedLicenseTransactionsWhereUniqueInput[] + update?: Prisma.ChargedLicenseTransactionsUpdateWithWhereUniqueWithoutPartnerInput | Prisma.ChargedLicenseTransactionsUpdateWithWhereUniqueWithoutPartnerInput[] + updateMany?: Prisma.ChargedLicenseTransactionsUpdateManyWithWhereWithoutPartnerInput | Prisma.ChargedLicenseTransactionsUpdateManyWithWhereWithoutPartnerInput[] + deleteMany?: Prisma.ChargedLicenseTransactionsScalarWhereInput | Prisma.ChargedLicenseTransactionsScalarWhereInput[] +} + +export type ChargedLicenseTransactionsCreateWithoutLicensesInput = { + id?: string + activation_expires_at: Date | string + created_at?: Date | string + updated_at?: Date | string + partner: Prisma.PartnerCreateNestedOneWithoutChargedLicenseTransactionsInput +} + +export type ChargedLicenseTransactionsUncheckedCreateWithoutLicensesInput = { + id?: string + activation_expires_at: Date | string + created_at?: Date | string + updated_at?: Date | string + partner_id: string +} + +export type ChargedLicenseTransactionsCreateOrConnectWithoutLicensesInput = { + where: Prisma.ChargedLicenseTransactionsWhereUniqueInput + create: Prisma.XOR +} + +export type ChargedLicenseTransactionsUpsertWithoutLicensesInput = { + update: Prisma.XOR + create: Prisma.XOR + where?: Prisma.ChargedLicenseTransactionsWhereInput +} + +export type ChargedLicenseTransactionsUpdateToOneWithWhereWithoutLicensesInput = { + where?: Prisma.ChargedLicenseTransactionsWhereInput + data: Prisma.XOR +} + +export type ChargedLicenseTransactionsUpdateWithoutLicensesInput = { + id?: Prisma.StringFieldUpdateOperationsInput | string + activation_expires_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + created_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + updated_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + partner?: Prisma.PartnerUpdateOneRequiredWithoutChargedLicenseTransactionsNestedInput +} + +export type ChargedLicenseTransactionsUncheckedUpdateWithoutLicensesInput = { + id?: Prisma.StringFieldUpdateOperationsInput | string + activation_expires_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + created_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + updated_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + partner_id?: Prisma.StringFieldUpdateOperationsInput | string +} + +export type ChargedLicenseTransactionsCreateWithoutPartnerInput = { + id?: string + activation_expires_at: Date | string + created_at?: Date | string + updated_at?: Date | string + licenses?: Prisma.LicenseCreateNestedManyWithoutCharged_license_transactionInput +} + +export type ChargedLicenseTransactionsUncheckedCreateWithoutPartnerInput = { + id?: string + activation_expires_at: Date | string + created_at?: Date | string + updated_at?: Date | string + licenses?: Prisma.LicenseUncheckedCreateNestedManyWithoutCharged_license_transactionInput +} + +export type ChargedLicenseTransactionsCreateOrConnectWithoutPartnerInput = { + where: Prisma.ChargedLicenseTransactionsWhereUniqueInput + create: Prisma.XOR +} + +export type ChargedLicenseTransactionsCreateManyPartnerInputEnvelope = { + data: Prisma.ChargedLicenseTransactionsCreateManyPartnerInput | Prisma.ChargedLicenseTransactionsCreateManyPartnerInput[] + skipDuplicates?: boolean +} + +export type ChargedLicenseTransactionsUpsertWithWhereUniqueWithoutPartnerInput = { + where: Prisma.ChargedLicenseTransactionsWhereUniqueInput + update: Prisma.XOR + create: Prisma.XOR +} + +export type ChargedLicenseTransactionsUpdateWithWhereUniqueWithoutPartnerInput = { + where: Prisma.ChargedLicenseTransactionsWhereUniqueInput + data: Prisma.XOR +} + +export type ChargedLicenseTransactionsUpdateManyWithWhereWithoutPartnerInput = { + where: Prisma.ChargedLicenseTransactionsScalarWhereInput + data: Prisma.XOR +} + +export type ChargedLicenseTransactionsScalarWhereInput = { + AND?: Prisma.ChargedLicenseTransactionsScalarWhereInput | Prisma.ChargedLicenseTransactionsScalarWhereInput[] + OR?: Prisma.ChargedLicenseTransactionsScalarWhereInput[] + NOT?: Prisma.ChargedLicenseTransactionsScalarWhereInput | Prisma.ChargedLicenseTransactionsScalarWhereInput[] + id?: Prisma.StringFilter<"ChargedLicenseTransactions"> | string + activation_expires_at?: Prisma.DateTimeFilter<"ChargedLicenseTransactions"> | Date | string + created_at?: Prisma.DateTimeFilter<"ChargedLicenseTransactions"> | Date | string + updated_at?: Prisma.DateTimeFilter<"ChargedLicenseTransactions"> | Date | string + partner_id?: Prisma.StringFilter<"ChargedLicenseTransactions"> | string +} + +export type ChargedLicenseTransactionsCreateManyPartnerInput = { + id?: string + activation_expires_at: Date | string + created_at?: Date | string + updated_at?: Date | string +} + +export type ChargedLicenseTransactionsUpdateWithoutPartnerInput = { + id?: Prisma.StringFieldUpdateOperationsInput | string + activation_expires_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + created_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + updated_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + licenses?: Prisma.LicenseUpdateManyWithoutCharged_license_transactionNestedInput +} + +export type ChargedLicenseTransactionsUncheckedUpdateWithoutPartnerInput = { + id?: Prisma.StringFieldUpdateOperationsInput | string + activation_expires_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + created_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + updated_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + licenses?: Prisma.LicenseUncheckedUpdateManyWithoutCharged_license_transactionNestedInput +} + +export type ChargedLicenseTransactionsUncheckedUpdateManyWithoutPartnerInput = { + id?: Prisma.StringFieldUpdateOperationsInput | string + activation_expires_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + created_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + updated_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string +} + + +/** + * Count Type ChargedLicenseTransactionsCountOutputType + */ + +export type ChargedLicenseTransactionsCountOutputType = { + licenses: number +} + +export type ChargedLicenseTransactionsCountOutputTypeSelect = { + licenses?: boolean | ChargedLicenseTransactionsCountOutputTypeCountLicensesArgs +} + +/** + * ChargedLicenseTransactionsCountOutputType without action + */ +export type ChargedLicenseTransactionsCountOutputTypeDefaultArgs = { + /** + * Select specific fields to fetch from the ChargedLicenseTransactionsCountOutputType + */ + select?: Prisma.ChargedLicenseTransactionsCountOutputTypeSelect | null +} + +/** + * ChargedLicenseTransactionsCountOutputType without action + */ +export type ChargedLicenseTransactionsCountOutputTypeCountLicensesArgs = { + where?: Prisma.LicenseWhereInput +} + + +export type ChargedLicenseTransactionsSelect = runtime.Types.Extensions.GetSelect<{ + id?: boolean + activation_expires_at?: boolean + created_at?: boolean + updated_at?: boolean + partner_id?: boolean + partner?: boolean | Prisma.PartnerDefaultArgs + licenses?: boolean | Prisma.ChargedLicenseTransactions$licensesArgs + _count?: boolean | Prisma.ChargedLicenseTransactionsCountOutputTypeDefaultArgs +}, ExtArgs["result"]["chargedLicenseTransactions"]> + + + +export type ChargedLicenseTransactionsSelectScalar = { + id?: boolean + activation_expires_at?: boolean + created_at?: boolean + updated_at?: boolean + partner_id?: boolean +} + +export type ChargedLicenseTransactionsOmit = runtime.Types.Extensions.GetOmit<"id" | "activation_expires_at" | "created_at" | "updated_at" | "partner_id", ExtArgs["result"]["chargedLicenseTransactions"]> +export type ChargedLicenseTransactionsInclude = { + partner?: boolean | Prisma.PartnerDefaultArgs + licenses?: boolean | Prisma.ChargedLicenseTransactions$licensesArgs + _count?: boolean | Prisma.ChargedLicenseTransactionsCountOutputTypeDefaultArgs +} + +export type $ChargedLicenseTransactionsPayload = { + name: "ChargedLicenseTransactions" + objects: { + partner: Prisma.$PartnerPayload + licenses: Prisma.$LicensePayload[] + } + scalars: runtime.Types.Extensions.GetPayloadResult<{ + id: string + activation_expires_at: Date + created_at: Date + updated_at: Date + partner_id: string + }, ExtArgs["result"]["chargedLicenseTransactions"]> + composites: {} +} + +export type ChargedLicenseTransactionsGetPayload = runtime.Types.Result.GetResult + +export type ChargedLicenseTransactionsCountArgs = + Omit & { + select?: ChargedLicenseTransactionsCountAggregateInputType | true + } + +export interface ChargedLicenseTransactionsDelegate { + [K: symbol]: { types: Prisma.TypeMap['model']['ChargedLicenseTransactions'], meta: { name: 'ChargedLicenseTransactions' } } + /** + * Find zero or one ChargedLicenseTransactions that matches the filter. + * @param {ChargedLicenseTransactionsFindUniqueArgs} args - Arguments to find a ChargedLicenseTransactions + * @example + * // Get one ChargedLicenseTransactions + * const chargedLicenseTransactions = await prisma.chargedLicenseTransactions.findUnique({ + * where: { + * // ... provide filter here + * } + * }) + */ + findUnique(args: Prisma.SelectSubset>): Prisma.Prisma__ChargedLicenseTransactionsClient, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions> + + /** + * Find one ChargedLicenseTransactions that matches the filter or throw an error with `error.code='P2025'` + * if no matches were found. + * @param {ChargedLicenseTransactionsFindUniqueOrThrowArgs} args - Arguments to find a ChargedLicenseTransactions + * @example + * // Get one ChargedLicenseTransactions + * const chargedLicenseTransactions = await prisma.chargedLicenseTransactions.findUniqueOrThrow({ + * where: { + * // ... provide filter here + * } + * }) + */ + findUniqueOrThrow(args: Prisma.SelectSubset>): Prisma.Prisma__ChargedLicenseTransactionsClient, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + /** + * Find the first ChargedLicenseTransactions that matches the filter. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {ChargedLicenseTransactionsFindFirstArgs} args - Arguments to find a ChargedLicenseTransactions + * @example + * // Get one ChargedLicenseTransactions + * const chargedLicenseTransactions = await prisma.chargedLicenseTransactions.findFirst({ + * where: { + * // ... provide filter here + * } + * }) + */ + findFirst(args?: Prisma.SelectSubset>): Prisma.Prisma__ChargedLicenseTransactionsClient, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions> + + /** + * Find the first ChargedLicenseTransactions that matches the filter or + * throw `PrismaKnownClientError` with `P2025` code if no matches were found. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {ChargedLicenseTransactionsFindFirstOrThrowArgs} args - Arguments to find a ChargedLicenseTransactions + * @example + * // Get one ChargedLicenseTransactions + * const chargedLicenseTransactions = await prisma.chargedLicenseTransactions.findFirstOrThrow({ + * where: { + * // ... provide filter here + * } + * }) + */ + findFirstOrThrow(args?: Prisma.SelectSubset>): Prisma.Prisma__ChargedLicenseTransactionsClient, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + /** + * Find zero or more ChargedLicenseTransactions that matches the filter. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {ChargedLicenseTransactionsFindManyArgs} args - Arguments to filter and select certain fields only. + * @example + * // Get all ChargedLicenseTransactions + * const chargedLicenseTransactions = await prisma.chargedLicenseTransactions.findMany() + * + * // Get first 10 ChargedLicenseTransactions + * const chargedLicenseTransactions = await prisma.chargedLicenseTransactions.findMany({ take: 10 }) + * + * // Only select the `id` + * const chargedLicenseTransactionsWithIdOnly = await prisma.chargedLicenseTransactions.findMany({ select: { id: true } }) + * + */ + findMany(args?: Prisma.SelectSubset>): Prisma.PrismaPromise, T, "findMany", GlobalOmitOptions>> + + /** + * Create a ChargedLicenseTransactions. + * @param {ChargedLicenseTransactionsCreateArgs} args - Arguments to create a ChargedLicenseTransactions. + * @example + * // Create one ChargedLicenseTransactions + * const ChargedLicenseTransactions = await prisma.chargedLicenseTransactions.create({ + * data: { + * // ... data to create a ChargedLicenseTransactions + * } + * }) + * + */ + create(args: Prisma.SelectSubset>): Prisma.Prisma__ChargedLicenseTransactionsClient, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + /** + * Create many ChargedLicenseTransactions. + * @param {ChargedLicenseTransactionsCreateManyArgs} args - Arguments to create many ChargedLicenseTransactions. + * @example + * // Create many ChargedLicenseTransactions + * const chargedLicenseTransactions = await prisma.chargedLicenseTransactions.createMany({ + * data: [ + * // ... provide data here + * ] + * }) + * + */ + createMany(args?: Prisma.SelectSubset>): Prisma.PrismaPromise + + /** + * Delete a ChargedLicenseTransactions. + * @param {ChargedLicenseTransactionsDeleteArgs} args - Arguments to delete one ChargedLicenseTransactions. + * @example + * // Delete one ChargedLicenseTransactions + * const ChargedLicenseTransactions = await prisma.chargedLicenseTransactions.delete({ + * where: { + * // ... filter to delete one ChargedLicenseTransactions + * } + * }) + * + */ + delete(args: Prisma.SelectSubset>): Prisma.Prisma__ChargedLicenseTransactionsClient, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + /** + * Update one ChargedLicenseTransactions. + * @param {ChargedLicenseTransactionsUpdateArgs} args - Arguments to update one ChargedLicenseTransactions. + * @example + * // Update one ChargedLicenseTransactions + * const chargedLicenseTransactions = await prisma.chargedLicenseTransactions.update({ + * where: { + * // ... provide filter here + * }, + * data: { + * // ... provide data here + * } + * }) + * + */ + update(args: Prisma.SelectSubset>): Prisma.Prisma__ChargedLicenseTransactionsClient, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + /** + * Delete zero or more ChargedLicenseTransactions. + * @param {ChargedLicenseTransactionsDeleteManyArgs} args - Arguments to filter ChargedLicenseTransactions to delete. + * @example + * // Delete a few ChargedLicenseTransactions + * const { count } = await prisma.chargedLicenseTransactions.deleteMany({ + * where: { + * // ... provide filter here + * } + * }) + * + */ + deleteMany(args?: Prisma.SelectSubset>): Prisma.PrismaPromise + + /** + * Update zero or more ChargedLicenseTransactions. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {ChargedLicenseTransactionsUpdateManyArgs} args - Arguments to update one or more rows. + * @example + * // Update many ChargedLicenseTransactions + * const chargedLicenseTransactions = await prisma.chargedLicenseTransactions.updateMany({ + * where: { + * // ... provide filter here + * }, + * data: { + * // ... provide data here + * } + * }) + * + */ + updateMany(args: Prisma.SelectSubset>): Prisma.PrismaPromise + + /** + * Create or update one ChargedLicenseTransactions. + * @param {ChargedLicenseTransactionsUpsertArgs} args - Arguments to update or create a ChargedLicenseTransactions. + * @example + * // Update or create a ChargedLicenseTransactions + * const chargedLicenseTransactions = await prisma.chargedLicenseTransactions.upsert({ + * create: { + * // ... data to create a ChargedLicenseTransactions + * }, + * update: { + * // ... in case it already exists, update + * }, + * where: { + * // ... the filter for the ChargedLicenseTransactions we want to update + * } + * }) + */ + upsert(args: Prisma.SelectSubset>): Prisma.Prisma__ChargedLicenseTransactionsClient, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + + /** + * Count the number of ChargedLicenseTransactions. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {ChargedLicenseTransactionsCountArgs} args - Arguments to filter ChargedLicenseTransactions to count. + * @example + * // Count the number of ChargedLicenseTransactions + * const count = await prisma.chargedLicenseTransactions.count({ + * where: { + * // ... the filter for the ChargedLicenseTransactions we want to count + * } + * }) + **/ + count( + args?: Prisma.Subset, + ): Prisma.PrismaPromise< + T extends runtime.Types.Utils.Record<'select', any> + ? T['select'] extends true + ? number + : Prisma.GetScalarType + : number + > + + /** + * Allows you to perform aggregations operations on a ChargedLicenseTransactions. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {ChargedLicenseTransactionsAggregateArgs} args - Select which aggregations you would like to apply and on what fields. + * @example + * // Ordered by age ascending + * // Where email contains prisma.io + * // Limited to the 10 users + * const aggregations = await prisma.user.aggregate({ + * _avg: { + * age: true, + * }, + * where: { + * email: { + * contains: "prisma.io", + * }, + * }, + * orderBy: { + * age: "asc", + * }, + * take: 10, + * }) + **/ + aggregate(args: Prisma.Subset): Prisma.PrismaPromise> + + /** + * Group by ChargedLicenseTransactions. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {ChargedLicenseTransactionsGroupByArgs} args - Group by arguments. + * @example + * // Group by city, order by createdAt, get count + * const result = await prisma.user.groupBy({ + * by: ['city', 'createdAt'], + * orderBy: { + * createdAt: true + * }, + * _count: { + * _all: true + * }, + * }) + * + **/ + groupBy< + T extends ChargedLicenseTransactionsGroupByArgs, + HasSelectOrTake extends Prisma.Or< + Prisma.Extends<'skip', Prisma.Keys>, + Prisma.Extends<'take', Prisma.Keys> + >, + OrderByArg extends Prisma.True extends HasSelectOrTake + ? { orderBy: ChargedLicenseTransactionsGroupByArgs['orderBy'] } + : { orderBy?: ChargedLicenseTransactionsGroupByArgs['orderBy'] }, + OrderFields extends Prisma.ExcludeUnderscoreKeys>>, + ByFields extends Prisma.MaybeTupleToUnion, + ByValid extends Prisma.Has, + HavingFields extends Prisma.GetHavingFields, + HavingValid extends Prisma.Has, + ByEmpty extends T['by'] extends never[] ? Prisma.True : Prisma.False, + InputErrors extends ByEmpty extends Prisma.True + ? `Error: "by" must not be empty.` + : HavingValid extends Prisma.False + ? { + [P in HavingFields]: P extends ByFields + ? never + : P extends string + ? `Error: Field "${P}" used in "having" needs to be provided in "by".` + : [ + Error, + 'Field ', + P, + ` in "having" needs to be provided in "by"`, + ] + }[HavingFields] + : 'take' extends Prisma.Keys + ? 'orderBy' extends Prisma.Keys + ? ByValid extends Prisma.True + ? {} + : { + [P in OrderFields]: P extends ByFields + ? never + : `Error: Field "${P}" in "orderBy" needs to be provided in "by"` + }[OrderFields] + : 'Error: If you provide "take", you also need to provide "orderBy"' + : 'skip' extends Prisma.Keys + ? 'orderBy' extends Prisma.Keys + ? ByValid extends Prisma.True + ? {} + : { + [P in OrderFields]: P extends ByFields + ? never + : `Error: Field "${P}" in "orderBy" needs to be provided in "by"` + }[OrderFields] + : 'Error: If you provide "skip", you also need to provide "orderBy"' + : ByValid extends Prisma.True + ? {} + : { + [P in OrderFields]: P extends ByFields + ? never + : `Error: Field "${P}" in "orderBy" needs to be provided in "by"` + }[OrderFields] + >(args: Prisma.SubsetIntersection & InputErrors): {} extends InputErrors ? GetChargedLicenseTransactionsGroupByPayload : Prisma.PrismaPromise +/** + * Fields of the ChargedLicenseTransactions model + */ +readonly fields: ChargedLicenseTransactionsFieldRefs; +} + +/** + * The delegate class that acts as a "Promise-like" for ChargedLicenseTransactions. + * Why is this prefixed with `Prisma__`? + * Because we want to prevent naming conflicts as mentioned in + * https://github.com/prisma/prisma-client-js/issues/707 + */ +export interface Prisma__ChargedLicenseTransactionsClient extends Prisma.PrismaPromise { + readonly [Symbol.toStringTag]: "PrismaPromise" + partner = {}>(args?: Prisma.Subset>): Prisma.Prisma__PartnerClient, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions> + licenses = {}>(args?: Prisma.Subset>): Prisma.PrismaPromise, T, "findMany", GlobalOmitOptions> | Null> + /** + * Attaches callbacks for the resolution and/or rejection of the Promise. + * @param onfulfilled The callback to execute when the Promise is resolved. + * @param onrejected The callback to execute when the Promise is rejected. + * @returns A Promise for the completion of which ever callback is executed. + */ + then(onfulfilled?: ((value: T) => TResult1 | PromiseLike) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike) | undefined | null): runtime.Types.Utils.JsPromise + /** + * Attaches a callback for only the rejection of the Promise. + * @param onrejected The callback to execute when the Promise is rejected. + * @returns A Promise for the completion of the callback. + */ + catch(onrejected?: ((reason: any) => TResult | PromiseLike) | undefined | null): runtime.Types.Utils.JsPromise + /** + * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The + * resolved value cannot be modified from the callback. + * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected). + * @returns A Promise for the completion of the callback. + */ + finally(onfinally?: (() => void) | undefined | null): runtime.Types.Utils.JsPromise +} + + + + +/** + * Fields of the ChargedLicenseTransactions model + */ +export interface ChargedLicenseTransactionsFieldRefs { + readonly id: Prisma.FieldRef<"ChargedLicenseTransactions", 'String'> + readonly activation_expires_at: Prisma.FieldRef<"ChargedLicenseTransactions", 'DateTime'> + readonly created_at: Prisma.FieldRef<"ChargedLicenseTransactions", 'DateTime'> + readonly updated_at: Prisma.FieldRef<"ChargedLicenseTransactions", 'DateTime'> + readonly partner_id: Prisma.FieldRef<"ChargedLicenseTransactions", 'String'> +} + + +// Custom InputTypes +/** + * ChargedLicenseTransactions findUnique + */ +export type ChargedLicenseTransactionsFindUniqueArgs = { + /** + * Select specific fields to fetch from the ChargedLicenseTransactions + */ + select?: Prisma.ChargedLicenseTransactionsSelect | null + /** + * Omit specific fields from the ChargedLicenseTransactions + */ + omit?: Prisma.ChargedLicenseTransactionsOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.ChargedLicenseTransactionsInclude | null + /** + * Filter, which ChargedLicenseTransactions to fetch. + */ + where: Prisma.ChargedLicenseTransactionsWhereUniqueInput +} + +/** + * ChargedLicenseTransactions findUniqueOrThrow + */ +export type ChargedLicenseTransactionsFindUniqueOrThrowArgs = { + /** + * Select specific fields to fetch from the ChargedLicenseTransactions + */ + select?: Prisma.ChargedLicenseTransactionsSelect | null + /** + * Omit specific fields from the ChargedLicenseTransactions + */ + omit?: Prisma.ChargedLicenseTransactionsOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.ChargedLicenseTransactionsInclude | null + /** + * Filter, which ChargedLicenseTransactions to fetch. + */ + where: Prisma.ChargedLicenseTransactionsWhereUniqueInput +} + +/** + * ChargedLicenseTransactions findFirst + */ +export type ChargedLicenseTransactionsFindFirstArgs = { + /** + * Select specific fields to fetch from the ChargedLicenseTransactions + */ + select?: Prisma.ChargedLicenseTransactionsSelect | null + /** + * Omit specific fields from the ChargedLicenseTransactions + */ + omit?: Prisma.ChargedLicenseTransactionsOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.ChargedLicenseTransactionsInclude | null + /** + * Filter, which ChargedLicenseTransactions to fetch. + */ + where?: Prisma.ChargedLicenseTransactionsWhereInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} + * + * Determine the order of ChargedLicenseTransactions to fetch. + */ + orderBy?: Prisma.ChargedLicenseTransactionsOrderByWithRelationInput | Prisma.ChargedLicenseTransactionsOrderByWithRelationInput[] + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} + * + * Sets the position for searching for ChargedLicenseTransactions. + */ + cursor?: Prisma.ChargedLicenseTransactionsWhereUniqueInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Take `±n` ChargedLicenseTransactions from the position of the cursor. + */ + take?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Skip the first `n` ChargedLicenseTransactions. + */ + skip?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs} + * + * Filter by unique combinations of ChargedLicenseTransactions. + */ + distinct?: Prisma.ChargedLicenseTransactionsScalarFieldEnum | Prisma.ChargedLicenseTransactionsScalarFieldEnum[] +} + +/** + * ChargedLicenseTransactions findFirstOrThrow + */ +export type ChargedLicenseTransactionsFindFirstOrThrowArgs = { + /** + * Select specific fields to fetch from the ChargedLicenseTransactions + */ + select?: Prisma.ChargedLicenseTransactionsSelect | null + /** + * Omit specific fields from the ChargedLicenseTransactions + */ + omit?: Prisma.ChargedLicenseTransactionsOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.ChargedLicenseTransactionsInclude | null + /** + * Filter, which ChargedLicenseTransactions to fetch. + */ + where?: Prisma.ChargedLicenseTransactionsWhereInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} + * + * Determine the order of ChargedLicenseTransactions to fetch. + */ + orderBy?: Prisma.ChargedLicenseTransactionsOrderByWithRelationInput | Prisma.ChargedLicenseTransactionsOrderByWithRelationInput[] + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} + * + * Sets the position for searching for ChargedLicenseTransactions. + */ + cursor?: Prisma.ChargedLicenseTransactionsWhereUniqueInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Take `±n` ChargedLicenseTransactions from the position of the cursor. + */ + take?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Skip the first `n` ChargedLicenseTransactions. + */ + skip?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs} + * + * Filter by unique combinations of ChargedLicenseTransactions. + */ + distinct?: Prisma.ChargedLicenseTransactionsScalarFieldEnum | Prisma.ChargedLicenseTransactionsScalarFieldEnum[] +} + +/** + * ChargedLicenseTransactions findMany + */ +export type ChargedLicenseTransactionsFindManyArgs = { + /** + * Select specific fields to fetch from the ChargedLicenseTransactions + */ + select?: Prisma.ChargedLicenseTransactionsSelect | null + /** + * Omit specific fields from the ChargedLicenseTransactions + */ + omit?: Prisma.ChargedLicenseTransactionsOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.ChargedLicenseTransactionsInclude | null + /** + * Filter, which ChargedLicenseTransactions to fetch. + */ + where?: Prisma.ChargedLicenseTransactionsWhereInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} + * + * Determine the order of ChargedLicenseTransactions to fetch. + */ + orderBy?: Prisma.ChargedLicenseTransactionsOrderByWithRelationInput | Prisma.ChargedLicenseTransactionsOrderByWithRelationInput[] + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} + * + * Sets the position for listing ChargedLicenseTransactions. + */ + cursor?: Prisma.ChargedLicenseTransactionsWhereUniqueInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Take `±n` ChargedLicenseTransactions from the position of the cursor. + */ + take?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Skip the first `n` ChargedLicenseTransactions. + */ + skip?: number + distinct?: Prisma.ChargedLicenseTransactionsScalarFieldEnum | Prisma.ChargedLicenseTransactionsScalarFieldEnum[] +} + +/** + * ChargedLicenseTransactions create + */ +export type ChargedLicenseTransactionsCreateArgs = { + /** + * Select specific fields to fetch from the ChargedLicenseTransactions + */ + select?: Prisma.ChargedLicenseTransactionsSelect | null + /** + * Omit specific fields from the ChargedLicenseTransactions + */ + omit?: Prisma.ChargedLicenseTransactionsOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.ChargedLicenseTransactionsInclude | null + /** + * The data needed to create a ChargedLicenseTransactions. + */ + data: Prisma.XOR +} + +/** + * ChargedLicenseTransactions createMany + */ +export type ChargedLicenseTransactionsCreateManyArgs = { + /** + * The data used to create many ChargedLicenseTransactions. + */ + data: Prisma.ChargedLicenseTransactionsCreateManyInput | Prisma.ChargedLicenseTransactionsCreateManyInput[] + skipDuplicates?: boolean +} + +/** + * ChargedLicenseTransactions update + */ +export type ChargedLicenseTransactionsUpdateArgs = { + /** + * Select specific fields to fetch from the ChargedLicenseTransactions + */ + select?: Prisma.ChargedLicenseTransactionsSelect | null + /** + * Omit specific fields from the ChargedLicenseTransactions + */ + omit?: Prisma.ChargedLicenseTransactionsOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.ChargedLicenseTransactionsInclude | null + /** + * The data needed to update a ChargedLicenseTransactions. + */ + data: Prisma.XOR + /** + * Choose, which ChargedLicenseTransactions to update. + */ + where: Prisma.ChargedLicenseTransactionsWhereUniqueInput +} + +/** + * ChargedLicenseTransactions updateMany + */ +export type ChargedLicenseTransactionsUpdateManyArgs = { + /** + * The data used to update ChargedLicenseTransactions. + */ + data: Prisma.XOR + /** + * Filter which ChargedLicenseTransactions to update + */ + where?: Prisma.ChargedLicenseTransactionsWhereInput + /** + * Limit how many ChargedLicenseTransactions to update. + */ + limit?: number +} + +/** + * ChargedLicenseTransactions upsert + */ +export type ChargedLicenseTransactionsUpsertArgs = { + /** + * Select specific fields to fetch from the ChargedLicenseTransactions + */ + select?: Prisma.ChargedLicenseTransactionsSelect | null + /** + * Omit specific fields from the ChargedLicenseTransactions + */ + omit?: Prisma.ChargedLicenseTransactionsOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.ChargedLicenseTransactionsInclude | null + /** + * The filter to search for the ChargedLicenseTransactions to update in case it exists. + */ + where: Prisma.ChargedLicenseTransactionsWhereUniqueInput + /** + * In case the ChargedLicenseTransactions found by the `where` argument doesn't exist, create a new ChargedLicenseTransactions with this data. + */ + create: Prisma.XOR + /** + * In case the ChargedLicenseTransactions was found with the provided `where` argument, update it with this data. + */ + update: Prisma.XOR +} + +/** + * ChargedLicenseTransactions delete + */ +export type ChargedLicenseTransactionsDeleteArgs = { + /** + * Select specific fields to fetch from the ChargedLicenseTransactions + */ + select?: Prisma.ChargedLicenseTransactionsSelect | null + /** + * Omit specific fields from the ChargedLicenseTransactions + */ + omit?: Prisma.ChargedLicenseTransactionsOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.ChargedLicenseTransactionsInclude | null + /** + * Filter which ChargedLicenseTransactions to delete. + */ + where: Prisma.ChargedLicenseTransactionsWhereUniqueInput +} + +/** + * ChargedLicenseTransactions deleteMany + */ +export type ChargedLicenseTransactionsDeleteManyArgs = { + /** + * Filter which ChargedLicenseTransactions to delete + */ + where?: Prisma.ChargedLicenseTransactionsWhereInput + /** + * Limit how many ChargedLicenseTransactions to delete. + */ + limit?: number +} + +/** + * ChargedLicenseTransactions.licenses + */ +export type ChargedLicenseTransactions$licensesArgs = { + /** + * Select specific fields to fetch from the License + */ + select?: Prisma.LicenseSelect | null + /** + * Omit specific fields from the License + */ + omit?: Prisma.LicenseOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.LicenseInclude | null + where?: Prisma.LicenseWhereInput + orderBy?: Prisma.LicenseOrderByWithRelationInput | Prisma.LicenseOrderByWithRelationInput[] + cursor?: Prisma.LicenseWhereUniqueInput + take?: number + skip?: number + distinct?: Prisma.LicenseScalarFieldEnum | Prisma.LicenseScalarFieldEnum[] +} + +/** + * ChargedLicenseTransactions without action + */ +export type ChargedLicenseTransactionsDefaultArgs = { + /** + * Select specific fields to fetch from the ChargedLicenseTransactions + */ + select?: Prisma.ChargedLicenseTransactionsSelect | null + /** + * Omit specific fields from the ChargedLicenseTransactions + */ + omit?: Prisma.ChargedLicenseTransactionsOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.ChargedLicenseTransactionsInclude | null +} diff --git a/src/generated/prisma/models/Consumer.ts b/src/generated/prisma/models/Consumer.ts index eab61bf..c5a4399 100644 --- a/src/generated/prisma/models/Consumer.ts +++ b/src/generated/prisma/models/Consumer.ts @@ -200,7 +200,7 @@ export type ConsumerWhereInput = { updated_at?: Prisma.DateTimeFilter<"Consumer"> | Date | string consumer_accounts?: Prisma.ConsumerAccountListRelationFilter business_activities?: Prisma.BusinessActivityListRelationFilter - license?: Prisma.XOR | null + activated_licenses?: Prisma.ActivatedLicenseListRelationFilter } export type ConsumerOrderByWithRelationInput = { @@ -213,7 +213,7 @@ export type ConsumerOrderByWithRelationInput = { updated_at?: Prisma.SortOrder consumer_accounts?: Prisma.ConsumerAccountOrderByRelationAggregateInput business_activities?: Prisma.BusinessActivityOrderByRelationAggregateInput - license?: Prisma.LicenseOrderByWithRelationInput + activated_licenses?: Prisma.ActivatedLicenseOrderByRelationAggregateInput _relevance?: Prisma.ConsumerOrderByRelevanceInput } @@ -230,7 +230,7 @@ export type ConsumerWhereUniqueInput = Prisma.AtLeast<{ updated_at?: Prisma.DateTimeFilter<"Consumer"> | Date | string consumer_accounts?: Prisma.ConsumerAccountListRelationFilter business_activities?: Prisma.BusinessActivityListRelationFilter - license?: Prisma.XOR | null + activated_licenses?: Prisma.ActivatedLicenseListRelationFilter }, "id" | "mobile_number"> export type ConsumerOrderByWithAggregationInput = { @@ -269,7 +269,7 @@ export type ConsumerCreateInput = { updated_at?: Date | string consumer_accounts?: Prisma.ConsumerAccountCreateNestedManyWithoutConsumerInput business_activities?: Prisma.BusinessActivityCreateNestedManyWithoutConsumerInput - license?: Prisma.LicenseCreateNestedOneWithoutConsumerInput + activated_licenses?: Prisma.ActivatedLicenseCreateNestedManyWithoutConsumerInput } export type ConsumerUncheckedCreateInput = { @@ -282,7 +282,7 @@ export type ConsumerUncheckedCreateInput = { updated_at?: Date | string consumer_accounts?: Prisma.ConsumerAccountUncheckedCreateNestedManyWithoutConsumerInput business_activities?: Prisma.BusinessActivityUncheckedCreateNestedManyWithoutConsumerInput - license?: Prisma.LicenseUncheckedCreateNestedOneWithoutConsumerInput + activated_licenses?: Prisma.ActivatedLicenseUncheckedCreateNestedManyWithoutConsumerInput } export type ConsumerUpdateInput = { @@ -295,7 +295,7 @@ export type ConsumerUpdateInput = { updated_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string consumer_accounts?: Prisma.ConsumerAccountUpdateManyWithoutConsumerNestedInput business_activities?: Prisma.BusinessActivityUpdateManyWithoutConsumerNestedInput - license?: Prisma.LicenseUpdateOneWithoutConsumerNestedInput + activated_licenses?: Prisma.ActivatedLicenseUpdateManyWithoutConsumerNestedInput } export type ConsumerUncheckedUpdateInput = { @@ -308,7 +308,7 @@ export type ConsumerUncheckedUpdateInput = { updated_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string consumer_accounts?: Prisma.ConsumerAccountUncheckedUpdateManyWithoutConsumerNestedInput business_activities?: Prisma.BusinessActivityUncheckedUpdateManyWithoutConsumerNestedInput - license?: Prisma.LicenseUncheckedUpdateOneWithoutConsumerNestedInput + activated_licenses?: Prisma.ActivatedLicenseUncheckedUpdateManyWithoutConsumerNestedInput } export type ConsumerCreateManyInput = { @@ -414,18 +414,18 @@ export type ConsumerUpdateOneRequiredWithoutBusiness_activitiesNestedInput = { update?: Prisma.XOR, Prisma.ConsumerUncheckedUpdateWithoutBusiness_activitiesInput> } -export type ConsumerCreateNestedOneWithoutLicenseInput = { - create?: Prisma.XOR - connectOrCreate?: Prisma.ConsumerCreateOrConnectWithoutLicenseInput +export type ConsumerCreateNestedOneWithoutActivated_licensesInput = { + create?: Prisma.XOR + connectOrCreate?: Prisma.ConsumerCreateOrConnectWithoutActivated_licensesInput connect?: Prisma.ConsumerWhereUniqueInput } -export type ConsumerUpdateOneRequiredWithoutLicenseNestedInput = { - create?: Prisma.XOR - connectOrCreate?: Prisma.ConsumerCreateOrConnectWithoutLicenseInput - upsert?: Prisma.ConsumerUpsertWithoutLicenseInput +export type ConsumerUpdateOneRequiredWithoutActivated_licensesNestedInput = { + create?: Prisma.XOR + connectOrCreate?: Prisma.ConsumerCreateOrConnectWithoutActivated_licensesInput + upsert?: Prisma.ConsumerUpsertWithoutActivated_licensesInput connect?: Prisma.ConsumerWhereUniqueInput - update?: Prisma.XOR, Prisma.ConsumerUncheckedUpdateWithoutLicenseInput> + update?: Prisma.XOR, Prisma.ConsumerUncheckedUpdateWithoutActivated_licensesInput> } export type ConsumerCreateWithoutConsumer_accountsInput = { @@ -437,7 +437,7 @@ export type ConsumerCreateWithoutConsumer_accountsInput = { created_at?: Date | string updated_at?: Date | string business_activities?: Prisma.BusinessActivityCreateNestedManyWithoutConsumerInput - license?: Prisma.LicenseCreateNestedOneWithoutConsumerInput + activated_licenses?: Prisma.ActivatedLicenseCreateNestedManyWithoutConsumerInput } export type ConsumerUncheckedCreateWithoutConsumer_accountsInput = { @@ -449,7 +449,7 @@ export type ConsumerUncheckedCreateWithoutConsumer_accountsInput = { created_at?: Date | string updated_at?: Date | string business_activities?: Prisma.BusinessActivityUncheckedCreateNestedManyWithoutConsumerInput - license?: Prisma.LicenseUncheckedCreateNestedOneWithoutConsumerInput + activated_licenses?: Prisma.ActivatedLicenseUncheckedCreateNestedManyWithoutConsumerInput } export type ConsumerCreateOrConnectWithoutConsumer_accountsInput = { @@ -477,7 +477,7 @@ export type ConsumerUpdateWithoutConsumer_accountsInput = { created_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string updated_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string business_activities?: Prisma.BusinessActivityUpdateManyWithoutConsumerNestedInput - license?: Prisma.LicenseUpdateOneWithoutConsumerNestedInput + activated_licenses?: Prisma.ActivatedLicenseUpdateManyWithoutConsumerNestedInput } export type ConsumerUncheckedUpdateWithoutConsumer_accountsInput = { @@ -489,7 +489,7 @@ export type ConsumerUncheckedUpdateWithoutConsumer_accountsInput = { created_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string updated_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string business_activities?: Prisma.BusinessActivityUncheckedUpdateManyWithoutConsumerNestedInput - license?: Prisma.LicenseUncheckedUpdateOneWithoutConsumerNestedInput + activated_licenses?: Prisma.ActivatedLicenseUncheckedUpdateManyWithoutConsumerNestedInput } export type ConsumerCreateWithoutBusiness_activitiesInput = { @@ -501,7 +501,7 @@ export type ConsumerCreateWithoutBusiness_activitiesInput = { created_at?: Date | string updated_at?: Date | string consumer_accounts?: Prisma.ConsumerAccountCreateNestedManyWithoutConsumerInput - license?: Prisma.LicenseCreateNestedOneWithoutConsumerInput + activated_licenses?: Prisma.ActivatedLicenseCreateNestedManyWithoutConsumerInput } export type ConsumerUncheckedCreateWithoutBusiness_activitiesInput = { @@ -513,7 +513,7 @@ export type ConsumerUncheckedCreateWithoutBusiness_activitiesInput = { created_at?: Date | string updated_at?: Date | string consumer_accounts?: Prisma.ConsumerAccountUncheckedCreateNestedManyWithoutConsumerInput - license?: Prisma.LicenseUncheckedCreateNestedOneWithoutConsumerInput + activated_licenses?: Prisma.ActivatedLicenseUncheckedCreateNestedManyWithoutConsumerInput } export type ConsumerCreateOrConnectWithoutBusiness_activitiesInput = { @@ -541,7 +541,7 @@ export type ConsumerUpdateWithoutBusiness_activitiesInput = { created_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string updated_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string consumer_accounts?: Prisma.ConsumerAccountUpdateManyWithoutConsumerNestedInput - license?: Prisma.LicenseUpdateOneWithoutConsumerNestedInput + activated_licenses?: Prisma.ActivatedLicenseUpdateManyWithoutConsumerNestedInput } export type ConsumerUncheckedUpdateWithoutBusiness_activitiesInput = { @@ -553,10 +553,10 @@ export type ConsumerUncheckedUpdateWithoutBusiness_activitiesInput = { created_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string updated_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string consumer_accounts?: Prisma.ConsumerAccountUncheckedUpdateManyWithoutConsumerNestedInput - license?: Prisma.LicenseUncheckedUpdateOneWithoutConsumerNestedInput + activated_licenses?: Prisma.ActivatedLicenseUncheckedUpdateManyWithoutConsumerNestedInput } -export type ConsumerCreateWithoutLicenseInput = { +export type ConsumerCreateWithoutActivated_licensesInput = { id?: string mobile_number: string first_name: string @@ -568,7 +568,7 @@ export type ConsumerCreateWithoutLicenseInput = { business_activities?: Prisma.BusinessActivityCreateNestedManyWithoutConsumerInput } -export type ConsumerUncheckedCreateWithoutLicenseInput = { +export type ConsumerUncheckedCreateWithoutActivated_licensesInput = { id?: string mobile_number: string first_name: string @@ -580,23 +580,23 @@ export type ConsumerUncheckedCreateWithoutLicenseInput = { business_activities?: Prisma.BusinessActivityUncheckedCreateNestedManyWithoutConsumerInput } -export type ConsumerCreateOrConnectWithoutLicenseInput = { +export type ConsumerCreateOrConnectWithoutActivated_licensesInput = { where: Prisma.ConsumerWhereUniqueInput - create: Prisma.XOR + create: Prisma.XOR } -export type ConsumerUpsertWithoutLicenseInput = { - update: Prisma.XOR - create: Prisma.XOR +export type ConsumerUpsertWithoutActivated_licensesInput = { + update: Prisma.XOR + create: Prisma.XOR where?: Prisma.ConsumerWhereInput } -export type ConsumerUpdateToOneWithWhereWithoutLicenseInput = { +export type ConsumerUpdateToOneWithWhereWithoutActivated_licensesInput = { where?: Prisma.ConsumerWhereInput - data: Prisma.XOR + data: Prisma.XOR } -export type ConsumerUpdateWithoutLicenseInput = { +export type ConsumerUpdateWithoutActivated_licensesInput = { id?: Prisma.StringFieldUpdateOperationsInput | string mobile_number?: Prisma.StringFieldUpdateOperationsInput | string first_name?: Prisma.StringFieldUpdateOperationsInput | string @@ -608,7 +608,7 @@ export type ConsumerUpdateWithoutLicenseInput = { business_activities?: Prisma.BusinessActivityUpdateManyWithoutConsumerNestedInput } -export type ConsumerUncheckedUpdateWithoutLicenseInput = { +export type ConsumerUncheckedUpdateWithoutActivated_licensesInput = { id?: Prisma.StringFieldUpdateOperationsInput | string mobile_number?: Prisma.StringFieldUpdateOperationsInput | string first_name?: Prisma.StringFieldUpdateOperationsInput | string @@ -628,11 +628,13 @@ export type ConsumerUncheckedUpdateWithoutLicenseInput = { export type ConsumerCountOutputType = { consumer_accounts: number business_activities: number + activated_licenses: number } export type ConsumerCountOutputTypeSelect = { consumer_accounts?: boolean | ConsumerCountOutputTypeCountConsumer_accountsArgs business_activities?: boolean | ConsumerCountOutputTypeCountBusiness_activitiesArgs + activated_licenses?: boolean | ConsumerCountOutputTypeCountActivated_licensesArgs } /** @@ -659,6 +661,13 @@ export type ConsumerCountOutputTypeCountBusiness_activitiesArgs = { + where?: Prisma.ActivatedLicenseWhereInput +} + export type ConsumerSelect = runtime.Types.Extensions.GetSelect<{ id?: boolean @@ -670,7 +679,7 @@ export type ConsumerSelect business_activities?: boolean | Prisma.Consumer$business_activitiesArgs - license?: boolean | Prisma.Consumer$licenseArgs + activated_licenses?: boolean | Prisma.Consumer$activated_licensesArgs _count?: boolean | Prisma.ConsumerCountOutputTypeDefaultArgs }, ExtArgs["result"]["consumer"]> @@ -690,7 +699,7 @@ export type ConsumerOmit = { consumer_accounts?: boolean | Prisma.Consumer$consumer_accountsArgs business_activities?: boolean | Prisma.Consumer$business_activitiesArgs - license?: boolean | Prisma.Consumer$licenseArgs + activated_licenses?: boolean | Prisma.Consumer$activated_licensesArgs _count?: boolean | Prisma.ConsumerCountOutputTypeDefaultArgs } @@ -699,7 +708,7 @@ export type $ConsumerPayload[] business_activities: Prisma.$BusinessActivityPayload[] - license: Prisma.$LicensePayload | null + activated_licenses: Prisma.$ActivatedLicensePayload[] } scalars: runtime.Types.Extensions.GetPayloadResult<{ id: string @@ -1051,7 +1060,7 @@ export interface Prisma__ConsumerClient = {}>(args?: Prisma.Subset>): Prisma.PrismaPromise, T, "findMany", GlobalOmitOptions> | Null> business_activities = {}>(args?: Prisma.Subset>): Prisma.PrismaPromise, T, "findMany", GlobalOmitOptions> | Null> - license = {}>(args?: Prisma.Subset>): Prisma.Prisma__LicenseClient, T, "findUniqueOrThrow", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions> + activated_licenses = {}>(args?: Prisma.Subset>): Prisma.PrismaPromise, T, "findMany", GlobalOmitOptions> | Null> /** * Attaches callbacks for the resolution and/or rejection of the Promise. * @param onfulfilled The callback to execute when the Promise is resolved. @@ -1479,22 +1488,27 @@ export type Consumer$business_activitiesArgs = { +export type Consumer$activated_licensesArgs = { /** - * Select specific fields to fetch from the License + * Select specific fields to fetch from the ActivatedLicense */ - select?: Prisma.LicenseSelect | null + select?: Prisma.ActivatedLicenseSelect | null /** - * Omit specific fields from the License + * Omit specific fields from the ActivatedLicense */ - omit?: Prisma.LicenseOmit | null + omit?: Prisma.ActivatedLicenseOmit | null /** * Choose, which related nodes to fetch as well */ - include?: Prisma.LicenseInclude | null - where?: Prisma.LicenseWhereInput + include?: Prisma.ActivatedLicenseInclude | null + where?: Prisma.ActivatedLicenseWhereInput + orderBy?: Prisma.ActivatedLicenseOrderByWithRelationInput | Prisma.ActivatedLicenseOrderByWithRelationInput[] + cursor?: Prisma.ActivatedLicenseWhereUniqueInput + take?: number + skip?: number + distinct?: Prisma.ActivatedLicenseScalarFieldEnum | Prisma.ActivatedLicenseScalarFieldEnum[] } /** diff --git a/src/generated/prisma/models/Good.ts b/src/generated/prisma/models/Good.ts index bb7fec1..7ae6be5 100644 --- a/src/generated/prisma/models/Good.ts +++ b/src/generated/prisma/models/Good.ts @@ -45,6 +45,7 @@ export type GoodMinAggregateOutputType = { local_sku: string | null barcode: string | null base_sale_price: runtime.Decimal | null + image_url: string | null created_at: Date | null updated_at: Date | null deleted_at: Date | null @@ -63,6 +64,7 @@ export type GoodMaxAggregateOutputType = { local_sku: string | null barcode: string | null base_sale_price: runtime.Decimal | null + image_url: string | null created_at: Date | null updated_at: Date | null deleted_at: Date | null @@ -81,6 +83,7 @@ export type GoodCountAggregateOutputType = { local_sku: number barcode: number base_sale_price: number + image_url: number created_at: number updated_at: number deleted_at: number @@ -109,6 +112,7 @@ export type GoodMinAggregateInputType = { local_sku?: true barcode?: true base_sale_price?: true + image_url?: true created_at?: true updated_at?: true deleted_at?: true @@ -127,6 +131,7 @@ export type GoodMaxAggregateInputType = { local_sku?: true barcode?: true base_sale_price?: true + image_url?: true created_at?: true updated_at?: true deleted_at?: true @@ -145,6 +150,7 @@ export type GoodCountAggregateInputType = { local_sku?: true barcode?: true base_sale_price?: true + image_url?: true created_at?: true updated_at?: true deleted_at?: true @@ -250,6 +256,7 @@ export type GoodGroupByOutputType = { local_sku: string | null barcode: string | null base_sale_price: runtime.Decimal | null + image_url: string | null created_at: Date updated_at: Date deleted_at: Date | null @@ -291,6 +298,7 @@ export type GoodWhereInput = { local_sku?: Prisma.StringNullableFilter<"Good"> | string | null barcode?: Prisma.StringNullableFilter<"Good"> | string | null base_sale_price?: Prisma.DecimalNullableFilter<"Good"> | runtime.Decimal | runtime.DecimalJsLike | number | string | null + image_url?: Prisma.StringNullableFilter<"Good"> | string | null created_at?: Prisma.DateTimeFilter<"Good"> | Date | string updated_at?: Prisma.DateTimeFilter<"Good"> | Date | string deleted_at?: Prisma.DateTimeNullableFilter<"Good"> | Date | string | null @@ -312,6 +320,7 @@ export type GoodOrderByWithRelationInput = { local_sku?: Prisma.SortOrderInput | Prisma.SortOrder barcode?: Prisma.SortOrderInput | Prisma.SortOrder base_sale_price?: Prisma.SortOrderInput | Prisma.SortOrder + image_url?: Prisma.SortOrderInput | Prisma.SortOrder created_at?: Prisma.SortOrder updated_at?: Prisma.SortOrder deleted_at?: Prisma.SortOrderInput | Prisma.SortOrder @@ -337,6 +346,7 @@ export type GoodWhereUniqueInput = Prisma.AtLeast<{ pricing_model?: Prisma.EnumGoodPricingModelFilter<"Good"> | $Enums.GoodPricingModel description?: Prisma.StringNullableFilter<"Good"> | string | null base_sale_price?: Prisma.DecimalNullableFilter<"Good"> | runtime.Decimal | runtime.DecimalJsLike | number | string | null + image_url?: Prisma.StringNullableFilter<"Good"> | string | null created_at?: Prisma.DateTimeFilter<"Good"> | Date | string updated_at?: Prisma.DateTimeFilter<"Good"> | Date | string deleted_at?: Prisma.DateTimeNullableFilter<"Good"> | Date | string | null @@ -358,6 +368,7 @@ export type GoodOrderByWithAggregationInput = { local_sku?: Prisma.SortOrderInput | Prisma.SortOrder barcode?: Prisma.SortOrderInput | Prisma.SortOrder base_sale_price?: Prisma.SortOrderInput | Prisma.SortOrder + image_url?: Prisma.SortOrderInput | Prisma.SortOrder created_at?: Prisma.SortOrder updated_at?: Prisma.SortOrder deleted_at?: Prisma.SortOrderInput | Prisma.SortOrder @@ -384,6 +395,7 @@ export type GoodScalarWhereWithAggregatesInput = { local_sku?: Prisma.StringNullableWithAggregatesFilter<"Good"> | string | null barcode?: Prisma.StringNullableWithAggregatesFilter<"Good"> | string | null base_sale_price?: Prisma.DecimalNullableWithAggregatesFilter<"Good"> | runtime.Decimal | runtime.DecimalJsLike | number | string | null + image_url?: Prisma.StringNullableWithAggregatesFilter<"Good"> | string | null created_at?: Prisma.DateTimeWithAggregatesFilter<"Good"> | Date | string updated_at?: Prisma.DateTimeWithAggregatesFilter<"Good"> | Date | string deleted_at?: Prisma.DateTimeNullableWithAggregatesFilter<"Good"> | Date | string | null @@ -402,6 +414,7 @@ export type GoodCreateInput = { local_sku?: string | null barcode?: string | null base_sale_price?: runtime.Decimal | runtime.DecimalJsLike | number | string | null + image_url?: string | null created_at?: Date | string updated_at?: Date | string deleted_at?: Date | string | null @@ -421,6 +434,7 @@ export type GoodUncheckedCreateInput = { local_sku?: string | null barcode?: string | null base_sale_price?: runtime.Decimal | runtime.DecimalJsLike | number | string | null + image_url?: string | null created_at?: Date | string updated_at?: Date | string deleted_at?: Date | string | null @@ -440,6 +454,7 @@ export type GoodUpdateInput = { local_sku?: Prisma.NullableStringFieldUpdateOperationsInput | string | null barcode?: Prisma.NullableStringFieldUpdateOperationsInput | string | null base_sale_price?: Prisma.NullableDecimalFieldUpdateOperationsInput | runtime.Decimal | runtime.DecimalJsLike | number | string | null + image_url?: Prisma.NullableStringFieldUpdateOperationsInput | string | null created_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string updated_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string deleted_at?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null @@ -459,6 +474,7 @@ export type GoodUncheckedUpdateInput = { local_sku?: Prisma.NullableStringFieldUpdateOperationsInput | string | null barcode?: Prisma.NullableStringFieldUpdateOperationsInput | string | null base_sale_price?: Prisma.NullableDecimalFieldUpdateOperationsInput | runtime.Decimal | runtime.DecimalJsLike | number | string | null + image_url?: Prisma.NullableStringFieldUpdateOperationsInput | string | null created_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string updated_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string deleted_at?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null @@ -478,6 +494,7 @@ export type GoodCreateManyInput = { local_sku?: string | null barcode?: string | null base_sale_price?: runtime.Decimal | runtime.DecimalJsLike | number | string | null + image_url?: string | null created_at?: Date | string updated_at?: Date | string deleted_at?: Date | string | null @@ -496,6 +513,7 @@ export type GoodUpdateManyMutationInput = { local_sku?: Prisma.NullableStringFieldUpdateOperationsInput | string | null barcode?: Prisma.NullableStringFieldUpdateOperationsInput | string | null base_sale_price?: Prisma.NullableDecimalFieldUpdateOperationsInput | runtime.Decimal | runtime.DecimalJsLike | number | string | null + image_url?: Prisma.NullableStringFieldUpdateOperationsInput | string | null created_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string updated_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string deleted_at?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null @@ -512,6 +530,7 @@ export type GoodUncheckedUpdateManyInput = { local_sku?: Prisma.NullableStringFieldUpdateOperationsInput | string | null barcode?: Prisma.NullableStringFieldUpdateOperationsInput | string | null base_sale_price?: Prisma.NullableDecimalFieldUpdateOperationsInput | runtime.Decimal | runtime.DecimalJsLike | number | string | null + image_url?: Prisma.NullableStringFieldUpdateOperationsInput | string | null created_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string updated_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string deleted_at?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null @@ -546,6 +565,7 @@ export type GoodCountOrderByAggregateInput = { local_sku?: Prisma.SortOrder barcode?: Prisma.SortOrder base_sale_price?: Prisma.SortOrder + image_url?: Prisma.SortOrder created_at?: Prisma.SortOrder updated_at?: Prisma.SortOrder deleted_at?: Prisma.SortOrder @@ -568,6 +588,7 @@ export type GoodMaxOrderByAggregateInput = { local_sku?: Prisma.SortOrder barcode?: Prisma.SortOrder base_sale_price?: Prisma.SortOrder + image_url?: Prisma.SortOrder created_at?: Prisma.SortOrder updated_at?: Prisma.SortOrder deleted_at?: Prisma.SortOrder @@ -586,6 +607,7 @@ export type GoodMinOrderByAggregateInput = { local_sku?: Prisma.SortOrder barcode?: Prisma.SortOrder base_sale_price?: Prisma.SortOrder + image_url?: Prisma.SortOrder created_at?: Prisma.SortOrder updated_at?: Prisma.SortOrder deleted_at?: Prisma.SortOrder @@ -733,6 +755,7 @@ export type GoodCreateWithoutComplexInput = { local_sku?: string | null barcode?: string | null base_sale_price?: runtime.Decimal | runtime.DecimalJsLike | number | string | null + image_url?: string | null created_at?: Date | string updated_at?: Date | string deleted_at?: Date | string | null @@ -751,6 +774,7 @@ export type GoodUncheckedCreateWithoutComplexInput = { local_sku?: string | null barcode?: string | null base_sale_price?: runtime.Decimal | runtime.DecimalJsLike | number | string | null + image_url?: string | null created_at?: Date | string updated_at?: Date | string deleted_at?: Date | string | null @@ -798,6 +822,7 @@ export type GoodScalarWhereInput = { local_sku?: Prisma.StringNullableFilter<"Good"> | string | null barcode?: Prisma.StringNullableFilter<"Good"> | string | null base_sale_price?: Prisma.DecimalNullableFilter<"Good"> | runtime.Decimal | runtime.DecimalJsLike | number | string | null + image_url?: Prisma.StringNullableFilter<"Good"> | string | null created_at?: Prisma.DateTimeFilter<"Good"> | Date | string updated_at?: Prisma.DateTimeFilter<"Good"> | Date | string deleted_at?: Prisma.DateTimeNullableFilter<"Good"> | Date | string | null @@ -816,6 +841,7 @@ export type GoodCreateWithoutCategoryInput = { local_sku?: string | null barcode?: string | null base_sale_price?: runtime.Decimal | runtime.DecimalJsLike | number | string | null + image_url?: string | null created_at?: Date | string updated_at?: Date | string deleted_at?: Date | string | null @@ -834,6 +860,7 @@ export type GoodUncheckedCreateWithoutCategoryInput = { local_sku?: string | null barcode?: string | null base_sale_price?: runtime.Decimal | runtime.DecimalJsLike | number | string | null + image_url?: string | null created_at?: Date | string updated_at?: Date | string deleted_at?: Date | string | null @@ -878,6 +905,7 @@ export type GoodCreateWithoutSales_invoice_itemsInput = { local_sku?: string | null barcode?: string | null base_sale_price?: runtime.Decimal | runtime.DecimalJsLike | number | string | null + image_url?: string | null created_at?: Date | string updated_at?: Date | string deleted_at?: Date | string | null @@ -896,6 +924,7 @@ export type GoodUncheckedCreateWithoutSales_invoice_itemsInput = { local_sku?: string | null barcode?: string | null base_sale_price?: runtime.Decimal | runtime.DecimalJsLike | number | string | null + image_url?: string | null created_at?: Date | string updated_at?: Date | string deleted_at?: Date | string | null @@ -930,6 +959,7 @@ export type GoodUpdateWithoutSales_invoice_itemsInput = { local_sku?: Prisma.NullableStringFieldUpdateOperationsInput | string | null barcode?: Prisma.NullableStringFieldUpdateOperationsInput | string | null base_sale_price?: Prisma.NullableDecimalFieldUpdateOperationsInput | runtime.Decimal | runtime.DecimalJsLike | number | string | null + image_url?: Prisma.NullableStringFieldUpdateOperationsInput | string | null created_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string updated_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string deleted_at?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null @@ -948,6 +978,7 @@ export type GoodUncheckedUpdateWithoutSales_invoice_itemsInput = { local_sku?: Prisma.NullableStringFieldUpdateOperationsInput | string | null barcode?: Prisma.NullableStringFieldUpdateOperationsInput | string | null base_sale_price?: Prisma.NullableDecimalFieldUpdateOperationsInput | runtime.Decimal | runtime.DecimalJsLike | number | string | null + image_url?: Prisma.NullableStringFieldUpdateOperationsInput | string | null created_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string updated_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string deleted_at?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null @@ -966,6 +997,7 @@ export type GoodCreateManyComplexInput = { local_sku?: string | null barcode?: string | null base_sale_price?: runtime.Decimal | runtime.DecimalJsLike | number | string | null + image_url?: string | null created_at?: Date | string updated_at?: Date | string deleted_at?: Date | string | null @@ -983,6 +1015,7 @@ export type GoodUpdateWithoutComplexInput = { local_sku?: Prisma.NullableStringFieldUpdateOperationsInput | string | null barcode?: Prisma.NullableStringFieldUpdateOperationsInput | string | null base_sale_price?: Prisma.NullableDecimalFieldUpdateOperationsInput | runtime.Decimal | runtime.DecimalJsLike | number | string | null + image_url?: Prisma.NullableStringFieldUpdateOperationsInput | string | null created_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string updated_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string deleted_at?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null @@ -1001,6 +1034,7 @@ export type GoodUncheckedUpdateWithoutComplexInput = { local_sku?: Prisma.NullableStringFieldUpdateOperationsInput | string | null barcode?: Prisma.NullableStringFieldUpdateOperationsInput | string | null base_sale_price?: Prisma.NullableDecimalFieldUpdateOperationsInput | runtime.Decimal | runtime.DecimalJsLike | number | string | null + image_url?: Prisma.NullableStringFieldUpdateOperationsInput | string | null created_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string updated_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string deleted_at?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null @@ -1019,6 +1053,7 @@ export type GoodUncheckedUpdateManyWithoutComplexInput = { local_sku?: Prisma.NullableStringFieldUpdateOperationsInput | string | null barcode?: Prisma.NullableStringFieldUpdateOperationsInput | string | null base_sale_price?: Prisma.NullableDecimalFieldUpdateOperationsInput | runtime.Decimal | runtime.DecimalJsLike | number | string | null + image_url?: Prisma.NullableStringFieldUpdateOperationsInput | string | null created_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string updated_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string deleted_at?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null @@ -1036,6 +1071,7 @@ export type GoodCreateManyCategoryInput = { local_sku?: string | null barcode?: string | null base_sale_price?: runtime.Decimal | runtime.DecimalJsLike | number | string | null + image_url?: string | null created_at?: Date | string updated_at?: Date | string deleted_at?: Date | string | null @@ -1053,6 +1089,7 @@ export type GoodUpdateWithoutCategoryInput = { local_sku?: Prisma.NullableStringFieldUpdateOperationsInput | string | null barcode?: Prisma.NullableStringFieldUpdateOperationsInput | string | null base_sale_price?: Prisma.NullableDecimalFieldUpdateOperationsInput | runtime.Decimal | runtime.DecimalJsLike | number | string | null + image_url?: Prisma.NullableStringFieldUpdateOperationsInput | string | null created_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string updated_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string deleted_at?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null @@ -1071,6 +1108,7 @@ export type GoodUncheckedUpdateWithoutCategoryInput = { local_sku?: Prisma.NullableStringFieldUpdateOperationsInput | string | null barcode?: Prisma.NullableStringFieldUpdateOperationsInput | string | null base_sale_price?: Prisma.NullableDecimalFieldUpdateOperationsInput | runtime.Decimal | runtime.DecimalJsLike | number | string | null + image_url?: Prisma.NullableStringFieldUpdateOperationsInput | string | null created_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string updated_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string deleted_at?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null @@ -1089,6 +1127,7 @@ export type GoodUncheckedUpdateManyWithoutCategoryInput = { local_sku?: Prisma.NullableStringFieldUpdateOperationsInput | string | null barcode?: Prisma.NullableStringFieldUpdateOperationsInput | string | null base_sale_price?: Prisma.NullableDecimalFieldUpdateOperationsInput | runtime.Decimal | runtime.DecimalJsLike | number | string | null + image_url?: Prisma.NullableStringFieldUpdateOperationsInput | string | null created_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string updated_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string deleted_at?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null @@ -1137,6 +1176,7 @@ export type GoodSelect = runtime.Types.Extensions.GetOmit<"id" | "name" | "is_default_guild_good" | "sku" | "unit_type" | "pricing_model" | "description" | "local_sku" | "barcode" | "base_sale_price" | "created_at" | "updated_at" | "deleted_at" | "complex_id" | "category_id", ExtArgs["result"]["good"]> +export type GoodOmit = runtime.Types.Extensions.GetOmit<"id" | "name" | "is_default_guild_good" | "sku" | "unit_type" | "pricing_model" | "description" | "local_sku" | "barcode" | "base_sale_price" | "image_url" | "created_at" | "updated_at" | "deleted_at" | "complex_id" | "category_id", ExtArgs["result"]["good"]> export type GoodInclude = { category?: boolean | Prisma.Good$categoryArgs complex?: boolean | Prisma.Good$complexArgs @@ -1194,6 +1235,7 @@ export type $GoodPayload readonly barcode: Prisma.FieldRef<"Good", 'String'> readonly base_sale_price: Prisma.FieldRef<"Good", 'Decimal'> + readonly image_url: Prisma.FieldRef<"Good", 'String'> readonly created_at: Prisma.FieldRef<"Good", 'DateTime'> readonly updated_at: Prisma.FieldRef<"Good", 'DateTime'> readonly deleted_at: Prisma.FieldRef<"Good", 'DateTime'> diff --git a/src/generated/prisma/models/License.ts b/src/generated/prisma/models/License.ts index 3f10591..05001c9 100644 --- a/src/generated/prisma/models/License.ts +++ b/src/generated/prisma/models/License.ts @@ -26,70 +26,46 @@ export type AggregateLicense = { export type LicenseMinAggregateOutputType = { id: string | null - starts_at: Date | null - expires_at: Date | null - status: $Enums.LicenseStatus | null created_at: Date | null updated_at: Date | null - partner_id: string | null - consumer_id: string | null + charged_license_transaction_id: string | null } export type LicenseMaxAggregateOutputType = { id: string | null - starts_at: Date | null - expires_at: Date | null - status: $Enums.LicenseStatus | null created_at: Date | null updated_at: Date | null - partner_id: string | null - consumer_id: string | null + charged_license_transaction_id: string | null } export type LicenseCountAggregateOutputType = { id: number - starts_at: number - expires_at: number - status: number created_at: number updated_at: number - partner_id: number - consumer_id: number + charged_license_transaction_id: number _all: number } export type LicenseMinAggregateInputType = { id?: true - starts_at?: true - expires_at?: true - status?: true created_at?: true updated_at?: true - partner_id?: true - consumer_id?: true + charged_license_transaction_id?: true } export type LicenseMaxAggregateInputType = { id?: true - starts_at?: true - expires_at?: true - status?: true created_at?: true updated_at?: true - partner_id?: true - consumer_id?: true + charged_license_transaction_id?: true } export type LicenseCountAggregateInputType = { id?: true - starts_at?: true - expires_at?: true - status?: true created_at?: true updated_at?: true - partner_id?: true - consumer_id?: true + charged_license_transaction_id?: true _all?: true } @@ -167,13 +143,9 @@ export type LicenseGroupByArgs | string - starts_at?: Prisma.DateTimeFilter<"License"> | Date | string - expires_at?: Prisma.DateTimeFilter<"License"> | Date | string - status?: Prisma.EnumLicenseStatusFilter<"License"> | $Enums.LicenseStatus created_at?: Prisma.DateTimeFilter<"License"> | Date | string updated_at?: Prisma.DateTimeFilter<"License"> | Date | string - partner_id?: Prisma.StringNullableFilter<"License"> | string | null - consumer_id?: Prisma.StringFilter<"License"> | string - partner?: Prisma.XOR | null - consumer?: Prisma.XOR + charged_license_transaction_id?: Prisma.StringFilter<"License"> | string + charged_license_transaction?: Prisma.XOR + activated_license?: Prisma.XOR | null } export type LicenseOrderByWithRelationInput = { id?: Prisma.SortOrder - starts_at?: Prisma.SortOrder - expires_at?: Prisma.SortOrder - status?: Prisma.SortOrder created_at?: Prisma.SortOrder updated_at?: Prisma.SortOrder - partner_id?: Prisma.SortOrderInput | Prisma.SortOrder - consumer_id?: Prisma.SortOrder - partner?: Prisma.PartnerOrderByWithRelationInput - consumer?: Prisma.ConsumerOrderByWithRelationInput + charged_license_transaction_id?: Prisma.SortOrder + charged_license_transaction?: Prisma.ChargedLicenseTransactionsOrderByWithRelationInput + activated_license?: Prisma.ActivatedLicenseOrderByWithRelationInput _relevance?: Prisma.LicenseOrderByRelevanceInput } export type LicenseWhereUniqueInput = Prisma.AtLeast<{ id?: string - consumer_id?: string AND?: Prisma.LicenseWhereInput | Prisma.LicenseWhereInput[] OR?: Prisma.LicenseWhereInput[] NOT?: Prisma.LicenseWhereInput | Prisma.LicenseWhereInput[] - starts_at?: Prisma.DateTimeFilter<"License"> | Date | string - expires_at?: Prisma.DateTimeFilter<"License"> | Date | string - status?: Prisma.EnumLicenseStatusFilter<"License"> | $Enums.LicenseStatus created_at?: Prisma.DateTimeFilter<"License"> | Date | string updated_at?: Prisma.DateTimeFilter<"License"> | Date | string - partner_id?: Prisma.StringNullableFilter<"License"> | string | null - partner?: Prisma.XOR | null - consumer?: Prisma.XOR -}, "id" | "consumer_id"> + charged_license_transaction_id?: Prisma.StringFilter<"License"> | string + charged_license_transaction?: Prisma.XOR + activated_license?: Prisma.XOR | null +}, "id"> export type LicenseOrderByWithAggregationInput = { id?: Prisma.SortOrder - starts_at?: Prisma.SortOrder - expires_at?: Prisma.SortOrder - status?: Prisma.SortOrder created_at?: Prisma.SortOrder updated_at?: Prisma.SortOrder - partner_id?: Prisma.SortOrderInput | Prisma.SortOrder - consumer_id?: Prisma.SortOrder + charged_license_transaction_id?: Prisma.SortOrder _count?: Prisma.LicenseCountOrderByAggregateInput _max?: Prisma.LicenseMaxOrderByAggregateInput _min?: Prisma.LicenseMinOrderByAggregateInput @@ -259,93 +215,61 @@ export type LicenseScalarWhereWithAggregatesInput = { OR?: Prisma.LicenseScalarWhereWithAggregatesInput[] NOT?: Prisma.LicenseScalarWhereWithAggregatesInput | Prisma.LicenseScalarWhereWithAggregatesInput[] id?: Prisma.StringWithAggregatesFilter<"License"> | string - starts_at?: Prisma.DateTimeWithAggregatesFilter<"License"> | Date | string - expires_at?: Prisma.DateTimeWithAggregatesFilter<"License"> | Date | string - status?: Prisma.EnumLicenseStatusWithAggregatesFilter<"License"> | $Enums.LicenseStatus created_at?: Prisma.DateTimeWithAggregatesFilter<"License"> | Date | string updated_at?: Prisma.DateTimeWithAggregatesFilter<"License"> | Date | string - partner_id?: Prisma.StringNullableWithAggregatesFilter<"License"> | string | null - consumer_id?: Prisma.StringWithAggregatesFilter<"License"> | string + charged_license_transaction_id?: Prisma.StringWithAggregatesFilter<"License"> | string } export type LicenseCreateInput = { id?: string - starts_at: Date | string - expires_at: Date | string - status: $Enums.LicenseStatus created_at?: Date | string updated_at?: Date | string - partner?: Prisma.PartnerCreateNestedOneWithoutLicensesInput - consumer: Prisma.ConsumerCreateNestedOneWithoutLicenseInput + charged_license_transaction: Prisma.ChargedLicenseTransactionsCreateNestedOneWithoutLicensesInput + activated_license?: Prisma.ActivatedLicenseCreateNestedOneWithoutLicenseInput } export type LicenseUncheckedCreateInput = { id?: string - starts_at: Date | string - expires_at: Date | string - status: $Enums.LicenseStatus created_at?: Date | string updated_at?: Date | string - partner_id?: string | null - consumer_id: string + charged_license_transaction_id: string + activated_license?: Prisma.ActivatedLicenseUncheckedCreateNestedOneWithoutLicenseInput } export type LicenseUpdateInput = { id?: Prisma.StringFieldUpdateOperationsInput | string - starts_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string - expires_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string - status?: Prisma.EnumLicenseStatusFieldUpdateOperationsInput | $Enums.LicenseStatus created_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string updated_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string - partner?: Prisma.PartnerUpdateOneWithoutLicensesNestedInput - consumer?: Prisma.ConsumerUpdateOneRequiredWithoutLicenseNestedInput + charged_license_transaction?: Prisma.ChargedLicenseTransactionsUpdateOneRequiredWithoutLicensesNestedInput + activated_license?: Prisma.ActivatedLicenseUpdateOneWithoutLicenseNestedInput } export type LicenseUncheckedUpdateInput = { id?: Prisma.StringFieldUpdateOperationsInput | string - starts_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string - expires_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string - status?: Prisma.EnumLicenseStatusFieldUpdateOperationsInput | $Enums.LicenseStatus created_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string updated_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string - partner_id?: Prisma.NullableStringFieldUpdateOperationsInput | string | null - consumer_id?: Prisma.StringFieldUpdateOperationsInput | string + charged_license_transaction_id?: Prisma.StringFieldUpdateOperationsInput | string + activated_license?: Prisma.ActivatedLicenseUncheckedUpdateOneWithoutLicenseNestedInput } export type LicenseCreateManyInput = { id?: string - starts_at: Date | string - expires_at: Date | string - status: $Enums.LicenseStatus created_at?: Date | string updated_at?: Date | string - partner_id?: string | null - consumer_id: string + charged_license_transaction_id: string } export type LicenseUpdateManyMutationInput = { id?: Prisma.StringFieldUpdateOperationsInput | string - starts_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string - expires_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string - status?: Prisma.EnumLicenseStatusFieldUpdateOperationsInput | $Enums.LicenseStatus created_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string updated_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string } export type LicenseUncheckedUpdateManyInput = { id?: Prisma.StringFieldUpdateOperationsInput | string - starts_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string - expires_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string - status?: Prisma.EnumLicenseStatusFieldUpdateOperationsInput | $Enums.LicenseStatus created_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string updated_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string - partner_id?: Prisma.NullableStringFieldUpdateOperationsInput | string | null - consumer_id?: Prisma.StringFieldUpdateOperationsInput | string -} - -export type LicenseNullableScalarRelationFilter = { - is?: Prisma.LicenseWhereInput | null - isNot?: Prisma.LicenseWhereInput | null + charged_license_transaction_id?: Prisma.StringFieldUpdateOperationsInput | string } export type LicenseOrderByRelevanceInput = { @@ -356,35 +280,28 @@ export type LicenseOrderByRelevanceInput = { export type LicenseCountOrderByAggregateInput = { id?: Prisma.SortOrder - starts_at?: Prisma.SortOrder - expires_at?: Prisma.SortOrder - status?: Prisma.SortOrder created_at?: Prisma.SortOrder updated_at?: Prisma.SortOrder - partner_id?: Prisma.SortOrder - consumer_id?: Prisma.SortOrder + charged_license_transaction_id?: Prisma.SortOrder } export type LicenseMaxOrderByAggregateInput = { id?: Prisma.SortOrder - starts_at?: Prisma.SortOrder - expires_at?: Prisma.SortOrder - status?: Prisma.SortOrder created_at?: Prisma.SortOrder updated_at?: Prisma.SortOrder - partner_id?: Prisma.SortOrder - consumer_id?: Prisma.SortOrder + charged_license_transaction_id?: Prisma.SortOrder } export type LicenseMinOrderByAggregateInput = { id?: Prisma.SortOrder - starts_at?: Prisma.SortOrder - expires_at?: Prisma.SortOrder - status?: Prisma.SortOrder created_at?: Prisma.SortOrder updated_at?: Prisma.SortOrder - partner_id?: Prisma.SortOrder - consumer_id?: Prisma.SortOrder + charged_license_transaction_id?: Prisma.SortOrder +} + +export type LicenseScalarRelationFilter = { + is?: Prisma.LicenseWhereInput + isNot?: Prisma.LicenseWhereInput } export type LicenseListRelationFilter = { @@ -397,184 +314,144 @@ export type LicenseOrderByRelationAggregateInput = { _count?: Prisma.SortOrder } -export type LicenseCreateNestedOneWithoutConsumerInput = { - create?: Prisma.XOR - connectOrCreate?: Prisma.LicenseCreateOrConnectWithoutConsumerInput +export type LicenseCreateNestedOneWithoutActivated_licenseInput = { + create?: Prisma.XOR + connectOrCreate?: Prisma.LicenseCreateOrConnectWithoutActivated_licenseInput connect?: Prisma.LicenseWhereUniqueInput } -export type LicenseUncheckedCreateNestedOneWithoutConsumerInput = { - create?: Prisma.XOR - connectOrCreate?: Prisma.LicenseCreateOrConnectWithoutConsumerInput +export type LicenseUpdateOneRequiredWithoutActivated_licenseNestedInput = { + create?: Prisma.XOR + connectOrCreate?: Prisma.LicenseCreateOrConnectWithoutActivated_licenseInput + upsert?: Prisma.LicenseUpsertWithoutActivated_licenseInput connect?: Prisma.LicenseWhereUniqueInput + update?: Prisma.XOR, Prisma.LicenseUncheckedUpdateWithoutActivated_licenseInput> } -export type LicenseUpdateOneWithoutConsumerNestedInput = { - create?: Prisma.XOR - connectOrCreate?: Prisma.LicenseCreateOrConnectWithoutConsumerInput - upsert?: Prisma.LicenseUpsertWithoutConsumerInput - disconnect?: Prisma.LicenseWhereInput | boolean - delete?: Prisma.LicenseWhereInput | boolean - connect?: Prisma.LicenseWhereUniqueInput - update?: Prisma.XOR, Prisma.LicenseUncheckedUpdateWithoutConsumerInput> -} - -export type LicenseUncheckedUpdateOneWithoutConsumerNestedInput = { - create?: Prisma.XOR - connectOrCreate?: Prisma.LicenseCreateOrConnectWithoutConsumerInput - upsert?: Prisma.LicenseUpsertWithoutConsumerInput - disconnect?: Prisma.LicenseWhereInput | boolean - delete?: Prisma.LicenseWhereInput | boolean - connect?: Prisma.LicenseWhereUniqueInput - update?: Prisma.XOR, Prisma.LicenseUncheckedUpdateWithoutConsumerInput> -} - -export type EnumLicenseStatusFieldUpdateOperationsInput = { - set?: $Enums.LicenseStatus -} - -export type LicenseCreateNestedManyWithoutPartnerInput = { - create?: Prisma.XOR | Prisma.LicenseCreateWithoutPartnerInput[] | Prisma.LicenseUncheckedCreateWithoutPartnerInput[] - connectOrCreate?: Prisma.LicenseCreateOrConnectWithoutPartnerInput | Prisma.LicenseCreateOrConnectWithoutPartnerInput[] - createMany?: Prisma.LicenseCreateManyPartnerInputEnvelope +export type LicenseCreateNestedManyWithoutCharged_license_transactionInput = { + create?: Prisma.XOR | Prisma.LicenseCreateWithoutCharged_license_transactionInput[] | Prisma.LicenseUncheckedCreateWithoutCharged_license_transactionInput[] + connectOrCreate?: Prisma.LicenseCreateOrConnectWithoutCharged_license_transactionInput | Prisma.LicenseCreateOrConnectWithoutCharged_license_transactionInput[] + createMany?: Prisma.LicenseCreateManyCharged_license_transactionInputEnvelope connect?: Prisma.LicenseWhereUniqueInput | Prisma.LicenseWhereUniqueInput[] } -export type LicenseUncheckedCreateNestedManyWithoutPartnerInput = { - create?: Prisma.XOR | Prisma.LicenseCreateWithoutPartnerInput[] | Prisma.LicenseUncheckedCreateWithoutPartnerInput[] - connectOrCreate?: Prisma.LicenseCreateOrConnectWithoutPartnerInput | Prisma.LicenseCreateOrConnectWithoutPartnerInput[] - createMany?: Prisma.LicenseCreateManyPartnerInputEnvelope +export type LicenseUncheckedCreateNestedManyWithoutCharged_license_transactionInput = { + create?: Prisma.XOR | Prisma.LicenseCreateWithoutCharged_license_transactionInput[] | Prisma.LicenseUncheckedCreateWithoutCharged_license_transactionInput[] + connectOrCreate?: Prisma.LicenseCreateOrConnectWithoutCharged_license_transactionInput | Prisma.LicenseCreateOrConnectWithoutCharged_license_transactionInput[] + createMany?: Prisma.LicenseCreateManyCharged_license_transactionInputEnvelope connect?: Prisma.LicenseWhereUniqueInput | Prisma.LicenseWhereUniqueInput[] } -export type LicenseUpdateManyWithoutPartnerNestedInput = { - create?: Prisma.XOR | Prisma.LicenseCreateWithoutPartnerInput[] | Prisma.LicenseUncheckedCreateWithoutPartnerInput[] - connectOrCreate?: Prisma.LicenseCreateOrConnectWithoutPartnerInput | Prisma.LicenseCreateOrConnectWithoutPartnerInput[] - upsert?: Prisma.LicenseUpsertWithWhereUniqueWithoutPartnerInput | Prisma.LicenseUpsertWithWhereUniqueWithoutPartnerInput[] - createMany?: Prisma.LicenseCreateManyPartnerInputEnvelope +export type LicenseUpdateManyWithoutCharged_license_transactionNestedInput = { + create?: Prisma.XOR | Prisma.LicenseCreateWithoutCharged_license_transactionInput[] | Prisma.LicenseUncheckedCreateWithoutCharged_license_transactionInput[] + connectOrCreate?: Prisma.LicenseCreateOrConnectWithoutCharged_license_transactionInput | Prisma.LicenseCreateOrConnectWithoutCharged_license_transactionInput[] + upsert?: Prisma.LicenseUpsertWithWhereUniqueWithoutCharged_license_transactionInput | Prisma.LicenseUpsertWithWhereUniqueWithoutCharged_license_transactionInput[] + createMany?: Prisma.LicenseCreateManyCharged_license_transactionInputEnvelope set?: Prisma.LicenseWhereUniqueInput | Prisma.LicenseWhereUniqueInput[] disconnect?: Prisma.LicenseWhereUniqueInput | Prisma.LicenseWhereUniqueInput[] delete?: Prisma.LicenseWhereUniqueInput | Prisma.LicenseWhereUniqueInput[] connect?: Prisma.LicenseWhereUniqueInput | Prisma.LicenseWhereUniqueInput[] - update?: Prisma.LicenseUpdateWithWhereUniqueWithoutPartnerInput | Prisma.LicenseUpdateWithWhereUniqueWithoutPartnerInput[] - updateMany?: Prisma.LicenseUpdateManyWithWhereWithoutPartnerInput | Prisma.LicenseUpdateManyWithWhereWithoutPartnerInput[] + update?: Prisma.LicenseUpdateWithWhereUniqueWithoutCharged_license_transactionInput | Prisma.LicenseUpdateWithWhereUniqueWithoutCharged_license_transactionInput[] + updateMany?: Prisma.LicenseUpdateManyWithWhereWithoutCharged_license_transactionInput | Prisma.LicenseUpdateManyWithWhereWithoutCharged_license_transactionInput[] deleteMany?: Prisma.LicenseScalarWhereInput | Prisma.LicenseScalarWhereInput[] } -export type LicenseUncheckedUpdateManyWithoutPartnerNestedInput = { - create?: Prisma.XOR | Prisma.LicenseCreateWithoutPartnerInput[] | Prisma.LicenseUncheckedCreateWithoutPartnerInput[] - connectOrCreate?: Prisma.LicenseCreateOrConnectWithoutPartnerInput | Prisma.LicenseCreateOrConnectWithoutPartnerInput[] - upsert?: Prisma.LicenseUpsertWithWhereUniqueWithoutPartnerInput | Prisma.LicenseUpsertWithWhereUniqueWithoutPartnerInput[] - createMany?: Prisma.LicenseCreateManyPartnerInputEnvelope +export type LicenseUncheckedUpdateManyWithoutCharged_license_transactionNestedInput = { + create?: Prisma.XOR | Prisma.LicenseCreateWithoutCharged_license_transactionInput[] | Prisma.LicenseUncheckedCreateWithoutCharged_license_transactionInput[] + connectOrCreate?: Prisma.LicenseCreateOrConnectWithoutCharged_license_transactionInput | Prisma.LicenseCreateOrConnectWithoutCharged_license_transactionInput[] + upsert?: Prisma.LicenseUpsertWithWhereUniqueWithoutCharged_license_transactionInput | Prisma.LicenseUpsertWithWhereUniqueWithoutCharged_license_transactionInput[] + createMany?: Prisma.LicenseCreateManyCharged_license_transactionInputEnvelope set?: Prisma.LicenseWhereUniqueInput | Prisma.LicenseWhereUniqueInput[] disconnect?: Prisma.LicenseWhereUniqueInput | Prisma.LicenseWhereUniqueInput[] delete?: Prisma.LicenseWhereUniqueInput | Prisma.LicenseWhereUniqueInput[] connect?: Prisma.LicenseWhereUniqueInput | Prisma.LicenseWhereUniqueInput[] - update?: Prisma.LicenseUpdateWithWhereUniqueWithoutPartnerInput | Prisma.LicenseUpdateWithWhereUniqueWithoutPartnerInput[] - updateMany?: Prisma.LicenseUpdateManyWithWhereWithoutPartnerInput | Prisma.LicenseUpdateManyWithWhereWithoutPartnerInput[] + update?: Prisma.LicenseUpdateWithWhereUniqueWithoutCharged_license_transactionInput | Prisma.LicenseUpdateWithWhereUniqueWithoutCharged_license_transactionInput[] + updateMany?: Prisma.LicenseUpdateManyWithWhereWithoutCharged_license_transactionInput | Prisma.LicenseUpdateManyWithWhereWithoutCharged_license_transactionInput[] deleteMany?: Prisma.LicenseScalarWhereInput | Prisma.LicenseScalarWhereInput[] } -export type LicenseCreateWithoutConsumerInput = { +export type LicenseCreateWithoutActivated_licenseInput = { id?: string - starts_at: Date | string - expires_at: Date | string - status: $Enums.LicenseStatus created_at?: Date | string updated_at?: Date | string - partner?: Prisma.PartnerCreateNestedOneWithoutLicensesInput + charged_license_transaction: Prisma.ChargedLicenseTransactionsCreateNestedOneWithoutLicensesInput } -export type LicenseUncheckedCreateWithoutConsumerInput = { +export type LicenseUncheckedCreateWithoutActivated_licenseInput = { id?: string - starts_at: Date | string - expires_at: Date | string - status: $Enums.LicenseStatus created_at?: Date | string updated_at?: Date | string - partner_id?: string | null + charged_license_transaction_id: string } -export type LicenseCreateOrConnectWithoutConsumerInput = { +export type LicenseCreateOrConnectWithoutActivated_licenseInput = { where: Prisma.LicenseWhereUniqueInput - create: Prisma.XOR + create: Prisma.XOR } -export type LicenseUpsertWithoutConsumerInput = { - update: Prisma.XOR - create: Prisma.XOR +export type LicenseUpsertWithoutActivated_licenseInput = { + update: Prisma.XOR + create: Prisma.XOR where?: Prisma.LicenseWhereInput } -export type LicenseUpdateToOneWithWhereWithoutConsumerInput = { +export type LicenseUpdateToOneWithWhereWithoutActivated_licenseInput = { where?: Prisma.LicenseWhereInput - data: Prisma.XOR + data: Prisma.XOR } -export type LicenseUpdateWithoutConsumerInput = { +export type LicenseUpdateWithoutActivated_licenseInput = { id?: Prisma.StringFieldUpdateOperationsInput | string - starts_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string - expires_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string - status?: Prisma.EnumLicenseStatusFieldUpdateOperationsInput | $Enums.LicenseStatus created_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string updated_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string - partner?: Prisma.PartnerUpdateOneWithoutLicensesNestedInput + charged_license_transaction?: Prisma.ChargedLicenseTransactionsUpdateOneRequiredWithoutLicensesNestedInput } -export type LicenseUncheckedUpdateWithoutConsumerInput = { +export type LicenseUncheckedUpdateWithoutActivated_licenseInput = { id?: Prisma.StringFieldUpdateOperationsInput | string - starts_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string - expires_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string - status?: Prisma.EnumLicenseStatusFieldUpdateOperationsInput | $Enums.LicenseStatus created_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string updated_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string - partner_id?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + charged_license_transaction_id?: Prisma.StringFieldUpdateOperationsInput | string } -export type LicenseCreateWithoutPartnerInput = { +export type LicenseCreateWithoutCharged_license_transactionInput = { id?: string - starts_at: Date | string - expires_at: Date | string - status: $Enums.LicenseStatus created_at?: Date | string updated_at?: Date | string - consumer: Prisma.ConsumerCreateNestedOneWithoutLicenseInput + activated_license?: Prisma.ActivatedLicenseCreateNestedOneWithoutLicenseInput } -export type LicenseUncheckedCreateWithoutPartnerInput = { +export type LicenseUncheckedCreateWithoutCharged_license_transactionInput = { id?: string - starts_at: Date | string - expires_at: Date | string - status: $Enums.LicenseStatus created_at?: Date | string updated_at?: Date | string - consumer_id: string + activated_license?: Prisma.ActivatedLicenseUncheckedCreateNestedOneWithoutLicenseInput } -export type LicenseCreateOrConnectWithoutPartnerInput = { +export type LicenseCreateOrConnectWithoutCharged_license_transactionInput = { where: Prisma.LicenseWhereUniqueInput - create: Prisma.XOR + create: Prisma.XOR } -export type LicenseCreateManyPartnerInputEnvelope = { - data: Prisma.LicenseCreateManyPartnerInput | Prisma.LicenseCreateManyPartnerInput[] +export type LicenseCreateManyCharged_license_transactionInputEnvelope = { + data: Prisma.LicenseCreateManyCharged_license_transactionInput | Prisma.LicenseCreateManyCharged_license_transactionInput[] skipDuplicates?: boolean } -export type LicenseUpsertWithWhereUniqueWithoutPartnerInput = { +export type LicenseUpsertWithWhereUniqueWithoutCharged_license_transactionInput = { where: Prisma.LicenseWhereUniqueInput - update: Prisma.XOR - create: Prisma.XOR + update: Prisma.XOR + create: Prisma.XOR } -export type LicenseUpdateWithWhereUniqueWithoutPartnerInput = { +export type LicenseUpdateWithWhereUniqueWithoutCharged_license_transactionInput = { where: Prisma.LicenseWhereUniqueInput - data: Prisma.XOR + data: Prisma.XOR } -export type LicenseUpdateManyWithWhereWithoutPartnerInput = { +export type LicenseUpdateManyWithWhereWithoutCharged_license_transactionInput = { where: Prisma.LicenseScalarWhereInput - data: Prisma.XOR + data: Prisma.XOR } export type LicenseScalarWhereInput = { @@ -582,104 +459,74 @@ export type LicenseScalarWhereInput = { OR?: Prisma.LicenseScalarWhereInput[] NOT?: Prisma.LicenseScalarWhereInput | Prisma.LicenseScalarWhereInput[] id?: Prisma.StringFilter<"License"> | string - starts_at?: Prisma.DateTimeFilter<"License"> | Date | string - expires_at?: Prisma.DateTimeFilter<"License"> | Date | string - status?: Prisma.EnumLicenseStatusFilter<"License"> | $Enums.LicenseStatus created_at?: Prisma.DateTimeFilter<"License"> | Date | string updated_at?: Prisma.DateTimeFilter<"License"> | Date | string - partner_id?: Prisma.StringNullableFilter<"License"> | string | null - consumer_id?: Prisma.StringFilter<"License"> | string + charged_license_transaction_id?: Prisma.StringFilter<"License"> | string } -export type LicenseCreateManyPartnerInput = { +export type LicenseCreateManyCharged_license_transactionInput = { id?: string - starts_at: Date | string - expires_at: Date | string - status: $Enums.LicenseStatus created_at?: Date | string updated_at?: Date | string - consumer_id: string } -export type LicenseUpdateWithoutPartnerInput = { +export type LicenseUpdateWithoutCharged_license_transactionInput = { id?: Prisma.StringFieldUpdateOperationsInput | string - starts_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string - expires_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string - status?: Prisma.EnumLicenseStatusFieldUpdateOperationsInput | $Enums.LicenseStatus created_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string updated_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string - consumer?: Prisma.ConsumerUpdateOneRequiredWithoutLicenseNestedInput + activated_license?: Prisma.ActivatedLicenseUpdateOneWithoutLicenseNestedInput } -export type LicenseUncheckedUpdateWithoutPartnerInput = { +export type LicenseUncheckedUpdateWithoutCharged_license_transactionInput = { id?: Prisma.StringFieldUpdateOperationsInput | string - starts_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string - expires_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string - status?: Prisma.EnumLicenseStatusFieldUpdateOperationsInput | $Enums.LicenseStatus created_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string updated_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string - consumer_id?: Prisma.StringFieldUpdateOperationsInput | string + activated_license?: Prisma.ActivatedLicenseUncheckedUpdateOneWithoutLicenseNestedInput } -export type LicenseUncheckedUpdateManyWithoutPartnerInput = { +export type LicenseUncheckedUpdateManyWithoutCharged_license_transactionInput = { id?: Prisma.StringFieldUpdateOperationsInput | string - starts_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string - expires_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string - status?: Prisma.EnumLicenseStatusFieldUpdateOperationsInput | $Enums.LicenseStatus created_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string updated_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string - consumer_id?: Prisma.StringFieldUpdateOperationsInput | string } export type LicenseSelect = runtime.Types.Extensions.GetSelect<{ id?: boolean - starts_at?: boolean - expires_at?: boolean - status?: boolean created_at?: boolean updated_at?: boolean - partner_id?: boolean - consumer_id?: boolean - partner?: boolean | Prisma.License$partnerArgs - consumer?: boolean | Prisma.ConsumerDefaultArgs + charged_license_transaction_id?: boolean + charged_license_transaction?: boolean | Prisma.ChargedLicenseTransactionsDefaultArgs + activated_license?: boolean | Prisma.License$activated_licenseArgs }, ExtArgs["result"]["license"]> export type LicenseSelectScalar = { id?: boolean - starts_at?: boolean - expires_at?: boolean - status?: boolean created_at?: boolean updated_at?: boolean - partner_id?: boolean - consumer_id?: boolean + charged_license_transaction_id?: boolean } -export type LicenseOmit = runtime.Types.Extensions.GetOmit<"id" | "starts_at" | "expires_at" | "status" | "created_at" | "updated_at" | "partner_id" | "consumer_id", ExtArgs["result"]["license"]> +export type LicenseOmit = runtime.Types.Extensions.GetOmit<"id" | "created_at" | "updated_at" | "charged_license_transaction_id", ExtArgs["result"]["license"]> export type LicenseInclude = { - partner?: boolean | Prisma.License$partnerArgs - consumer?: boolean | Prisma.ConsumerDefaultArgs + charged_license_transaction?: boolean | Prisma.ChargedLicenseTransactionsDefaultArgs + activated_license?: boolean | Prisma.License$activated_licenseArgs } export type $LicensePayload = { name: "License" objects: { - partner: Prisma.$PartnerPayload | null - consumer: Prisma.$ConsumerPayload + charged_license_transaction: Prisma.$ChargedLicenseTransactionsPayload + activated_license: Prisma.$ActivatedLicensePayload | null } scalars: runtime.Types.Extensions.GetPayloadResult<{ id: string - starts_at: Date - expires_at: Date - status: $Enums.LicenseStatus created_at: Date updated_at: Date - partner_id: string | null - consumer_id: string + charged_license_transaction_id: string }, ExtArgs["result"]["license"]> composites: {} } @@ -1020,8 +867,8 @@ readonly fields: LicenseFieldRefs; */ export interface Prisma__LicenseClient extends Prisma.PrismaPromise { readonly [Symbol.toStringTag]: "PrismaPromise" - partner = {}>(args?: Prisma.Subset>): Prisma.Prisma__PartnerClient, T, "findUniqueOrThrow", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions> - consumer = {}>(args?: Prisma.Subset>): Prisma.Prisma__ConsumerClient, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions> + charged_license_transaction = {}>(args?: Prisma.Subset>): Prisma.Prisma__ChargedLicenseTransactionsClient, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions> + activated_license = {}>(args?: Prisma.Subset>): Prisma.Prisma__ActivatedLicenseClient, 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. @@ -1052,13 +899,9 @@ export interface Prisma__LicenseClient - readonly starts_at: Prisma.FieldRef<"License", 'DateTime'> - readonly expires_at: Prisma.FieldRef<"License", 'DateTime'> - readonly status: Prisma.FieldRef<"License", 'LicenseStatus'> readonly created_at: Prisma.FieldRef<"License", 'DateTime'> readonly updated_at: Prisma.FieldRef<"License", 'DateTime'> - readonly partner_id: Prisma.FieldRef<"License", 'String'> - readonly consumer_id: Prisma.FieldRef<"License", 'String'> + readonly charged_license_transaction_id: Prisma.FieldRef<"License", 'String'> } @@ -1402,22 +1245,22 @@ export type LicenseDeleteManyArgs = { +export type License$activated_licenseArgs = { /** - * Select specific fields to fetch from the Partner + * Select specific fields to fetch from the ActivatedLicense */ - select?: Prisma.PartnerSelect | null + select?: Prisma.ActivatedLicenseSelect | null /** - * Omit specific fields from the Partner + * Omit specific fields from the ActivatedLicense */ - omit?: Prisma.PartnerOmit | null + omit?: Prisma.ActivatedLicenseOmit | null /** * Choose, which related nodes to fetch as well */ - include?: Prisma.PartnerInclude | null - where?: Prisma.PartnerWhereInput + include?: Prisma.ActivatedLicenseInclude | null + where?: Prisma.ActivatedLicenseWhereInput } /** diff --git a/src/generated/prisma/models/Partner.ts b/src/generated/prisma/models/Partner.ts index 251748a..4ad2965 100644 --- a/src/generated/prisma/models/Partner.ts +++ b/src/generated/prisma/models/Partner.ts @@ -20,25 +20,14 @@ export type PartnerModel = runtime.Types.Result.DefaultSelection | string name?: Prisma.StringFilter<"Partner"> | string code?: Prisma.StringFilter<"Partner"> | string - license_quota?: Prisma.IntNullableFilter<"Partner"> | number | null status?: Prisma.EnumPartnerStatusFilter<"Partner"> | $Enums.PartnerStatus created_at?: Prisma.DateTimeFilter<"Partner"> | Date | string updated_at?: Prisma.DateTimeFilter<"Partner"> | Date | string - licenses?: Prisma.LicenseListRelationFilter partner_accounts?: Prisma.PartnerAccountListRelationFilter + chargedLicenseTransactions?: Prisma.ChargedLicenseTransactionsListRelationFilter } export type PartnerOrderByWithRelationInput = { id?: Prisma.SortOrder name?: Prisma.SortOrder code?: Prisma.SortOrder - license_quota?: Prisma.SortOrderInput | Prisma.SortOrder status?: Prisma.SortOrder created_at?: Prisma.SortOrder updated_at?: Prisma.SortOrder - licenses?: Prisma.LicenseOrderByRelationAggregateInput partner_accounts?: Prisma.PartnerAccountOrderByRelationAggregateInput + chargedLicenseTransactions?: Prisma.ChargedLicenseTransactionsOrderByRelationAggregateInput _relevance?: Prisma.PartnerOrderByRelevanceInput } @@ -256,27 +213,23 @@ export type PartnerWhereUniqueInput = Prisma.AtLeast<{ OR?: Prisma.PartnerWhereInput[] NOT?: Prisma.PartnerWhereInput | Prisma.PartnerWhereInput[] name?: Prisma.StringFilter<"Partner"> | string - license_quota?: Prisma.IntNullableFilter<"Partner"> | number | null status?: Prisma.EnumPartnerStatusFilter<"Partner"> | $Enums.PartnerStatus created_at?: Prisma.DateTimeFilter<"Partner"> | Date | string updated_at?: Prisma.DateTimeFilter<"Partner"> | Date | string - licenses?: Prisma.LicenseListRelationFilter partner_accounts?: Prisma.PartnerAccountListRelationFilter + chargedLicenseTransactions?: Prisma.ChargedLicenseTransactionsListRelationFilter }, "id" | "code"> export type PartnerOrderByWithAggregationInput = { id?: Prisma.SortOrder name?: Prisma.SortOrder code?: Prisma.SortOrder - license_quota?: Prisma.SortOrderInput | Prisma.SortOrder status?: Prisma.SortOrder created_at?: Prisma.SortOrder updated_at?: Prisma.SortOrder _count?: Prisma.PartnerCountOrderByAggregateInput - _avg?: Prisma.PartnerAvgOrderByAggregateInput _max?: Prisma.PartnerMaxOrderByAggregateInput _min?: Prisma.PartnerMinOrderByAggregateInput - _sum?: Prisma.PartnerSumOrderByAggregateInput } export type PartnerScalarWhereWithAggregatesInput = { @@ -286,7 +239,6 @@ export type PartnerScalarWhereWithAggregatesInput = { id?: Prisma.StringWithAggregatesFilter<"Partner"> | string name?: Prisma.StringWithAggregatesFilter<"Partner"> | string code?: Prisma.StringWithAggregatesFilter<"Partner"> | string - license_quota?: Prisma.IntNullableWithAggregatesFilter<"Partner"> | number | null status?: Prisma.EnumPartnerStatusWithAggregatesFilter<"Partner"> | $Enums.PartnerStatus created_at?: Prisma.DateTimeWithAggregatesFilter<"Partner"> | Date | string updated_at?: Prisma.DateTimeWithAggregatesFilter<"Partner"> | Date | string @@ -296,55 +248,50 @@ export type PartnerCreateInput = { id?: string name: string code: string - license_quota?: number | null status?: $Enums.PartnerStatus created_at?: Date | string updated_at?: Date | string - licenses?: Prisma.LicenseCreateNestedManyWithoutPartnerInput partner_accounts?: Prisma.PartnerAccountCreateNestedManyWithoutPartnerInput + chargedLicenseTransactions?: Prisma.ChargedLicenseTransactionsCreateNestedManyWithoutPartnerInput } export type PartnerUncheckedCreateInput = { id?: string name: string code: string - license_quota?: number | null status?: $Enums.PartnerStatus created_at?: Date | string updated_at?: Date | string - licenses?: Prisma.LicenseUncheckedCreateNestedManyWithoutPartnerInput partner_accounts?: Prisma.PartnerAccountUncheckedCreateNestedManyWithoutPartnerInput + chargedLicenseTransactions?: Prisma.ChargedLicenseTransactionsUncheckedCreateNestedManyWithoutPartnerInput } export type PartnerUpdateInput = { id?: Prisma.StringFieldUpdateOperationsInput | string name?: Prisma.StringFieldUpdateOperationsInput | string code?: Prisma.StringFieldUpdateOperationsInput | string - license_quota?: Prisma.NullableIntFieldUpdateOperationsInput | number | null status?: Prisma.EnumPartnerStatusFieldUpdateOperationsInput | $Enums.PartnerStatus created_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string updated_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string - licenses?: Prisma.LicenseUpdateManyWithoutPartnerNestedInput partner_accounts?: Prisma.PartnerAccountUpdateManyWithoutPartnerNestedInput + chargedLicenseTransactions?: Prisma.ChargedLicenseTransactionsUpdateManyWithoutPartnerNestedInput } export type PartnerUncheckedUpdateInput = { id?: Prisma.StringFieldUpdateOperationsInput | string name?: Prisma.StringFieldUpdateOperationsInput | string code?: Prisma.StringFieldUpdateOperationsInput | string - license_quota?: Prisma.NullableIntFieldUpdateOperationsInput | number | null status?: Prisma.EnumPartnerStatusFieldUpdateOperationsInput | $Enums.PartnerStatus created_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string updated_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string - licenses?: Prisma.LicenseUncheckedUpdateManyWithoutPartnerNestedInput partner_accounts?: Prisma.PartnerAccountUncheckedUpdateManyWithoutPartnerNestedInput + chargedLicenseTransactions?: Prisma.ChargedLicenseTransactionsUncheckedUpdateManyWithoutPartnerNestedInput } export type PartnerCreateManyInput = { id?: string name: string code: string - license_quota?: number | null status?: $Enums.PartnerStatus created_at?: Date | string updated_at?: Date | string @@ -354,7 +301,6 @@ export type PartnerUpdateManyMutationInput = { id?: Prisma.StringFieldUpdateOperationsInput | string name?: Prisma.StringFieldUpdateOperationsInput | string code?: Prisma.StringFieldUpdateOperationsInput | string - license_quota?: Prisma.NullableIntFieldUpdateOperationsInput | number | null status?: Prisma.EnumPartnerStatusFieldUpdateOperationsInput | $Enums.PartnerStatus created_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string updated_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string @@ -364,17 +310,11 @@ export type PartnerUncheckedUpdateManyInput = { id?: Prisma.StringFieldUpdateOperationsInput | string name?: Prisma.StringFieldUpdateOperationsInput | string code?: Prisma.StringFieldUpdateOperationsInput | string - license_quota?: Prisma.NullableIntFieldUpdateOperationsInput | number | null status?: Prisma.EnumPartnerStatusFieldUpdateOperationsInput | $Enums.PartnerStatus created_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string updated_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string } -export type PartnerNullableScalarRelationFilter = { - is?: Prisma.PartnerWhereInput | null - isNot?: Prisma.PartnerWhereInput | null -} - export type PartnerScalarRelationFilter = { is?: Prisma.PartnerWhereInput isNot?: Prisma.PartnerWhereInput @@ -390,21 +330,15 @@ export type PartnerCountOrderByAggregateInput = { id?: Prisma.SortOrder name?: Prisma.SortOrder code?: Prisma.SortOrder - license_quota?: Prisma.SortOrder status?: Prisma.SortOrder created_at?: Prisma.SortOrder updated_at?: Prisma.SortOrder } -export type PartnerAvgOrderByAggregateInput = { - license_quota?: Prisma.SortOrder -} - export type PartnerMaxOrderByAggregateInput = { id?: Prisma.SortOrder name?: Prisma.SortOrder code?: Prisma.SortOrder - license_quota?: Prisma.SortOrder status?: Prisma.SortOrder created_at?: Prisma.SortOrder updated_at?: Prisma.SortOrder @@ -414,30 +348,23 @@ export type PartnerMinOrderByAggregateInput = { id?: Prisma.SortOrder name?: Prisma.SortOrder code?: Prisma.SortOrder - license_quota?: Prisma.SortOrder status?: Prisma.SortOrder created_at?: Prisma.SortOrder updated_at?: Prisma.SortOrder } -export type PartnerSumOrderByAggregateInput = { - license_quota?: Prisma.SortOrder -} - -export type PartnerCreateNestedOneWithoutLicensesInput = { - create?: Prisma.XOR - connectOrCreate?: Prisma.PartnerCreateOrConnectWithoutLicensesInput +export type PartnerCreateNestedOneWithoutChargedLicenseTransactionsInput = { + create?: Prisma.XOR + connectOrCreate?: Prisma.PartnerCreateOrConnectWithoutChargedLicenseTransactionsInput connect?: Prisma.PartnerWhereUniqueInput } -export type PartnerUpdateOneWithoutLicensesNestedInput = { - create?: Prisma.XOR - connectOrCreate?: Prisma.PartnerCreateOrConnectWithoutLicensesInput - upsert?: Prisma.PartnerUpsertWithoutLicensesInput - disconnect?: Prisma.PartnerWhereInput | boolean - delete?: Prisma.PartnerWhereInput | boolean +export type PartnerUpdateOneRequiredWithoutChargedLicenseTransactionsNestedInput = { + create?: Prisma.XOR + connectOrCreate?: Prisma.PartnerCreateOrConnectWithoutChargedLicenseTransactionsInput + upsert?: Prisma.PartnerUpsertWithoutChargedLicenseTransactionsInput connect?: Prisma.PartnerWhereUniqueInput - update?: Prisma.XOR, Prisma.PartnerUncheckedUpdateWithoutLicensesInput> + update?: Prisma.XOR, Prisma.PartnerUncheckedUpdateWithoutChargedLicenseTransactionsInput> } export type PartnerCreateNestedOneWithoutPartner_accountsInput = { @@ -454,72 +381,60 @@ export type PartnerUpdateOneRequiredWithoutPartner_accountsNestedInput = { update?: Prisma.XOR, Prisma.PartnerUncheckedUpdateWithoutPartner_accountsInput> } -export type NullableIntFieldUpdateOperationsInput = { - set?: number | null - increment?: number - decrement?: number - multiply?: number - divide?: number -} - export type EnumPartnerStatusFieldUpdateOperationsInput = { set?: $Enums.PartnerStatus } -export type PartnerCreateWithoutLicensesInput = { +export type PartnerCreateWithoutChargedLicenseTransactionsInput = { id?: string name: string code: string - license_quota?: number | null status?: $Enums.PartnerStatus created_at?: Date | string updated_at?: Date | string partner_accounts?: Prisma.PartnerAccountCreateNestedManyWithoutPartnerInput } -export type PartnerUncheckedCreateWithoutLicensesInput = { +export type PartnerUncheckedCreateWithoutChargedLicenseTransactionsInput = { id?: string name: string code: string - license_quota?: number | null status?: $Enums.PartnerStatus created_at?: Date | string updated_at?: Date | string partner_accounts?: Prisma.PartnerAccountUncheckedCreateNestedManyWithoutPartnerInput } -export type PartnerCreateOrConnectWithoutLicensesInput = { +export type PartnerCreateOrConnectWithoutChargedLicenseTransactionsInput = { where: Prisma.PartnerWhereUniqueInput - create: Prisma.XOR + create: Prisma.XOR } -export type PartnerUpsertWithoutLicensesInput = { - update: Prisma.XOR - create: Prisma.XOR +export type PartnerUpsertWithoutChargedLicenseTransactionsInput = { + update: Prisma.XOR + create: Prisma.XOR where?: Prisma.PartnerWhereInput } -export type PartnerUpdateToOneWithWhereWithoutLicensesInput = { +export type PartnerUpdateToOneWithWhereWithoutChargedLicenseTransactionsInput = { where?: Prisma.PartnerWhereInput - data: Prisma.XOR + data: Prisma.XOR } -export type PartnerUpdateWithoutLicensesInput = { +export type PartnerUpdateWithoutChargedLicenseTransactionsInput = { id?: Prisma.StringFieldUpdateOperationsInput | string name?: Prisma.StringFieldUpdateOperationsInput | string code?: Prisma.StringFieldUpdateOperationsInput | string - license_quota?: Prisma.NullableIntFieldUpdateOperationsInput | number | null status?: Prisma.EnumPartnerStatusFieldUpdateOperationsInput | $Enums.PartnerStatus created_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string updated_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string partner_accounts?: Prisma.PartnerAccountUpdateManyWithoutPartnerNestedInput } -export type PartnerUncheckedUpdateWithoutLicensesInput = { +export type PartnerUncheckedUpdateWithoutChargedLicenseTransactionsInput = { id?: Prisma.StringFieldUpdateOperationsInput | string name?: Prisma.StringFieldUpdateOperationsInput | string code?: Prisma.StringFieldUpdateOperationsInput | string - license_quota?: Prisma.NullableIntFieldUpdateOperationsInput | number | null status?: Prisma.EnumPartnerStatusFieldUpdateOperationsInput | $Enums.PartnerStatus created_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string updated_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string @@ -530,22 +445,20 @@ export type PartnerCreateWithoutPartner_accountsInput = { id?: string name: string code: string - license_quota?: number | null status?: $Enums.PartnerStatus created_at?: Date | string updated_at?: Date | string - licenses?: Prisma.LicenseCreateNestedManyWithoutPartnerInput + chargedLicenseTransactions?: Prisma.ChargedLicenseTransactionsCreateNestedManyWithoutPartnerInput } export type PartnerUncheckedCreateWithoutPartner_accountsInput = { id?: string name: string code: string - license_quota?: number | null status?: $Enums.PartnerStatus created_at?: Date | string updated_at?: Date | string - licenses?: Prisma.LicenseUncheckedCreateNestedManyWithoutPartnerInput + chargedLicenseTransactions?: Prisma.ChargedLicenseTransactionsUncheckedCreateNestedManyWithoutPartnerInput } export type PartnerCreateOrConnectWithoutPartner_accountsInput = { @@ -568,22 +481,20 @@ export type PartnerUpdateWithoutPartner_accountsInput = { id?: Prisma.StringFieldUpdateOperationsInput | string name?: Prisma.StringFieldUpdateOperationsInput | string code?: Prisma.StringFieldUpdateOperationsInput | string - license_quota?: Prisma.NullableIntFieldUpdateOperationsInput | number | null status?: Prisma.EnumPartnerStatusFieldUpdateOperationsInput | $Enums.PartnerStatus created_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string updated_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string - licenses?: Prisma.LicenseUpdateManyWithoutPartnerNestedInput + chargedLicenseTransactions?: Prisma.ChargedLicenseTransactionsUpdateManyWithoutPartnerNestedInput } export type PartnerUncheckedUpdateWithoutPartner_accountsInput = { id?: Prisma.StringFieldUpdateOperationsInput | string name?: Prisma.StringFieldUpdateOperationsInput | string code?: Prisma.StringFieldUpdateOperationsInput | string - license_quota?: Prisma.NullableIntFieldUpdateOperationsInput | number | null status?: Prisma.EnumPartnerStatusFieldUpdateOperationsInput | $Enums.PartnerStatus created_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string updated_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string - licenses?: Prisma.LicenseUncheckedUpdateManyWithoutPartnerNestedInput + chargedLicenseTransactions?: Prisma.ChargedLicenseTransactionsUncheckedUpdateManyWithoutPartnerNestedInput } @@ -592,13 +503,13 @@ export type PartnerUncheckedUpdateWithoutPartner_accountsInput = { */ export type PartnerCountOutputType = { - licenses: number partner_accounts: number + chargedLicenseTransactions: number } export type PartnerCountOutputTypeSelect = { - licenses?: boolean | PartnerCountOutputTypeCountLicensesArgs partner_accounts?: boolean | PartnerCountOutputTypeCountPartner_accountsArgs + chargedLicenseTransactions?: boolean | PartnerCountOutputTypeCountChargedLicenseTransactionsArgs } /** @@ -614,15 +525,15 @@ export type PartnerCountOutputTypeDefaultArgs = { - where?: Prisma.LicenseWhereInput +export type PartnerCountOutputTypeCountPartner_accountsArgs = { + where?: Prisma.PartnerAccountWhereInput } /** * PartnerCountOutputType without action */ -export type PartnerCountOutputTypeCountPartner_accountsArgs = { - where?: Prisma.PartnerAccountWhereInput +export type PartnerCountOutputTypeCountChargedLicenseTransactionsArgs = { + where?: Prisma.ChargedLicenseTransactionsWhereInput } @@ -630,12 +541,11 @@ export type PartnerSelect partner_accounts?: boolean | Prisma.Partner$partner_accountsArgs + chargedLicenseTransactions?: boolean | Prisma.Partner$chargedLicenseTransactionsArgs _count?: boolean | Prisma.PartnerCountOutputTypeDefaultArgs }, ExtArgs["result"]["partner"]> @@ -645,30 +555,28 @@ export type PartnerSelectScalar = { id?: boolean name?: boolean code?: boolean - license_quota?: boolean status?: boolean created_at?: boolean updated_at?: boolean } -export type PartnerOmit = runtime.Types.Extensions.GetOmit<"id" | "name" | "code" | "license_quota" | "status" | "created_at" | "updated_at", ExtArgs["result"]["partner"]> +export type PartnerOmit = runtime.Types.Extensions.GetOmit<"id" | "name" | "code" | "status" | "created_at" | "updated_at", ExtArgs["result"]["partner"]> export type PartnerInclude = { - licenses?: boolean | Prisma.Partner$licensesArgs partner_accounts?: boolean | Prisma.Partner$partner_accountsArgs + chargedLicenseTransactions?: boolean | Prisma.Partner$chargedLicenseTransactionsArgs _count?: boolean | Prisma.PartnerCountOutputTypeDefaultArgs } export type $PartnerPayload = { name: "Partner" objects: { - licenses: Prisma.$LicensePayload[] partner_accounts: Prisma.$PartnerAccountPayload[] + chargedLicenseTransactions: Prisma.$ChargedLicenseTransactionsPayload[] } scalars: runtime.Types.Extensions.GetPayloadResult<{ id: string name: string code: string - license_quota: number | null status: $Enums.PartnerStatus created_at: Date updated_at: Date @@ -1012,8 +920,8 @@ readonly fields: PartnerFieldRefs; */ export interface Prisma__PartnerClient extends Prisma.PrismaPromise { readonly [Symbol.toStringTag]: "PrismaPromise" - licenses = {}>(args?: Prisma.Subset>): Prisma.PrismaPromise, T, "findMany", GlobalOmitOptions> | Null> partner_accounts = {}>(args?: Prisma.Subset>): Prisma.PrismaPromise, T, "findMany", GlobalOmitOptions> | Null> + chargedLicenseTransactions = {}>(args?: Prisma.Subset>): Prisma.PrismaPromise, T, "findMany", GlobalOmitOptions> | Null> /** * Attaches callbacks for the resolution and/or rejection of the Promise. * @param onfulfilled The callback to execute when the Promise is resolved. @@ -1046,7 +954,6 @@ export interface PartnerFieldRefs { readonly id: Prisma.FieldRef<"Partner", 'String'> readonly name: Prisma.FieldRef<"Partner", 'String'> readonly code: Prisma.FieldRef<"Partner", 'String'> - readonly license_quota: Prisma.FieldRef<"Partner", 'Int'> readonly status: Prisma.FieldRef<"Partner", 'PartnerStatus'> readonly created_at: Prisma.FieldRef<"Partner", 'DateTime'> readonly updated_at: Prisma.FieldRef<"Partner", 'DateTime'> @@ -1392,30 +1299,6 @@ export type PartnerDeleteManyArgs = { - /** - * Select specific fields to fetch from the License - */ - select?: Prisma.LicenseSelect | null - /** - * Omit specific fields from the License - */ - omit?: Prisma.LicenseOmit | null - /** - * Choose, which related nodes to fetch as well - */ - include?: Prisma.LicenseInclude | null - where?: Prisma.LicenseWhereInput - orderBy?: Prisma.LicenseOrderByWithRelationInput | Prisma.LicenseOrderByWithRelationInput[] - cursor?: Prisma.LicenseWhereUniqueInput - take?: number - skip?: number - distinct?: Prisma.LicenseScalarFieldEnum | Prisma.LicenseScalarFieldEnum[] -} - /** * Partner.partner_accounts */ @@ -1440,6 +1323,30 @@ export type Partner$partner_accountsArgs = { + /** + * Select specific fields to fetch from the ChargedLicenseTransactions + */ + select?: Prisma.ChargedLicenseTransactionsSelect | null + /** + * Omit specific fields from the ChargedLicenseTransactions + */ + omit?: Prisma.ChargedLicenseTransactionsOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.ChargedLicenseTransactionsInclude | null + where?: Prisma.ChargedLicenseTransactionsWhereInput + orderBy?: Prisma.ChargedLicenseTransactionsOrderByWithRelationInput | Prisma.ChargedLicenseTransactionsOrderByWithRelationInput[] + cursor?: Prisma.ChargedLicenseTransactionsWhereUniqueInput + take?: number + skip?: number + distinct?: Prisma.ChargedLicenseTransactionsScalarFieldEnum | Prisma.ChargedLicenseTransactionsScalarFieldEnum[] +} + /** * Partner without action */ diff --git a/src/modules/admin/consumers/consumers.controller.ts b/src/modules/admin/consumers/consumers.controller.ts index 8fad7b3..812cb83 100644 --- a/src/modules/admin/consumers/consumers.controller.ts +++ b/src/modules/admin/consumers/consumers.controller.ts @@ -1,10 +1,10 @@ import { Body, Controller, Get, Param, Patch, Post } from '@nestjs/common' -import { AdminUsersService } from './consumers.service' +import { AdminConsumersService } from './consumers.service' import { CreateConsumerDto, UpdateConsumerDto } from './dto/consumer.dto' @Controller('admin/consumers') export class AdminUsersController { - constructor(private readonly usersService: AdminUsersService) {} + constructor(private readonly usersService: AdminConsumersService) {} @Get() async findAll() { diff --git a/src/modules/admin/consumers/consumers.module.ts b/src/modules/admin/consumers/consumers.module.ts index cf39774..922dca4 100644 --- a/src/modules/admin/consumers/consumers.module.ts +++ b/src/modules/admin/consumers/consumers.module.ts @@ -3,7 +3,7 @@ import { Module } from '@nestjs/common' import { AdminUserAccountsModule } from './accounts/accounts.module' import { AdminConsumerBusinessActivitiesModule } from './business-activities/business-activities.module' import { AdminUsersController } from './consumers.controller' -import { AdminUsersService } from './consumers.service' +import { AdminConsumersService } from './consumers.service' import { AdminConsumerLicensesModule } from './licenses/licenses.module' @Module({ @@ -14,7 +14,7 @@ import { AdminConsumerLicensesModule } from './licenses/licenses.module' AdminConsumerLicensesModule, ], controllers: [AdminUsersController], - providers: [AdminUsersService], + providers: [AdminConsumersService], exports: [AdminUserAccountsModule], }) export class AdminConsumersModule {} diff --git a/src/modules/admin/consumers/consumers.service.ts b/src/modules/admin/consumers/consumers.service.ts index 3dd390f..c3e8d4b 100644 --- a/src/modules/admin/consumers/consumers.service.ts +++ b/src/modules/admin/consumers/consumers.service.ts @@ -3,7 +3,6 @@ import { AccountStatus, AccountType, ConsumerRole, - LicenseStatus, PartnerStatus, } from '@/generated/prisma/enums' import { ConsumerCreateInput, ConsumerSelect } from '@/generated/prisma/models' @@ -13,7 +12,7 @@ import { ResponseMapper } from 'common/response/response-mapper' import { CreateConsumerDto, UpdateConsumerDto } from './dto/consumer.dto' @Injectable() -export class AdminUsersService { +export class AdminConsumersService { constructor(private readonly prisma: PrismaService) {} private readonly defaultSelect: ConsumerSelect = { @@ -23,22 +22,67 @@ export class AdminUsersService { mobile_number: true, status: true, created_at: true, - license: { + activated_licenses: { select: { id: true, starts_at: true, expires_at: true, - status: true, - partner: { + license: { select: { - id: true, - name: true, + charged_license_transaction: { + select: { + partner: { + select: { + id: true, + name: true, + }, + }, + }, + }, }, }, }, }, } + private readonly mapConsumer = (consumer: any) => { + const { activated_licenses, ...rest } = consumer + + let lastLicense: any = null + + if (consumer.activated_licenses.length) { + lastLicense = consumer.activated_licenses[0] + if (consumer.activated_licenses.length > 1) { + const activeLicenseInfo = consumer.activated_licenses.find( + activated_license => activated_license.expires_at, + ) + + if (!activeLicenseInfo) { + consumer.activated_licenses.sort((a, b) => + a.expires_at > b.expires_at ? 1 : -1, + ) + lastLicense = consumer.activated_licenses[0] + } + } + } + + return { + ...rest, + fullname: `${rest?.first_name} ${rest?.last_name}`, + license_info: this.prepareLicenseInfo(lastLicense), + } + } + + private readonly prepareLicenseInfo = (latestLicense: any) => { + if (!latestLicense) return null + const { license, ...rest } = latestLicense + + return { + ...rest, + partner: license.charged_license_transaction.partner, + } + } + async findAll() { const [consumers, count] = await this.prisma.$transaction([ this.prisma.consumer.findMany({ @@ -46,32 +90,24 @@ export class AdminUsersService { }), this.prisma.consumer.count(), ]) - return ResponseMapper.paginate( - consumers.map(consumer => ({ - ...consumer, - fullname: `${consumer.first_name} ${consumer.last_name}`, - })), - { count }, - ) + + return ResponseMapper.paginate(consumers.map(this.mapConsumer), { count }) } async findOne(id: string) { - this.prisma.license.findFirst({ - where: {}, - }) const consumer = await this.prisma.consumer.findUniqueOrThrow({ where: { id }, select: this.defaultSelect, }) - return ResponseMapper.single({ - ...consumer, - fullname: `${consumer?.first_name} ${consumer?.last_name}`, - }) + return ResponseMapper.single(this.mapConsumer(consumer)) } async create(data: CreateConsumerDto) { - const { username, password, license, ...rest } = data + const startOfToday = new Date() + startOfToday.setHours(0, 0, 0, 0) + + const { username, password, partner_id, ...rest } = data const dataToCreate: ConsumerCreateInput = { ...rest, consumer_accounts: { @@ -88,52 +124,37 @@ export class AdminUsersService { }, }, } - if (license) { - if (license.partner_id) { - const partner = await this.prisma.partner.findUnique({ - where: { - id: license.partner_id, - status: PartnerStatus.ACTIVE, + if (partner_id) { + const partnerLicense = await this.prisma.license.findFirst({ + where: { + charged_license_transaction: { + partner: { + id: partner_id, + status: PartnerStatus.ACTIVE, + }, }, - select: { - name: true, - license_quota: true, - _count: { - select: { - licenses: true, + activated_license: null, + }, + select: { + id: true, + charged_license_transaction: { + select: { + partner: { + select: { + id: true, + name: true, + status: true, + }, }, }, }, - }) - - if (!partner) { - throw new BadRequestException('متاسفانه شریک تجاری مورد نظر شما یافت نشد') - } - const partnerLicensesRemainsQuota = - partner.license_quota || 0 - partner._count.licenses - - if (!partnerLicensesRemainsQuota) { - throw new BadRequestException( - `تعداد لایسنس‌های فعلی شریک تجاری ${partner.name} به پایان رسیده است`, - ) - } - } - - dataToCreate.license = { - create: { - starts_at: license.starts_at, - expires_at: new Date( - new Date(license.starts_at).setFullYear( - new Date(license.starts_at).getFullYear() + 1, - ), - ).toISOString(), - status: LicenseStatus.ACTIVE, - partner: { - connect: { - id: license.partner_id, - }, - }, }, + }) + + if (!partnerLicense) { + throw new BadRequestException( + `تعداد لایسنس‌های فعلی شریک تجاری به پایان رسیده است.`, + ) } } return this.prisma.consumer.create({ diff --git a/src/modules/admin/consumers/dto/consumer.dto.ts b/src/modules/admin/consumers/dto/consumer.dto.ts index 85375a8..5ebfdb8 100644 --- a/src/modules/admin/consumers/dto/consumer.dto.ts +++ b/src/modules/admin/consumers/dto/consumer.dto.ts @@ -1,7 +1,6 @@ import { ConsumerStatus } from '@/generated/prisma/enums' import { ApiProperty, OmitType, PartialType } from '@nestjs/swagger' -import { IsEnum, IsObject, IsString } from 'class-validator' -import { CreateLicenseDto } from '../licenses/dto/license.dto' +import { IsEnum, IsOptional, IsString } from 'class-validator' export class CreateConsumerDto { @IsString() @@ -24,14 +23,13 @@ export class CreateConsumerDto { @ApiProperty({ required: true }) password: string - @IsObject() @ApiProperty() - license: CreateLicenseDto + @IsOptional() + partner_id: string } export class UpdateConsumerDto extends OmitType(PartialType(CreateConsumerDto), [ 'password', 'username', - 'license', ]) { @IsEnum(ConsumerStatus) @ApiProperty({ enum: ConsumerStatus }) diff --git a/src/modules/admin/consumers/licenses/dto/license.dto.ts b/src/modules/admin/consumers/licenses/dto/license.dto.ts index 048d0d6..35dc475 100644 --- a/src/modules/admin/consumers/licenses/dto/license.dto.ts +++ b/src/modules/admin/consumers/licenses/dto/license.dto.ts @@ -17,7 +17,10 @@ export class CreateLicenseDto { ) expires_at?: Date - @ApiProperty() + @ApiProperty({ + required: true, + nullable: false, + }) partner_id: string } diff --git a/src/modules/admin/consumers/licenses/licenses.controller.ts b/src/modules/admin/consumers/licenses/licenses.controller.ts index cff8d9d..5d98c9c 100644 --- a/src/modules/admin/consumers/licenses/licenses.controller.ts +++ b/src/modules/admin/consumers/licenses/licenses.controller.ts @@ -1,6 +1,6 @@ -import { Body, Controller, Param, Patch, Post } from '@nestjs/common' +import { Body, Controller, Get, Param, Post } from '@nestjs/common' import { ApiTags } from '@nestjs/swagger' -import { CreateLicenseDto, UpdateLicenseDto } from './dto/license.dto' +import { CreateLicenseDto } from './dto/license.dto' import { LicensesService } from './licenses.service' @ApiTags('AdminConsumerAccounts') @@ -8,15 +8,20 @@ import { LicensesService } from './licenses.service' export class LicensesController { constructor(private readonly service: LicensesService) {} + @Get() + async findAll(@Param('consumerId') consumerId: string) { + return this.service.findAll(consumerId) + } + @Post() async create(@Param('consumerId') consumerId: string, @Body() data: CreateLicenseDto) { return this.service.create(consumerId, data) } - @Patch(':id') - async update(@Param('id') id: string, @Body() data: UpdateLicenseDto) { - return this.service.update(id, data) - } + // @Patch(':id') + // async update(@Param('id') id: string, @Body() data: UpdateLicenseDto) { + // return this.service.update(id, data) + // } // @Delete(':id') // async delete(@Param('id') id: string) { diff --git a/src/modules/admin/consumers/licenses/licenses.service.ts b/src/modules/admin/consumers/licenses/licenses.service.ts index 19086c3..d04b5e0 100644 --- a/src/modules/admin/consumers/licenses/licenses.service.ts +++ b/src/modules/admin/consumers/licenses/licenses.service.ts @@ -1,13 +1,16 @@ -import { LicenseStatus } from '@/generated/prisma/enums' -import { LicenseUpdateInput } from '@/generated/prisma/models' +import { PartnerStatus } from '@/generated/prisma/enums' import { PrismaService } from '@/prisma/prisma.service' import { BadRequestException, Injectable } from '@nestjs/common' import { ResponseMapper } from 'common/response/response-mapper' -import { CreateLicenseDto, UpdateLicenseDto } from './dto/license.dto' +import { CreateLicenseDto } from './dto/license.dto' @Injectable() export class LicensesService { - constructor(private readonly prisma: PrismaService) {} + private startOfToday = new Date() + + constructor(private readonly prisma: PrismaService) { + this.startOfToday.setHours(0, 0, 0, 0) + } private readonly setExpireDate = (starts_at: Date) => { return new Date( @@ -15,85 +18,143 @@ export class LicensesService { ).toISOString() } - async create(consumerId: string, data: CreateLicenseDto) { - const { starts_at, expires_at } = data - const license = await this.prisma.license.create({ - data: { - starts_at, - expires_at: expires_at ?? this.setExpireDate(starts_at), - partner: { - connect: { - id: data.partner_id, + async findAll(consumer_id: string) { + const licenses = await this.prisma.activatedLicense.findMany({ + where: { + consumer_id, + }, + select: { + id: true, + starts_at: true, + expires_at: true, + created_at: true, + license: { + select: { + id: true, + charged_license_transaction: { + select: { + partner: { + select: { + id: true, + name: true, + }, + }, + }, + }, }, }, - consumer: { - connect: { - id: consumerId, - }, - }, - status: LicenseStatus.ACTIVE, }, }) - return ResponseMapper.create(license) + + return ResponseMapper.list(licenses) } - async update(id: string, data: UpdateLicenseDto) { + async create(consumerId: string, data: CreateLicenseDto) { const { starts_at, expires_at, partner_id } = data - const currentLicense = await this.prisma.license.findUnique({ - where: { id }, - select: { - partner_id: true, - }, - }) - if (partner_id && currentLicense?.partner_id !== partner_id) { - const partner = await this.prisma.partner.findUnique({ + const license = await this.prisma.$transaction(async tx => { + const partnerLicense = await tx.license.findFirst({ where: { - id: partner_id, + activated_license: null, + charged_license_transaction: { + activation_expires_at: { + gte: this.startOfToday, + }, + partner: { + id: partner_id, + status: PartnerStatus.ACTIVE, + }, + }, }, select: { - name: true, - license_quota: true, - _count: { - select: { - licenses: true, + id: true, + }, + }) + + if (!partnerLicense) { + throw new BadRequestException( + `تعداد لایسنس‌های فعلی شریک تجاری به پایان رسیده است.`, + ) + } + + return await this.prisma.activatedLicense.create({ + data: { + starts_at, + expires_at: expires_at ?? this.setExpireDate(starts_at), + consumer: { + connect: { + id: consumerId, + }, + }, + license: { + connect: { + id: partnerLicense.id, }, }, }, }) - - if (!((partner?.license_quota || 0) - (partner?._count.licenses || 0))) { - throw new BadRequestException(`تعداد لایسنس‌های ${partner?.name} کافی نیست.`) - } - } - - const dataToUpdate: LicenseUpdateInput = {} - - if (partner_id) { - dataToUpdate.partner = { - connect: { - id: partner_id, - }, - } - } else if (currentLicense?.partner_id) { - dataToUpdate.partner = { - disconnect: { - id: currentLicense?.partner_id, - }, - } - } - - if (starts_at) { - dataToUpdate.starts_at = starts_at - dataToUpdate.expires_at = this.setExpireDate(starts_at) - } - - const license = await this.prisma.license.update({ - where: { id }, - data: { - ...dataToUpdate, - }, }) - return ResponseMapper.update(license) + + return ResponseMapper.create(license) } + + // async update(id: string, data: UpdateLicenseDto) { + // const { starts_at, expires_at, partner_id } = data + // const currentLicense = await this.prisma.license.findUnique({ + // where: { id }, + // select: { + // partner_id: true, + // }, + // }) + + // if (partner_id && currentLicense?.partner_id !== partner_id) { + // const partner = await this.prisma.partner.findUnique({ + // where: { + // id: partner_id, + // }, + // select: { + // name: true, + // license_quota: true, + // _count: { + // select: { + // licenses: true, + // }, + // }, + // }, + // }) + + // if (!((partner?.license_quota || 0) - (partner?._count.licenses || 0))) { + // throw new BadRequestException(`تعداد لایسنس‌های ${partner?.name} کافی نیست.`) + // } + // } + + // const dataToUpdate: LicenseUpdateInput = {} + + // if (partner_id) { + // dataToUpdate.partner = { + // connect: { + // id: partner_id, + // }, + // } + // } else if (currentLicense?.partner_id) { + // dataToUpdate.partner = { + // disconnect: { + // id: currentLicense?.partner_id, + // }, + // } + // } + + // if (starts_at) { + // dataToUpdate.starts_at = starts_at + // dataToUpdate.expires_at = this.setExpireDate(starts_at) + // } + + // const license = await this.prisma.license.update({ + // where: { id }, + // data: { + // ...dataToUpdate, + // }, + // }) + // return ResponseMapper.update(license) + // } } diff --git a/src/modules/admin/guilds/goods/goods.module.ts b/src/modules/admin/guilds/goods/goods.module.ts index 7ffaac1..cfeae25 100644 --- a/src/modules/admin/guilds/goods/goods.module.ts +++ b/src/modules/admin/guilds/goods/goods.module.ts @@ -1,8 +1,11 @@ +import { PrismaModule } from '@/prisma/prisma.module' import { Module } from '@nestjs/common' import { GoodsController } from './goods.controller' import { GoodsService } from './goods.service' +import { GuildGoodImagesModule } from './images/images.module' @Module({ + imports: [PrismaModule, GuildGoodImagesModule], controllers: [GoodsController], providers: [GoodsService], }) diff --git a/src/modules/admin/guilds/goods/images/images.controller.ts b/src/modules/admin/guilds/goods/images/images.controller.ts new file mode 100644 index 0000000..0b5e218 --- /dev/null +++ b/src/modules/admin/guilds/goods/images/images.controller.ts @@ -0,0 +1,43 @@ +import { TokenAccount } from '@/common/decorators/tokenInfo.decorator' +import { multerImageOptions } from '@/multer.config' +import { + BadRequestException, + Controller, + Param, + Post, + UploadedFile, + UseInterceptors, +} from '@nestjs/common' +import { FileInterceptor } from '@nestjs/platform-express' +import { ApiBody, ApiConsumes } from '@nestjs/swagger' +import { GuildGoodImagesService } from './images.service' + +@Controller('admin/guilds/:guildId/goods/:goodId/images') +export class GuildGoodImagesController { + constructor(private readonly service: GuildGoodImagesService) {} + + @Post('') + @UseInterceptors(FileInterceptor('file', multerImageOptions)) + @ApiConsumes('multipart/form-data') + @ApiBody({ + schema: { + type: 'object', + properties: { + file: { type: 'string', format: 'binary' }, + }, + }, + }) + async uploadImage( + @TokenAccount('account_id') accountId: string, + @Param('guildId') guildId: string, + @Param('goodId') goodId: string, + @UploadedFile() file: Express.Multer.File, + ) { + if (!file) { + throw new BadRequestException('فایل را وارد کنید') + } + + const url = await this.service.uploadFile(accountId, goodId, file) + return { url } + } +} diff --git a/src/modules/admin/guilds/goods/images/images.module.ts b/src/modules/admin/guilds/goods/images/images.module.ts new file mode 100644 index 0000000..0990f66 --- /dev/null +++ b/src/modules/admin/guilds/goods/images/images.module.ts @@ -0,0 +1,12 @@ +import { UploaderModule } from '@/modules/uploader/uploader.module' +import { PrismaModule } from '@/prisma/prisma.module' +import { Module } from '@nestjs/common' +import { GuildGoodImagesController } from './images.controller' +import { GuildGoodImagesService } from './images.service' + +@Module({ + controllers: [GuildGoodImagesController], + providers: [GuildGoodImagesService], + imports: [PrismaModule, UploaderModule], +}) +export class GuildGoodImagesModule {} diff --git a/src/modules/admin/guilds/goods/images/images.service.ts b/src/modules/admin/guilds/goods/images/images.service.ts new file mode 100644 index 0000000..2ec1218 --- /dev/null +++ b/src/modules/admin/guilds/goods/images/images.service.ts @@ -0,0 +1,44 @@ +import { UploadedFileTypes } from '@/common/enums/enums' +import { UploaderService } from '@/modules/uploader/uploader.service' +import { PrismaService } from '@/prisma/prisma.service' +import { BadRequestException, Injectable } from '@nestjs/common' + +@Injectable() +export class GuildGoodImagesService { + constructor( + private readonly prisma: PrismaService, + private readonly uploadFileService: UploaderService, + ) {} + + async uploadFile(account_id: string, goodId: string, file: Express.Multer.File) { + try { + const currentImage = await this.prisma.good.findUniqueOrThrow({ + where: { + id: goodId, + }, + select: { + image_url: true, + }, + }) + const url = await this.uploadFileService.uploadFile(file, UploadedFileTypes.GOOD) + if (url) { + if (currentImage.image_url) { + this.uploadFileService.deleteFile(currentImage.image_url) + } + return this.prisma.good.update({ + where: { + id: goodId, + is_default_guild_good: true, + }, + data: { + image_url: url, + }, + }) + } else { + throw new BadRequestException('متاسفانه در بارگذاری فایل مشکلی پیش ‌آمده') + } + } catch (err) { + throw err + } + } +} diff --git a/src/modules/admin/licenses/licenses.controller.ts b/src/modules/admin/licenses/licenses.controller.ts index 7f4b162..5d15451 100644 --- a/src/modules/admin/licenses/licenses.controller.ts +++ b/src/modules/admin/licenses/licenses.controller.ts @@ -1,5 +1,4 @@ -import { Body, Controller, Get, Param, Patch } from '@nestjs/common' -import { UpdateLicenseDto } from './dto/license.dto' +import { Controller, Get, Param } from '@nestjs/common' import { PartnerLicensesService } from './licenses.service' @Controller('admin/licenses') @@ -16,10 +15,10 @@ export class LicensesController { return this.licensesService.findOne(id) } - @Patch(':id') - async update(@Param('id') id: string, @Body() data: UpdateLicenseDto) { - return this.licensesService.update(id, data) - } + // @Patch(':id') + // async update(@Param('id') id: string, @Body() data: UpdateLicenseDto) { + // return this.licensesService.update(id, data) + // } // @Delete(':id') // async delete(@Param('id') id: string) { diff --git a/src/modules/admin/licenses/licenses.service.ts b/src/modules/admin/licenses/licenses.service.ts index f9819eb..afc5820 100644 --- a/src/modules/admin/licenses/licenses.service.ts +++ b/src/modules/admin/licenses/licenses.service.ts @@ -1,18 +1,16 @@ -import { LicenseSelect } from '@/generated/prisma/models' +import { ActivatedLicenseSelect } from '@/generated/prisma/models' import { PrismaService } from '@/prisma/prisma.service' import { Injectable } from '@nestjs/common' import { ResponseMapper } from 'common/response/response-mapper' -import { UpdateLicenseDto } from './dto/license.dto' @Injectable() export class PartnerLicensesService { constructor(private readonly prisma: PrismaService) {} - private readonly licenseDefaultSelect: LicenseSelect = { + private readonly licenseDefaultSelect: ActivatedLicenseSelect = { id: true, starts_at: true, expires_at: true, - status: true, consumer: { select: { first_name: true, @@ -21,22 +19,31 @@ export class PartnerLicensesService { status: true, }, }, - partner: { + license: { select: { id: true, - name: true, + charged_license_transaction: { + select: { + partner: { + select: { + id: true, + name: true, + }, + }, + }, + }, }, }, } async findAll(page = 1, pageSize = 10) { const [licenses, count] = await this.prisma.$transaction([ - this.prisma.license.findMany({ + this.prisma.activatedLicense.findMany({ select: this.licenseDefaultSelect, skip: (page - 1) * pageSize, take: pageSize, }), - this.prisma.license.count(), + this.prisma.activatedLicense.count(), ]) return ResponseMapper.paginate(licenses, { @@ -47,22 +54,13 @@ export class PartnerLicensesService { } async findOne(id: string) { - const license = await this.prisma.license.findFirst({ - where: { id }, - include: this.licenseDefaultSelect, - omit: { - partner_id: true, + const license = await this.prisma.activatedLicense.findFirst({ + where: { + id, }, + select: this.licenseDefaultSelect, }) return ResponseMapper.single(license) } - - async update(id: string, data: UpdateLicenseDto) { - const license = await this.prisma.license.update({ - where: { id }, - data: { ...data }, - }) - return ResponseMapper.update(license) - } } diff --git a/src/modules/admin/partners/activatedLicenses/activatedLicenses.controller.ts b/src/modules/admin/partners/activatedLicenses/activatedLicenses.controller.ts new file mode 100644 index 0000000..a71a97f --- /dev/null +++ b/src/modules/admin/partners/activatedLicenses/activatedLicenses.controller.ts @@ -0,0 +1,36 @@ +import { Controller, Get, Param } from '@nestjs/common' +import { ApiTags } from '@nestjs/swagger' +import { PartnerActivatedLicensesService } from './activatedLicenses.service' + +@ApiTags('AdminPartnerActivatedLicenses') +@Controller('admin/partners/:partnerId/activated-licenses') +export class PartnerLicensesController { + constructor(private readonly service: PartnerActivatedLicensesService) {} + + @Get() + async findAll(@Param('partnerId') partnerId: string) { + return this.service.findAll(partnerId) + } + + // @Get(':id') + // async findOne(@Param('partnerId') partnerId: string, @Param('id') id: string) { + // return this.service.findOne(partnerId, id) + // } + + // @Post() + // async create( + // @Param('partnerId') partnerId: string, + // @Body() data: CreatePartnerLicenseDto, + // ) { + // return this.licensesService.create(partnerId, data) + // } + + // @Patch(':id') + // async update( + // @Param('partnerId') partnerId: string, + // @Param('id') id: string, + // @Body() data: UpdateLicenseDto, + // ) { + // return this.licensesService.update(partnerId, id, data) + // } +} diff --git a/src/modules/admin/partners/activatedLicenses/activatedLicenses.module.ts b/src/modules/admin/partners/activatedLicenses/activatedLicenses.module.ts new file mode 100644 index 0000000..77673fe --- /dev/null +++ b/src/modules/admin/partners/activatedLicenses/activatedLicenses.module.ts @@ -0,0 +1,12 @@ +import { PrismaModule } from '@/prisma/prisma.module' +import { Module } from '@nestjs/common' +import { PartnerLicensesController } from './activatedLicenses.controller' +import { PartnerActivatedLicensesService } from './activatedLicenses.service' + +@Module({ + imports: [PrismaModule], + controllers: [PartnerLicensesController], + providers: [PartnerActivatedLicensesService], + exports: [PartnerActivatedLicensesService], +}) +export class AdminPartnerActivatedLicensesModule {} diff --git a/src/modules/admin/partners/activatedLicenses/activatedLicenses.service.ts b/src/modules/admin/partners/activatedLicenses/activatedLicenses.service.ts new file mode 100644 index 0000000..3ab7fc1 --- /dev/null +++ b/src/modules/admin/partners/activatedLicenses/activatedLicenses.service.ts @@ -0,0 +1,62 @@ +import { ActivatedLicenseWhereInput } 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 PartnerActivatedLicensesService { + constructor(private readonly prisma: PrismaService) {} + + async findAll(partner_id: string, page = 1, pageSize = 10) { + const defaultWhere: ActivatedLicenseWhereInput = { + license: { + charged_license_transaction: { + partner_id, + }, + }, + } + const [licenses, count] = await this.prisma.$transaction(async tx => [ + await tx.activatedLicense.findMany({ + where: defaultWhere, + skip: (page - 1) * pageSize, + take: pageSize, + select: { + id: true, + starts_at: true, + expires_at: true, + license_id: true, + created_at: true, + consumer: { + select: { + id: true, + first_name: true, + last_name: true, + }, + }, + }, + }), + await tx.activatedLicense.count({ + where: defaultWhere, + }), + ]) + + return ResponseMapper.paginate(licenses, { + page, + pageSize, + count, + }) + } + + // async update(partnerId: string, id: string, data: UpdateLicenseDto) { + // const license = await this.prisma.license.update({ + // where: { id }, + // data: { ...data, partner_id: partnerId }, + // }) + // return ResponseMapper.update(license) + // } + + async delete(partnerId: string, id: string) { + await this.prisma.license.delete({ where: { id } }) + return ResponseMapper.delete() + } +} diff --git a/src/modules/admin/partners/activatedLicenses/dto/activatedLicenses.dto.ts b/src/modules/admin/partners/activatedLicenses/dto/activatedLicenses.dto.ts new file mode 100644 index 0000000..a89bc4e --- /dev/null +++ b/src/modules/admin/partners/activatedLicenses/dto/activatedLicenses.dto.ts @@ -0,0 +1,3 @@ +export class CreatePartnerLicenseDto {} + +export class UpdateLicenseDto {} diff --git a/src/modules/admin/partners/chargedLicenseTransactions/chargedLicenseTransactions.controller.ts b/src/modules/admin/partners/chargedLicenseTransactions/chargedLicenseTransactions.controller.ts new file mode 100644 index 0000000..c803279 --- /dev/null +++ b/src/modules/admin/partners/chargedLicenseTransactions/chargedLicenseTransactions.controller.ts @@ -0,0 +1,34 @@ +import { Body, Controller, Get, Param, Post } from '@nestjs/common' +import { ApiTags } from '@nestjs/swagger' +import { PartnerChargedLicenseTransactionsService } from './chargedLicenseTransactions.service' +import { ChargeLicenseDto } from './dto/chargedLicenseTransactions.dto' + +@ApiTags('AdminPartnerChargedLicenseTransactions') +@Controller('admin/partners/:partnerId/charge-license-transactions') +export class PartnerChargedLicenseTransactionsController { + constructor(private readonly service: PartnerChargedLicenseTransactionsService) {} + + @Get() + async findAll(@Param('partnerId') partnerId: string) { + return this.service.findAll(partnerId) + } + + @Get(':id') + async findOne(@Param('partnerId') partnerId: string, @Param('id') id: string) { + return this.service.findOne(partnerId, id) + } + + @Post() + async create(@Param('partnerId') partnerId: string, @Body() data: ChargeLicenseDto) { + return this.service.create(partnerId, data) + } + + // @Patch(':id') + // async update( + // @Param('partnerId') partnerId: string, + // @Param('id') id: string, + // @Body() data: UpdateLicenseDto, + // ) { + // return this.licensesService.update(partnerId, id, data) + // } +} diff --git a/src/modules/admin/partners/chargedLicenseTransactions/chargedLicenseTransactions.module.ts b/src/modules/admin/partners/chargedLicenseTransactions/chargedLicenseTransactions.module.ts new file mode 100644 index 0000000..531d8b8 --- /dev/null +++ b/src/modules/admin/partners/chargedLicenseTransactions/chargedLicenseTransactions.module.ts @@ -0,0 +1,12 @@ +import { PrismaModule } from '@/prisma/prisma.module' +import { Module } from '@nestjs/common' +import { PartnerChargedLicenseTransactionsController } from './chargedLicenseTransactions.controller' +import { PartnerChargedLicenseTransactionsService } from './chargedLicenseTransactions.service' + +@Module({ + imports: [PrismaModule], + controllers: [PartnerChargedLicenseTransactionsController], + providers: [PartnerChargedLicenseTransactionsService], + exports: [PartnerChargedLicenseTransactionsService], +}) +export class AdminPartnerChargedLicenseTransactionsModule {} diff --git a/src/modules/admin/partners/chargedLicenseTransactions/chargedLicenseTransactions.service.ts b/src/modules/admin/partners/chargedLicenseTransactions/chargedLicenseTransactions.service.ts new file mode 100644 index 0000000..ad4ea87 --- /dev/null +++ b/src/modules/admin/partners/chargedLicenseTransactions/chargedLicenseTransactions.service.ts @@ -0,0 +1,122 @@ +import { + ChargedLicenseTransactionsWhereInput, + LicenseCreateInput, +} from '@/generated/prisma/models' +import { PrismaService } from '@/prisma/prisma.service' +import { BadRequestException, Injectable } from '@nestjs/common' +import { ResponseMapper } from 'common/response/response-mapper' +import { ChargeLicenseDto } from './dto/chargedLicenseTransactions.dto' + +@Injectable() +export class PartnerChargedLicenseTransactionsService { + constructor(private readonly prisma: PrismaService) {} + + private readonly mappedTransaction = (transaction: any) => { + const { licenses, ...rest } = transaction + return { + ...rest, + charged_license_count: licenses.length, + remained_license_count: licenses.filter(license => !license?.activated_license) + .length, + } + } + + async findAll(partner_id: string, page = 1, pageSize = 10) { + const defaultWhere: ChargedLicenseTransactionsWhereInput = { + partner_id, + } + + const [transactions, count] = await this.prisma.$transaction(async tx => [ + await tx.chargedLicenseTransactions.findMany({ + where: defaultWhere, + skip: (page - 1) * pageSize, + take: pageSize, + select: { + id: true, + created_at: true, + activation_expires_at: true, + licenses: { + select: { + activated_license: { + select: { + id: true, + }, + }, + }, + }, + }, + }), + await tx.chargedLicenseTransactions.count({ + where: defaultWhere, + }), + ]) + + const mappedTransactions = transactions.map(this.mappedTransaction) + + return ResponseMapper.paginate(mappedTransactions, { + page, + pageSize, + count, + }) + } + + async findOne(partner_id: string, id: string) { + const transaction = this.prisma.chargedLicenseTransactions.findUniqueOrThrow({ + where: { + id, + partner_id, + }, + select: { + id: true, + created_at: true, + activation_expires_at: true, + licenses: { + select: { + id: true, + activated_license: { + select: { + id: true, + }, + }, + }, + }, + }, + }) + return ResponseMapper.single(this.mappedTransaction(transaction)) + } + + async create(partner_id: string, data: ChargeLicenseDto) { + try { + return await this.prisma.$transaction(async tx => { + const transaction = await tx.chargedLicenseTransactions.create({ + data: { + activation_expires_at: data.activated_expires_at, + partner: { connect: { id: partner_id } }, + }, + }) + + if (!transaction) { + throw new BadRequestException('متاسفانه مشکلی پیش آمده است.') + } + + const licenseCreationPromises: any[] = [] + for (let i = 0; i < data.quantity; i++) { + const license: LicenseCreateInput = { + charged_license_transaction: { + connect: { + id: transaction.id, + }, + }, + } + + licenseCreationPromises.push(tx.license.create({ data: license })) + } + const createdLicenses = await Promise.all(licenseCreationPromises) + + return { transaction, createdLicenses } + }) + } catch (error) { + throw error + } + } +} diff --git a/src/modules/admin/partners/chargedLicenseTransactions/dto/chargedLicenseTransactions.dto.ts b/src/modules/admin/partners/chargedLicenseTransactions/dto/chargedLicenseTransactions.dto.ts new file mode 100644 index 0000000..9804eab --- /dev/null +++ b/src/modules/admin/partners/chargedLicenseTransactions/dto/chargedLicenseTransactions.dto.ts @@ -0,0 +1,24 @@ +import { ApiProperty } from '@nestjs/swagger' +import { IsDateString, IsNumber } from 'class-validator' + +export class CreatePartnerLicenseDto {} + +export class UpdateLicenseDto {} + +export class ChargeLicenseDto { + @ApiProperty({ + required: true, + minimum: 1, + maximum: 10_000, + }) + @IsNumber({ + maxDecimalPlaces: 0, + }) + quantity: number + + @ApiProperty({ + required: true, + }) + @IsDateString() + activated_expires_at: string +} diff --git a/src/modules/admin/partners/licenses/dto/license.dto.ts b/src/modules/admin/partners/licenses/dto/license.dto.ts deleted file mode 100644 index d10bbe7..0000000 --- a/src/modules/admin/partners/licenses/dto/license.dto.ts +++ /dev/null @@ -1,71 +0,0 @@ -import { IsDateString, IsEnum, IsOptional, IsString } from 'class-validator' -import { AccountStatus, LicenseStatus, POSType } from 'generated/prisma/enums' - -export class CreatePartnerLicenseDto { - @IsString() - first_name: string - - @IsString() - last_name: string - - @IsString() - mobile_number: string - - @IsString() - national_code: string - - @IsString() - username: string - - @IsString() - password: string - - @IsEnum(AccountStatus) - account_status: AccountStatus - - @IsString() - guild: string - - @IsString() - business_activity_name: string - - @IsString() - tax_id: string - - @IsString() - complex_name: string - - @IsString() - pos_serial: string - - @IsString() - pos_status: string - - @IsEnum(POSType) - pos_type: POSType - - @IsString() - pos_device: string - - @IsDateString() - @IsOptional() - starts_at: string - - @IsDateString() - @IsOptional() - expires_at: string -} - -export class UpdateLicenseDto { - @IsString() - pos_id?: string - - @IsDateString() - starts_at?: string - - @IsDateString() - expires_at?: string - - @IsEnum(LicenseStatus) - status?: LicenseStatus -} diff --git a/src/modules/admin/partners/licenses/licenses.controller.ts b/src/modules/admin/partners/licenses/licenses.controller.ts deleted file mode 100644 index e68b7d2..0000000 --- a/src/modules/admin/partners/licenses/licenses.controller.ts +++ /dev/null @@ -1,35 +0,0 @@ -import { Body, Controller, Get, Param, Patch, Post } from '@nestjs/common' -import { CreatePartnerLicenseDto, UpdateLicenseDto } from './dto/license.dto' -import { PartnerLicensesService } from './licenses.service' - -@Controller('admin/partners/:partnerId/licenses') -export class PartnerLicensesController { - constructor(private readonly licensesService: PartnerLicensesService) {} - - @Get() - async findAll(@Param('partnerId') partnerId: string) { - return this.licensesService.findAll(partnerId) - } - - @Get(':id') - async findOne(@Param('partnerId') partnerId: string, @Param('id') id: string) { - return this.licensesService.findOne(partnerId, id) - } - - @Post() - async create( - @Param('partnerId') partnerId: string, - @Body() data: CreatePartnerLicenseDto, - ) { - return this.licensesService.create(partnerId, data) - } - - @Patch(':id') - async update( - @Param('partnerId') partnerId: string, - @Param('id') id: string, - @Body() data: UpdateLicenseDto, - ) { - return this.licensesService.update(partnerId, id, data) - } -} diff --git a/src/modules/admin/partners/licenses/licenses.module.ts b/src/modules/admin/partners/licenses/licenses.module.ts deleted file mode 100644 index 32e1db8..0000000 --- a/src/modules/admin/partners/licenses/licenses.module.ts +++ /dev/null @@ -1,12 +0,0 @@ -import { PrismaModule } from '@/prisma/prisma.module' -import { Module } from '@nestjs/common' -import { PartnerLicensesController } from './licenses.controller' -import { PartnerLicensesService } from './licenses.service' - -@Module({ - imports: [PrismaModule], - controllers: [PartnerLicensesController], - providers: [PartnerLicensesService], - exports: [PartnerLicensesService], -}) -export class AdminPartnerLicensesModule {} diff --git a/src/modules/admin/partners/licenses/licenses.service.ts b/src/modules/admin/partners/licenses/licenses.service.ts deleted file mode 100644 index 2e4dde9..0000000 --- a/src/modules/admin/partners/licenses/licenses.service.ts +++ /dev/null @@ -1,183 +0,0 @@ -import { PrismaService } from '@/prisma/prisma.service' -import { Injectable } from '@nestjs/common' -import { ResponseMapper } from 'common/response/response-mapper' -import { CreatePartnerLicenseDto, UpdateLicenseDto } from './dto/license.dto' - -@Injectable() -export class PartnerLicensesService { - constructor(private readonly prisma: PrismaService) {} - - async findAll(partner_id: string, page = 1, pageSize = 10) { - const [licenses, count] = await this.prisma.$transaction(async tx => [ - await tx.license.findMany({ - where: { - partner_id, - }, - skip: (page - 1) * pageSize, - take: pageSize, - select: { - id: true, - starts_at: true, - expires_at: true, - consumer: { - select: { - id: true, - first_name: true, - last_name: true, - }, - }, - }, - }), - await tx.license.count({ - where: { - partner_id, - }, - }), - ]) - - return ResponseMapper.paginate(licenses, { - page, - pageSize, - count, - }) - } - - async findOne(partnerId: string, id: string) { - // const license = await this.prisma.license.findFirst({ - // where: { id, partner_id: partnerId }, - // include: { - // pos: { - // include: { - // complex: true, - // provider: true, - - // accounts: { - // include: { - // user: true, - // }, - // omit: { - // business_id: true, - // partner_id: true, - // provider_id: true, - // pos_id: true, - // }, - // }, - // device: { - // include: { - // brand: true, - // }, - // omit: { - // brand_id: true, - // }, - // }, - // }, - // }, - // }, - // omit: { - // pos_id: true, - // partner_id: true, - // }, - // }) - // if (license) { - // const { pos, ...rest } = license - // const { accounts, ...posRest } = pos - // return ResponseMapper.single({ - // account: accounts[0], - // pos: posRest, - // ...rest, - // }) - // } - - return ResponseMapper.single({}) - } - - async create(partnerId: string, data: CreatePartnerLicenseDto) { - // const license = await this.prisma.$transaction(async tx => { - // const user = await tx.user.upsert({ - // where: { - // mobile_number: data.mobile_number, - // }, - // update: {}, - // create: { - // first_name: data.first_name, - // last_name: data.last_name, - // mobile_number: data.mobile_number, - // national_code: data.national_code, - // }, - // }) - - // const business = await tx.businessActivity.create({ - // data: { - // name: data.business_activity_name, - // guild_id: data.guild, - // user: { - // connect: { - // id: user.id, - // }, - // }, - // }, - // }) - - // const complex = await tx.complex.create({ - // data: { - // name: data.complex_name, - // tax_id: data.tax_id, - // business_activity_id: business.id, - // }, - // }) - - // const pos = await tx.pos.create({ - // data: { - // pos_type: data.pos_type, - // serial: data.pos_serial, - // device_id: data.pos_device, - // complex_id: complex.id, - // }, - // }) - - // const date = new Date() - // const expiresAt = new Date(date.setFullYear(date.getFullYear() + 1)) - - // const license = await tx.license.create({ - // data: { - // partner_id: partnerId, - // pos_id: pos.id, - // starts_at: data.starts_at || new Date(), - // expires_at: data.expires_at || expiresAt, - // status: LicenseStatus.ACTIVE, - // }, - // }) - - // const hashedPassword = await PasswordUtil.hash(data.password) - - // const account = await tx.account.create({ - // data: { - // username: data.username, - // password: hashedPassword, - // type: AccountType.POS, - // user_id: user.id, - // pos_id: pos.id, - // status: data.account_status, - // }, - // }) - - // return { - // license, - // } - // }) - return ResponseMapper.create('license') - } - - async update(partnerId: string, id: string, data: UpdateLicenseDto) { - const license = await this.prisma.license.update({ - where: { id }, - data: { ...data, partner_id: partnerId }, - }) - return ResponseMapper.update(license) - } - - async delete(partnerId: string, id: string) { - await this.prisma.license.delete({ where: { id } }) - return ResponseMapper.delete() - } -} diff --git a/src/modules/admin/partners/partners.controller.ts b/src/modules/admin/partners/partners.controller.ts index 38e479f..92c7b1b 100644 --- a/src/modules/admin/partners/partners.controller.ts +++ b/src/modules/admin/partners/partners.controller.ts @@ -1,5 +1,5 @@ -import { Body, Controller, Delete, Get, Param, Patch, Post } from '@nestjs/common' -import { CreatePartnerDto, LicenseChargeDto, UpdatePartnerDto } from './dto/partner.dto' +import { Body, Controller, Get, Param, Patch, Post } from '@nestjs/common' +import { CreatePartnerDto, UpdatePartnerDto } from './dto/partner.dto' import { PartnersService } from './partners.service' @Controller('admin/partners') @@ -26,13 +26,8 @@ export class PartnersController { return this.partnersService.update(id, data) } - @Post(':id/charge-license') - async licenseCharge(@Param('id') id: string, @Body() data: LicenseChargeDto) { - return this.partnersService.licenseCharge(id, data) - } - - @Delete(':id') - async delete(@Param('id') id: string) { - return this.partnersService.delete(id) - } + // @Delete(':id') + // async delete(@Param('id') id: string) { + // return this.partnersService.delete(id) + // } } diff --git a/src/modules/admin/partners/partners.module.ts b/src/modules/admin/partners/partners.module.ts index 27c7433..7e72e47 100644 --- a/src/modules/admin/partners/partners.module.ts +++ b/src/modules/admin/partners/partners.module.ts @@ -1,13 +1,19 @@ import { PrismaModule } from '@/prisma/prisma.module' import { Module } from '@nestjs/common' -import { AdminPartnerLicensesModule } from './licenses/licenses.module' +import { AdminPartnerActivatedLicensesModule } from './activatedLicenses/activatedLicenses.module' +import { AdminPartnerChargedLicenseTransactionsModule } from './chargedLicenseTransactions/chargedLicenseTransactions.module' import { AdminPartnerAccountsModule } from './partnerAccounts/accounts.module' import { PartnersController } from './partners.controller' import { PartnersService } from './partners.service' @Module({ - imports: [PrismaModule, AdminPartnerLicensesModule, AdminPartnerAccountsModule], + imports: [ + PrismaModule, + AdminPartnerChargedLicenseTransactionsModule, + AdminPartnerActivatedLicensesModule, + AdminPartnerAccountsModule, + ], controllers: [PartnersController], providers: [PartnersService], exports: [PartnersService], diff --git a/src/modules/admin/partners/partners.service.ts b/src/modules/admin/partners/partners.service.ts index 290b3f6..411fdc2 100644 --- a/src/modules/admin/partners/partners.service.ts +++ b/src/modules/admin/partners/partners.service.ts @@ -1,43 +1,111 @@ import { PasswordUtil } from '@/common/utils/password.util' +import { ChargedLicenseTransactions } from '@/generated/prisma/client' import { AccountStatus, AccountType, PartnerRole, PartnerStatus, } from '@/generated/prisma/enums' +import { PartnerSelect } from '@/generated/prisma/models' import { PrismaService } from '@/prisma/prisma.service' import { Injectable } from '@nestjs/common' import { ResponseMapper } from 'common/response/response-mapper' -import { CreatePartnerDto, LicenseChargeDto, UpdatePartnerDto } from './dto/partner.dto' +import { CreatePartnerDto, UpdatePartnerDto } from './dto/partner.dto' @Injectable() export class PartnersService { constructor(private readonly prisma: PrismaService) {} + private readonly defaultSelect: PartnerSelect = { + id: true, + name: true, + code: true, + status: true, + created_at: true, + chargedLicenseTransactions: { + select: { + activation_expires_at: true, + licenses: { + select: { + activated_license: { + select: { + id: true, + }, + }, + }, + }, + }, + }, + } + + private readonly separateLicenseCount = ( + transactions: ChargedLicenseTransactions[] | null, + ) => { + function toDateOnlyString(date) { + return date.toISOString().slice(0, 10) + } + + const startOfTodayDate = toDateOnlyString(new Date()) + + const used = transactions?.reduce((sum, cur) => { + const license = cur as any + return ( + sum + license.licenses.filter(license => license.activated_license).length || 0 + ) + }, 0) + + const total = transactions?.reduce((sum, cur) => { + const license = cur as any + + return sum + license.licenses.length || 0 + }, 0) + + const expired = transactions?.reduce((sum, cur) => { + const license = cur as any + const activationExpiresDate = toDateOnlyString(license.activation_expires_at) + if (startOfTodayDate > activationExpiresDate) + return ( + sum + license.licenses.filter(license => !license.activated_license).length || 0 + ) + return sum + }, 0) + + return { + total, + used, + expired, + } + } + async findAll() { - const partners = await this.prisma.partner.findMany() - return ResponseMapper.list(partners) + const partners = await this.prisma.partner.findMany({ + select: this.defaultSelect, + }) + + const mappedPartners = partners.map(partner => { + const { chargedLicenseTransactions, ...rest } = partner + return { + ...rest, + licenses_status: this.separateLicenseCount(chargedLicenseTransactions), + } + }) + + return ResponseMapper.list(mappedPartners) } async findOne(id: string) { - const [partner, relatedLicenseCount] = await this.prisma.$transaction([ - this.prisma.partner.findUnique({ - where: { id }, - }), - this.prisma.license.count({ - where: { - partner_id: id, - }, - }), - ]) - - return ResponseMapper.single({ - ...partner, - remained_license: Math.max( - (partner?.license_quota || 0) - (relatedLicenseCount || 0), - 0, - ), + const partner = await this.prisma.partner.findUniqueOrThrow({ + where: { id }, + select: this.defaultSelect, }) + + const { chargedLicenseTransactions, ...rest } = partner + const mappedPartner = { + ...rest, + licenses_status: this.separateLicenseCount(chargedLicenseTransactions), + } + + return ResponseMapper.single(mappedPartner) } async create(data: CreatePartnerDto) { @@ -60,23 +128,16 @@ export class PartnersService { }, }, }, + select: this.defaultSelect, }) return ResponseMapper.create(partner) } async update(id: string, data: UpdatePartnerDto) { - const partner = await this.prisma.partner.update({ where: { id }, data }) - return ResponseMapper.update(partner) - } - - async licenseCharge(id: string, data: LicenseChargeDto) { const partner = await this.prisma.partner.update({ where: { id }, - data: { - license_quota: { - increment: data.count, - }, - }, + data, + select: this.defaultSelect, }) return ResponseMapper.update(partner) } diff --git a/src/modules/consumer/business-activities/complexes/goods/goods.service.ts b/src/modules/consumer/business-activities/complexes/goods/goods.service.ts index 29b8fc7..d256610 100644 --- a/src/modules/consumer/business-activities/complexes/goods/goods.service.ts +++ b/src/modules/consumer/business-activities/complexes/goods/goods.service.ts @@ -16,6 +16,7 @@ export class ConsumerComplexGoodsService { local_sku: true, pricing_model: true, unit_type: true, + image_url: true, category: { select: { id: true, diff --git a/src/modules/consumer/consumer.middleware.ts b/src/modules/consumer/consumer.middleware.ts index 7876d3e..4b906c6 100644 --- a/src/modules/consumer/consumer.middleware.ts +++ b/src/modules/consumer/consumer.middleware.ts @@ -48,7 +48,6 @@ export class ConsumerMiddleware implements NestMiddleware { account_id: consumerAccount.id, id: consumerAccount.consumer_id, } - console.log(consumerAccount) req.decodedToken = tokenAccount diff --git a/src/modules/consumer/consumer.service.ts b/src/modules/consumer/consumer.service.ts index 1e8cd88..19560bc 100644 --- a/src/modules/consumer/consumer.service.ts +++ b/src/modules/consumer/consumer.service.ts @@ -17,14 +17,23 @@ export class ConsumerService { last_name: true, mobile_number: true, status: true, - license: { + activated_licenses: { select: { + id: true, starts_at: true, expires_at: true, - status: true, - partner: { + license: { select: { - name: true, + id: true, + charged_license_transaction: { + select: { + partner: { + select: { + name: true, + }, + }, + }, + }, }, }, }, @@ -32,9 +41,26 @@ export class ConsumerService { }, }) + const { activated_licenses, ...rest } = consumer + + const mappedData = { + ...rest, + activated_licenses: activated_licenses.map(activatedLicense => { + const { license, ...rest } = activatedLicense + return { + ...rest, + license: { + id: license.id, + partner: license.charged_license_transaction.partner, + }, + } + }), + } + return ResponseMapper.single({ ...consumer, full_name: `${consumer?.first_name} ${consumer?.last_name}`, + activated_licenses: mappedData, }) } } diff --git a/src/modules/partners/customers/customers.service.ts b/src/modules/partners/customers/customers.service.ts index 476cd2d..19ff063 100644 --- a/src/modules/partners/customers/customers.service.ts +++ b/src/modules/partners/customers/customers.service.ts @@ -12,11 +12,10 @@ export class PartnerCustomersService { first_name: true, last_name: true, status: true, - license: { + activated_licenses: { select: { id: true, starts_at: true, - status: true, expires_at: true, created_at: true, }, @@ -25,8 +24,14 @@ export class PartnerCustomersService { } private defaultWhere = (partner_id: string): ConsumerWhereInput => ({ - license: { - partner_id, + activated_licenses: { + some: { + license: { + charged_license_transaction: { + partner_id, + }, + }, + }, }, }) @@ -48,9 +53,7 @@ export class PartnerCustomersService { async findOne(partner_id: string, consumer_id: string) { const partner = await this.prisma.consumer.findUniqueOrThrow({ where: { - license: { - partner_id, - }, + ...(this.defaultWhere(partner_id) as any), id: consumer_id, }, select: this.defaultSelect, diff --git a/src/modules/pos/pos.controller.ts b/src/modules/pos/pos.controller.ts index e67ab2a..e678d5c 100644 --- a/src/modules/pos/pos.controller.ts +++ b/src/modules/pos/pos.controller.ts @@ -13,7 +13,6 @@ export class PosController { async getInfo(@PosInfo('pos_id') pos_id: string, @Res({ passthrough: true }) res) { const result = await this.service.getInfo(pos_id) - console.log('firstaaaaa') if (result) { console.log('first') diff --git a/src/modules/storage/storage.service.ts b/src/modules/storage/storage.service.ts index 8256a16..436f02a 100644 --- a/src/modules/storage/storage.service.ts +++ b/src/modules/storage/storage.service.ts @@ -1,6 +1,5 @@ import { DeleteObjectCommand, PutObjectCommand, S3Client } from '@aws-sdk/client-s3' import { Injectable } from '@nestjs/common' -import { ConfigService } from '@nestjs/config' import { randomUUID } from 'crypto' @Injectable() @@ -9,7 +8,7 @@ export class StorageService { private readonly bucket: string private readonly endpoint: string - constructor(private readonly config: ConfigService) { + constructor() { ;((this.endpoint = process.env.ARVANCLOUD_ENDPOINT!), (this.bucket = process.env.ARVANCLOUD_BUCKET!), (this.s3 = new S3Client({ @@ -25,18 +24,25 @@ export class StorageService { async uploadFile(file: Express.Multer.File, folder = 'uploads') { const key = `${folder}/${randomUUID()}-${file.originalname}` - await this.s3.send( - new PutObjectCommand({ - Bucket: this.bucket, - Key: key, - Body: file.buffer, - ContentType: file.mimetype, - }), - ) + return this.s3 + .send( + new PutObjectCommand({ + Bucket: this.bucket, + Key: key, + Body: file.buffer, + ContentType: file.mimetype, + }), + ) + .then(res => { + const publicUrl = `${this.endpoint}/${this.bucket}/${key}` + return publicUrl + }) + .catch(ex => { + console.log(ex) + throw ex + }) // ArvanCloud uses public URLs like: - const publicUrl = `${this.endpoint}/${this.bucket}/${key}` - return { key, url: publicUrl } } async deleteFile(key: string) { diff --git a/src/modules/uploader/dto/image-upload.dto.ts b/src/modules/uploader/dto/image-upload.dto.ts new file mode 100644 index 0000000..f5921a3 --- /dev/null +++ b/src/modules/uploader/dto/image-upload.dto.ts @@ -0,0 +1,12 @@ +import { UploadedFileTypes } from '@/common/enums/enums' +import { ApiProperty } from '@nestjs/swagger' +import { IsEnum } from 'class-validator' + +export class UploadImageDto { + @ApiProperty({ + enum: UploadedFileTypes, + example: UploadedFileTypes.GOOD, + }) + @IsEnum(UploadedFileTypes) + type: UploadedFileTypes +} diff --git a/src/modules/uploader/image-uploader.service.ts b/src/modules/uploader/image-uploader.service.ts new file mode 100644 index 0000000..96c46e6 --- /dev/null +++ b/src/modules/uploader/image-uploader.service.ts @@ -0,0 +1,11 @@ +import { Injectable } from '@nestjs/common' +import { UploaderService } from './uploader.service' + +@Injectable() +export class ImageUploaderService { + constructor(private readonly uploaderService: UploaderService) {} + + async uploadImage(file: Express.Multer.File, type: '') { + // return this.uploaderService.uploadFile(file.buffer, file.originalname, type) + } +} diff --git a/src/modules/uploader/uploader.controller.ts b/src/modules/uploader/uploader.controller.ts new file mode 100644 index 0000000..b3ddae1 --- /dev/null +++ b/src/modules/uploader/uploader.controller.ts @@ -0,0 +1,45 @@ +import { multerImageOptions } from '@/multer.config' +import { + BadRequestException, + Body, + Controller, + Post, + UploadedFile, + UseInterceptors, +} from '@nestjs/common' +import { FileInterceptor } from '@nestjs/platform-express' +import { ApiBody, ApiConsumes } from '@nestjs/swagger' +import { UploadImageDto } from './dto/image-upload.dto' +import { UploaderService } from './uploader.service' + +@Controller('uploader') +export class UploaderController { + constructor(private readonly service: UploaderService) {} + + @Post('image') + @UseInterceptors(FileInterceptor('file', multerImageOptions)) + @ApiConsumes('multipart/form-data') + @ApiBody({ + schema: { + type: 'object', + properties: { + file: { type: 'string', format: 'binary' }, + type: { + type: 'string', + enum: ['avatar', 'banner', 'document', 'product'], + }, + }, + }, + }) + async uploadImage( + @UploadedFile() file: Express.Multer.File, + @Body() dto: UploadImageDto, + ) { + if (!file) { + throw new BadRequestException('فایل را وارد کنید') + } + + const url = await this.service.uploadFile(file, dto.type) + return { url } + } +} diff --git a/src/modules/uploaders/uploader.middleware.ts b/src/modules/uploader/uploader.middleware.ts similarity index 100% rename from src/modules/uploaders/uploader.middleware.ts rename to src/modules/uploader/uploader.middleware.ts diff --git a/src/modules/uploaders/uploader.module.ts b/src/modules/uploader/uploader.module.ts similarity index 57% rename from src/modules/uploaders/uploader.module.ts rename to src/modules/uploader/uploader.module.ts index f791e5d..1beda20 100644 --- a/src/modules/uploaders/uploader.module.ts +++ b/src/modules/uploader/uploader.module.ts @@ -1,11 +1,11 @@ import { Module } from '@nestjs/common' -import { ImageUploaderService } from './image-uploader.service' +import { StorageService } from '../storage/storage.service' import { UploaderController } from './uploader.controller' import { UploaderService } from './uploader.service' @Module({ - providers: [UploaderService, ImageUploaderService], + providers: [UploaderService, StorageService], controllers: [UploaderController], - exports: [UploaderService, ImageUploaderService], + exports: [UploaderService], }) export class UploaderModule {} diff --git a/src/modules/uploader/uploader.service.ts b/src/modules/uploader/uploader.service.ts new file mode 100644 index 0000000..a6de584 --- /dev/null +++ b/src/modules/uploader/uploader.service.ts @@ -0,0 +1,33 @@ +import { UploadedFileTypes } from '@/common/enums/enums' +import { Injectable } from '@nestjs/common' +import { StorageService } from '../storage/storage.service' + +@Injectable() +export class UploaderService { + constructor(private readonly storageService: StorageService) {} + + async uploadFile(file: Express.Multer.File, type: UploadedFileTypes) { + const uploaded = await this.storageService.uploadFile(file, type) + return uploaded + + // await fs.mkdir(dirPath, { recursive: true }) + // await fs.writeFile(filePath, buffer) + + // Return a URL path, e.g. /uploads/{accountId}/{type}/{filename} + // return `/uploads/${type}/${filename}` + } + + async deleteFile(url: string) { + const key = url?.split('/').pop() + if (key) { + return await this.storageService.deleteFile(key) + } + return {} + + // await fs.mkdir(dirPath, { recursive: true }) + // await fs.writeFile(filePath, buffer) + + // Return a URL path, e.g. /uploads/{accountId}/{type}/{filename} + // return `/uploads/${type}/${filename}` + } +} diff --git a/src/modules/uploaders/image-uploader.service.ts b/src/modules/uploaders/image-uploader.service.ts deleted file mode 100644 index ad05e81..0000000 --- a/src/modules/uploaders/image-uploader.service.ts +++ /dev/null @@ -1,15 +0,0 @@ -import { TUploadedFileTypes } from '@/common/models' -import { Injectable } from '@nestjs/common' -import { UploaderService } from './uploader.service' - -@Injectable() -export class ImageUploaderService { - constructor(private readonly uploaderService: UploaderService) {} - - async uploadImage( - file: Express.Multer.File, - type: TUploadedFileTypes, - ): Promise { - return this.uploaderService.uploadFile(file.buffer, file.originalname, type) - } -} diff --git a/src/modules/uploaders/uploader.controller.ts b/src/modules/uploaders/uploader.controller.ts deleted file mode 100644 index ba0fed8..0000000 --- a/src/modules/uploaders/uploader.controller.ts +++ /dev/null @@ -1,20 +0,0 @@ -import type { TUploadedFileTypes } from '@/common/models' -import { Body, Controller, Post, UploadedFile, UseInterceptors } from '@nestjs/common' -import { FileInterceptor } from '@nestjs/platform-express' -import { ImageUploaderService } from './image-uploader.service' - -@Controller('uploader') -export class UploaderController { - constructor(private readonly imageUploaderService: ImageUploaderService) {} - - @Post('image') - @UseInterceptors(FileInterceptor('file')) - async uploadImage( - @UploadedFile() file: Express.Multer.File, - @Body('accountId') accountId: string, - @Body('type') type: TUploadedFileTypes, - ) { - const url = await this.imageUploaderService.uploadImage(file, type) - return { url } - } -} diff --git a/src/modules/uploaders/uploader.service.ts b/src/modules/uploaders/uploader.service.ts deleted file mode 100644 index 4aded15..0000000 --- a/src/modules/uploaders/uploader.service.ts +++ /dev/null @@ -1,25 +0,0 @@ -import { TUploadedFileTypes } from '@/common/models' -import { Injectable } from '@nestjs/common' -import { promises as fs } from 'fs' -import { join } from 'path' -import { v4 as uuidv4 } from 'uuid' - -@Injectable() -export class UploaderService { - private uploadDir = join(process.cwd(), 'uploads') - - async uploadFile( - buffer: Buffer, - originalname: string, - type: TUploadedFileTypes, - ): Promise { - const ext = originalname.split('.').pop() - const filename = `${uuidv4()}.${ext}` - const dirPath = join(this.uploadDir, type) - const filePath = join(dirPath, filename) - await fs.mkdir(dirPath, { recursive: true }) - await fs.writeFile(filePath, buffer) - // Return a URL path, e.g. /uploads/{accountId}/{type}/{filename} - return `/uploads/${type}/${filename}` - } -} diff --git a/src/multer.config.ts b/src/multer.config.ts new file mode 100644 index 0000000..66aa1e7 --- /dev/null +++ b/src/multer.config.ts @@ -0,0 +1,27 @@ +import { BadRequestException } from '@nestjs/common' + +export const imageFileFilter = ( + req: any, + file: Express.Multer.File, + callback: (error: Error | null, acceptFile: boolean) => void, +) => { + if (!file.mimetype.startsWith('image/')) { + return callback(new BadRequestException('Only image files are allowed'), false) + } + + const allowed = ['image/jpeg', 'image/png', 'image/webp'] + + if (!allowed.includes(file.mimetype)) { + return callback( + new BadRequestException('Only JPEG, PNG, WEBP images are allowed'), + false, + ) + } + + callback(null, true) +} + +export const multerImageOptions = { + fileFilter: imageFileFilter, + limits: { fileSize: 5 * 1024 * 1024 }, // 5MB +} diff --git a/src/uploads/uploads.controller.ts b/src/uploads/uploads.controller.ts deleted file mode 100644 index e69de29..0000000 diff --git a/src/uploads/uploads.service.ts b/src/uploads/uploads.service.ts deleted file mode 100644 index e69de29..0000000