diff --git a/meetings/migrations/0001_initial.py b/meetings/migrations/0001_initial.py deleted file mode 100644 index 23dbc8b..0000000 --- a/meetings/migrations/0001_initial.py +++ /dev/null @@ -1,56 +0,0 @@ -# Generated by Django 5.2.8 on 2025-11-27 14:43 - -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')), - ('jitsi_room_id', models.CharField(blank=True, help_text='Jitsi room ID', max_length=100, 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')], - }, - ), - ] diff --git a/meetings/models.py b/meetings/models.py index bb5950c..e351183 100644 --- a/meetings/models.py +++ b/meetings/models.py @@ -203,8 +203,8 @@ class AppointmentRequest(models.Model): ) rejection_reason = EncryptedTextField(blank=True) - jitsi_meet_url = models.URLField(blank=True, help_text="Jitsi Meet URL for the video session") - jitsi_room_id = models.CharField(max_length=100, unique=True, blank=True, help_text="Jitsi room ID") + jitsi_meet_url = models.URLField(blank=True, null=True, help_text="Jitsi Meet URL for the video session") + jitsi_room_id = models.CharField(max_length=100, unique=True, null=True, blank=True, help_text="Jitsi room ID") created_at = models.DateTimeField(auto_now_add=True) updated_at = models.DateTimeField(auto_now=True)