order number

This commit is contained in:
2026-04-05 08:51:47 +03:30
parent b5d555e9ab
commit f7c57638ff
3 changed files with 42 additions and 11 deletions
+13 -3
View File
@@ -2999,9 +2999,9 @@
}, },
"order_number": { "order_number": {
"name": "order_number", "name": "order_number",
"type": "serial", "type": "int",
"unsigned": true, "unsigned": false,
"autoincrement": true, "autoincrement": false,
"primary": false, "primary": false,
"nullable": false, "nullable": false,
"mappedType": "integer" "mappedType": "integer"
@@ -3065,6 +3065,16 @@
"primary": false, "primary": false,
"unique": true "unique": true
}, },
{
"columnNames": [
"order_number"
],
"composite": false,
"keyName": "orders_order_number_unique",
"constraint": true,
"primary": false,
"unique": true
},
{ {
"keyName": "orders_user_id_index", "keyName": "orders_user_id_index",
"columnNames": [ "columnNames": [
@@ -0,0 +1,20 @@
import { Migration } from '@mikro-orm/migrations';
export class Migration20260405052112 extends Migration {
override async up(): Promise<void> {
this.addSql(`alter table "orders" alter column "order_number" type int using ("order_number"::int);`);
this.addSql(`alter table "orders" alter column "order_number" drop default;`);
this.addSql(`alter table "orders" add constraint "orders_order_number_unique" unique ("order_number");`);
}
override async down(): Promise<void> {
this.addSql(`alter table "orders" drop constraint "orders_order_number_unique";`);
this.addSql(`alter table "orders" alter column "order_number" type int using ("order_number"::int);`);
this.addSql(`create sequence if not exists "orders_order_number_seq";`);
this.addSql(`select setval('orders_order_number_seq', (select max("order_number") from "orders"));`);
this.addSql(`alter table "orders" alter column "order_number" set default nextval('orders_order_number_seq');`);
}
}
+9 -8
View File
@@ -6,7 +6,8 @@ import {
Enum, Enum,
PrimaryKey, PrimaryKey,
OptionalProps, OptionalProps,
OneToOne OneToOne,
Opt
} from '@mikro-orm/core'; } from '@mikro-orm/core';
import { User } from '../../user/entities/user.entity'; import { User } from '../../user/entities/user.entity';
import { ulid } from 'ulid'; import { ulid } from 'ulid';
@@ -21,9 +22,9 @@ import { OrderPrint } from './print.entity';
@Entity({ tableName: 'orders' }) @Entity({ tableName: 'orders' })
@Index({ properties: ['user'] }) @Index({ properties: ['user'] })
export class Order extends BaseEntity { export class Order extends BaseEntity {
[OptionalProps]?: 'createdAt' | 'deletedAt' | 'orderNumber' [OptionalProps]?: 'createdAt' | 'deletedAt'
@ManyToOne(() => InvoiceItem,{nullable:true}) @ManyToOne(() => InvoiceItem, { nullable: true })
invoiceItem?: InvoiceItem invoiceItem?: InvoiceItem
@ManyToOne(() => Product, { nullable: true }) @ManyToOne(() => Product, { nullable: true })
@@ -37,10 +38,10 @@ export class Order extends BaseEntity {
id: string = ulid() id: string = ulid()
@Property({ type: 'string', nullable: true }) @Property({ type: 'string', nullable: true })
title?: string title?: string
@ManyToOne(() => Category) @ManyToOne(() => Category)
type: Category type: Category
@ManyToOne(() => User) @ManyToOne(() => User)
user!: User; user!: User;
@@ -53,9 +54,9 @@ export class Order extends BaseEntity {
@Property({ @Property({
type: 'int', type: 'int',
autoincrement: true unique: true
}) })
orderNumber: number; orderNumber: number & Opt;
@Enum(() => OrderStatusEnum) @Enum(() => OrderStatusEnum)
@@ -67,5 +68,5 @@ export class Order extends BaseEntity {
@Property({ type: 'json' }) @Property({ type: 'json' })
attachments: IAttachment[] = [] attachments: IAttachment[] = []
} }