122 lines
2.4 KiB
TypeScript
122 lines
2.4 KiB
TypeScript
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;
|
|
// }
|
|
|
|
}
|