package org.lym.pom.repository.mongo.enums;

import lombok.Getter;
import org.lym.pom.repository.mongo.Attitude;
import org.lym.pom.repository.mongo.Comment;
import org.lym.pom.repository.mongo.Post;
import org.shoulder.core.dictionary.model.NameAsIdDictionaryItemEnum;

/**
 * 评论相关对象类型枚举：动态、视频、照片等
 *
 * @author lym
 * @see Attitude#relatedType
 */
@Getter
public enum AttitudeRelatedTypeEnum implements NameAsIdDictionaryItemEnum<AttitudeRelatedTypeEnum> {
    COMMENT("C", Comment.COLLECTION_NAME, Comment.class),
    MOMENT("M", Post.COLLECTION_NAME, Post.class),
//    VIDEO("V", VideoPost.COLLECTION_NAME, VideoPost.class),
    PHOTO("P", "XXX", Comment.class),
    ;
    private final String   storageValue;
    private final String   collectionName;
    private final Class<?> modelClass;

    AttitudeRelatedTypeEnum(String storageValue, String collectionName, Class<?> clazz) {
        this.storageValue = storageValue;
        this.collectionName = collectionName;
        this.modelClass = clazz;
    }

}
