# Generated by Django 5.2 on 2025-07-29 15:21

import ckeditor.fields
import django.db.models.deletion
from django.conf import settings
from django.db import migrations, models


class Migration(migrations.Migration):

    initial = True

    dependencies = [
        ('auth', '0012_alter_user_first_name_max_length'),
    ]

    operations = [
        migrations.CreateModel(
            name='HActiviti',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('a_name', models.CharField(max_length=255)),
                ('a_details', ckeditor.fields.RichTextField()),
                ('created_at', models.DateField(null=True)),
                ('image', models.ImageField(upload_to='hospital_activity')),
            ],
        ),
        migrations.CreateModel(
            name='MyUser',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('password', models.CharField(max_length=128, verbose_name='password')),
                ('last_login', models.DateTimeField(blank=True, null=True, verbose_name='last login')),
                ('is_superuser', models.BooleanField(default=False, help_text='Designates that this user has all permissions without explicitly assigning them.', verbose_name='superuser status')),
                ('mobile', models.CharField(max_length=15, unique=True, verbose_name='Phone Number')),
                ('name', models.CharField(max_length=255)),
                ('dob', models.DateField(verbose_name='জন্মতারিখ')),
                ('gender', models.CharField(choices=[('', '----------'), ('Male', 'পুরুষ'), ('Female', 'মহিলা')], max_length=100, verbose_name='লিঙ্গ')),
                ('role', models.CharField(choices=[('', '----------'), ('Patient', 'রোগী'), ('Doctor', 'ডাক্তার')], max_length=100, verbose_name='আপনি কী?')),
                ('address', models.TextField(blank=True, null=True, verbose_name='ঠিকানা')),
                ('profile_pic', models.ImageField(default='hospital_profile/default.jpg', upload_to='hospital_profile', verbose_name='আপনার ছবি আপলোড করুন')),
                ('created_at', models.DateTimeField(auto_now_add=True)),
                ('is_active', models.BooleanField(default=True)),
                ('is_staff', models.BooleanField(default=False)),
                ('groups', models.ManyToManyField(blank=True, help_text='The groups this user belongs to. A user will get all permissions granted to each of their groups.', related_name='user_set', related_query_name='user', to='auth.group', verbose_name='groups')),
                ('user_permissions', models.ManyToManyField(blank=True, help_text='Specific permissions for this user.', related_name='user_set', related_query_name='user', to='auth.permission', verbose_name='user permissions')),
            ],
            options={
                'abstract': False,
            },
        ),
        migrations.CreateModel(
            name='Doctor',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('designation', models.CharField(blank=True, max_length=100, null=True, verbose_name='Designation')),
                ('specialization', models.TextField(blank=True, null=True, verbose_name='Specialization')),
                ('status', models.CharField(choices=[('Yes', 'Yes'), ('No', 'No')], default='No', max_length=10)),
                ('vendor', models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, related_name='vendor_doctor', to=settings.AUTH_USER_MODEL)),
            ],
            options={
                'verbose_name': 'Doctor',
                'verbose_name_plural': 'Doctors',
            },
        ),
        migrations.CreateModel(
            name='Availability',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('date', models.DateField()),
                ('start_time', models.TimeField(verbose_name='Start Time')),
                ('end_time', models.TimeField(verbose_name='End Time')),
                ('max_serials', models.IntegerField(default=10)),
                ('doctor', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='availabilities', to='ahospital.doctor')),
            ],
            options={
                'verbose_name': 'Availability',
                'verbose_name_plural': 'Availabilities',
                'ordering': ['doctor', 'date', 'start_time'],
            },
        ),
        migrations.CreateModel(
            name='Appointment',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('notes', models.TextField(blank=True, null=True, verbose_name='Doctor Notes')),
                ('serial', models.PositiveIntegerField(blank=True, null=True, verbose_name='Serial Number')),
                ('created_at', models.DateTimeField(auto_now_add=True)),
                ('patient', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='patient_appointments', to=settings.AUTH_USER_MODEL)),
                ('available', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='appointments', to='ahospital.availability')),
                ('doctor', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='doctor_appointments', to='ahospital.doctor')),
            ],
        ),
        migrations.CreateModel(
            name='Prescription',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('prescribed_date', models.DateTimeField(auto_now_add=True, verbose_name='প্রেসক্রিপশনের তারিখ')),
                ('symptoms', models.TextField(blank=True, null=True, verbose_name='উপসর্গ')),
                ('instructions', models.TextField(blank=True, null=True, verbose_name='পরামর্শ')),
                ('weight', models.CharField(blank=True, max_length=50, null=True, verbose_name='ওজন')),
                ('temperature', models.CharField(blank=True, max_length=50, null=True, verbose_name='শরীরের তাপমাত্রা')),
                ('blood_pressure', models.CharField(blank=True, max_length=50, null=True, verbose_name='রক্তচাপ')),
                ('appointment', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='prescriptions', to='ahospital.appointment')),
            ],
            options={
                'verbose_name': 'প্রেসক্রিপশন',
                'verbose_name_plural': 'প্রেসক্রিপশনসমূহ',
            },
        ),
        migrations.CreateModel(
            name='Medicine',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('name', models.CharField(max_length=255, verbose_name='ঔষধের নাম')),
                ('time', models.CharField(choices=[('১+১+১', '১+১+১'), ('১+0+১', '১+0+১'), ('১+১+0', '১+১+0'), ('0+১+১', '0+১+১'), ('0+0+১', '0+0+১'), ('0+১+0', '0+১+0'), ('১+0+0', '১+0+0')], max_length=10, verbose_name='সেবনের সময়সূচী')),
                ('meal_time', models.CharField(choices=[('খাওয়ার পর', 'খাওয়ার পর'), ('খাওয়ার আগে', 'খাওয়ার আগে'), ('যেকোনো সময়', 'যেকোনো সময়')], max_length=20, verbose_name='খাওয়ার সময়')),
                ('duration', models.CharField(max_length=50, verbose_name='ব্যবহারের সময়কাল (দিন/সপ্তাহ)')),
                ('prescription', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='medicines', to='ahospital.prescription', verbose_name='প্রেসক্রিপশন')),
            ],
            options={
                'verbose_name': 'ঔষধ',
                'verbose_name_plural': 'ঔষধসমূহ',
            },
        ),
        migrations.CreateModel(
            name='Test',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('test_name', models.CharField(max_length=255, verbose_name='Test Name')),
                ('instructions', models.TextField(blank=True, null=True, verbose_name='Instructions')),
                ('prescribed_date', models.DateTimeField(auto_now_add=True, verbose_name='Prescribed Date')),
                ('status', models.CharField(choices=[('Pending', 'Pending'), ('Uploaded', 'Uploaded'), ('Reviewed', 'Reviewed')], default='Pending', max_length=10, verbose_name='Status')),
                ('appointment', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='tests', to='ahospital.appointment')),
            ],
            options={
                'verbose_name': 'Test',
                'verbose_name_plural': 'Tests',
            },
        ),
        migrations.CreateModel(
            name='TestReport',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('report_file', models.FileField(upload_to='test_reports/', verbose_name='Report File')),
                ('upload_date', models.DateTimeField(auto_now_add=True, verbose_name='Upload Date')),
                ('notes', models.TextField(blank=True, null=True, verbose_name='Notes')),
                ('test', models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, related_name='report', to='ahospital.test')),
                ('uploaded_by', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL, verbose_name='Uploaded By')),
            ],
            options={
                'verbose_name': 'Test Report',
                'verbose_name_plural': 'Test Reports',
            },
        ),
    ]
