package com.vctgo.system.api.domain;

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.TenantEntity;
import io.swagger.annotations.ApiModel;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

/**
 * 消息服务对象 message_info
 *
 * @author caesar
 * @date 2023-08-08
 */
@Builder
@AllArgsConstructor
@NoArgsConstructor
@JsonIgnoreProperties(value = {"handler"})
@ApiModel(value = "消息服务对象")
@Data
@TableName("message_info")
public class MessageInfo extends TenantEntity {
    private static final long serialVersionUID = 1L;

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

    /**
     * 消息接收人id
     */
    @JsonSerialize(using = ToStringSerializer.class)
    @Excel(name = "消息接收人id")
    private Long receivedUserId;

    /**
     * 消息标题
     */
    @Excel(name = "消息标题")
    private String title;

    /**
     * 消息内容
     */
    @Excel(name = "消息内容")
    private String content;

    /**
     * 评论附件
     */
    @Excel(name = "评论附件")
    private String fileId;

    /**
     * 业务类型
     */
    @Excel(name = "业务类型")
    private String serviceType;

    /**
     * 是否已读
     */
    @Excel(name = "是否已读")
    private String isRead;

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

    /**
     * 创建人ID
     */
    @JsonSerialize(using = ToStringSerializer.class)
    @Excel(name = "创建人ID")
    private Long createById;

    /**
     * 最近更新人ID
     */
    @JsonSerialize(using = ToStringSerializer.class)
    @Excel(name = "最近更新人ID")
    private Long updateById;

}
