You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
51 lines
3.1 KiB
51 lines
3.1 KiB
import django.db.models.deletion
|
|
from django.conf import settings
|
|
from django.db import migrations, models
|
|
|
|
|
|
class Migration(migrations.Migration):
|
|
|
|
initial = True
|
|
|
|
dependencies = [
|
|
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
|
|
]
|
|
|
|
operations = [
|
|
migrations.CreateModel(
|
|
name='SupportRoom',
|
|
fields=[
|
|
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
|
('status', models.CharField(choices=[('open', 'Open'), ('pending', 'Pending Support Reply'), ('answered', 'Answered'), ('closed', 'Closed')], db_index=True, default='open', max_length=20, verbose_name='Status')),
|
|
('unread_by_admin', models.PositiveIntegerField(default=0, verbose_name='Unread by Admin')),
|
|
('unread_by_user', models.PositiveIntegerField(default=0, verbose_name='Unread by User')),
|
|
('last_message_at', models.DateTimeField(blank=True, db_index=True, null=True, verbose_name='Last Message At')),
|
|
('created_at', models.DateTimeField(auto_now_add=True, verbose_name='Created At')),
|
|
('updated_at', models.DateTimeField(auto_now=True, verbose_name='Updated At')),
|
|
('assigned_to', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='assigned_support_rooms', to=settings.AUTH_USER_MODEL, verbose_name='Assigned Specialist')),
|
|
('user', models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, related_name='support_room', to=settings.AUTH_USER_MODEL, verbose_name='User')),
|
|
],
|
|
options={
|
|
'verbose_name': 'Support Room',
|
|
'verbose_name_plural': 'Support Rooms',
|
|
'ordering': ('-last_message_at', '-created_at'),
|
|
},
|
|
),
|
|
migrations.CreateModel(
|
|
name='SupportMessage',
|
|
fields=[
|
|
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
|
('sender_type', models.CharField(choices=[('user', 'User'), ('support', 'Support Specialist')], db_index=True, default='user', max_length=16, verbose_name='Sender Type')),
|
|
('content', models.TextField(verbose_name='Message Content')),
|
|
('is_read', models.BooleanField(db_index=True, default=False, verbose_name='Is Read')),
|
|
('created_at', models.DateTimeField(auto_now_add=True, db_index=True, verbose_name='Created At')),
|
|
('room', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='messages', to='support.supportroom', verbose_name='Support Room')),
|
|
('sender', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='sent_support_messages', to=settings.AUTH_USER_MODEL, verbose_name='Sender User')),
|
|
],
|
|
options={
|
|
'verbose_name': 'Support Message',
|
|
'verbose_name_plural': 'Support Messages',
|
|
'ordering': ('id',),
|
|
},
|
|
),
|
|
]
|