# 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" ), ), ]