package com.cpop.oam.business.bo;

import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import lombok.Data;
import lombok.experimental.Accessors;

import java.math.BigDecimal;
import java.sql.Date;

/**
 * @author DB
 * @createTime 2023/09/21 15:50
 * @description 报销申请
 */
@Data
@Accessors(chain = true)
@Schema(description = "报销申请请求参数")
public class ReimburseApplicationBo {

    /**
     * 申请类型
     */
    @NotBlank(message = "申请类型不能为空")
    @Schema(description = "申请类型",requiredMode = Schema.RequiredMode.REQUIRED)
    private String typeId;

    /**
     * 报销日期
     */
    @NotNull(message = "报销日期不能为空")
    @Schema(description = "报销日期",requiredMode = Schema.RequiredMode.REQUIRED)
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private Date reportDate;

    /**
     * 申请说明
     */
    @NotBlank(message = "申请说明不能为空")
    @Schema(description = "申请说明",requiredMode = Schema.RequiredMode.REQUIRED)
    private String remarks;

    /**
     * 申请金额
     */
    @NotNull(message = "申请金额不能为空")
    @Schema(description = "申请金额",requiredMode = Schema.RequiredMode.REQUIRED)
    private BigDecimal price;

    /**
     * 附件
     */
    @Schema(description = "附件")
    private String attachmentUrl;

    /**
     * 报销申请id
     */
    @Schema(description = "报销申请id")
    private String id;

}
