package com.yuchen.saas.payment.api.vo;

import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.NullSerializer;
import com.yuchen.saas.payment.api.entity.PmgOrderTypeExpenseItem;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;
import java.util.Date;
import java.util.List;

/**
 * <p>
 * 订单类型设置
 * </p>
 *
 * @author miaoqs
 * @since 2023-11-07
 */
@Data
public class PmgOrderTypeSetVO implements Serializable {

    /**
     * 主键
     */
    @ApiModelProperty(name = "id", value = "主键")
    private Long id;
    /**
     * 业务类型
     */
    @ApiModelProperty(name = "businessId", value = "业务类型")
    private Long businessId;
    /**
     * 订单类型名称
     */
    @ApiModelProperty(name = "orderTypeName", value = "订单类型名称")
    private String orderTypeName;
    /**
     * 包含费用项
     */
    @ApiModelProperty(name = "expenseItemNameStr", value = "包含费用项")
    private String expenseItemNameStr;
    /**
     * 订单类型编号
     */
    @ApiModelProperty(name = "orderTypeNum", value = "订单类型编号")
    private String orderTypeNum;
    /**
     * 可开票种类,可多选,逗号隔开(1:普通发票;2:专用发票)
     */
    @ApiModelProperty(name = "openInvoiceType", value = "可开票种类,可多选,逗号隔开(1:普通发票;2:专用发票)")
    private String openInvoiceType;
    /**
     * 费用项目设置方式(1:绑定账单费用项目;2:直接选择费用项目)
     */
    @ApiModelProperty(name = "costType", value = "费用项目设置方式(1:绑定账单费用项目;2:直接选择费用项目)")
    private Integer costType;
    /**
     * 关联订单类型
     */
    @JsonSerialize(nullsUsing = NullSerializer.class)
    @ApiModelProperty(name = "billOrderId", value = "关联订单类型")
    private Long billOrderId;
    /**
     * 启停状态 1:开启;0:关闭
     */
    @ApiModelProperty(name = "openState", value = "启停状态 1:开启;0:关闭")
    private Integer openState;
    /**
     * 备注
     */
    @ApiModelProperty(name = "remark", value = "备注")
    private String remark;
    /**
     * 创建时间
     */
    @ApiModelProperty(name = "createTime", value = "创建时间")
    private Date createTime;
    /**
     * 创建人id
     */
    @ApiModelProperty(name = "createUser", value = "创建人id")
    private Long createUser;
    /**
     * 创建人
     */
    @ApiModelProperty(name = "createUserStr", value = "创建人")
    private String createUserStr;
    /**
     * 订单类型费用项目关联表
     */
    @ApiModelProperty(name = "expenseItemList", value = "订单类型费用项目关联表")
    private List<PmgOrderTypeExpenseItem> expenseItemList;

}
