# Generated by Django 5.2.1 on 2025-05-21 09:39

import cms.models
from django.db import migrations, models


class Migration(migrations.Migration):

    initial = True

    dependencies = [
    ]

    operations = [
        migrations.CreateModel(
            name='BlogPost',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('title', models.CharField(max_length=200)),
                ('slug', models.SlugField(unique=True)),
                ('excerpt', models.TextField(blank=True)),
                ('content', models.TextField()),
                ('featured_image', models.ImageField(blank=True, null=True, upload_to='blog/')),
                ('is_published', models.BooleanField(default=False)),
                ('published_at', models.DateTimeField(blank=True, null=True)),
                ('created_at', models.DateTimeField(auto_now_add=True)),
                ('updated_at', models.DateTimeField(auto_now=True)),
                ('meta_title', models.CharField(blank=True, help_text='SEO Title (max 100 chars)', max_length=100)),
                ('meta_description', models.TextField(blank=True, help_text='SEO Description (max 160 chars)', max_length=160)),
                ('meta_keywords', models.CharField(blank=True, help_text='Comma-separated keywords', max_length=255)),
                ('meta_image', models.ImageField(blank=True, help_text='Image for social sharing', null=True, upload_to='seo_images/')),
                ('meta_canonical_url', models.URLField(blank=True, help_text='Canonical URL if different from this page')),
            ],
            bases=(cms.models.SeoMixin, models.Model),
        ),
        migrations.CreateModel(
            name='Page',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('title', models.CharField(max_length=200)),
                ('slug', models.SlugField(unique=True)),
                ('content', models.TextField()),
                ('is_published', models.BooleanField(default=False)),
                ('created_at', models.DateTimeField(auto_now_add=True)),
                ('updated_at', models.DateTimeField(auto_now=True)),
                ('meta_title', models.CharField(blank=True, help_text='SEO Title (max 100 chars)', max_length=100)),
                ('meta_description', models.TextField(blank=True, help_text='SEO Description (max 160 chars)', max_length=160)),
                ('meta_keywords', models.CharField(blank=True, help_text='Comma-separated keywords', max_length=255)),
                ('meta_image', models.ImageField(blank=True, help_text='Image for social sharing', null=True, upload_to='seo_images/')),
                ('meta_canonical_url', models.URLField(blank=True, help_text='Canonical URL if different from this page')),
            ],
            bases=(cms.models.SeoMixin, models.Model),
        ),
        migrations.CreateModel(
            name='Project',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('title', models.CharField(max_length=200)),
                ('slug', models.SlugField(unique=True)),
                ('description', models.TextField()),
                ('featured_image', models.ImageField(blank=True, null=True, upload_to='projects/')),
                ('client', models.CharField(blank=True, max_length=100)),
                ('completion_date', models.DateField(blank=True, null=True)),
                ('technologies', models.CharField(blank=True, help_text='Comma-separated list of technologies used', max_length=255)),
                ('project_url', models.URLField(blank=True, help_text='Link to the live project')),
                ('is_published', models.BooleanField(default=False)),
                ('order', models.PositiveIntegerField(default=0)),
                ('created_at', models.DateTimeField(auto_now_add=True)),
                ('updated_at', models.DateTimeField(auto_now=True)),
                ('meta_title', models.CharField(blank=True, help_text='SEO Title (max 100 chars)', max_length=100)),
                ('meta_description', models.TextField(blank=True, help_text='SEO Description (max 160 chars)', max_length=160)),
                ('meta_keywords', models.CharField(blank=True, help_text='Comma-separated keywords', max_length=255)),
                ('meta_image', models.ImageField(blank=True, help_text='Image for social sharing', null=True, upload_to='seo_images/')),
                ('meta_canonical_url', models.URLField(blank=True, help_text='Canonical URL if different from this page')),
            ],
            options={
                'ordering': ['order'],
            },
            bases=(cms.models.SeoMixin, models.Model),
        ),
        migrations.CreateModel(
            name='Service',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('title', models.CharField(max_length=200)),
                ('slug', models.SlugField(unique=True)),
                ('description', models.TextField()),
                ('image', models.ImageField(blank=True, null=True, upload_to='services/')),
                ('icon', models.CharField(help_text='Icon name from your icon set', max_length=50)),
                ('is_published', models.BooleanField(default=True)),
                ('order', models.PositiveIntegerField(default=0)),
                ('meta_title', models.CharField(blank=True, help_text='SEO Title (max 100 chars)', max_length=100)),
                ('meta_description', models.TextField(blank=True, help_text='SEO Description (max 160 chars)', max_length=160)),
                ('meta_keywords', models.CharField(blank=True, help_text='Comma-separated keywords', max_length=255)),
                ('meta_image', models.ImageField(blank=True, help_text='Image for social sharing', null=True, upload_to='seo_images/')),
                ('meta_canonical_url', models.URLField(blank=True, help_text='Canonical URL if different from this page')),
            ],
            options={
                'ordering': ['order'],
            },
            bases=(cms.models.SeoMixin, models.Model),
        ),
        migrations.CreateModel(
            name='TeamMember',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('name', models.CharField(max_length=100)),
                ('position', models.CharField(max_length=100)),
                ('bio', models.TextField(blank=True)),
                ('photo', models.ImageField(upload_to='team/')),
                ('order', models.PositiveIntegerField(default=0)),
            ],
            options={
                'ordering': ['order'],
            },
        ),
        migrations.CreateModel(
            name='Testimonial',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('name', models.CharField(max_length=100)),
                ('position', models.CharField(blank=True, max_length=100)),
                ('company', models.CharField(blank=True, max_length=100)),
                ('quote', models.TextField()),
                ('photo', models.ImageField(blank=True, null=True, upload_to='testimonials/')),
                ('is_published', models.BooleanField(default=True)),
            ],
        ),
    ]
