from typing import Final

# Session
SESSION_NOT_FOUND: Final = "SESSION_NOT_FOUND"
SESSION_NOT_ACTIVE: Final = "SESSION_NOT_ACTIVE"
SESSION_NOT_COMPLETED: Final = "SESSION_NOT_COMPLETED"
SESSION_COMPLETED: Final = "SESSION_COMPLETED"
SESSION_IN_USE: Final = "SESSION_IN_USE"
SESSION_LOCK_LOST: Final = "SESSION_LOCK_LOST"
NO_RESPONSES: Final = "NO_RESPONSES"
SUMMARY_NOT_FOUND: Final = "SUMMARY_NOT_FOUND"

# Concurrency
MAX_SESSIONS_REACHED: Final = "MAX_SESSIONS_REACHED"

# Staff / Auth
STAFF_NOT_FOUND: Final = "STAFF_NOT_FOUND"
INVALID_CREDENTIALS: Final = "INVALID_CREDENTIALS"
UNAUTHORIZED: Final = "UNAUTHORIZED"
INVALID_TOKEN: Final = "INVALID_TOKEN"
ACCOUNT_LOCKED: Final = "ACCOUNT_LOCKED"
ACCOUNT_INACTIVE: Final = "ACCOUNT_INACTIVE"
EMAIL_ALREADY_EXISTS: Final = "EMAIL_ALREADY_EXISTS"
FORBIDDEN: Final = "FORBIDDEN"

# Patient
PATIENT_NOT_FOUND: Final = "PATIENT_NOT_FOUND"

# Department
DEPARTMENT_NOT_FOUND: Final = "DEPARTMENT_NOT_FOUND"
DEPARTMENT_ALREADY_EXISTS: Final = "DEPARTMENT_ALREADY_EXISTS"

# Role
ROLE_NOT_FOUND: Final = "ROLE_NOT_FOUND"
ROLE_ALREADY_EXISTS: Final = "ROLE_ALREADY_EXISTS"
ROLE_KEY_NOT_ALLOWED: Final = "ROLE_KEY_NOT_ALLOWED"
ROLE_IN_USE: Final = "ROLE_IN_USE"

# Upload
UNSUPPORTED_FILE_TYPE: Final = "UNSUPPORTED_FILE_TYPE"
FILE_TOO_LARGE: Final = "FILE_TOO_LARGE"

# Generic
VALIDATION_ERROR: Final = "VALIDATION_ERROR"
INTERNAL_ERROR: Final = "INTERNAL_ERROR"
