diff --git a/backend/src/infrastructure/data_access/repositories/models/order-note-model.interface.ts b/backend/src/infrastructure/data_access/repositories/models/order-note-model.interface.ts index 7c572010..9fe5566d 100644 --- a/backend/src/infrastructure/data_access/repositories/models/order-note-model.interface.ts +++ b/backend/src/infrastructure/data_access/repositories/models/order-note-model.interface.ts @@ -2,5 +2,6 @@ import { Types } from 'mongoose'; export interface IOrderNoteModel { orderId: Types.ObjectId; + menuId: Types.ObjectId; note: string; } diff --git a/backend/src/infrastructure/data_access/repositories/schemas/order-note.schema.ts b/backend/src/infrastructure/data_access/repositories/schemas/order-note.schema.ts index 987ac182..0e91904f 100644 --- a/backend/src/infrastructure/data_access/repositories/schemas/order-note.schema.ts +++ b/backend/src/infrastructure/data_access/repositories/schemas/order-note.schema.ts @@ -4,6 +4,7 @@ import { IOrderNoteModel } from '../models/order-note-model.interface'; import mongoose, { Document, Types } from 'mongoose'; import { Type } from 'class-transformer'; import { OrderDataModel } from './order.schema'; +import { MenuDataModel } from './menu.schema'; export type OrderNoteDocument = OrderNoteModel & Document; export class OrderNoteModel extends BaseDocument implements IOrderNoteModel { @@ -13,6 +14,10 @@ export class OrderNoteModel extends BaseDocument implements IOrderNoteModel { @Prop({ type: mongoose.Schema.Types.ObjectId }) @Type(() => OrderDataModel) orderId: Types.ObjectId; + + @Prop({ type: mongoose.Schema.Types.ObjectId }) + @Type(() => MenuDataModel) + menuId: Types.ObjectId; } export const OrderNoteSchema = SchemaFactory.createForClass(OrderNoteModel); diff --git a/backend/src/order_notes/dto/create-order_note.dto.ts b/backend/src/order_notes/dto/create-order_note.dto.ts index d1dd5871..8a3e8b75 100644 --- a/backend/src/order_notes/dto/create-order_note.dto.ts +++ b/backend/src/order_notes/dto/create-order_note.dto.ts @@ -11,4 +11,9 @@ export class CreateOrderNoteDTO { @IsNotEmpty() @Length(2, 128) readonly orderId: Types.ObjectId; + + @IsString() + @IsNotEmpty() + @Length(2, 128) + readonly menuId: Types.ObjectId; } diff --git a/backend/src/order_notes/interface/order-note.interface.ts b/backend/src/order_notes/interface/order-note.interface.ts index 1108d2bf..4a87d340 100644 --- a/backend/src/order_notes/interface/order-note.interface.ts +++ b/backend/src/order_notes/interface/order-note.interface.ts @@ -3,6 +3,7 @@ import { Audit } from 'src/domain'; export interface IOrderNote { orderId: Types.ObjectId; + menuId: Types.ObjectId; note: string; audit: Audit; } diff --git a/backend/src/order_notes/order_note.mapper.ts b/backend/src/order_notes/order_note.mapper.ts index bae65dc9..77872f65 100644 --- a/backend/src/order_notes/order_note.mapper.ts +++ b/backend/src/order_notes/order_note.mapper.ts @@ -8,7 +8,7 @@ import { OrderNote } from './order_note'; export class OrderNoteMapper implements IMapper { constructor(private readonly auditMapper: AuditMapper) {} toPersistence(entity: OrderNote): OrderNoteModel { - const { id, orderId, note, audit } = entity; + const { id, orderId, note, menuId, audit } = entity; const { auditCreatedBy, auditCreatedDateTime, @@ -20,6 +20,7 @@ export class OrderNoteMapper implements IMapper { const orderNoteDocument: OrderNoteModel = { _id: id, orderId, + menuId, note, auditCreatedBy, auditCreatedDateTime, @@ -32,11 +33,12 @@ export class OrderNoteMapper implements IMapper { } toDomain(model: OrderNoteModel): OrderNote { - const { _id, orderId, note } = model; + const { _id, orderId, note, menuId } = model; const entity: OrderNote = OrderNote.create( { orderId, note, + menuId, audit: this.auditMapper.toDomain(model), }, _id, diff --git a/backend/src/order_notes/order_note.ts b/backend/src/order_notes/order_note.ts index cc037d80..c0c2905c 100644 --- a/backend/src/order_notes/order_note.ts +++ b/backend/src/order_notes/order_note.ts @@ -13,6 +13,7 @@ export class OrderNote extends Entity { private _orderId: Types.ObjectId; private _note: string; private _audit: Audit; + private _menuId: Types.ObjectId; /** * Creates an instance of OrderNotes. @@ -24,16 +25,25 @@ export class OrderNote extends Entity { this._orderId = props.orderId; this._note = props.note; this._audit = props.audit; + this._menuId = props.menuId; } get note(): string { return this._note; } + set note(note: string) { + this._note = note; + } + get orderId(): Types.ObjectId { return this._orderId; } + get menuId(): Types.ObjectId { + return this._menuId; + } + get audit() { return this._audit; }