86 lines
1.8 KiB
TypeScript
86 lines
1.8 KiB
TypeScript
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;
|
|
} |