import { Collection, Entity, ManyToMany, ManyToOne, Property } from '@mikro-orm/core'; import { Category } from './category.entity'; import { BaseEntity } from '../../../common/entities/base.entity'; import { Restaurant } from '../../../modules/restaurants/entities/restaurant.entity'; @Entity({ tableName: 'foods' }) export class Food extends BaseEntity { @ManyToOne(() => Restaurant) restaurant: Restaurant; @ManyToMany(() => Category) categories = new Collection(this); @Property({ nullable: true }) title?: string; @Property({ type: 'text', nullable: true }) desc?: string; @Property({ type: 'json', 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: 'int', default: 0 }) stock: number = 0; @Property({ type: 'int', default: 0 }) stockDefault: number = 0; @Property({ type: 'boolean', default: true }) isActive: boolean = true; @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; }