79 lines
4.7 KiB
Python
79 lines
4.7 KiB
Python
# Generated by Django 5.2.5 on 2025-10-16 12:07
|
|
|
|
from django.db import migrations, models
|
|
|
|
|
|
class Migration(migrations.Migration):
|
|
|
|
initial = True
|
|
|
|
dependencies = [
|
|
]
|
|
|
|
operations = [
|
|
migrations.CreateModel(
|
|
name='Announcement',
|
|
fields=[
|
|
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
|
('created_at', models.DateTimeField(auto_now_add=True)),
|
|
('updated_at', models.DateTimeField(auto_now=True)),
|
|
('is_deleted', models.BooleanField(default=False)),
|
|
('deleted_at', models.DateTimeField(blank=True, null=True)),
|
|
('title', models.CharField(max_length=200, verbose_name='Title')),
|
|
('content', models.TextField(verbose_name='Content')),
|
|
('announcement_type', models.CharField(choices=[('general', 'General'), ('event', 'Event'), ('academic', 'Academic'), ('urgent', 'Urgent'), ('newsletter', 'Newsletter')], default='general', max_length=20, verbose_name='Type')),
|
|
('priority', models.CharField(choices=[('low', 'Low'), ('normal', 'Normal'), ('high', 'High'), ('urgent', 'Urgent')], default='normal', max_length=10, verbose_name='Priority')),
|
|
('is_published', models.BooleanField(default=False, verbose_name='Published')),
|
|
('publish_date', models.DateTimeField(blank=True, null=True, verbose_name='Publish Date')),
|
|
('send_email', models.BooleanField(default=False, verbose_name='Send Email Notification')),
|
|
('send_push', models.BooleanField(default=False, verbose_name='Send Push Notification')),
|
|
('email_sent', models.BooleanField(default=False, verbose_name='Email Sent')),
|
|
('push_sent', models.BooleanField(default=False, verbose_name='Push Sent')),
|
|
('target_audience', models.CharField(choices=[('all', 'All Users'), ('members', 'Members Only'), ('committee', 'Committee Only'), ('subscribers', 'Newsletter Subscribers Only')], default='all', max_length=20, verbose_name='Target Audience')),
|
|
],
|
|
options={
|
|
'verbose_name': 'Announcement',
|
|
'verbose_name_plural': 'Announcements',
|
|
'ordering': ['-created_at'],
|
|
},
|
|
),
|
|
migrations.CreateModel(
|
|
name='NewsletterSubscription',
|
|
fields=[
|
|
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
|
('created_at', models.DateTimeField(auto_now_add=True)),
|
|
('updated_at', models.DateTimeField(auto_now=True)),
|
|
('is_deleted', models.BooleanField(default=False)),
|
|
('deleted_at', models.DateTimeField(blank=True, null=True)),
|
|
('email', models.EmailField(max_length=254, unique=True, verbose_name='Email')),
|
|
('is_active', models.BooleanField(default=True, verbose_name='Active')),
|
|
('subscribed_categories', models.JSONField(blank=True, default=list, help_text='List of announcement types to receive', verbose_name='Subscribed Categories')),
|
|
('confirmation_token', models.CharField(blank=True, max_length=100, verbose_name='Confirmation Token')),
|
|
('confirmed_at', models.DateTimeField(blank=True, null=True, verbose_name='Confirmed At')),
|
|
('unsubscribe_token', models.CharField(blank=True, max_length=100, verbose_name='Unsubscribe Token')),
|
|
],
|
|
options={
|
|
'verbose_name': 'Newsletter Subscription',
|
|
'verbose_name_plural': 'Newsletter Subscriptions',
|
|
'ordering': ['-created_at'],
|
|
},
|
|
),
|
|
migrations.CreateModel(
|
|
name='PushNotificationDevice',
|
|
fields=[
|
|
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
|
('created_at', models.DateTimeField(auto_now_add=True)),
|
|
('updated_at', models.DateTimeField(auto_now=True)),
|
|
('is_deleted', models.BooleanField(default=False)),
|
|
('deleted_at', models.DateTimeField(blank=True, null=True)),
|
|
('device_token', models.TextField(verbose_name='Device Token')),
|
|
('device_type', models.CharField(choices=[('web', 'Web'), ('android', 'Android'), ('ios', 'iOS')], max_length=10, verbose_name='Device Type')),
|
|
('is_active', models.BooleanField(default=True, verbose_name='Active')),
|
|
],
|
|
options={
|
|
'verbose_name': 'Push Notification Device',
|
|
'verbose_name_plural': 'Push Notification Devices',
|
|
},
|
|
),
|
|
]
|