namespace bitforum.Constants
{
    public enum MailStatus
    {
        Pending = 0,       // 대기 중
        Processing = 1,    // 처리 중
        Sent = 2,          // 발송 완료
        Failed = 3         // 발송 실패
    }

    // Redis 키 값들
    public static class RedisConst
    {
        public const int CacheExpiration = 60;
        public const string ConfigKey = "Config:All";
        public const string DocumentKey = "Document";
        public const string FaqKey = "FaqList";
        public const string PopupKey = "PopupList";
        public const string BannerKey = "BannerList";
    }

    // 추가 저장 값들
    public record AdditionalData
    {
        public string? Email { get; init; } // 이메일 변경 시 
    }

    // 게시판 설정 값들
    public static class BoardConst
    {
        // 종류
        public enum Layout
        {
            Default = 0, // 일반
            Media = 1, // 사진/동영상
            QnA = 2 // 질문과 답변 (1:1 게시판)
        }

        // 기본 정렬
        public enum OrderBy
        {
            CreatedAt = 0, // 날짜순
            Views = 1, // 조회순
            Comments = 2, // 댓글순
            Likes = 3 // 공감순
        }

        // 알림
        public enum Notify
        {
            Admin = 0, // 최고관리자
            Manager = 1, // 게시판 관리자
            PostAuthor = 2, // 게시글 작성자
            CommentAuthor = 3, // 댓글 작성자
            ReplyAuthor = 4 // 답글 작성자
        }

        // 권한
        public enum Permission
        {
            Guest = -1, // 비회원
            Member = 0, // 정회원
            Admin = 1000 // 최고관리자
        }
    }
}
