import { Column, CreateDateColumn, UpdateDateColumn, Entity, ManyToOne, JoinColumn, } from 'typeorm'; import { ApiProperty } from '@midwayjs/swagger'; import { Site } from './site.entity'; import { Product } from './product.entity'; @Entity('site_product') export class SiteProduct { @ApiProperty({ example: '12345', description: '站点商品ID', type: 'string', required: true, }) @Column({ primary: true }) id: string; @ApiProperty({ description: '站点ID' }) @Column() siteId: number; @ApiProperty({ description: '商品ID' }) @Column({ nullable: true }) productId: number; @ApiProperty({ description: 'sku'}) @Column() sku: string; @ApiProperty({ description: '类型' }) @Column({ length: 16, default: 'single' }) type: string; @ApiProperty({ description: '产品名称', type: 'string', required: true, }) @Column() name: string; @ApiProperty({ description: '产品图片' }) @Column({ default: '' }) image: string; @ApiProperty({ description: '父商品ID', example: '12345' }) @Column({ nullable: true }) parentId: string; // 站点关联 @ManyToOne(() => Site, site => site.id) @JoinColumn({ name: 'siteId' }) site: Site; // 商品关联 @ManyToOne(() => Product, product => product.id) @JoinColumn({ name: 'productId' }) product: Product; // 父商品关联 @ManyToOne(() => SiteProduct, siteProduct => siteProduct.id) @JoinColumn({ name: 'parentId' }) parent: SiteProduct; @ApiProperty({ example: '2022-12-12 11:11:11', description: '创建时间', required: true, }) @CreateDateColumn() createdAt: Date; @ApiProperty({ example: '2022-12-12 11:11:11', description: '更新时间', required: true, }) @UpdateDateColumn() updatedAt: Date; }