from __future__ import annotations from django.db.models import TextChoices class RequestType(TextChoices): """Перечень типов заявлений (значение хранится в БД).""" SHORT_DAY_OFF = "short_day_off", "Короткий отгул" VACATION = "vacation", "Отпуск" SICK_LEAVE = "sick_leave", "Больничный" DAY_OFF = "day_off", "Отгул" MATERNITY = "maternity", "Декрет" TRANSFER = "transfer", "Перевод" DISMISSAL = "dismissal", "Увольнение" OTHER = "other", "Другое" DAY_OFF_REQUEST_TYPES = frozenset({RequestType.DAY_OFF, RequestType.SHORT_DAY_OFF}) class RequestStatus(TextChoices): """Статусы жизненного цикла заявления (значение хранится в БД).""" DRAFT = "draft", "Черновик" PENDING = "pending", "На рассмотрении" APPROVED = "approved", "Одобрено" REJECTED = "rejected", "Отклонено" CANCELLED = "cancelled", "Отменено" class VacationFinanceStatus(TextChoices): """Состояние передачи согласованных условий отпуска в финансы.""" NOT_DECIDED = "not_decided", "Не решено" SKIPPED = "skipped", "Не передавать" PENDING = "pending", "Ожидает расчёта" POSTED = "posted", "Передано в начисления" FINAL_STATUS = { RequestStatus.APPROVED, RequestStatus.REJECTED, RequestStatus.CANCELLED, }