Corp/backend/tasks/migrations/0041_taskexecutioncycle.py
2026-08-26 11:20:06 +03:00

140 lines
5.2 KiB
Python
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Generated by Django 5.2.4 on 2026-08-26 07:30
import django.db.models.deletion
from django.conf import settings
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
("tasks", "0040_task_skills"),
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
]
operations = [
migrations.CreateModel(
name="TaskExecutionCycle",
fields=[
(
"id",
models.BigAutoField(
auto_created=True,
primary_key=True,
serialize=False,
verbose_name="ID",
),
),
(
"task_id_snapshot",
models.PositiveBigIntegerField(verbose_name="ID задачи"),
),
(
"cycle_key",
models.CharField(
max_length=180,
unique=True,
verbose_name="Ключ цикла",
),
),
(
"task_title",
models.CharField(max_length=255, verbose_name="Название задачи"),
),
(
"due_date_snapshot",
models.DateField(
null=True, verbose_name="Срок на момент завершения"
),
),
(
"completed_at_snapshot",
models.DateTimeField(verbose_name="Время завершения"),
),
(
"protection_until",
models.DateTimeField(verbose_name="Подтвердить после"),
),
(
"status",
models.CharField(
choices=[
("pending", "Ожидает подтверждения"),
("confirmed", "Подтверждено"),
("late", "Завершено после срока"),
("reopened", "Возвращено в работу"),
("excluded", "Не участвует в расчёте"),
],
default="pending",
max_length=16,
verbose_name="Состояние",
),
),
(
"is_self_assigned",
models.BooleanField(default=False, verbose_name="Самоназначение"),
),
(
"exclusion_reason",
models.CharField(
blank=True,
max_length=80,
verbose_name="Причина исключения",
),
),
(
"reopened_at",
models.DateTimeField(
blank=True,
null=True,
verbose_name="Возвращено в работу",
),
),
(
"created_at",
models.DateTimeField(auto_now_add=True, verbose_name="Создано"),
),
(
"updated_at",
models.DateTimeField(auto_now=True, verbose_name="Обновлено"),
),
(
"employee",
models.ForeignKey(
blank=True,
null=True,
on_delete=django.db.models.deletion.SET_NULL,
related_name="task_execution_cycles",
to=settings.AUTH_USER_MODEL,
verbose_name="Исполнитель на момент завершения",
),
),
(
"task",
models.ForeignKey(
blank=True,
null=True,
on_delete=django.db.models.deletion.SET_NULL,
related_name="execution_cycles",
to="tasks.task",
verbose_name="Задача",
),
),
],
options={
"verbose_name": "Цикл исполнения задачи",
"verbose_name_plural": "Циклы исполнения задач",
"ordering": ["completed_at_snapshot", "id"],
"indexes": [
models.Index(
fields=["employee", "status", "completed_at_snapshot"],
name="tasks_taske_employe_e1d1f9_idx",
),
models.Index(
fields=["task", "status"],
name="tasks_taske_task_id_d09903_idx",
),
],
},
),
]