package com.yc.ship.module.resource.dal.dataobject.roommodel;

import com.yc.ship.framework.tenant.core.db.TenantBaseDO;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.util.*;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import com.baomidou.mybatisplus.annotation.*;
import com.yc.ship.framework.mybatis.core.dataobject.BaseDO;
import org.apache.commons.lang3.StringUtils;

/**
 * 资源管理-房型管理 DO
 *
 * @author lfy
 */
@TableName("resource_room_model")
@KeySequence("resource_room_model_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库，可不写。
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class ResourceRoomModelDO extends TenantBaseDO {

    /**
     * ID
     */
    @TableId
    private Long id;
    /**
     * 房型名称
     */
    private String name;

    /**
     * 房型简称
     */
    private String shortName;
    /**
     * 房型编码
     */
    private String code;
    /**
     * 所在楼层（多选，逗号分割）
     */
    private String floorsNum;
    /**
     * 所属游轮
     */
    private Long shipId;
    /**
     * 卫生间面积（㎡）
     */
    private String bathroomArea;
    /**
     * 床位数
     */
    private Integer bedNum;
    /**
     * 阳台面积（㎡）
     */
    private String balconyArea;
    /**
     * 床尺寸（m）
     */
    private String bedSize;
    /**
     * 成本价(元/晚)
     */
    private BigDecimal price;
    /**
     * 是否套房
     *
     * 枚举 {@link TODO infra_boolean_string 对应的类}
     */
    private Integer suite;
    /**
     * 房型介绍
     */
    private String introduce;
    /**
     * 房型图片
     */
    private String picUrl;
    /**
     * 房型视频
     */
    private String videoUrl;
    /**
     * 备注
     */
    private String remark;
    /**
     * 状态
     *
     * 枚举 {@link TODO common_status 对应的类}
     */
    private Integer status;

    /**
     * 可加床数
     */
    private Integer addBedNum;

    /**
     * 可加成人数（和儿童二选一）
     */
    private Integer addAdultNum;

    /**
     * 可加成人数（和成人二选一）
     */
    private Integer addChildNum;

    /**
     * 可加人数
     */
    private Integer addNum;

    /**
     * 最大入住人数
     */
    private Integer maxNum;

    /**
     * 最大入住成人数
     */
    private Integer maxAdultNum;

    /**
     * 最大入住儿童人数
     */
    private Integer maxChildNum;

    /**
     * 是否可销售
     *
     * 枚举 {@link TODO infra_boolean_string 对应的类}
     */
    private Integer canSale;

    /**
     * 房型面积（m2）
     */
    private String roomArea;

    public String getShowName() {
        if(StringUtils.isNotBlank(shortName)) {
            return shortName;
        }else {
            return name;
        }
    }

}