package com.vctgo.system.api.domain;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import com.vctgo.common.core.annotation.Excel;
import com.vctgo.common.core.web.domain.KinderInfoPlatformBaseEntity;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.List;

/**
 * 位置设置对象 sys_location_setting
 *
 * @author caesar
 * @date 2023-05-30
 */
@Data
@TableName("sys_location_setting")
@Builder
@NoArgsConstructor
@AllArgsConstructor
@JsonIgnoreProperties(value = {"handler"})
public class SysLocationSetting extends KinderInfoPlatformBaseEntity {

    private static final long serialVersionUID = 8020959534082504695L;

    /**
     * 主键
     */
    @TableId
    @JsonSerialize(using = ToStringSerializer.class)
    private Long id;

    /**
     * 区域Id
     */
    @ApiModelProperty(value = "区域id")
    @TableField(exist = false)
    @JsonSerialize(using = ToStringSerializer.class)
    private Long areaId;

    /**
     * 关联区域集合
     */
    @TableField(exist = false)
    @Excel(name = "关联区域集合")
    private List<SysAreaSetting> assiciationPutArea;

    /**
     * 关联区域单独属性
     */
    @TableField(exist = false)
    @Excel(name = "关联区域单独属性")
    private String areaName;

    /**
     * 关联班级
     */
    @TableField(exist = false)
    @Excel(name = "关联班级")
    private List<SysClassSetting> assiciationClass;

    /**
     * 状态 0 解绑 1 绑定
     */
    @TableField(exist = false)
    private String status;

    /**
     * 所在年级
     */
    @ApiModelProperty(value = "所在年级id")
    @TableField(exist = false)
    private String gradeIn;

    /**
     * 班级编号
     */
    @ApiModelProperty(value = "班级编号")
    @TableField(exist = false)
    private String classNumber;

    /**
     * 编号
     */
    @Excel(name = "编号")
    private String code;

    /**
     * 投放位置
     */
    @ApiModelProperty(value = "投放位置")
    @Excel(name = "投放位置")
    private String name;

    /**
     * 位置类型
     */
    @ApiModelProperty(value = "位置类型")
    @Excel(name = "位置类型")
    private String type;

    /**
     * 是否删除
     */
    @Excel(name = "是否删除")
    private String isDeleted;

    /**
     * 属性
     */
    private String attribute;

    @TableField(exist = false)
    private Long classId;

}
