|
| 1 | +# Generated by Django 5.2.13 on 2026-04-23 03:45 |
| 2 | + |
| 3 | +import django.db.models.deletion |
| 4 | +from django.conf import settings |
| 5 | +from django.db import migrations, models |
| 6 | + |
| 7 | + |
| 8 | +class Migration(migrations.Migration): |
| 9 | + |
| 10 | + dependencies = [ |
| 11 | + ('api', '0003_application_allowed_origins_and_more'), |
| 12 | + ] |
| 13 | + |
| 14 | + operations = [ |
| 15 | + migrations.AlterField( |
| 16 | + model_name='application', |
| 17 | + name='authorization_grant_type', |
| 18 | + field=models.CharField(choices=[('authorization-code', 'Authorization code'), ('urn:ietf:params:oauth:grant-type:device_code', 'Device Code'), ('implicit', 'Implicit'), ('password', 'Resource owner password-based'), ('client-credentials', 'Client credentials'), ('openid-hybrid', 'OpenID connect hybrid')], max_length=44), |
| 19 | + ), |
| 20 | + migrations.CreateModel( |
| 21 | + name='Message', |
| 22 | + fields=[ |
| 23 | + ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), |
| 24 | + ('category', models.CharField(choices=[('system', 'System'), ('product', 'Product Updates'), ('security', 'Security'), ('alert', 'Alerts'), ('service', 'Service')], default='system', max_length=20, verbose_name='category')), |
| 25 | + ('title', models.CharField(max_length=255, verbose_name='title')), |
| 26 | + ('content', models.TextField(verbose_name='content')), |
| 27 | + ('full_content', models.TextField(blank=True, verbose_name='full content')), |
| 28 | + ('severity', models.CharField(choices=[('info', 'Info'), ('warning', 'Warning'), ('error', 'Error'), ('success', 'Success')], default='info', max_length=20, verbose_name='severity')), |
| 29 | + ('is_read', models.BooleanField(default=False, verbose_name='is read')), |
| 30 | + ('action_link', models.CharField(blank=True, max_length=500, verbose_name='action link')), |
| 31 | + ('action_text', models.CharField(blank=True, max_length=255, verbose_name='action text')), |
| 32 | + ('created_at', models.DateTimeField(auto_now_add=True, verbose_name='created at')), |
| 33 | + ('updated_at', models.DateTimeField(auto_now=True, verbose_name='updated at')), |
| 34 | + ('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='messages', to=settings.AUTH_USER_MODEL, verbose_name='user')), |
| 35 | + ], |
| 36 | + options={ |
| 37 | + 'verbose_name': 'message', |
| 38 | + 'verbose_name_plural': 'messages', |
| 39 | + 'ordering': ['-created_at'], |
| 40 | + }, |
| 41 | + ), |
| 42 | + migrations.CreateModel( |
| 43 | + name='MessagePreference', |
| 44 | + fields=[ |
| 45 | + ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), |
| 46 | + ('email_alerts', models.BooleanField(default=True, verbose_name='email alerts')), |
| 47 | + ('push_alerts', models.BooleanField(default=False, verbose_name='push alerts')), |
| 48 | + ('webhook_url', models.URLField(blank=True, max_length=500, verbose_name='webhook url')), |
| 49 | + ('notify_security', models.BooleanField(default=True, verbose_name='notify security')), |
| 50 | + ('notify_system', models.BooleanField(default=True, verbose_name='notify system')), |
| 51 | + ('notify_product', models.BooleanField(default=False, verbose_name='notify product')), |
| 52 | + ('notify_alert', models.BooleanField(default=True, verbose_name='notify alert')), |
| 53 | + ('notify_service', models.BooleanField(default=True, verbose_name='notify service')), |
| 54 | + ('user', models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, related_name='message_preference', to=settings.AUTH_USER_MODEL, verbose_name='user')), |
| 55 | + ], |
| 56 | + options={ |
| 57 | + 'verbose_name': 'message preference', |
| 58 | + 'verbose_name_plural': 'message preferences', |
| 59 | + }, |
| 60 | + ), |
| 61 | + ] |
0 commit comments