File

packages/server/src/modules/order/order.interface.ts

Index

Properties

Properties

name
Type : string
Decorators :
@IsString()
productCategoryId
Type : number
Decorators :
@IsNumber()
products
Type : OrderProduct[]
Decorators :
@ArrayMinSize(1)
@ArrayMaxSize(100)
import {
  ArrayMaxSize,
  ArrayMinSize,
  IsDate,
  IsNumber,
  IsString,
  Max,
  Min,
} from "class-validator";
import { OrderStatus } from "@bill/database/dist/enums/OrderStatus";

import { BaseQuery } from "@/common/interfaces/query";

export class OrderProduct {
  @IsNumber()
  productId: number;
  @IsNumber()
  price: number;
  @IsNumber()
  count: number;
  @IsNumber()
  discount: number;
}

export class OrderCategory {
  @IsString()
  name: string;

  @IsNumber()
  productCategoryId: number;

  @ArrayMinSize(1)
  @ArrayMaxSize(100)
  products: OrderProduct[];
}

export class OrderRequest {
  @IsString()
  no: string;

  @IsString()
  desc: string;

  @IsNumber()
  customerId?: number;

  totalPrice?: number;

  @ArrayMinSize(1)
  @ArrayMaxSize(100)
  categories: OrderCategory[];
}

export class OrderStatusRequest {
  @IsNumber()
  @Max(2)
  @Min(0)
  status?: OrderStatus;
}

export class OrderWhere {
  @IsDate()
  startDate?: Date;
  
  @IsDate()
  endDate?: Date;

  @IsNumber()
  customerId?: number;

  @IsNumber()
  status?: OrderStatus;

  @IsString()
  no?: string;
}

export class OrderQuery extends BaseQuery<OrderWhere> {}

results matching ""

    No results matching ""