"""Names and closed vocabularies for the Phase 2A.2 database contract."""

from __future__ import annotations

from typing import Final

SCHEMA_NAME: Final = "osm_lead_source"
OSM_TYPES: Final = ("node", "way", "relation")
COMPLETENESS_STATUSES: Final = ("complete", "partial", "failed", "unknown")
SOURCE_PRESENCE_STATES: Final = (
    "present",
    "missing",
    "stale_confirmed",
    "remap_candidate",
    "deleted_in_osm",
)
PROFILE_ELIGIBILITY_STATES: Final = ("active", "out_of_scope", "excluded", "pending_review")
MAPPING_OUTCOMES: Final = ("exact", "high_confidence", "remapped")
CANDIDATE_STATUSES: Final = (
    "ambiguous",
    "unmatched",
    "rejected",
    "collision",
    "needs_review",
    "accepted",
)
PROFILE_LIFECYCLE_STATES: Final = ("draft", "active", "retired")
RUN_STATUSES: Final = ("planned", "running", "completed", "failed", "superseded")
ACTION_TYPES: Final = (
    "INSERT",
    "UPDATE",
    "NO_CHANGE",
    "SOURCE_REMAP",
    "MARK_STALE_EXTERNALLY",
    "DELETE_SAFE_STALE",
    "SKIP_PROTECTED",
    "SKIP_AMBIGUOUS",
)
ACTION_STATES: Final = ("planned", "claimed", "applied", "failed", "superseded")
