# Generated by Django 4.2.27 on 2026-01-22 10:48 import dj_language.field 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="Blog", fields=[ ( "id", models.BigAutoField( auto_created=True, primary_key=True, serialize=False, verbose_name="ID", ), ), ( "title", models.JSONField( blank=True, default=list, null=True, verbose_name="title" ), ), ( "thumbnail", models.ImageField( help_text="Blog thumbnail image", upload_to="blog/thumbnails/%Y/%m/", verbose_name="Thumbnail", ), ), ( "slogan", models.JSONField( blank=True, default=list, null=True, verbose_name="slogan" ), ), ( "summary", models.JSONField( blank=True, default=list, null=True, verbose_name="summary" ), ), ( "views_count", models.PositiveIntegerField( default=0, help_text="Number of times this blog was viewed", verbose_name="Views Count", ), ), ( "slug", models.JSONField( blank=True, default=list, help_text="URL slug for the blog", null=True, verbose_name="slug", ), ), ( "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": "Blog", "verbose_name_plural": "Blogs", "ordering": ["-created_at"], }, ), migrations.CreateModel( name="BlogSeo", fields=[ ( "id", models.BigAutoField( auto_created=True, primary_key=True, serialize=False, verbose_name="ID", ), ), ( "title", models.CharField( blank=True, help_text="maximum length of page title is 70 characters and minimum length is 30", max_length=140, null=True, verbose_name="seo title", ), ), ( "keywords", models.CharField( blank=True, help_text="keywords in the content that make it possible for people to find the site via search engines", max_length=700, null=True, ), ), ( "description", models.CharField( blank=True, help_text="describes and summarizes the contents of the page for the benefit of users and search engines", max_length=170, null=True, ), ), ( "blog", models.ForeignKey( on_delete=django.db.models.deletion.CASCADE, related_name="seos", to="blog.blog", verbose_name="blog", ), ), ( "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": "Blog SEO", "verbose_name_plural": "Blog SEOs", }, ), migrations.CreateModel( name="BlogContent", fields=[ ( "id", models.BigAutoField( auto_created=True, primary_key=True, serialize=False, verbose_name="ID", ), ), ( "title", models.JSONField( blank=True, default=list, help_text="Title of this content section", null=True, verbose_name="Content title", ), ), ( "content", models.JSONField( blank=True, default=list, help_text="The main content text", null=True, verbose_name="content", ), ), ( "slug", models.JSONField( blank=True, default=list, help_text="URL slug for this content (optional)", null=True, verbose_name="slug", ), ), ( "image", models.ImageField( blank=True, help_text="Optional image for this content section", null=True, upload_to="blog/content_images/%Y/%m/", verbose_name="Image", ), ), ( "order", models.PositiveIntegerField( default=0, help_text="Order of this content within the blog", verbose_name="Order", ), ), ( "created_at", models.DateTimeField(auto_now_add=True, verbose_name="Created At"), ), ( "updated_at", models.DateTimeField(auto_now=True, verbose_name="Updated At"), ), ( "blog", models.ForeignKey( on_delete=django.db.models.deletion.CASCADE, related_name="contents", to="blog.blog", verbose_name="Blog", ), ), ], options={ "verbose_name": "Blog Content", "verbose_name_plural": "Blog Contents", "ordering": ["order", "created_at"], }, ), ]