forked from erp-dev/erp
feat: notifier beta
This commit is contained in:
86
mission/migrations/0001_initial.py
Normal file
86
mission/migrations/0001_initial.py
Normal file
@@ -0,0 +1,86 @@
|
||||
# Generated by Django 5.2.8 on 2026-04-10 02:39
|
||||
|
||||
import django.db.models.deletion
|
||||
import django.utils.timezone
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
initial = True
|
||||
|
||||
dependencies = [
|
||||
("basic_info", "0025_customer_uniq_customer_merchant_name"),
|
||||
("contenttypes", "0002_remove_content_type_name"),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.CreateModel(
|
||||
name="Mission",
|
||||
fields=[
|
||||
("created_at", models.DateTimeField(auto_now_add=True, verbose_name="创建时间")),
|
||||
("updated_at", models.DateTimeField(auto_now=True, verbose_name="更新时间")),
|
||||
("id", models.BigAutoField(primary_key=True, serialize=False)),
|
||||
("description", models.TextField(verbose_name="任务描述")),
|
||||
("category", models.CharField(choices=[("general", "通用")], db_index=True, default="general", max_length=50, verbose_name="任务类型")),
|
||||
("is_urgent", models.BooleanField(db_index=True, default=False, verbose_name="是否紧急")),
|
||||
("is_completed", models.BooleanField(db_index=True, default=False, verbose_name="是否完成")),
|
||||
("is_cancelled", models.BooleanField(db_index=True, default=False, verbose_name="是否取消")),
|
||||
("cancelled_at", models.DateTimeField(blank=True, null=True, verbose_name="取消时间")),
|
||||
("content_id", models.PositiveBigIntegerField(blank=True, db_index=True, null=True, verbose_name="关联对象ID")),
|
||||
("cancelled_by", models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.PROTECT, related_name="cancelled_missions", to="basic_info.employee", verbose_name="取消人")),
|
||||
("content_type", models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name="missions", to="contenttypes.contenttype", verbose_name="关联对象类型")),
|
||||
("creator", models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name="created_missions", to="basic_info.employee", verbose_name="任务创建者")),
|
||||
],
|
||||
options={
|
||||
"verbose_name": "任务",
|
||||
"verbose_name_plural": "任务",
|
||||
},
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name="MissionParticipant",
|
||||
fields=[
|
||||
("created_at", models.DateTimeField(auto_now_add=True, verbose_name="创建时间")),
|
||||
("updated_at", models.DateTimeField(auto_now=True, verbose_name="更新时间")),
|
||||
("id", models.BigAutoField(primary_key=True, serialize=False)),
|
||||
("employee", models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name="mission_participations", to="basic_info.employee", verbose_name="参与者")),
|
||||
("mission", models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name="participants", to="mission.mission", verbose_name="任务")),
|
||||
],
|
||||
options={
|
||||
"verbose_name": "任务参与者",
|
||||
"verbose_name_plural": "任务参与者",
|
||||
},
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name="MissionReply",
|
||||
fields=[
|
||||
("created_at", models.DateTimeField(auto_now_add=True, verbose_name="创建时间")),
|
||||
("updated_at", models.DateTimeField(auto_now=True, verbose_name="更新时间")),
|
||||
("id", models.BigAutoField(primary_key=True, serialize=False)),
|
||||
("content", models.TextField(verbose_name="回应内容")),
|
||||
("replied_at", models.DateTimeField(db_index=True, default=django.utils.timezone.now, verbose_name="回应时间")),
|
||||
("ends_task", models.BooleanField(db_index=True, default=False, verbose_name="是否结束任务")),
|
||||
("is_rejected", models.BooleanField(db_index=True, default=False, verbose_name="是否被撤销")),
|
||||
("rejected_at", models.DateTimeField(blank=True, null=True, verbose_name="撤销时间")),
|
||||
("mission", models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name="replies", to="mission.mission", verbose_name="任务")),
|
||||
("responder", models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name="mission_replies", to="basic_info.employee", verbose_name="回应者")),
|
||||
],
|
||||
options={
|
||||
"verbose_name": "任务回应",
|
||||
"verbose_name_plural": "任务回应",
|
||||
"ordering": ["replied_at", "id"],
|
||||
},
|
||||
),
|
||||
migrations.AddIndex(
|
||||
model_name="mission",
|
||||
index=models.Index(fields=["content_type", "content_id"], name="mission_mis_content_be6081_idx"),
|
||||
),
|
||||
migrations.AddIndex(
|
||||
model_name="mission",
|
||||
index=models.Index(fields=["is_completed", "is_cancelled"], name="mission_mis_is_comp_299039_idx"),
|
||||
),
|
||||
migrations.AddConstraint(
|
||||
model_name="missionparticipant",
|
||||
constraint=models.UniqueConstraint(fields=("mission", "employee"), name="unique_mission_participant"),
|
||||
),
|
||||
]
|
||||
Reference in New Issue
Block a user