package cn.iocoder.yudao.module.smartfactory.controller.admin.industrialinjury.vo;

import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import java.math.BigDecimal;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.List;

@Schema(description = "管理后台 - 厂区工伤 Response VO")
@Data
@ExcelIgnoreUnannotated
public class IndustrialInjuryRespVO {

    @Schema(description = "主键id", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
    @ExcelProperty("主键id")
    private Long id;

    @Schema(description = "用户编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "146")
    @ExcelProperty("用户编号")
    private Long staffId;

    @Schema(description = "用户名称")
    private String staffName;

    @Schema(description = "所属工厂编号", example = "10000008")
    @ExcelProperty("所属工厂编号")
    private Long factoryId;

    @Schema(description = "所属工厂名称")
    private String factoryName;

    @Schema(description = "发生时间")
    @ExcelProperty("发生时间")
    private LocalDate happenTime;

    @Schema(description = "受伤原因")
    @ExcelProperty("受伤原因")
    private String reason;

    @Schema(description = "医药垫资金额")
    @ExcelProperty("医药垫资金额")
    private BigDecimal advancePayment;

    @Schema(description = "医药垫资明细")
    private List<AdvancePaymentItem> advancePaymentItems;

    @Schema(description = "理赔金额")
    @ExcelProperty("理赔金额")
    private BigDecimal claimAmount;

    @Schema(description = "理赔明细")
    private List<ClaimAmountItem> claimAmountItems;

    @Schema(description = "协议理赔金额")
    private BigDecimal agreementClaimAmount;

    @Schema(description = "协议理赔明细")
    private List<ClaimAmountItem> agreementClaimItems;

    @Schema(description = "理赔总金额")
    private BigDecimal claimTotalAmount;

    @Schema(description = "备注")
    private String notes;

    @Schema(description = "状态 | 1处理中 2已完成")
    private Integer status;

    @Schema(description = "是否上传发票 |0否 1是")
    private Integer isUploadInvoice;

    @Schema(description = "是否保险理赔|0否 1是")
    private Integer isInsuranceClaims;

    @Schema(description = "是否协议理赔|0否 1是")
    private Integer isAgreementClaims;

    @Schema(description = "发票文件信息")
    private List<UploadFilesVO> invoiceFileItems;

    @Schema(description = "附件信息")
    @ExcelProperty("附件信息")
    private List<UploadFilesVO> fileItems;

    @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
    @ExcelProperty("创建时间")
    private LocalDateTime createTime;
}