# Generated by Django 4.2.27 on 2026-01-22 10:48 import dj_language.field import django.core.validators from django.db import migrations, models import django.db.models.deletion class Migration(migrations.Migration): initial = True dependencies = [ ("dj_language", "0002_auto_20220120_1344"), ] 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( help_text="Application APK file", 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", "App Store"), ], default="google_play", help_text="App distribution platform", max_length=20, verbose_name="App Type", ), ), ( "app_store_downloads", models.PositiveBigIntegerField( default=0, help_text="Total number of downloads on Apple App Store", verbose_name="App Store Downloads", ), ), ( "google_play_downloads", models.PositiveBigIntegerField( default=0, help_text="Total number of downloads on Google Play", verbose_name="Google Play Downloads", ), ), ( "is_active", models.BooleanField( default=True, help_text="Is this version 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="Comment", fields=[ ( "id", models.BigAutoField( auto_created=True, primary_key=True, serialize=False, verbose_name="ID", ), ), ( "user_avatar", models.ImageField( blank=True, null=True, upload_to="comments/avatars/%Y/%m/", verbose_name="User Avatar", ), ), ( "user_fullname", models.CharField( help_text="Full name of the user who made the comment", max_length=255, verbose_name="User Full Name", ), ), ( "user_slogan", models.CharField( blank=True, help_text="User slogan or bio", max_length=500, null=True, verbose_name="User Slogan", ), ), ( "comment_text", models.TextField( help_text="The actual comment content", verbose_name="Comment Text", ), ), ( "order", models.PositiveIntegerField( default=0, help_text="Order for sorting comments", verbose_name="Order", ), ), ( "created_at", models.DateTimeField(auto_now_add=True, verbose_name="Created At"), ), ( "language", dj_language.field.LanguageField( default=69, limit_choices_to={"status": True}, null=True, on_delete=django.db.models.deletion.PROTECT, related_name="+", to="dj_language.language", verbose_name="language", ), ), ], options={ "verbose_name": "Comment", "verbose_name_plural": "Comments", "ordering": ["order", "-created_at"], }, ), ]