package com.microservices.zone.journals.domain.vo;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;

/**
 * 通用评论输入VO
 *
 * @author otto
 * @date 2025-04-30
 */
@Data
@ApiModel("评论输入对象")
public class ZoneJournalsInputVo {

    /** 评论对象ID */
    @NotNull(message = "评论对象ID不能为空")
    @ApiModelProperty(value = "评论对象ID", required = true)
    private Long journalized_id;

    /** 评论对象类型 */
    @NotBlank(message = "评论对象类型不能为空")
    @ApiModelProperty(value = "评论对象类型", required = true)
    private String journalized_type;

    /** 父级评论ID */
    @ApiModelProperty(value = "父级评论ID")
    private Long parent_id;

    /** 回复的评论ID */
    @ApiModelProperty(value = "回复的评论ID")
    private Long reply_id;

    /** 评论内容 */
    @NotBlank(message = "评论内容不能为空")
    @Size(max = 2000, message = "评论内容不能超过2000个字符")
    @ApiModelProperty(value = "评论内容", required = true)
    private String notes;

    /** @用户列表 */
    @ApiModelProperty(value = "@用户列表")
    private String[] receivers_login;

    /** 附件标识列表 */
    @ApiModelProperty(value = "附件标识列表")
    private String attachment_identifiers;

    /** 是否隐私评论 */
    @ApiModelProperty(value = "是否隐私评论")
    private String private_notes;
}
