# Generated by Django 5.2.4 on 2025-10-15 00:15

import django.core.validators
from django.db import migrations, models


class Migration(migrations.Migration):

    initial = True

    dependencies = [
    ]

    operations = [
        migrations.CreateModel(
            name='Actualite',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('titre', models.CharField(max_length=300)),
                ('slug', models.SlugField(blank=True, unique=True)),
                ('type_actualite', models.CharField(choices=[('prix', 'Prix à la pompe'), ('recrutement', 'Recrutement'), ('appel_offre', "Appel d'offres"), ('communique', 'Communiqué'), ('engagement', 'Engagement social'), ('projet', 'Projet'), ('autre', 'Autre')], max_length=20)),
                ('resume', models.TextField(help_text='Résumé court', max_length=500)),
                ('contenu', models.TextField()),
                ('image_principale', models.ImageField(blank=True, null=True, upload_to='actualites/')),
                ('image_alt', models.CharField(blank=True, max_length=200)),
                ('fichier_joint', models.FileField(blank=True, null=True, upload_to='actualites/fichiers/', validators=[django.core.validators.FileExtensionValidator(['pdf', 'doc', 'docx'])])),
                ('est_epingle', models.BooleanField(default=False, verbose_name='Épingler')),
                ('est_publie', models.BooleanField(default=True)),
                ('date_publication', models.DateTimeField()),
                ('auteur', models.CharField(default='Bilal Oil', max_length=100)),
                ('vues', models.IntegerField(default=0)),
                ('created_at', models.DateTimeField(auto_now_add=True)),
                ('updated_at', models.DateTimeField(auto_now=True)),
            ],
            options={
                'verbose_name': 'Actualité',
                'verbose_name_plural': 'Actualités',
                'ordering': ['-est_epingle', '-date_publication'],
            },
        ),
        migrations.CreateModel(
            name='Contact',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('nom_complet', models.CharField(max_length=200)),
                ('email', models.EmailField(max_length=254)),
                ('telephone', models.CharField(blank=True, max_length=20)),
                ('entreprise', models.CharField(blank=True, max_length=200)),
                ('sujet', models.CharField(max_length=300)),
                ('message', models.TextField()),
                ('est_traite', models.BooleanField(default=False)),
                ('reponse', models.TextField(blank=True)),
                ('date_traitement', models.DateTimeField(blank=True, null=True)),
                ('created_at', models.DateTimeField(auto_now_add=True)),
            ],
            options={
                'verbose_name': 'Demande de Contact',
                'verbose_name_plural': 'Demandes de Contact',
                'ordering': ['-created_at'],
            },
        ),
        migrations.CreateModel(
            name='Service',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('nom', models.CharField(max_length=200)),
                ('slug', models.SlugField(blank=True, unique=True)),
                ('categorie', models.CharField(choices=[('carburant', 'Carburant'), ('lubrifiant', 'Lubrifiant'), ('entretien', 'Entretien Auto'), ('boutique', 'Boutique'), ('gaz', 'Gaz Butane'), ('autre', 'Autre')], max_length=20)),
                ('description', models.TextField()),
                ('description_courte', models.CharField(blank=True, max_length=255)),
                ('icone', models.CharField(blank=True, help_text="Nom de l'icône", max_length=50)),
                ('image', models.ImageField(blank=True, null=True, upload_to='services/')),
                ('ordre', models.IntegerField(default=0, help_text="Ordre d'affichage")),
                ('est_actif', models.BooleanField(default=True)),
                ('created_at', models.DateTimeField(auto_now_add=True)),
                ('updated_at', models.DateTimeField(auto_now=True)),
            ],
            options={
                'verbose_name': 'Service',
                'verbose_name_plural': 'Services',
                'ordering': ['ordre', 'nom'],
            },
        ),
        migrations.CreateModel(
            name='Statistique',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('libelle', models.CharField(help_text='Ex: Stations Services', max_length=200)),
                ('valeur', models.CharField(help_text='Ex: 50+', max_length=50)),
                ('icone', models.CharField(blank=True, max_length=50)),
                ('unite', models.CharField(blank=True, help_text='Ex: +, %, K', max_length=20)),
                ('ordre', models.IntegerField(default=0)),
                ('est_actif', models.BooleanField(default=True)),
                ('created_at', models.DateTimeField(auto_now_add=True)),
                ('updated_at', models.DateTimeField(auto_now=True)),
            ],
            options={
                'verbose_name': 'Statistique',
                'verbose_name_plural': 'Statistiques',
                'ordering': ['ordre'],
            },
        ),
        migrations.CreateModel(
            name='PrixCarburant',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('type_carburant', models.CharField(choices=[('essence', 'Essence'), ('gasoil', 'Gasoil'), ('super', 'Super'), ('gpl', 'GPL')], max_length=20)),
                ('prix', models.DecimalField(decimal_places=2, max_digits=8, verbose_name='Prix (FCFA)')),
                ('date_application', models.DateField()),
                ('date_fin', models.DateField(blank=True, null=True)),
                ('est_actuel', models.BooleanField(default=True)),
                ('created_at', models.DateTimeField(auto_now_add=True)),
            ],
            options={
                'verbose_name': 'Prix Carburant',
                'verbose_name_plural': 'Prix Carburants',
                'ordering': ['-date_application', 'type_carburant'],
                'unique_together': {('type_carburant', 'date_application')},
            },
        ),
        migrations.CreateModel(
            name='Station',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('nom', models.CharField(max_length=200, verbose_name='Nom de la station')),
                ('adresse', models.TextField(verbose_name='Adresse complète')),
                ('ville', models.CharField(max_length=100)),
                ('region', models.CharField(max_length=100)),
                ('latitude', models.DecimalField(blank=True, decimal_places=6, max_digits=9, null=True)),
                ('longitude', models.DecimalField(blank=True, decimal_places=6, max_digits=9, null=True)),
                ('telephone', models.CharField(blank=True, max_length=20)),
                ('email', models.EmailField(blank=True, max_length=254)),
                ('image', models.ImageField(blank=True, null=True, upload_to='stations/')),
                ('horaires', models.TextField(blank=True, verbose_name="Horaires d'ouverture")),
                ('est_active', models.BooleanField(default=True)),
                ('date_ouverture', models.DateField(blank=True, null=True)),
                ('created_at', models.DateTimeField(auto_now_add=True)),
                ('updated_at', models.DateTimeField(auto_now=True)),
                ('services', models.ManyToManyField(blank=True, related_name='stations', to='bilal.service')),
            ],
            options={
                'verbose_name': 'Station Service',
                'verbose_name_plural': 'Stations Services',
                'ordering': ['ville', 'nom'],
            },
        ),
    ]
