package com.yc.ship.module.product.dal.dataobject.productSaleRule;

import com.baomidou.mybatisplus.annotation.KeySequence;
import com.baomidou.mybatisplus.annotation.TableName;
import com.yc.ship.framework.tenant.core.db.TenantBaseDO;
import lombok.*;

/**
 * 产品销售规则 DO
 *
 * @author 管理员
 */
@TableName("product_sale_rule")
@KeySequence("product_sale_rule_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库，可不写。
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class ProductSaleRuleDO extends TenantBaseDO {

    /**
     * 主键同产品ID
     */
    private Long id;
    /**
     * 需提前几小时预购
     */
    private Integer prebuyLimitDay;
    /**
     * 需提前多少小时预购
     */
    private Integer prebuyLimitHour;
    /**
     * 预售天数: 默认15天,最大90天
     */
    private Integer presaleLimitDay;
    /**
     * 一票多人人数（最小值1）
     */
    private Integer oneLimitNum;
    /**
     * 下单当前产品最小票数，不填不限制
     */
    private Integer minNum;
    /**
     * 下单当前产品最大票数，不填不限制
     */
    private Integer maxNum;
    /**
     * 是否实名
     */
    private Integer isLimitType;
    /**
     * 实名制方式 0身份证 1护照 2人像 3社保卡
     */
    private String limitCertificate;
    /**
     * 是否需要游客姓名
     */
    private Integer needVisitorName;
    /**
     * 是否需要游客手机号
     */
    private Integer needVisitorPhone;
    /**
     * 是否需要订单联系人
     */
    private Integer needContact;
    /**
     * 允许购买区域：多个区域以,分隔
     */
    private String allowArea;
    /**
     * 允许购买地址：多个地址以,分隔
     */
    private String allowAddr;
    /**
     * 限制购买区域：多个区域以,分隔
     */
    private String limitArea;
    /**
     * 限制购买地址：多个地址以,分隔
     */
    private String limitAddr;
    /**
     * 年龄限制
     */
    private String limitAge;
    /**
     * 性别限制 0男士可买 1女生可买
     */
    private Integer limitSex;
    /**
     * 能否重复购买:0不可以，1可以
     */
    private Integer canRepeatBuy;
    /**
     * 生日票验证 0不验证 1按日验证 2按月验证
     */
    private Integer birthdayVerifyType;
    /**
     * 是否需要激活
     */
    private Integer needActivate;
    /**
     * 激活方式 1下单即激活 2下单后几天内激活
     */
    private Integer activateType;
    /**
     * 激活有效期 下单后几天内激活 不填不限制
     */
    private Integer activateDayNum;
    /**
     * 订单是否需要二次确认 0否 1是
     */
    private Integer needConfirm;

}