package cn.iocoder.yudao.module.system.controller.admin.biz.vo;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;

import javax.validation.constraints.NotNull;
import java.math.BigDecimal;
import java.time.LocalDate;

import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY;

@Schema(description = "管理后台 - 床位对调 Request VO")
@Data
public class BedSwapReqVO {

    @Schema(description = "开始日期", requiredMode = Schema.RequiredMode.REQUIRED, example = "2024-10-01")
    @NotNull(message = "开始日期不能为空")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY)
    private LocalDate startDate;

    @Schema(description = "长者A ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "1001")
    @NotNull(message = "长者A ID不能为空")
    private Long elderIdA;

    @Schema(description = "长者B ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "1002")
    @NotNull(message = "长者B ID不能为空")
    private Long elderIdB;

    @Schema(description = "长者A床位ID（用于校验/对调目标）", example = "2001")
    private Long bedIdA;

    @Schema(description = "长者B床位ID（用于校验/对调目标）", example = "2002")
    private Long bedIdB;

    @Schema(description = "长者A原费用项目ID", example = "3001")
    private Long originalExpenseItemIdA;

    @Schema(description = "长者B原费用项目ID", example = "3002")
    private Long originalExpenseItemIdB;

    @Schema(description = "长者A新费用项目ID", example = "4001")
    private Long newItemIdA;

    @Schema(description = "长者B新费用项目ID", example = "4002")
    private Long newItemIdB;

    @Schema(description = "长者A是否打折", example = "1")
    private Integer isDiscountA;

    @Schema(description = "长者B是否打折", example = "1")
    private Integer isDiscountB;

    @Schema(description = "长者A折扣金额", example = "100")
    private BigDecimal discountAmountA;

    @Schema(description = "长者B折扣金额", example = "100")
    private BigDecimal discountAmountB;

    @Schema(description = "长者A实际费用金额", example = "900")
    private BigDecimal actualAmountA;

    @Schema(description = "长者B实际费用金额", example = "900")
    private BigDecimal actualAmountB;

    @Schema(description = "长者A是否包房", example = "1")
    private Integer isPrivateA;

    @Schema(description = "长者B是否包房", example = "1")
    private Integer isPrivateB;
}
