package com.yc.ship.module.resource.controller.admin.roommodel.vo;

import com.yc.ship.module.resource.controller.admin.roommodelservice.vo.ResourceRoomModelServiceSaveReqVO;
import com.yc.ship.module.resource.dal.dataobject.room.ResourceRoomDO;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.util.*;
import javax.validation.constraints.*;
import java.math.BigDecimal;

@Schema(description = "管理后台 - 资源管理-房型管理新增/修改 Request VO")
@Data
public class ResourceRoomModelSaveReqVO {

    @Schema(description = "ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "14780")
    private Long id;

    @Schema(description = "房型名称", example = "王五")
    private String name;

    @Schema(description = "房型简称")
    private String shortName;

    @Schema(description = "房型编码")
    private String code;

    @Schema(description = "所在楼层（多选，逗号分割）")
    private String floorsNum;
    
    @Schema(description = "关联房间")
    private String roomNums;

    @Schema(description = "所属游轮", example = "1463")
    private Long shipId;

    @Schema(description = "卫生间面积（㎡）")
    private String bathroomArea;

    @Schema(description = "床位数")
    private Integer bedNum;

    @Schema(description = "阳台面积（㎡）")
    private String balconyArea;

    @Schema(description = "床尺寸（m）")
    private String bedSize;

    @Schema(description = "成本价(元/晚)", example = "1742")
    private BigDecimal price;

    @Schema(description = "是否允许拼房")
    private Integer suite;

    @Schema(description = "房型介绍")
    private String introduce;

    @Schema(description = "房型图片", example = "https://www.iocoder.cn")
    private String picUrl;

    @Schema(description = "房型视频", example = "https://www.iocoder.cn")
    private String videoUrl;

    @Schema(description = "备注", example = "随便")
    private String remark;

    @Schema(description = "状态", requiredMode = Schema.RequiredMode.REQUIRED, example = "2")
    @NotNull(message = "状态不能为空")
    private Integer status;

    /**
     * 可加床数
     */
    @Schema(description = "可加床数")
    private Integer addBedNum;

    /**
     * 可加成人数（和儿童二选一）
     */
    @Schema(description = "可加成人数（和儿童二选一）")
    private Integer addAdultNum;

    /**
     * 可加儿童数（和成人二选一）
     */
    @Schema(description = "可加儿童数（和成人二选一）")
    private Integer addChildNum;

    /**
     * 可加人数
     */
    @Schema(description = "可加人数,成人和儿童最多可加人数")
    private Integer addNum;

    /**
     * 最大入住人数
     */
    @Schema(description = "最大入住人数")
    private Integer maxNum;

    /**
     * 最大入住成人数
     */
    @Schema(description = "最大入住成人数")
    private Integer maxAdultNum;

    /**
     * 最大入住儿童人数
     */
    @Schema(description = "最大入住儿童人数")
    private Integer maxChildNum;

    @Schema(description = "是否可售", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
    @NotNull(message = "是否可售不能为空")
    private Integer canSale;

    @Schema(description = "房型面积")
    private String roomArea;

    @Schema(description = "房型服务设施")
    private List<ResourceRoomModelServiceSaveReqVO> services;

}