11import { BaseEntity } from '@app/common/base/base-entity'
22import { OwnedAuthorizer } from '@app/common/base/owned.authorizer'
3+ import { EntityRef } from '@app/common/decorators/entity-ref.decorator'
34import { OwnedEntity } from '@app/common/decorators/owned-entity.decorator'
45import { Reference } from '@app/common/typings/mongodb'
56import { Injectable } from '@nestjs/common'
67import { Field , InputType , ObjectType } from '@nestjs/graphql'
78import { Authorize } from '@ptc-org/nestjs-query-graphql'
89import { prop } from '@typegoose/typegoose'
910import { getAddress , isAddress } from 'ethers/lib/utils'
11+ import { GraphQLString } from 'graphql'
1012import { User } from '../../users/entities/user'
13+ import { Menu } from './menu'
1114import { CreateOrderItemInput , OrderItem , UpdateOrderItemInput } from './order-item'
1215
1316export enum OrderState {
@@ -22,6 +25,7 @@ export class OrderAuthorizer extends OwnedAuthorizer<Order> {}
2225@ObjectType ( )
2326@OwnedEntity ( )
2427@Authorize < Order > ( OrderAuthorizer )
28+ @EntityRef ( 'menu' , ( ) => Menu )
2529export class Order extends BaseEntity {
2630 @prop ( { ref : User , required : true , index : true } )
2731 readonly owner ! : Reference < User >
@@ -38,6 +42,9 @@ export class Order extends BaseEntity {
3842 @Field ( )
3943 state : OrderState
4044
45+ @prop ( { ref : Menu , required : true } )
46+ readonly menu ! : Reference < Menu >
47+
4148 @Field ( ( ) => [ OrderItem ] )
4249 @prop ( { default : [ ] } )
4350 items : OrderItem [ ]
@@ -54,6 +61,9 @@ export class CreateOrderInput {
5461 @Field ( )
5562 state : OrderState
5663
64+ @Field ( ( ) => GraphQLString )
65+ menu : Reference < Menu >
66+
5767 @Field ( ( ) => [ CreateOrderItemInput ] )
5868 items : CreateOrderItemInput [ ]
5969}
0 commit comments