package com.cool.store.request.xgj;

import com.alibaba.fastjson.annotation.JSONField;
import com.cool.store.utils.UUIDUtils;
import com.fasterxml.jackson.annotation.JsonProperty;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.List;

/**
 * <p>
 * 新管家报销单Request
 * </p>
 *
 * @author wangff
 * @since 2025/11/28
 */
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
public class XgjReimburseRequest {
    
    @ApiModelProperty("公司抬头")
    private String legalEntity;

    @ApiModelProperty("提交人(编码)")
    private String coverUser;

    @ApiModelProperty("退款事由")
    private String reimburseName;

    @ApiModelProperty("退款类型(填提供的中文选项)")
    @JsonProperty("CF175")
    @JSONField(name = "CF175")
    private String cf175;

    @ApiModelProperty("退款项目(填提供的中文选项)")
    @JsonProperty("CF176")
    @JSONField(name = "CF176")
    private String cf176;
    
    @ApiModelProperty("关店分类(填提供的中文选项)")
    @JsonProperty("CF333")
    @JSONField(name = "CF333")
    private String cf333;

    @ApiModelProperty("关店原因1(填提供的中文选项)，管理要求闭店时填写")
    @JsonProperty("CF334")
    @JSONField(name = "CF334")
    private String cf334;

    @ApiModelProperty("关店原因2(填提供的中文选项)，加盟商自行闭店时填写")
    @JsonProperty("CF335")
    @JSONField(name = "CF335")
    private String cf335;
    
    @ApiModelProperty("门店编码")
    @JsonProperty("CF177")
    @JSONField(name = "CF177")
    private String cf177;

    @ApiModelProperty("门店名称")
    @JsonProperty("CF178")
    @JSONField(name = "CF178")
    private String cf178;
    
    @ApiModelProperty("其他说明")
    private String comments;

    @ApiModelProperty("退款加盟商编码")
    private String tradingPartner;
    
    @ApiModelProperty("汇款用途(填提供的中文选项)")
    @JsonProperty("CF242")
    @JSONField(name = "CF242")
    private String cf242;
    
    @ApiModelProperty("汇款备注(填提供的中文选项)")
    @JsonProperty("CF243")
    @JSONField(name = "CF243")
    private String cf243;
    
    @ApiModelProperty("账户名")
    private String bankAcctName;

    @ApiModelProperty("银行账户")
    private String bankAcctNumber;
    
    @ApiModelProperty("开户行")
    private String bankName;
    
    @ApiModelProperty("收款账户类型，个人PERSONAL  公司CORP")
    private String accountType;

    @ApiModelProperty("联行号")
    private String bankBranchNo;
    
    @ApiModelProperty("费用明细")
    private List<XgjReimburseFeeRequest> expenseList;
}
