osiris/tracker/migrations/0001_initial.py
2026-07-14 20:10:17 +02:00

158 lines
5.1 KiB
Python

# Generated by Django 6.0.7 on 2026-07-14 18:04
import django.db.models.deletion
import django.utils.timezone
from django.db import migrations, models
class Migration(migrations.Migration):
initial = True
dependencies = []
operations = [
migrations.CreateModel(
name="Medication",
fields=[
(
"id",
models.BigAutoField(
auto_created=True,
primary_key=True,
serialize=False,
verbose_name="ID",
),
),
("name", models.CharField(max_length=100, unique=True)),
(
"is_active",
models.BooleanField(
default=True,
help_text="Uncheck when the treatment ends, instead of deleting.",
),
),
("notes", models.TextField(blank=True)),
("created_at", models.DateTimeField(auto_now_add=True)),
],
options={
"ordering": ["name"],
},
),
migrations.CreateModel(
name="PulseReading",
fields=[
(
"id",
models.BigAutoField(
auto_created=True,
primary_key=True,
serialize=False,
verbose_name="ID",
),
),
(
"date",
models.DateField(
default=django.utils.timezone.localdate, unique=True
),
),
(
"bpm",
models.PositiveSmallIntegerField(help_text="Beats per minute."),
),
("notes", models.TextField(blank=True)),
("created_at", models.DateTimeField(auto_now_add=True)),
],
options={
"ordering": ["-date"],
},
),
migrations.CreateModel(
name="ScheduledDose",
fields=[
(
"id",
models.BigAutoField(
auto_created=True,
primary_key=True,
serialize=False,
verbose_name="ID",
),
),
(
"time_of_day",
models.IntegerField(
choices=[
(1, "Morning"),
(2, "Noon"),
(3, "Evening"),
(4, "Night"),
]
),
),
(
"amount",
models.CharField(
default="1/4",
help_text='Free text, e.g. "1/4", "1", "5 mg".',
max_length=20,
),
),
("is_active", models.BooleanField(default=True)),
(
"medication",
models.ForeignKey(
on_delete=django.db.models.deletion.CASCADE,
related_name="scheduled_doses",
to="tracker.medication",
),
),
],
options={
"ordering": ["medication__name", "time_of_day"],
},
),
migrations.CreateModel(
name="DoseLog",
fields=[
(
"id",
models.BigAutoField(
auto_created=True,
primary_key=True,
serialize=False,
verbose_name="ID",
),
),
("date", models.DateField(default=django.utils.timezone.localdate)),
("taken", models.BooleanField(default=True)),
("taken_at", models.DateTimeField(blank=True, null=True)),
("notes", models.TextField(blank=True)),
(
"scheduled_dose",
models.ForeignKey(
on_delete=django.db.models.deletion.CASCADE,
related_name="logs",
to="tracker.scheduleddose",
),
),
],
options={
"ordering": ["-date", "scheduled_dose__time_of_day"],
},
),
migrations.AddConstraint(
model_name="scheduleddose",
constraint=models.UniqueConstraint(
fields=("medication", "time_of_day"),
name="unique_medication_time_of_day",
),
),
migrations.AddConstraint(
model_name="doselog",
constraint=models.UniqueConstraint(
fields=("scheduled_dose", "date"), name="unique_dose_per_day"
),
),
]