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.
52 lines
3.1 KiB
52 lines
3.1 KiB
import django.core.validators
|
|
from django.db import migrations, models
|
|
import phonenumber_field.modelfields
|
|
import utils.validators
|
|
|
|
|
|
class Migration(migrations.Migration):
|
|
|
|
initial = True
|
|
|
|
dependencies = [
|
|
]
|
|
|
|
operations = [
|
|
migrations.CreateModel(
|
|
name='AppVersion',
|
|
fields=[
|
|
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
|
('version', models.CharField(help_text='Application version in format X.Y.Z (e.g., 1.0.0)', max_length=20, unique=True, validators=[django.core.validators.RegexValidator(message='Version must be in format X.Y.Z (e.g., 1.0.0)', regex='^\\d+\\.\\d+\\.\\d+$')], verbose_name='Version')),
|
|
('apk_file', models.FileField(blank=True, help_text='Application APK / binary file', null=True, upload_to='app_versions/', verbose_name='APK File')),
|
|
('description', models.TextField(blank=True, help_text='Release notes and changes for this version', verbose_name='Description')),
|
|
('app_type', models.CharField(choices=[('google_play', 'Google Play'), ('app_store', 'Apple App Store'), ('direct', 'Direct Download')], default='google_play', max_length=20, verbose_name='App Distribution Platform')),
|
|
('downloads_count', models.PositiveBigIntegerField(default=0, verbose_name='Downloads Count')),
|
|
('is_active', models.BooleanField(default=True, help_text='Is this version currently active?', verbose_name='Active')),
|
|
('created_at', models.DateTimeField(auto_now_add=True, verbose_name='Created At')),
|
|
('updated_at', models.DateTimeField(auto_now=True, verbose_name='Updated At')),
|
|
],
|
|
options={
|
|
'verbose_name': 'App Version',
|
|
'verbose_name_plural': 'App Versions',
|
|
'ordering': ['-created_at'],
|
|
},
|
|
),
|
|
migrations.CreateModel(
|
|
name='SupportMessage',
|
|
fields=[
|
|
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
|
('sender_name', models.CharField(max_length=255, verbose_name='Sender Name')),
|
|
('sender_email', models.EmailField(max_length=254, verbose_name='Sender Email')),
|
|
('subject', models.CharField(max_length=255, verbose_name='Subject')),
|
|
('sender_phone', phonenumber_field.modelfields.PhoneNumberField(blank=True, help_text='e.g., +1 555 1234567', max_length=128, null=True, region=None, validators=[utils.validators.validate_possible_number], verbose_name='Sender Phone')),
|
|
('message', models.TextField(verbose_name='Message')),
|
|
('is_resolved', models.BooleanField(default=False, verbose_name='Resolved')),
|
|
('created_at', models.DateTimeField(auto_now_add=True, verbose_name='Created At')),
|
|
],
|
|
options={
|
|
'verbose_name': 'Support Message',
|
|
'verbose_name_plural': 'Support Messages',
|
|
'ordering': ['-created_at'],
|
|
},
|
|
),
|
|
]
|