package com.mcwl.resource.domain;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.springframework.format.annotation.DateTimeFormat;

import java.util.Date;

/**
 * 举报表
 *
 * @author DaiZibo
 * @date 2025/1/18
 * @apiNote
 */

@Builder
@Data
@NoArgsConstructor
@AllArgsConstructor
@ApiModel(description = "举报表")
@TableName("report")
public class Report {

    /**
     * 主键ID
     */
    @ApiModelProperty(value = "举报ID")
    private Long id;

    /**
     * 被举报的商品ID
     */
    @ApiModelProperty(value = "被举报作品ID")
    private Long productId;

    /**
     * 举报人ID
     */
    @ApiModelProperty(value = "举报人ID")
    private Long userId;

    /**
     * 举报类型
     */
    @ApiModelProperty(value = "举报类型 字典值")
    private Integer reportType;

    /**
     * 区分举报内容(1模型 2图片 3工作流)
     */
    @ApiModelProperty(value = "作品类型 (1模型 2图片 3工作流)")
    private Integer type;

    /**
     * 举报描述
     */
    @ApiModelProperty(value = "举报描述")
    private String text;

    /**
     * 状态（0未处理 1已处理）
     */
    @ApiModelProperty(value = "状态（0未处理 1已处理 )")
    private Integer status = 0;

    /**
     * 创建时间
     */
    @ApiModelProperty(value = "创建时间")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date createTime;

    /**
     * 逻辑删除（0展示 2删除）
     */
    @ApiModelProperty(value = "逻辑删除（0展示 2删除）")
    private Integer delFlag = 0;

    /**
     * 标题
     */
    @ApiModelProperty(value = "标题")
    private String productName;

    /**
     * 翻译后的举报类型
     */
    @TableField(exist = false)
    @ApiModelProperty(value = "翻译后的举报类型")
    private String translateType;

    /**
     * 举报人
     */
    @TableField(exist = false)
    @ApiModelProperty(value = "举报人")
    private String nickName;
}
