package com.casic.missiles.model.finance;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.casic.missiles.dto.finance.SamplePriceDTO;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.validation.constraints.NotEmpty;
import java.io.Serializable;
import java.util.List;

/**
 * <p>
 * 业务结算表-未在合同里的委托书收款信息
 * </p>
 *
 * @author wangpeng
 * @since 2023-03-31
 */
@ApiModel
@Data
@TableName("finance_business_settlement_info")
public class FinanceBusinessSettlementInfo implements Serializable {

    private static final long serialVersionUID = 1L;

    @ApiModelProperty(value = "主键id（编辑接口入参）", dataType = "Long")
    @TableId("id")
    private Long id;

    /**
     * 委托书id
     */
    @ApiModelProperty(value = "委托书id", dataType = "Long", required = true)
    @TableField("order_id")
    private Long orderId;

    /**
     * 建议折扣-单位%
     */
    @ApiModelProperty(value = "建议折扣-单位%", dataType = "Integer", required = true)
    @TableField("suggested_discount")
    private Integer suggestedDiscount;

    /**
     * 附加费用-单位分
     */
    @ApiModelProperty(value = "附加费用-单位分", dataType = "Integer", required = true)
    @TableField("extra_charge")
    private Integer extraCharge;

    /**
     * 附加费用说明
     */
    @ApiModelProperty(value = "附加费用说明", dataType = "String", required = true)
    @TableField("extra_charge_illustration")
    private String extraChargeIllustration;

    /**
     * 创建时间
     */
    @ApiModelProperty(hidden = true)
    @TableField("create_time")
    private String createTime;

    /**
     * 更新时间
     */
    @ApiModelProperty(hidden = true)
    @TableField("update_time")
    private String updateTime;

    /**
     * 样品清单（委托书-样品关联表ids）
     */
    @NotEmpty(message = "样品清单不能为空")
    @ApiModelProperty(value = "样品清单（委托书-样品关联表主键id和标价实体列表）", dataType = "List", required = true)
    @TableField(exist = false)
    private List<SamplePriceDTO> samplePriceList;
}
