# Generated by Django 5.0.14 on 2026-02-04 22:11

import colorfield.fields
import django.db.models.deletion
import django.utils.timezone
import django_ckeditor_5.fields
import image_factory.models
import traduction.mixins
from django.db import migrations, models


class Migration(migrations.Migration):

    initial = True

    dependencies = [
        ('cms', '0001_initial'),
    ]

    operations = [
        migrations.CreateModel(
            name='EventType',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('order', models.PositiveSmallIntegerField(default=0, verbose_name='Order')),
                ('created_at', models.DateTimeField(auto_now_add=True)),
                ('updated_at', models.DateTimeField(auto_now=True)),
                ('name', models.CharField(max_length=100, verbose_name='Nom')),
                ('slug', models.SlugField(blank=True, max_length=100, unique=True, verbose_name='Slug')),
                ('description', models.TextField(blank=True, verbose_name='Description')),
                ('color', colorfield.fields.ColorField(default='#007bff', image_field=None, max_length=25, samples=None, verbose_name='Couleur')),
                ('is_active', models.BooleanField(default=True, verbose_name='Actif')),
            ],
            options={
                'verbose_name': "Type d'evenement",
                'verbose_name_plural': "Types d'evenements",
                'ordering': ['order', 'name'],
            },
            bases=(traduction.mixins.TranslatableMixin, models.Model),
        ),
        migrations.CreateModel(
            name='NewsArticle',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('created_at', models.DateTimeField(auto_now_add=True)),
                ('image', models.ImageField(blank=True, null=True, upload_to=image_factory.models.get_image_upload_path, verbose_name='Image')),
                ('title', models.CharField(max_length=255, verbose_name='Titre')),
                ('slug', models.SlugField(blank=True, max_length=255, unique=True, verbose_name='Slug')),
                ('content', django_ckeditor_5.fields.CKEditor5Field(verbose_name='Contenu')),
                ('image_caption', models.CharField(blank=True, max_length=200, verbose_name='Legende image')),
                ('publication_date', models.DateTimeField(default=django.utils.timezone.now, verbose_name='Date de publication')),
                ('updated_at', models.DateTimeField(auto_now=True, verbose_name='Mis a jour le')),
                ('is_featured', models.BooleanField(default=False, verbose_name='A la une')),
                ('is_published', models.BooleanField(default=True, verbose_name='Publie')),
                ('view_count', models.PositiveIntegerField(default=0, verbose_name='Nombre de vues')),
                ('meta_description', models.CharField(blank=True, max_length=160, verbose_name='Meta description')),
            ],
            options={
                'verbose_name': 'Article',
                'verbose_name_plural': 'Articles',
                'ordering': ['-is_featured', '-publication_date'],
            },
            bases=(traduction.mixins.TranslatableMixin, models.Model),
        ),
        migrations.CreateModel(
            name='NewsCategory',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('order', models.PositiveSmallIntegerField(default=0, verbose_name='Order')),
                ('created_at', models.DateTimeField(auto_now_add=True)),
                ('updated_at', models.DateTimeField(auto_now=True)),
                ('name', models.CharField(max_length=100, verbose_name='Nom')),
                ('slug', models.SlugField(blank=True, max_length=100, unique=True, verbose_name='Slug')),
                ('description', models.TextField(blank=True, verbose_name='Description')),
                ('color', colorfield.fields.ColorField(default='#2563eb', image_field=None, max_length=25, samples=None)),
                ('is_active', models.BooleanField(default=True, verbose_name='Active')),
            ],
            options={
                'verbose_name': 'Categorie',
                'verbose_name_plural': 'Categories',
                'ordering': ['order', 'name'],
            },
            bases=(traduction.mixins.TranslatableMixin, models.Model),
        ),
        migrations.CreateModel(
            name='Event',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('created_at', models.DateTimeField(auto_now_add=True)),
                ('updated_at', models.DateTimeField(auto_now=True)),
                ('image', models.ImageField(blank=True, null=True, upload_to=image_factory.models.get_image_upload_path, verbose_name='Image')),
                ('title', models.CharField(max_length=255, verbose_name='Titre')),
                ('slug', models.SlugField(blank=True, max_length=255, unique=True, verbose_name='Slug')),
                ('description', django_ckeditor_5.fields.CKEditor5Field(verbose_name='Description')),
                ('short_description', models.CharField(blank=True, max_length=300, verbose_name='Description courte')),
                ('event_date', models.DateTimeField(verbose_name='Date de debut')),
                ('end_date', models.DateTimeField(blank=True, null=True, verbose_name='Date de fin')),
                ('location', models.CharField(blank=True, max_length=300, verbose_name='Lieu')),
                ('is_online', models.BooleanField(default=False, verbose_name='En ligne')),
                ('online_url', models.URLField(blank=True, verbose_name='Lien de connexion')),
                ('registration_url', models.URLField(blank=True, verbose_name="Lien d'inscription")),
                ('registration_deadline', models.DateTimeField(blank=True, null=True, verbose_name="Date limite d'inscription")),
                ('contact_email', models.EmailField(blank=True, max_length=254, verbose_name='Email de contact')),
                ('is_featured', models.BooleanField(default=False, verbose_name='Mis en avant')),
                ('is_active', models.BooleanField(default=True, verbose_name='Actif')),
                ('cms_page', models.ForeignKey(blank=True, help_text='Page CMS associee a cette instance', null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='%(app_label)s_%(class)s_instances', to='cms.page', verbose_name='Page CMS')),
            ],
            options={
                'verbose_name': 'Evenement',
                'verbose_name_plural': 'Evenements',
                'ordering': ['event_date'],
            },
            bases=(traduction.mixins.TranslatableMixin, models.Model),
        ),
    ]
