import { ApiProperty } from '@midwayjs/swagger'; import { Exclude, Expose } from 'class-transformer'; import { // BeforeInsert, // BeforeUpdate, Column, CreateDateColumn, Entity, PrimaryGeneratedColumn, UpdateDateColumn, } from 'typeorm'; // import { Product } from './product.entity'; @Entity('order_sale') @Exclude() export class OrderSale { // @ManyToOne(() => Product, { onDelete: 'CASCADE' }) // @JoinColumn({ name: 'productId' }) // product: Product; @ApiProperty() @PrimaryGeneratedColumn() @Expose() id?: number; @ApiProperty() @Column() @Expose() orderId: number; // 订单 ID @ApiProperty() @Column({ nullable: true }) @Expose() siteId: number; // 来源站点唯一标识 @ApiProperty() @Column({ nullable: true }) @Expose() externalOrderItemId: string; // WooCommerce 订单item ID @ApiProperty() @Column() @Expose() productId: number; @ApiProperty() @Column() @Expose() name: string; @ApiProperty({ description: 'sku', type: 'string' }) @Expose() @Column() sku: string; @ApiProperty() @Column() @Expose() quantity: number; @ApiProperty() @Column({ default: false }) @Expose() isPackage: boolean; @ApiProperty() @Column({ default: false }) @Expose() isYoone: boolean; @ApiProperty() @Column({ default: false }) @Expose() isZex: boolean; @ApiProperty({ nullable: true }) @Column({ type: 'int', nullable: true }) @Expose() size: number | null; // 其实是 strength @ApiProperty() @Column({ default: false }) @Expose() isYooneNew: boolean; @ApiProperty({ example: '2022-12-12 11:11:11', description: '创建时间', }) @CreateDateColumn() @Expose() createdAt?: Date; @ApiProperty({ example: '2022-12-12 11:11:11', description: '更新时间', }) @UpdateDateColumn() @Expose() updatedAt?: Date; // // === 自动计算逻辑 === // @BeforeInsert() // @BeforeUpdate() // setFlags() { // if (!this.name) return; // const lower = this.name.toLowerCase(); // this.isYoone = lower.includes('yoone'); // this.isZex = lower.includes('zex'); // this.isYooneNew = this.isYoone && lower.includes('new'); // let size: number | null = null; // const sizes = [3, 6, 9, 12, 15, 18]; // for (const s of sizes) { // if (lower.includes(s.toString())) { // size = s; // break; // } // } // this.size = size; // } }