from dataclasses import dataclass
from enum import Enum
from typing import List


class MentorCompletionStatus(str, Enum):
    UNKNOWN = "UNKNOWN"
    SUBMITTED = "SUBMITTED"
    EVALUATED = "EVALUATED"


class MentorAssignmentStatusType(str, Enum):
    PRAXIS_ASSIGNMENT = "praxis_assignment"
    SELF_EVALUATION_FEEDBACK = "self_evaluation_feedback"


@dataclass
class MentorAssignmentCompletion:
    status: MentorCompletionStatus
    user_id: str
    last_name: str
    url: str


@dataclass
class MentorAssignmentStatus:
    id: str
    title: str
    circle_id: str
    pending_evaluations: int
    completions: List[MentorAssignmentCompletion]
    type: MentorAssignmentStatusType
