MISSING_FIELDS = "MISSING_FIELDS"
EMAIL_EXISTS = "EMAIL_EXISTS"
MISSING_TOKEN = "MISSING_TOKEN"
INVALID_TOKEN = "INVALID_TOKEN"
TOKEN_TIMESTAMP_MISSING = "TOKEN_TIMESTAMP_MISSING"
TOKEN_EXPIRED = "TOKEN_EXPIRED"
MISSING_EMAIL = "MISSING_EMAIL"
USER_NOT_FOUND = "USER_NOT_FOUND"
ALREADY_VERIFIED = "ALREADY_VERIFIED"
MISSING_EMAIL_OR_PASSWORD = "MISSING_EMAIL_OR_PASSWORD"
INVALID_CREDENTIALS = "INVALID_CREDENTIALS"
NOT_VERIFIED = "NOT_VERIFIED"
ACCOUNT_MARKED_FOR_DELETION = "ACCOUNT_MARKED_FOR_DELETION"
ALREADY_MARKED = "ALREADY_MARKED"
REFRESH_TOKEN_REUSE = "REFRESH_TOKEN_REUSE"
REFRESH_TOKEN_EXPIRED = "REFRESH_TOKEN_EXPIRED"
MISSING_REFRESH_TOKEN = "MISSING_REFRESH_TOKEN"


class ErrorCodes:
    """Centralized error codes for API responses."""
    UNAUTHORIZED = "UNAUTHORIZED"
    CHILD_NOT_FOUND = "CHILD_NOT_FOUND"
    TASK_NOT_FOUND = "TASK_NOT_FOUND"
    REWARD_NOT_FOUND = "REWARD_NOT_FOUND"
    ENTITY_NOT_ASSIGNED = "ENTITY_NOT_ASSIGNED"
    OVERRIDE_NOT_FOUND = "OVERRIDE_NOT_FOUND"
    MISSING_FIELD = "MISSING_FIELD"
    INVALID_VALUE = "INVALID_VALUE"
    VALIDATION_ERROR = "VALIDATION_ERROR"
    INTERNAL_ERROR = "INTERNAL_ERROR"
    CHORE_EXPIRED = "CHORE_EXPIRED"
    CHORE_ALREADY_PENDING = "CHORE_ALREADY_PENDING"
    CHORE_ALREADY_COMPLETED = "CHORE_ALREADY_COMPLETED"
    PENDING_NOT_FOUND = "PENDING_NOT_FOUND"
    INSUFFICIENT_POINTS = "INSUFFICIENT_POINTS"
    INVALID_TASK_TYPE = "INVALID_TASK_TYPE"
    DUPLICATE_REWARD_REQUEST = "DUPLICATE_REWARD_REQUEST"
