package org.lym.pom.dto.posts;

import io.swagger.annotations.ApiParam;
import jakarta.validation.constraints.NotBlank;
import lombok.Data;
import org.lym.pom.repository.mongo.enums.AttitudeRelatedTypeEnum;
import org.lym.pom.repository.mongo.enums.AttitudeTypeEnum;
import org.shoulder.web.template.dictionary.dto.DictionaryItemDTO;
import org.shoulder.web.template.dictionary.validation.DictionaryEnumItem;

/**
 *
 * @see org.lym.pom.repository.mongo.Attitude
 * @author lym
 */
@Data
public class AttitudeIndexDTO {

    @NotBlank(message = "Related type cannot be blank.")
    @DictionaryEnumItem(AttitudeRelatedTypeEnum.class)
    private final DictionaryItemDTO relatedType;

    @NotBlank(message = "Related ID cannot be blank.")
    private final String relatedId;

    @NotBlank(message = "Attitude type cannot be blank.")
    @DictionaryEnumItem(AttitudeTypeEnum.class)
    private final DictionaryItemDTO type;

    @ApiParam(value = "User ID", required = true)
    @NotBlank(message = "User ID cannot be blank.")
    private final String userId;

}