MenuDbDTO.java 4.19 KB
package com.infoloop.tianting.model.dto;

import com.infoloop.tianting.clientcustomerorderservice.OrderSourceEnum;
import com.infoloop.tianting.menuservice.CloseTimeTypeEnum;
import com.infoloop.tianting.menuservice.DishSelectRuleEnum;
import com.infoloop.tianting.menuservice.DishTypeEnum;
import com.infoloop.tianting.menuservice.ModeOfPaymentEnum;
import com.infoloop.tianting.model.dto.MenuDbDTO.CreateMenuRefsDto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import io.swagger.models.auth.In;
import java.time.LocalDateTime;
import java.util.List;
import lombok.Builder;
import lombok.Data;
import lombok.ToString;

@Data
@ApiModel(description = "餐单DTO")
public class MenuDbDTO {

  @Data
  @Builder
  @ToString
  @ApiModel(description = "餐单规则")
  public static class OrderRuleJson {
    private CloseTimeTypeEnum closeTimeType;//截单类型
    private String  startTime;//允许下单时间开始
    private String endTime;//允许下单时间结束
    private String deadline;//截单时间
    private Integer earlyDays;//提前天数
    DishSelectRuleEnum dishSelectRule;//选菜规则
    private Integer placeOrderCount;//允许下单次数 0 无限制
    private boolean allowMicroPlaceOrder;//允许小程序下单
    ModeOfPaymentEnum modeOfPayment;//支付方式
  }

  @Data
  @Builder
  @ToString
  @ApiModel(description = "排菜规则")
  public static class DishRuleJson {
    private DishTypeEnum dishType;//排菜类型DishTypeEnum
    private Integer days; //天数或周几
    private List<Integer> mealIds;//餐别Ids
  }

  @Data
  @Builder
  @ToString
  @ApiModel(description = "订单菜品详情数据")
  public static class MenuDto {

    private Integer id;
    private Integer enterpriseId;
    private String code;
    private String name;
    private Integer status;
    private boolean customerScope;
    private String nutritionPromotion;
    private boolean nutritionalStatistics;
    OrderRuleJson orderRuleJson;
    DishRuleJson dishRuleJson;
    @ApiModelProperty(value = "创建人 ID")
    private Integer createdBy;

    @ApiModelProperty(value = "创建时间")
    private String createdAt;

    @ApiModelProperty(value = "创建来源")
    private Integer creationSource;

    @ApiModelProperty(value = "修改人 ID")
    private Integer updatedBy;

    @ApiModelProperty(value = "修改时间")
    private String updatedAt;

    @ApiModelProperty(value = "更新来源")
    private Integer updateSource;

    @ApiModelProperty(value = "发布时间")
    private String publishAt;
  }

  @Data
  @Builder
  @ToString
  @ApiModel(description = "餐单详情数据")
  public static class MenuDetailDto {
    private Integer id;
    private Integer enterpriseId;
    private Integer menuId;
    private Integer days;
    private Integer mealId;
    private Integer categoryId;
    private Integer skuId;
    private String showName;
    private Integer price;
    private Integer createdBy;
    private String createdAt;
    private Integer creationSource;
    private Integer updatedBy;
    private String updatedAt;
    private Integer updateSource;
    private boolean isDeleted;
  }

  @Data
  @Builder
  @ToString
  @ApiModel(description = "餐单绑定数据")
  public static class MenuRefDto {
    private Integer id;
    private Integer enterpriseId;
    private Integer menuId;
    private Integer customerId;
    String bindAt;
    private boolean isTop;
    private Integer createdBy;
    String createdAt;
    private Integer creationSource;
  }

  @Data
  @Builder
  @ToString
  @ApiModel(description = "批量餐单绑定数据")
  public static class CreateMenuRefsDto {
    private Integer menuId;
    private Integer customerId;
    private boolean isTop;
  }

  @Data
  @Builder
  @ToString
  @ApiModel(description = "批量餐单绑定数据")
  public static class BatchCreateMenuRefsDto {
    private Integer createdBy;
    private OrderSourceEnum creationSource;
    private Integer enterpriseId;
    private List<CreateMenuRefsDto> creations;
  }

  @Data
  @Builder
  @ToString
  @ApiModel(description = "批量餐单绑定数据")
  public static class BatchCreateMenuRefsResponseDto {
    private Boolean isCreated;
    private List<Integer> ids;
  }

}