package cn.iocoder.yudao.module.system.dal.dataobject.restaurant;

import cn.iocoder.yudao.module.system.controller.admin.restaurant.enums.UserType;
import com.alibaba.excel.annotation.ExcelIgnore;
import com.alibaba.excel.annotation.ExcelProperty;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.util.*;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import com.baomidou.mybatisplus.annotation.*;
import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;

/**
 * 长者点餐统计 DO
 *
 * @author 系统管理员
 */
@TableName("restaurant_dishes_order_statistics_v2")
@KeySequence("restaurant_dishes_order_statistics_v2_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库，可不写。
@Data
@ToString(callSuper = true)
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class DishesOrderStatisticsDO {

    /**
     * 主键ID
     */
    @TableId
    private Long id;
    /**
     * 用户类型 EMPLOYEE/ELDER
     */
    @Schema(description = "用户类型")
    @ExcelIgnore
    private UserType userType;
    /**
     * 长者ID
     */
    @Schema(description = "长者ID")
    private Long elderId;
    /**
     * 餐厅ID
     */
    @Schema(description = "餐厅ID")
    private Long restaurantId;
    /**
     * 餐厅名称
     */
    @Schema(description = "餐厅名称")
    @ExcelProperty(value = "餐厅名称")
    private String restaurantName;
    /**
     * 点餐月份
     */
    @Schema(description = "点餐月份")
    private String month;
    /**
     * 点餐次数
     */
    @Schema(description = "点餐次数")
    @ExcelProperty(value = "点餐次数")
    private Integer count;
    /**
     * 合计金额
     */
    @Schema(description = "合计金额")
    @ExcelProperty(value = "合计金额(元)")
    private BigDecimal totalAmount;

    /**
     * 备注
     */
    @Schema(description = "备注")
    private String remarks;

    /**
     * 状态，0：待送达 1：已送达  2：已取消
     */
    @Schema(description = "状态，0：待送达 1：已送达  2：已取消")
    private Integer status;

    /**
     * 创建时间
     */
    @Schema(description = "创建时间")
    private Date createdTime;
    /**
     * 创建人
     */
    @Schema(description = "创建人")
    @TableField(exist = false)
    private String createdBy;


    @TableField(exist = false)
    @ExcelProperty(value = "长者名称")
    private String elderName;

    @Schema(description = "点餐人姓名")
    @ExcelProperty(value = "点餐人姓名")
    private String submitterName;

    /**
     * 订餐日期
     */
    @Schema(description = "订餐日期")
    @ExcelIgnore
    private Date orderDate;

    @Schema(description = "租户id")
    @ExcelIgnore
    private Long tenantId;
}