package com.tourism.webadmin.back.model;

import com.baomidou.mybatisplus.annotation.*;
import com.tourism.webadmin.back.model.constant.HouseEequipmentIsHave;
import com.tourism.common.core.upload.UploadStoreTypeEnum;
import com.tourism.common.core.annotation.*;
import com.tourism.common.core.base.model.BaseModel;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.util.Map;

/**
 * 租赁房屋配套设施实体对象。
 *
 * @author 吃饭睡觉
 * @date 2024-09-06
 */
@Data
@EqualsAndHashCode(callSuper = true)
@TableName(value = "tour_house_equipment")
public class TourHouseEquipment extends BaseModel {

    /**
     * 主键。
     */
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;

    /**
     * 房屋表id。
     */
    @TableField(value = "house_id")
    private Long houseId;

    /**
     * 房屋详情图(多张图片)。
     */
    @UploadFlagColumn(storeType = UploadStoreTypeEnum.HUAWEI_OBS_SYSTEM)
    @TableField(value = "house_detail_image")
    private String houseDetailImage;

    /**
     * 冰箱。
     */
    @TableField(value = "icebox")
    private Integer icebox;

    /**
     * 洗衣机。
     */
    @TableField(value = "washer")
    private Integer washer;

    /**
     * 热水器。
     */
    @TableField(value = "calorifier")
    private Integer calorifier;

    /**
     * 宽带。
     */
    @TableField(value = "broadband")
    private Integer broadband;

    /**
     * 沙发。
     */
    @TableField(value = "sofa")
    private Integer sofa;

    /**
     * 油烟机。
     */
    @TableField(value = "range_hood")
    private Integer rangeHood;

    /**
     * 燃气灶。
     */
    @TableField(value = "gas_stove")
    private Integer gasStove;

    /**
     * 做饭。
     */
    @TableField(value = "able_cook")
    private Integer ableCook;

    /**
     * 电视。
     */
    @TableField(value = "television")
    private Integer television;

    /**
     * 空调。
     */
    @TableField(value = "air_conditioner")
    private Integer airConditioner;

    /**
     * 衣柜。
     */
    @TableField(value = "wardrobe")
    private Integer wardrobe;

    /**
     * 床。
     */
    @TableField(value = "bed")
    private Integer bed;

    /**
     * 卫生间。
     */
    @TableField(value = "rest_room")
    private Integer restRoom;

    /**
     * 智能门锁。
     */
    @TableField(value = "smart_door_lock")
    private Integer smartDoorLock;

    /**
     * 阳台。
     */
    @TableField(value = "balcony")
    private Integer balcony;

    /**
     * 暖气。
     */
    @TableField(value = "heating")
    private Integer heating;

    /**
     * 周边配套描述。
     */
    @TableField(value = "surrounding_support")
    private String surroundingSupport;

    /**
     * 周边配套的图片(多张图片)。
     */
    @UploadFlagColumn(storeType = UploadStoreTypeEnum.HUAWEI_OBS_SYSTEM)
    @TableField(value = "surrounding_support_image")
    private String surroundingSupportImage;

    /**
     * 小区介绍。
     */
    @TableField(value = "plot_introduction")
    private String plotIntroduction;

    /**
     * 小区介绍图片(多张图片)。
     */
    @UploadFlagColumn(storeType = UploadStoreTypeEnum.HUAWEI_OBS_SYSTEM)
    @TableField(value = "plot_introduction_image")
    private String plotIntroductionImage;

    /**
     * 逻辑删除标记字段(1: 正常 -1: 已删除)。
     */
    @TableLogic
    @TableField(value = "data_state")
    private Integer dataState;

//    @RelationConstDict(
//            masterIdField = "icebox",
//            constantDictClass = HouseEequipmentIsHave.class)
//    @TableField(exist = false)
//    private Map<String, Object> iceboxDictMap;
//
//    @RelationConstDict(
//            masterIdField = "washer",
//            constantDictClass = HouseEequipmentIsHave.class)
//    @TableField(exist = false)
//    private Map<String, Object> washerDictMap;
//
//    @RelationConstDict(
//            masterIdField = "calorifier",
//            constantDictClass = HouseEequipmentIsHave.class)
//    @TableField(exist = false)
//    private Map<String, Object> calorifierDictMap;
//
//    @RelationConstDict(
//            masterIdField = "broadband",
//            constantDictClass = HouseEequipmentIsHave.class)
//    @TableField(exist = false)
//    private Map<String, Object> broadbandDictMap;
//
//    @RelationConstDict(
//            masterIdField = "sofa",
//            constantDictClass = HouseEequipmentIsHave.class)
//    @TableField(exist = false)
//    private Map<String, Object> sofaDictMap;
//
//    @RelationConstDict(
//            masterIdField = "rangeHood",
//            constantDictClass = HouseEequipmentIsHave.class)
//    @TableField(exist = false)
//    private Map<String, Object> rangeHoodDictMap;
//
//    @RelationConstDict(
//            masterIdField = "gasStove",
//            constantDictClass = HouseEequipmentIsHave.class)
//    @TableField(exist = false)
//    private Map<String, Object> gasStoveDictMap;
//
//    @RelationConstDict(
//            masterIdField = "ableCook",
//            constantDictClass = HouseEequipmentIsHave.class)
//    @TableField(exist = false)
//    private Map<String, Object> ableCookDictMap;
//
//    @RelationConstDict(
//            masterIdField = "television",
//            constantDictClass = HouseEequipmentIsHave.class)
//    @TableField(exist = false)
//    private Map<String, Object> televisionDictMap;
//
//    @RelationConstDict(
//            masterIdField = "airConditioner",
//            constantDictClass = HouseEequipmentIsHave.class)
//    @TableField(exist = false)
//    private Map<String, Object> airConditionerDictMap;
//
//    @RelationConstDict(
//            masterIdField = "wardrobe",
//            constantDictClass = HouseEequipmentIsHave.class)
//    @TableField(exist = false)
//    private Map<String, Object> wardrobeDictMap;
//
//    @RelationConstDict(
//            masterIdField = "bed",
//            constantDictClass = HouseEequipmentIsHave.class)
//    @TableField(exist = false)
//    private Map<String, Object> bedDictMap;
//
//    @RelationConstDict(
//            masterIdField = "restRoom",
//            constantDictClass = HouseEequipmentIsHave.class)
//    @TableField(exist = false)
//    private Map<String, Object> restRoomDictMap;
//
//    @RelationConstDict(
//            masterIdField = "smartDoorLock",
//            constantDictClass = HouseEequipmentIsHave.class)
//    @TableField(exist = false)
//    private Map<String, Object> smartDoorLockDictMap;
//
//    @RelationConstDict(
//            masterIdField = "balcony",
//            constantDictClass = HouseEequipmentIsHave.class)
//    @TableField(exist = false)
//    private Map<String, Object> balconyDictMap;
//
//    @RelationConstDict(
//            masterIdField = "heating",
//            constantDictClass = HouseEequipmentIsHave.class)
//    @TableField(exist = false)
//    private Map<String, Object> heatingDictMap;
}
