This commit is contained in:
2026-02-21 16:35:45 +03:30
parent 221e949f32
commit 408290bf5a
7 changed files with 51 additions and 91 deletions
+21 -63
View File
@@ -345,68 +345,6 @@
},
"nativeEnums": {}
},
{
"columns": {
"id": {
"name": "id",
"type": "char(26)",
"unsigned": false,
"autoincrement": false,
"primary": false,
"nullable": false,
"length": 26,
"mappedType": "character"
},
"created_at": {
"name": "created_at",
"type": "timestamptz",
"unsigned": false,
"autoincrement": false,
"primary": false,
"nullable": false,
"length": 6,
"default": "now()",
"mappedType": "datetime"
},
"deleted_at": {
"name": "deleted_at",
"type": "timestamptz",
"unsigned": false,
"autoincrement": false,
"primary": false,
"nullable": true,
"length": 6,
"mappedType": "datetime"
},
"title": {
"name": "title",
"type": "varchar(255)",
"unsigned": false,
"autoincrement": false,
"primary": false,
"nullable": false,
"length": 255,
"mappedType": "string"
}
},
"name": "order_types",
"schema": "public",
"indexes": [
{
"keyName": "order_types_pkey",
"columnNames": [
"id"
],
"composite": false,
"constraint": true,
"primary": true,
"unique": true
}
],
"checks": [],
"foreignKeys": {},
"nativeEnums": {}
},
{
"columns": {
"phone": {
@@ -2723,6 +2661,26 @@
"primary": false,
"nullable": false,
"mappedType": "json"
},
"printery": {
"name": "printery",
"type": "varchar(255)",
"unsigned": false,
"autoincrement": false,
"primary": false,
"nullable": true,
"length": 255,
"mappedType": "string"
},
"lithography": {
"name": "lithography",
"type": "varchar(255)",
"unsigned": false,
"autoincrement": false,
"primary": false,
"nullable": true,
"length": 255,
"mappedType": "string"
}
},
"name": "orders",
@@ -2786,7 +2744,7 @@
"referencedColumnNames": [
"id"
],
"referencedTableName": "public.order_types",
"referencedTableName": "public.categories",
"updateRule": "cascade"
},
"orders_user_id_foreign": {
@@ -0,0 +1,20 @@
import { Migration } from '@mikro-orm/migrations';
export class Migration20260221130421 extends Migration {
override async up(): Promise<void> {
this.addSql(`alter table "orders" drop constraint "orders_type_id_foreign";`);
this.addSql(`alter table "orders" add column "printery" varchar(255) null, add column "lithography" varchar(255) null;`);
this.addSql(`alter table "orders" add constraint "orders_type_id_foreign" foreign key ("type_id") references "categories" ("id") on update cascade;`);
}
override async down(): Promise<void> {
this.addSql(`create table "order_types" ("id" char(26) not null, "created_at" timestamptz not null default now(), "deleted_at" timestamptz null, "title" varchar(255) not null, constraint "order_types_pkey" primary key ("id"));`);
this.addSql(`alter table "orders" drop constraint "orders_type_id_foreign";`);
this.addSql(`alter table "orders" add constraint "orders_type_id_foreign" foreign key ("type_id") references "order_types" ("id") on update cascade;`);
}
}
+2
View File
@@ -19,6 +19,7 @@ import { PrintModule } from './modules/print/print.module';
import { FormBuilderModule } from './modules/form-builder/form-builder.module';
import { RequestModule } from './modules/request/request.module';
import { InvoiceModule } from './modules/invoice/invoice.module';
import { OrderModule } from './modules/order/order.module';
@Module({
imports: [
@@ -46,6 +47,7 @@ import { InvoiceModule } from './modules/invoice/invoice.module';
FormBuilderModule,
RequestModule,
InvoiceModule,
OrderModule
],
controllers: [],
providers: [],
@@ -1,15 +0,0 @@
import {
Entity,
Property,
OptionalProps,
} from '@mikro-orm/core';
import { BaseEntity } from 'src/common/entities/base.entity';
@Entity({ tableName: 'order_types' })
export class OrderType extends BaseEntity {
[OptionalProps]?: 'createdAt' | 'deletedAt'
@Property({ type: 'string' })
title: string
}
+3 -3
View File
@@ -15,7 +15,7 @@ import { IAttachment, OrderStatusEnum } from '../interface/order.interface';
import { InvoiceItem } from 'src/modules/invoice/entities/invoice-item.entity';
import { IField } from 'src/modules/request/interface/request.interface';
import { Product } from 'src/modules/product/entities/product.entity';
import { OrderType } from './order-type.entity';
import { Category } from 'src/modules/product/entities/category.entity';
@Entity({ tableName: 'orders' })
@Index({ properties: ['user'] })
@@ -34,8 +34,8 @@ export class Order extends BaseEntity {
@Property({ type: 'string', nullable: true })
title?: string
@ManyToOne(() => OrderType)
type: OrderType
@ManyToOne(() => Category)
type: Category
@ManyToOne(() => User)
user!: User;
+1 -2
View File
@@ -15,11 +15,10 @@ import { UserModule } from '../user/user.module';
import { UtilsModule } from '../util/utils.module';
import { ProductModule } from '../product/product.module';
import { TicketModule } from '../ticket/ticket.module';
import { OrderType } from './entities/order-type.entity';
@Module({
imports: [
MikroOrmModule.forFeature([Order, OrderType]),
MikroOrmModule.forFeature([Order]),
AuthModule,
forwardRef(() => PaymentModule),
JwtModule,
+4 -8
View File
@@ -3,10 +3,7 @@ import { EntityManager } from '@mikro-orm/postgresql';
import { OrderRepository } from '../repositories/order.repository';
import { FindOrdersDto } from '../dto/find-orders.dto';
import { EventEmitter2 } from '@nestjs/event-emitter';
import {
CreateOrderAsAdminDto,
CreateOrderItemDtoAsAdmin,
} from '../dto/create-order.dto';
import { CreateOrderAsAdminDto } from '../dto/create-order.dto';
import { UserService } from 'src/modules/user/providers/user.service';
import { OrderStatusEnum } from '../interface/order.interface';
import { ProductService } from 'src/modules/product/providers/product.service';
@@ -18,16 +15,15 @@ import { Order } from '../entities/order.entity';
import { PaymentRepository } from 'src/modules/payment/repositories/payment.repository';
import { AdminService } from 'src/modules/admin/providers/admin.service';
import { UpdateOrderAsAdminDto } from '../dto/update-order.dto';
import { FindOrderItemsDto } from '../dto/find-order-items.dto';
import { PermissionService } from 'src/modules/roles/providers/permissions.service';
import { PermissionEnum } from 'src/common/enums/permission.enum';
import { User } from 'src/modules/user/entities/user.entity';
import { OrderType } from '../entities/order-type.entity';
import { Product } from 'src/modules/product/entities/product.entity';
import { InvoiceItem } from 'src/modules/invoice/entities/invoice-item.entity';
import { PaginatedResult } from 'src/common/interfaces/pagination.interface';
import { UpdateStatusAsDesignerDto } from '../dto/update-status-as-designer.dto';
import { UpdateStatusDto } from '../dto/update-status.dto';
import { Category } from 'src/modules/product/entities/category.entity';
@Injectable()
export class OrderService {
@@ -79,7 +75,7 @@ export class OrderService {
const creator = await this.adminService.findOrFail(adminId);
const type = await this.em.findOne(OrderType, { id: dto.typeId });
const type = await this.em.findOne(Category, { id: dto.typeId });
if (!type) {
throw new NotFoundException(`Order type with ID ${dto.typeId} not found.`);
}
@@ -157,7 +153,7 @@ export class OrderService {
order.user = user as User;
}
if (dto.typeId !== undefined) {
const type = await this.em.findOne(OrderType, { id: dto.typeId });
const type = await this.em.findOne(Category, { id: dto.typeId });
if (!type) {
throw new NotFoundException(`Order type with ID ${dto.typeId} not found.`);
}