package com.tashow.cloud.productapi.api.product.vo.prodemergencyresponseintervals;

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

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

@Schema(description = "管理后台 - 紧急响应时间区间设置新增/修改 Request VO")
@Data
public class ProdEmergencyResponseIntervalsSaveReqVO {

    @Schema(description = "响应时间区间的唯一标识符", requiredMode = Schema.RequiredMode.REQUIRED, example = "29650")
    private Long id;

    @Schema(description = "关联的紧急响应服务配置ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "5737")
    @NotNull(message = "关联的紧急响应服务配置ID不能为空")
    private Long configId;

    @Schema(description = "响应模式名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "王五")
    @NotEmpty(message = "响应模式名称不能为空")
    private String name;

    @Schema(description = "响应时间（小时）", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "响应时间（小时）不能为空")
    private BigDecimal responseHours;

    @Schema(description = "收费模式0：固定收费 1：浮动收费", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "收费模式0：固定收费 1：浮动收费不能为空")
    private Integer chargeMode;

    @Schema(description = "浮动百分比")
    private BigDecimal floatingPercentage;

    @Schema(description = "价格或上浮百分比", example = "17810")
    private BigDecimal price;

    @Schema(description = "创建时间")
    private LocalDateTime createdAt;

    @Schema(description = "最后更新时间")
    private LocalDateTime updatedAt;

}