"""
==================================================
Smart Attendance AI
Core - Recognition Result
==================================================
Represents the result of face recognition.
==================================================
"""

from dataclasses import dataclass, field
from typing import List, Optional

from core.ai_result import AIResult


@dataclass(slots=True)
class RecognitionResult(AIResult):
    """
    Result of recognizing a face.
    """

    # Student Information
    student_id: Optional[str] = None

    # Whether a match was found
    matched: bool = False

    # Cosine similarity score
    similarity: float = 0.0

    # Face embedding generated from input image
    embedding: List[float] = field(
        default_factory=list
    )

    # Detection confidence
    confidence: float = 0.0

    # Bounding box
    bbox: List[int] = field(
        default_factory=list
    )

    # Face size
    face_width: int = 0

    face_height: int = 0

    # Facial landmarks
    landmarks: List[List[float]] = field(
        default_factory=list
    )

    # Processing time
    processing_time_ms: int = 0