import { Collection, Entity, ManyToMany, Property } from '@mikro-orm/core'; import { Category } from './category.entity'; import { BaseEntity } from 'src/common/entities/base.entity'; @Entity({ tableName: 'foods' }) export class Foods extends BaseEntity { @ManyToMany(() => Category) categories = new Collection(this); @Property({ nullable: true }) title?: string; @Property({ type: 'text', nullable: true }) content?: string; @Property({ type: 'decimal', precision: 10, scale: 2, nullable: true }) price?: number; @Property({ type: 'int', nullable: true }) points?: number; @Property({ type: 'int', nullable: true }) order?: number; @Property({ type: 'int', nullable: true }) prepareTime?: number; // in minutes @Property({ type: 'boolean', default: false }) sat: boolean = false; @Property({ type: 'boolean', default: false }) sun: boolean = false; @Property({ type: 'boolean', default: false }) mon: boolean = false; @Property({ type: 'boolean', default: false }) breakfast: boolean = false; @Property({ type: 'boolean', default: false }) noon: boolean = false; @Property({ type: 'boolean', default: false }) dinner: boolean = false; @Property({ type: 'boolean', default: false }) isPickup: boolean = false; @Property({ type: 'int', default: 0 }) stock: number = 0; @Property({ type: 'int', default: 0 }) stockDefault: number = 0; @Property({ type: 'boolean', default: true }) isActive: boolean = true; // you can store image URLs as JSON array @Property({ type: 'json', nullable: true }) images?: string[]; @Property({ type: 'boolean', default: false }) inPlaceServe: boolean = false; @Property({ type: 'boolean', default: false }) pickupServe: boolean = false; @Property({ type: 'float', default: 0 }) rate: number = 0; @Property({ type: 'float', default: 0 }) discount: number = 0; }