agdar/aba/migrations/0001_initial.py
2025-11-02 14:35:35 +03:00

340 lines
14 KiB
Python

# Generated by Django 5.2.7 on 2025-10-27 10:50
import simple_history.models
import uuid
from django.db import migrations, models
class Migration(migrations.Migration):
initial = True
dependencies = []
operations = [
migrations.CreateModel(
name="ABABehavior",
fields=[
(
"id",
models.UUIDField(
default=uuid.uuid4,
editable=False,
primary_key=True,
serialize=False,
verbose_name="ID",
),
),
("created_at", models.DateTimeField(auto_now_add=True, verbose_name="Created At")),
("updated_at", models.DateTimeField(auto_now=True, verbose_name="Updated At")),
("behavior_description", models.TextField(verbose_name="Behavior Description")),
(
"frequency",
models.CharField(
choices=[
("HOURLY", "Hourly"),
("DAILY", "Daily"),
("WEEKLY", "Weekly"),
("LESS_THAN_WEEKLY", "Less than Weekly"),
],
max_length=20,
verbose_name="Frequency",
),
),
(
"duration",
models.CharField(
blank=True,
help_text="How long the behavior typically lasts",
max_length=100,
verbose_name="Duration",
),
),
(
"intensity",
models.CharField(
choices=[("MILD", "Mild"), ("MODERATE", "Moderate"), ("SEVERE", "Severe")],
max_length=20,
verbose_name="Intensity",
),
),
(
"antecedents_likely",
models.TextField(
blank=True,
help_text="Contexts where behavior is most likely to occur",
verbose_name="Antecedents (Most Likely)",
),
),
(
"antecedents_least_likely",
models.TextField(
blank=True,
help_text="Contexts where behavior is least likely to occur",
verbose_name="Antecedents (Least Likely)",
),
),
(
"consequences",
models.TextField(
blank=True,
help_text="What happens after the behavior occurs",
verbose_name="Consequences",
),
),
(
"order",
models.PositiveIntegerField(
default=0, help_text="Order of behaviors in the list", verbose_name="Order"
),
),
],
options={
"verbose_name": "ABA Behavior",
"verbose_name_plural": "ABA Behaviors",
"ordering": ["consult", "order", "created_at"],
},
),
migrations.CreateModel(
name="ABAConsult",
fields=[
(
"id",
models.UUIDField(
default=uuid.uuid4,
editable=False,
primary_key=True,
serialize=False,
verbose_name="ID",
),
),
("created_at", models.DateTimeField(auto_now_add=True, verbose_name="Created At")),
("updated_at", models.DateTimeField(auto_now=True, verbose_name="Updated At")),
(
"signed_at",
models.DateTimeField(blank=True, null=True, verbose_name="Signed At"),
),
("consultation_date", models.DateField(verbose_name="Consultation Date")),
(
"reason_of_referral",
models.CharField(
choices=[
("DEVELOPMENTAL_DELAY", "Developmental Delay"),
("AUTISM_SPECTRUM", "Autism Spectrum Disorder"),
("BEHAVIORAL_ISSUES", "Behavioral Issues"),
("LEARNING_DIFFICULTIES", "Learning Difficulties"),
("SOCIAL_SKILLS", "Social Skills Deficits"),
("COMMUNICATION", "Communication Difficulties"),
("SELF_CARE", "Self-Care Skills"),
("OTHER", "Other"),
],
max_length=50,
verbose_name="Reason of Referral",
),
),
("parental_concern", models.TextField(blank=True, verbose_name="Parental Concern")),
("school_concern", models.TextField(blank=True, verbose_name="School Concern")),
(
"respondents",
models.CharField(
blank=True,
help_text="Who provided the information (e.g., mother, father, teacher)",
max_length=200,
verbose_name="Respondents",
),
),
(
"interviewer",
models.CharField(blank=True, max_length=200, verbose_name="Interviewer"),
),
(
"diagnosed_condition",
models.CharField(
blank=True, max_length=200, verbose_name="Diagnosed Condition"
),
),
(
"interaction_hours_per_day",
models.PositiveIntegerField(
blank=True,
help_text="Hours of interaction per day",
null=True,
verbose_name="Interaction Hours/Day",
),
),
(
"physiological_factors",
models.TextField(
blank=True,
help_text="Physiological factors affecting behavior (e.g., sleep, appetite, medical conditions)",
verbose_name="Physiological Factors",
),
),
(
"medical_factors",
models.TextField(
blank=True,
help_text="Medical factors and conditions",
verbose_name="Medical Factors",
),
),
("recommendations", models.TextField(blank=True, verbose_name="Recommendations")),
],
options={
"verbose_name": "ABA Consultation",
"verbose_name_plural": "ABA Consultations",
"ordering": ["-consultation_date", "-created_at"],
},
),
migrations.CreateModel(
name="ABAGoal",
fields=[
(
"id",
models.UUIDField(
default=uuid.uuid4,
editable=False,
primary_key=True,
serialize=False,
verbose_name="ID",
),
),
("created_at", models.DateTimeField(auto_now_add=True, verbose_name="Created At")),
("updated_at", models.DateTimeField(auto_now=True, verbose_name="Updated At")),
("goal_description", models.TextField(verbose_name="Goal Description")),
(
"target_date",
models.DateField(blank=True, null=True, verbose_name="Target Date"),
),
(
"status",
models.CharField(
choices=[
("NOT_STARTED", "Not Started"),
("IN_PROGRESS", "In Progress"),
("ACHIEVED", "Achieved"),
("DISCONTINUED", "Discontinued"),
],
default="NOT_STARTED",
max_length=20,
verbose_name="Status",
),
),
("progress_notes", models.TextField(blank=True, verbose_name="Progress Notes")),
(
"achieved_date",
models.DateField(blank=True, null=True, verbose_name="Achieved Date"),
),
],
options={
"verbose_name": "ABA Goal",
"verbose_name_plural": "ABA Goals",
"ordering": ["consult", "target_date"],
},
),
migrations.CreateModel(
name="HistoricalABAConsult",
fields=[
(
"id",
models.UUIDField(
db_index=True, default=uuid.uuid4, editable=False, verbose_name="ID"
),
),
(
"created_at",
models.DateTimeField(blank=True, editable=False, verbose_name="Created At"),
),
(
"updated_at",
models.DateTimeField(blank=True, editable=False, verbose_name="Updated At"),
),
(
"signed_at",
models.DateTimeField(blank=True, null=True, verbose_name="Signed At"),
),
("consultation_date", models.DateField(verbose_name="Consultation Date")),
(
"reason_of_referral",
models.CharField(
choices=[
("DEVELOPMENTAL_DELAY", "Developmental Delay"),
("AUTISM_SPECTRUM", "Autism Spectrum Disorder"),
("BEHAVIORAL_ISSUES", "Behavioral Issues"),
("LEARNING_DIFFICULTIES", "Learning Difficulties"),
("SOCIAL_SKILLS", "Social Skills Deficits"),
("COMMUNICATION", "Communication Difficulties"),
("SELF_CARE", "Self-Care Skills"),
("OTHER", "Other"),
],
max_length=50,
verbose_name="Reason of Referral",
),
),
("parental_concern", models.TextField(blank=True, verbose_name="Parental Concern")),
("school_concern", models.TextField(blank=True, verbose_name="School Concern")),
(
"respondents",
models.CharField(
blank=True,
help_text="Who provided the information (e.g., mother, father, teacher)",
max_length=200,
verbose_name="Respondents",
),
),
(
"interviewer",
models.CharField(blank=True, max_length=200, verbose_name="Interviewer"),
),
(
"diagnosed_condition",
models.CharField(
blank=True, max_length=200, verbose_name="Diagnosed Condition"
),
),
(
"interaction_hours_per_day",
models.PositiveIntegerField(
blank=True,
help_text="Hours of interaction per day",
null=True,
verbose_name="Interaction Hours/Day",
),
),
(
"physiological_factors",
models.TextField(
blank=True,
help_text="Physiological factors affecting behavior (e.g., sleep, appetite, medical conditions)",
verbose_name="Physiological Factors",
),
),
(
"medical_factors",
models.TextField(
blank=True,
help_text="Medical factors and conditions",
verbose_name="Medical Factors",
),
),
("recommendations", models.TextField(blank=True, verbose_name="Recommendations")),
("history_id", models.AutoField(primary_key=True, serialize=False)),
("history_date", models.DateTimeField(db_index=True)),
("history_change_reason", models.CharField(max_length=100, null=True)),
(
"history_type",
models.CharField(
choices=[("+", "Created"), ("~", "Changed"), ("-", "Deleted")], max_length=1
),
),
],
options={
"verbose_name": "historical ABA Consultation",
"verbose_name_plural": "historical ABA Consultations",
"ordering": ("-history_date", "-history_id"),
"get_latest_by": ("history_date", "history_id"),
},
bases=(simple_history.models.HistoricalChanges, models.Model),
),
]