package cn.iocoder.yudao.module.asset.controller.admin.returnorder.vo;

import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.NotNull;
import lombok.Data;

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

@Schema(description = "管理后台 - 还车单创建/更新 Request VO")
@Data
public class ReturnOrderSaveReqVO {

    @Schema(description = "主键")
    private Long id;

    @Schema(description = "合同ID", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "合同ID不能为空")
    private Long contractId;

    @Schema(description = "合同编码")
    private String contractCode;

    @Schema(description = "项目名称")
    private String projectName;

    @Schema(description = "客户ID")
    private Long customerId;

    @Schema(description = "客户名称")
    private String customerName;

    @Schema(description = "还车日期", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "还车日期不能为空")
    private LocalDateTime returnDate;

    @Schema(description = "还车验收人", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "还车验收人不能为空")
    private String returnPerson;

    @Schema(description = "还车地点")
    private String returnLocation;

    @Schema(description = "还车原因")
    private String returnReason;

    @Schema(description = "还车原因说明")
    private String returnReasonDesc;

    @Schema(description = "退还保证金")
    private BigDecimal depositRefund;

    @Schema(description = "氢气退款")
    private BigDecimal hydrogenRefund;

    @Schema(description = "其他费用")
    private BigDecimal otherCharges;

    @Schema(description = "还车照片")
    private String returnPhotos;

    @Schema(description = "车辆列表")
    private List<ReturnOrderVehicleVO> vehicles;

}
