"""Canonical domain enums for Aegis.

These enums represent core domain concepts and are the single source of
truth.  ``models/enums.py`` re-exports them so that existing ORM code
continues to work without changes.
"""

import enum


class TechniqueStatus(str, enum.Enum):
    not_evaluated = "not_evaluated"
    in_progress = "in_progress"
    validated = "validated"
    partial = "partial"
    not_covered = "not_covered"
    review_required = "review_required"


class TestState(str, enum.Enum):
    draft = "draft"
    red_executing = "red_executing"
    blue_evaluating = "blue_evaluating"
    in_review = "in_review"
    validated = "validated"
    rejected = "rejected"


class TeamSide(str, enum.Enum):
    red = "red"
    blue = "blue"


class TestResult(str, enum.Enum):
    detected = "detected"
    not_detected = "not_detected"
    partially_detected = "partially_detected"


class DataClassification(str, enum.Enum):
    public = "public"
    internal = "internal"
    sensitive = "sensitive"
    restricted = "restricted"
