From e66352e9ad3b62e3b05e6902be3c42ad9d066f3e Mon Sep 17 00:00:00 2001 From: saani Date: Thu, 27 Nov 2025 15:18:56 +0000 Subject: [PATCH] Adding migrations --- meetings/migrations/0001_initial.py | 56 +++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 meetings/migrations/0001_initial.py diff --git a/meetings/migrations/0001_initial.py b/meetings/migrations/0001_initial.py new file mode 100644 index 0000000..c0bfa71 --- /dev/null +++ b/meetings/migrations/0001_initial.py @@ -0,0 +1,56 @@ +# Generated by Django 5.2.8 on 2025-11-27 15:18 + +import meetings.models +import uuid +from django.db import migrations, models + + +class Migration(migrations.Migration): + + initial = True + + dependencies = [ + ] + + operations = [ + migrations.CreateModel( + name='AdminWeeklyAvailability', + fields=[ + ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('availability_schedule', models.JSONField(default=dict, help_text='Dictionary with days as keys and lists of time slots as values')), + ('created_at', models.DateTimeField(auto_now_add=True)), + ('updated_at', models.DateTimeField(auto_now=True)), + ], + options={ + 'verbose_name': 'Admin Weekly Availability', + 'verbose_name_plural': 'Admin Weekly Availability', + }, + ), + migrations.CreateModel( + name='AppointmentRequest', + fields=[ + ('id', models.UUIDField(default=uuid.uuid4, editable=False, primary_key=True, serialize=False)), + ('first_name', meetings.models.EncryptedCharField(max_length=255)), + ('last_name', meetings.models.EncryptedCharField(max_length=255)), + ('email', meetings.models.EncryptedEmailField(max_length=254)), + ('phone', meetings.models.EncryptedCharField(blank=True, max_length=255)), + ('reason', meetings.models.EncryptedTextField(blank=True)), + ('preferred_dates', models.JSONField(help_text='List of preferred dates (YYYY-MM-DD format)')), + ('preferred_time_slots', models.JSONField(help_text='List of preferred time slots (morning/afternoon/evening)')), + ('status', models.CharField(choices=[('pending_review', 'Pending Review'), ('scheduled', 'Scheduled'), ('rejected', 'Rejected'), ('completed', 'Completed'), ('cancelled', 'Cancelled')], default='pending_review', max_length=20)), + ('scheduled_datetime', models.DateTimeField(blank=True, null=True)), + ('scheduled_duration', models.PositiveIntegerField(default=60, help_text='Duration in minutes')), + ('rejection_reason', meetings.models.EncryptedTextField(blank=True)), + ('jitsi_meet_url', models.URLField(blank=True, help_text='Jitsi Meet URL for the video session', null=True)), + ('jitsi_room_id', models.CharField(blank=True, help_text='Jitsi room ID', max_length=100, null=True, unique=True)), + ('created_at', models.DateTimeField(auto_now_add=True)), + ('updated_at', models.DateTimeField(auto_now=True)), + ], + options={ + 'verbose_name': 'Appointment Request', + 'verbose_name_plural': 'Appointment Requests', + 'ordering': ['-created_at'], + 'indexes': [models.Index(fields=['status', 'scheduled_datetime'], name='meetings_ap_status_4e4e26_idx'), models.Index(fields=['email', 'created_at'], name='meetings_ap_email_b8ed9d_idx')], + }, + ), + ] -- 2.39.5