package com.xmomen.module.plan.model;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

import lombok.Data;

/**
 * TablePlanModel类用于封装餐桌计划相关的数据，实现了Serializable接口，
 * 这意味着该类的对象可以被序列化，方便在网络传输或持久化存储中使用。
 * 使用Lombok的@Data注解，自动生成了getter、setter、toString、equals和hashCode等方法。
 */
@Data
public class TablePlanModel implements Serializable {
    // 餐桌计划的唯一标识，用于在数据库中唯一确定一条餐桌计划记录
    private Integer id;

    // 餐桌计划的标识，可用于关联其他相关的计划信息
    private Integer cdPlanId;
    // 餐桌计划的名称，用于直观地描述该计划
    private String planName;

    // 审核状态，0表示未审核，1表示审核通过
    private Integer auditStatus;

    // 是否暂停，0表示不暂停，1表示暂停
    private Integer isStop;

    // 卡号，可能与会员卡或其他卡类相关联
    private String couponNumber;

    // 收货人的手机号码，用于联系收货人
    private String consigneePhone;

    // 收货人的姓名
    private String consigneeName;

    // 收货人的地址
    private String consigneeAddress;

    // 收货地址对应的邮政编码
    private String postcode;

    // 单位名称，表明该餐桌计划所属的单位
    private String companyName;
    // 单位的唯一标识
    private int companyId;

    // 所属客服经理的姓名
    private String managerName;
    // 所属客服经理的唯一标识
    private int managerId;

    // 总配送次数，即该餐桌计划总共需要配送的次数
    private Integer totalSendValue;

    // 已配送次数，记录已经完成的配送次数
    private Integer sendValue;

    // 生效时间，该餐桌计划开始生效的日期
    private Date beginTime;

    // 配送频率，例如1周、2周、3周等，以整数表示
    private Integer deliveryType;

    // 配送时间，指定一周中的星期几进行配送
    private String sendWeekDay;

    // 上次配送的日期
    private Date lastSendDate;

    // 下次配送的日期
    private Date nextSendDate;

    // 是否随机，0表示不随机，1表示随机
    private Integer isRandom;

    // 产品归属的类别标识，用于对产品进行分类
    private Integer cdCategoryId;

    // 随机数，可能用于一些随机分配或计算的场景
    private Integer randomNum;

    // 计划的金额，该餐桌计划涉及的费用金额
    private BigDecimal price;
}