package com.muchinfo.mtp3pojos.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

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

/**
 * <p>
 * 商品合约扩展表(通用)
 * </p>
 *
 * @author XKF
 * @since 2025-04-25
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("GOODSEX")
@ApiModel(value="Goodsex对象", description="商品合约扩展表(通用)")
public class Goodsex extends Model<Goodsex> {

    private static final long serialVersionUID = 1L;

    @ApiModelProperty(value = "期货合约ID")
    @TableId(value = "GOODSID")
    private Long goodsid;

    @ApiModelProperty(value = "所属市场ID")
    @TableField("MARKETID")
    private Long marketid;

    @ApiModelProperty(value = "滞纳金起计天数（52）")
    @TableField("LATEFEEDAYS")
    private Integer latefeedays;

    @ApiModelProperty(value = "滞纳金收取方式 1：比率  2：固定（52）")
    @TableField("LATEFEEALGORITHM")
    private Integer latefeealgorithm;

    @ApiModelProperty(value = "滞纳金收取值（52）")
    @TableField("LATEFEEVALUE")
    private BigDecimal latefeevalue;

    @ApiModelProperty(value = "买交收升贴水（52）")
    @TableField("BUYPREMIUM")
    private BigDecimal buypremium;

    @ApiModelProperty(value = "卖交收升贴水（52）")
    @TableField("SELLPREMIUM")
    private BigDecimal sellpremium;

    @ApiModelProperty(value = "提示定金率（52）")
    @TableField("PROMPTDEPOSITRATE")
    private BigDecimal promptdepositrate;

    @ApiModelProperty(value = "斩仓定金率（52）")
    @TableField("CUTDEPOSITRATE")
    private BigDecimal cutdepositrate;

    @ApiModelProperty(value = "定金率是否变更 - 0:否 1:是（52）")
    @TableField("ISDEPOSITCHANGED")
    private Integer isdepositchanged;

    @ApiModelProperty(value = "是否全部单据生效 - 0:否(仅新单据生效) 1:是(全部单据生效)（52）")
    @TableField("ISTOALL")
    private Integer istoall;

    @ApiModelProperty(value = "新提示定金率（52）")
    @TableField("NEWPROMPTDEPOSITRATE")
    private BigDecimal newpromptdepositrate;

    @ApiModelProperty(value = "新斩仓定金率（52）")
    @TableField("NEWCUTDEPOSITRATE")
    private BigDecimal newcutdepositrate;

    @ApiModelProperty(value = "最小交收手数(50-线下交收)")
    @TableField("MINDELIVERYLOT")
    private Long mindeliverylot;

    @ApiModelProperty(value = "点差下限(46)")
    @TableField("MINSPREAD")
    private BigDecimal minspread;

    @ApiModelProperty(value = "点差上限(46)")
    @TableField("MAXSPREAD")
    private BigDecimal maxspread;

    @ApiModelProperty(value = "商品显示顺序(99)")
    @TableField("GOODSORDER")
    private String goodsorder;

    @ApiModelProperty(value = "是否允许自动追加定金: 0-否 1-是(52)")
    @TableField("CANAUTOADDDEPOSIT")
    private Integer canautoadddeposit;

    @ApiModelProperty(value = "自动追加定金率(52) - 允许时显示")
    @TableField("ADDDEPOSITRATE")
    private BigDecimal adddepositrate;

    @ApiModelProperty(value = "是否允许自动退还定金: 0-否 1-是(52)")
    @TableField("CANAUTOREFUNDDEPOSIT")
    private Integer canautorefunddeposit;

    @ApiModelProperty(value = "新自动追加定金率(52) - 允许时显示")
    @TableField("NEWADDDEPOSITRATE")
    private BigDecimal newadddepositrate;

    @ApiModelProperty(value = "定金率修改待审核标识(52) - 0:不需审核 1:待审核")
    @TableField("DRAUDITFLAG")
    private Integer drauditflag;

    @ApiModelProperty(value = "临时转让定金比例(49)")
    @TableField("TMPTRANSFERDEPOSITRATIO")
    private BigDecimal tmptransferdepositratio;

    @ApiModelProperty(value = "期货合约名称泰文)")
    @TableField("GOODSNAMETH")
    private String goodsnameth;

    @ApiModelProperty(value = "期货合约名称(英文)")
    @TableField("GOODSNAMEEN")
    private String goodsnameen;

    @ApiModelProperty(value = "期货合约名称(繁体)")
    @TableField("GOODSNAMETW")
    private String goodsnametw;

    @ApiModelProperty(value = "买交收升贴水算法(验收费) - 1:比率 2：固定(每单位) - 枚举:premiumAutoMode")
    @TableField("BUYPRICEMOVEALGORITHM")
    private Integer buypricemovealgorithm;

    @ApiModelProperty(value = "买交收升贴水值(验收费)")
    @TableField("BUYPRICEMOVEVALUE")
    private BigDecimal buypricemovevalue;

    @ApiModelProperty(value = "买交收运费算法(税费) - 1:比率  2：固定(每单位) - 枚举:premiumAutoMode")
    @TableField("BUYSHIPPINGFEEALGORITHM")
    private Integer buyshippingfeealgorithm;

    @ApiModelProperty(value = "买交收运费值(税费)")
    @TableField("BUYSHIPPINGFEEVALUE")
    private BigDecimal buyshippingfeevalue;

    @ApiModelProperty(value = "买交收其它费用算法(去掉) - 1:比率 2：固定(每单位) - 枚举:premiumAutoMode")
    @TableField("BUYOTHERFEEALGORITHM")
    private Integer buyotherfeealgorithm;

    @ApiModelProperty(value = "买交收其它费用值(去掉)")
    @TableField("BUYOTHERFEEVALUE")
    private BigDecimal buyotherfeevalue;

    @ApiModelProperty(value = "卖交收升贴水算法(验收费) - 1:比率 2：固定(每单位) - 枚举:premiumAutoMode")
    @TableField("SELLPRICEMOVEALGORITHM")
    private Integer sellpricemovealgorithm;

    @ApiModelProperty(value = "卖交收升贴水值(验收费)")
    @TableField("SELLPRICEMOVEVALUE")
    private BigDecimal sellpricemovevalue;

    @ApiModelProperty(value = "卖交收运费算法(税费) - 1:比率 2：固定(每单位) - 枚举:premiumAutoMode")
    @TableField("SELLSHIPPINGFEEALGORITHM")
    private Integer sellshippingfeealgorithm;

    @ApiModelProperty(value = "卖交收运费值(税费)")
    @TableField("SELLSHIPPINGFEEVALUE")
    private BigDecimal sellshippingfeevalue;

    @ApiModelProperty(value = "卖交收其它费用算法(暂不用) - 1:比率 2：固定(每单位) - 枚举:premiumAutoMode")
    @TableField("SELLOTHERFEEALGORITHM")
    private Integer sellotherfeealgorithm;

    @ApiModelProperty(value = "卖交收其它费用值(暂不用)")
    @TableField("SELLOTHERFEEVALUE")
    private BigDecimal sellotherfeevalue;

    @ApiModelProperty(value = "最大持仓天数(52) -1为不强平")
    @TableField("CLOSEDDAYS")
    private Long closeddays;

    @ApiModelProperty(value = "日最大交收数量(52, -1为不限)")
    @TableField("DAILYMAXBUYDELIVERYQTY")
    private Long dailymaxbuydeliveryqty;

    @ApiModelProperty(value = "日最大交收数量(52, -1为不限)")
    @TableField("DAILYMAXSELLDELIVERYQTY")
    private Long dailymaxselldeliveryqty;

    @ApiModelProperty(value = "协议转让最小价格(-1为不限)")
    @TableField("TRANSFERMINPIRCE")
    private BigDecimal transferminpirce;

    @ApiModelProperty(value = "协议转让最大价格(-1为不限)")
    @TableField("TRANSFERMAXPIRCE")
    private BigDecimal transfermaxpirce;

    @ApiModelProperty(value = "期货合约名称(越南语)")
    @TableField("GOODSNAMEVI")
    private String goodsnamevi;


    @Override
    public Serializable pkVal() {
        return this.goodsid;
    }

}
