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

import colorfield.fields
import django.db.models.deletion
import traduction.mixins
from django.db import migrations, models


class Migration(migrations.Migration):

    initial = True

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

    operations = [
        migrations.CreateModel(
            name='CarouselSlide',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('order', models.PositiveSmallIntegerField(default=0, verbose_name='Order')),
                ('title', models.CharField(max_length=200, verbose_name='Titre')),
                ('subtitle', models.CharField(blank=True, max_length=300, verbose_name='Sous-titre')),
                ('description', models.TextField(blank=True, verbose_name='Description')),
                ('image', models.ImageField(upload_to='carousel/', verbose_name='Image de fond')),
                ('is_active', models.BooleanField(default=True, verbose_name='Actif')),
            ],
            options={
                'verbose_name': 'Slide carousel',
                'verbose_name_plural': 'Slides carousel',
                'ordering': ['order'],
            },
            bases=(traduction.mixins.TranslatableMixin, models.Model),
        ),
        migrations.CreateModel(
            name='ProgramStatistic',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('label', models.CharField(max_length=100, verbose_name='Label')),
                ('value', models.CharField(max_length=50, verbose_name='Valeur')),
                ('icon', models.CharField(blank=True, max_length=100, verbose_name='Icone (classe CSS ou SVG)')),
                ('description', models.CharField(blank=True, max_length=200, verbose_name='Description courte')),
                ('order', models.PositiveIntegerField(default=0, verbose_name='Ordre')),
                ('is_active', models.BooleanField(default=True, verbose_name='Actif')),
            ],
            options={
                'verbose_name': 'Statistique',
                'verbose_name_plural': 'Statistiques',
                'ordering': ['order'],
            },
            bases=(traduction.mixins.TranslatableMixin, models.Model),
        ),
        migrations.CreateModel(
            name='SiteConfiguration',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('site_name', models.CharField(default='EUROMA', max_length=100, verbose_name='Nom du site')),
                ('tagline', models.CharField(blank=True, max_length=200, verbose_name='Slogan')),
                ('phone', models.CharField(default='+33 1 42 34 56 78', max_length=20, verbose_name='Telephone')),
                ('email', models.EmailField(default='contact@greentechmobility.org', max_length=254, verbose_name='Email')),
                ('address', models.TextField(blank=True, verbose_name='Adresse')),
                ('facebook_url', models.URLField(blank=True, verbose_name='Facebook')),
                ('twitter_url', models.URLField(blank=True, verbose_name='Twitter/X')),
                ('linkedin_url', models.URLField(blank=True, verbose_name='LinkedIn')),
                ('youtube_url', models.URLField(blank=True, verbose_name='YouTube')),
                ('meta_description', models.TextField(blank=True, verbose_name='Meta description')),
                ('meta_keywords', models.CharField(blank=True, max_length=255, verbose_name='Meta keywords')),
            ],
            options={
                'verbose_name': 'Configuration du site',
                'verbose_name_plural': 'Configuration du site',
            },
            bases=(traduction.mixins.TranslatableMixin, models.Model),
        ),
        migrations.CreateModel(
            name='SocialMediaLink',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('platform', models.CharField(choices=[('facebook', 'Facebook'), ('twitter', 'Twitter/X'), ('linkedin', 'LinkedIn'), ('youtube', 'YouTube'), ('instagram', 'Instagram'), ('github', 'GitHub')], max_length=20, verbose_name='Plateforme')),
                ('url', models.URLField(verbose_name='URL')),
                ('is_active', models.BooleanField(default=True, verbose_name='Actif')),
                ('order', models.PositiveIntegerField(default=0, verbose_name='Ordre')),
            ],
            options={
                'verbose_name': 'Lien reseau social',
                'verbose_name_plural': 'Liens reseaux sociaux',
                'ordering': ['order'],
            },
        ),
        migrations.CreateModel(
            name='UniversityMapSettings',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('title', models.CharField(default='Nos Universités Partenaires', max_length=200, verbose_name='Titre de la section')),
                ('subtitle', models.TextField(blank=True, default="Découvrez notre réseau d'universités à travers l'Europe et le monde", verbose_name='Sous-titre')),
                ('map_style', models.CharField(choices=[('default', 'OpenStreetMap (défaut)'), ('light', 'CartoDB Positron (clair)'), ('dark', 'CartoDB Dark Matter (sombre)'), ('satellite', 'Esri Satellite')], default='default', max_length=20, verbose_name='Style de carte')),
                ('default_zoom', models.PositiveIntegerField(default=4, verbose_name='Zoom par défaut')),
                ('center_latitude', models.DecimalField(decimal_places=6, default=48.8566, max_digits=9, verbose_name='Latitude du centre')),
                ('center_longitude', models.DecimalField(decimal_places=6, default=2.3522, max_digits=9, verbose_name='Longitude du centre')),
                ('map_height', models.PositiveIntegerField(default=500, verbose_name='Hauteur de la carte (px)')),
                ('marker_color', colorfield.fields.ColorField(default='#1e3a5f', image_field=None, max_length=25, samples=None, verbose_name='Couleur des marqueurs')),
                ('coordinator_marker_color', colorfield.fields.ColorField(default='#f59e0b', image_field=None, max_length=25, samples=None, verbose_name='Couleur marqueur coordinateur')),
                ('show_on_home', models.BooleanField(default=True, verbose_name="Afficher sur la page d'accueil")),
                ('show_on_universities_page', models.BooleanField(default=True, verbose_name='Afficher sur la page universités')),
                ('is_active', models.BooleanField(default=True, verbose_name='Carte active')),
            ],
            options={
                'verbose_name': 'Configuration carte universités',
                'verbose_name_plural': 'Configuration carte universités',
            },
            bases=(traduction.mixins.TranslatableMixin, models.Model),
        ),
        migrations.CreateModel(
            name='Partner',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('name', models.CharField(max_length=100, verbose_name='Nom')),
                ('logo', models.ImageField(blank=True, null=True, upload_to='partners/', verbose_name='Logo')),
                ('website', models.URLField(blank=True, verbose_name='Site web')),
                ('description', models.TextField(blank=True, verbose_name='Description')),
                ('city', models.CharField(blank=True, max_length=100, verbose_name='Ville')),
                ('latitude', models.DecimalField(blank=True, decimal_places=6, max_digits=9, null=True, verbose_name='Latitude')),
                ('longitude', models.DecimalField(blank=True, decimal_places=6, max_digits=9, null=True, verbose_name='Longitude')),
                ('is_main_partner', models.BooleanField(default=False, verbose_name='Partenaire principal')),
                ('order', models.PositiveIntegerField(default=0, verbose_name='Ordre')),
                ('is_active', models.BooleanField(default=True, verbose_name='Actif')),
                ('country', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to='config.country', verbose_name='Pays')),
            ],
            options={
                'verbose_name': 'Partenaire',
                'verbose_name_plural': 'Partenaires',
                'ordering': ['order', 'name'],
            },
            bases=(traduction.mixins.TranslatableMixin, models.Model),
        ),
    ]
