From 1f74019eaf72e69e421d148eb6dfc3e0b105cb9c Mon Sep 17 00:00:00 2001 From: morteza-mortezai Date: Fri, 26 Jun 2026 12:40:16 +0330 Subject: [PATCH] up --- .../migrations/Migration20260626140000.ts | 13 +++-- package.json | 2 +- .../invoice/entities/invoice.entity.ts | 4 +- .../enum/invoice-confirm-status.enum.ts | 1 + src/seeders/data/admins.data.ts | 48 +++++++++---------- 5 files changed, 38 insertions(+), 30 deletions(-) diff --git a/database/migrations/Migration20260626140000.ts b/database/migrations/Migration20260626140000.ts index 6f25a78..e84d28c 100644 --- a/database/migrations/Migration20260626140000.ts +++ b/database/migrations/Migration20260626140000.ts @@ -5,7 +5,7 @@ export class Migration20260626140000 extends Migration { override async up(): Promise { this.addSql(` alter table "invoices" - add column "confirm_status" text check ("confirm_status" in ('pending', 'confirmed')) not null default 'pending'; + add column "confirm_status" text check ("confirm_status" in ('pending', 'partially_confirmed', 'confirmed')) not null default 'pending'; `); this.addSql(` @@ -55,14 +55,21 @@ export class Migration20260626140000 extends Migration { AND deleted_at IS NULL; SELECT CASE - WHEN EXISTS ( + WHEN NOT EXISTS ( SELECT 1 FROM invoice_items WHERE invoice_id = v_invoice_id AND deleted_at IS NULL AND confirmed_at IS NOT NULL + ) THEN 'pending' + WHEN NOT EXISTS ( + SELECT 1 + FROM invoice_items + WHERE invoice_id = v_invoice_id + AND deleted_at IS NULL + AND confirmed_at IS NULL ) THEN 'confirmed' - ELSE 'pending' + ELSE 'partially_confirmed' END INTO v_confirm_status; diff --git a/package.json b/package.json index 4b34621..7b5e0cb 100644 --- a/package.json +++ b/package.json @@ -10,7 +10,7 @@ "db:update": "npx mikro-orm schema:update --run --config ./src/config/mikro-orm.config.dev.ts ", "db:drop": "npx mikro-orm schema:drop --run --config ./src/config/mikro-orm.config.dev.ts", "db:refresh": "npm run db:drop && npm run db:create ", - "db:reset": "npm run db:drop && npm run db:create && npm run db:seed", + "db:reset": "npm run db:drop && npm run db:create && npm run migration:up && npm run db:seed", "db:seed": "npx mikro-orm seeder:run --config ./src/config/mikro-orm.config.dev.ts", "build": "nest build", "format": "prettier --write \"src/**/*.ts\" \"test/**/*.ts\"", diff --git a/src/modules/invoice/entities/invoice.entity.ts b/src/modules/invoice/entities/invoice.entity.ts index e360119..dcb46bf 100644 --- a/src/modules/invoice/entities/invoice.entity.ts +++ b/src/modules/invoice/entities/invoice.entity.ts @@ -80,8 +80,8 @@ export class Invoice extends BaseEntity { balance: number & Opt; - @Enum({ items: () => InvoiceConfirmStatusEnum, persist: false }) - confirmStatus!: InvoiceConfirmStatusEnum & Opt; + @Enum(() => InvoiceConfirmStatusEnum) + confirmStatus: InvoiceConfirmStatusEnum = InvoiceConfirmStatusEnum.PENDING; @Property({ type: 'boolean', default: false }) enableTax?: boolean = false diff --git a/src/modules/invoice/enum/invoice-confirm-status.enum.ts b/src/modules/invoice/enum/invoice-confirm-status.enum.ts index 1a13d49..6d350e2 100644 --- a/src/modules/invoice/enum/invoice-confirm-status.enum.ts +++ b/src/modules/invoice/enum/invoice-confirm-status.enum.ts @@ -1,4 +1,5 @@ export enum InvoiceConfirmStatusEnum { PENDING = 'pending', + PARTIALLY_CONFIRMED = 'partially_confirmed', CONFIRMED = 'confirmed', } diff --git a/src/seeders/data/admins.data.ts b/src/seeders/data/admins.data.ts index 3c98108..11e7ecc 100644 --- a/src/seeders/data/admins.data.ts +++ b/src/seeders/data/admins.data.ts @@ -13,32 +13,32 @@ export const adminsData: AdminData[] = [ roleName: 'admin', }, - { - phone: '09121724095', - firstName: 'آقای', - lastName: 'نواعتقاد', - roleName: 'admin', + // { + // phone: '09121724095', + // firstName: 'آقای', + // lastName: 'نواعتقاد', + // roleName: 'admin', - }, - { - phone: '09185290775', - firstName: 'حمید', - lastName: 'ضرقامی', - roleName: 'admin', + // }, + // { + // phone: '09185290775', + // firstName: 'حمید', + // lastName: 'ضرقامی', + // roleName: 'admin', - }, - { - phone: '09180000000', - firstName: 'ندا', - lastName: 'سعیدی', - roleName: 'designer', + // }, + // { + // phone: '09180000000', + // firstName: 'ندا', + // lastName: 'سعیدی', + // roleName: 'designer', - }, - { - phone: '09184317567', - firstName: 'حسابداری', - lastName: 'ح', - roleName: 'accountant', + // }, + // { + // phone: '09184317567', + // firstName: 'حسابداری', + // lastName: 'ح', + // roleName: 'accountant', - }, + // }, ];