package com.bs.ct.domain;

import java.util.Date;
import java.util.List;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.bs.common.annotation.Excel;
import com.bs.common.core.domain.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModelProperty;

/**
 * 图库目录共享对象 ct_gallery_cata_share
 *
 * @author bs
 * @date 2025-02-22
 */
@EqualsAndHashCode(callSuper = true)
@Accessors(chain = true)
@TableName("ct_gallery_cata_share")
@Data
public class CtGalleryCataShare extends BaseEntity{
    private static final long serialVersionUID = 1L;

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

    /** 共享类型目录共享、图片共享 */

    @Excel(name = "共享类型目录共享、图片共享")
    @ApiModelProperty(value = "共享类型目录共享、图片共享")
    private String type;

    /** 目录id */

    @Excel(name = "目录id")
    @ApiModelProperty(value = "目录id")
    private Long cataId;

    @Excel(name = "共享名称")
    @ApiModelProperty(value = "共享名称")
    private String cataName;

    @TableField(exist = false)
    private List<Long> cataIds;


    @TableField(exist = false)
    private String userType;

    /** 共享用户 */

    @Excel(name = "共享用户")
    @ApiModelProperty(value = "共享用户")
    private Long userId;

    @TableField(exist = false)
    private List<Long> userIds;

    /** 开始时间 */

    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "开始时间", width = 30, dateFormat = "yyyy-MM-dd")
    @ApiModelProperty(value = "开始时间")
    private Date beginDate;

    /** 结束时间 */

    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "结束时间", width = 30, dateFormat = "yyyy-MM-dd")
    @ApiModelProperty(value = "结束时间")
    private Date endDate;

    /** 备注 */

    @Excel(name = "备注")
    @ApiModelProperty(value = "备注")
    private String remarks;

    @TableField(exist = false)
    private List<CtGalleryShareUser> lsUsers;

    @TableField(exist = false)
    private String queryType;

}
