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

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


class Migration(migrations.Migration):

    initial = True

    dependencies = [
        ('contenttypes', '0002_remove_content_type_name'),
    ]

    operations = [
        migrations.CreateModel(
            name='Language',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('code', models.CharField(help_text='Code ISO (ex: fr, en, de, es)', max_length=10, unique=True, verbose_name='Code langue')),
                ('name', models.CharField(max_length=100, verbose_name='Nom')),
                ('native_name', models.CharField(blank=True, help_text='Nom dans la langue elle-meme (ex: Francais, English)', max_length=100, verbose_name='Nom natif')),
                ('flag_code', models.CharField(blank=True, help_text='Code pays pour le drapeau (ex: fr, gb, de)', max_length=10, verbose_name='Code drapeau')),
                ('is_default', models.BooleanField(default=False, help_text='Une seule langue peut etre par defaut', verbose_name='Langue par defaut')),
                ('is_active', models.BooleanField(default=True, verbose_name='Active')),
                ('order', models.PositiveIntegerField(default=0, verbose_name='Ordre')),
            ],
            options={
                'verbose_name': 'Langue',
                'verbose_name_plural': 'Langues',
                'ordering': ['order', 'name'],
            },
        ),
        migrations.CreateModel(
            name='Traducteur',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('key', models.CharField(max_length=100, unique=True, verbose_name='Cle')),
                ('value', models.TextField(blank=True, null=True, verbose_name='Traduction')),
                ('created_at', models.DateTimeField(auto_now_add=True, verbose_name='Cree le')),
                ('updated_at', models.DateTimeField(auto_now=True, verbose_name='Modifie le')),
            ],
            options={
                'verbose_name': 'Traducteur',
                'verbose_name_plural': 'Traducteurs',
            },
            bases=(traduction.mixins.TranslatableMixin, models.Model),
        ),
        migrations.CreateModel(
            name='Dictionnaire',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('object_id', models.PositiveIntegerField(verbose_name='ID objet')),
                ('field', models.CharField(help_text='Nom du champ traduit', max_length=100, verbose_name='Champ')),
                ('translation', models.TextField(verbose_name='Traduction')),
                ('created_at', models.DateTimeField(auto_now_add=True, verbose_name='Cree le')),
                ('updated_at', models.DateTimeField(auto_now=True, verbose_name='Modifie le')),
                ('content_type', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='contenttypes.contenttype', verbose_name='Type de contenu')),
                ('language', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='translations', to='traduction.language', verbose_name='Langue')),
            ],
            options={
                'verbose_name': 'Traduction',
                'verbose_name_plural': 'Dictionnaire',
                'ordering': ['content_type', 'object_id', 'field', 'language'],
                'indexes': [models.Index(fields=['content_type', 'object_id'], name='traduction__content_d669c8_idx'), models.Index(fields=['content_type', 'object_id', 'field'], name='traduction__content_2e5bf6_idx')],
                'unique_together': {('content_type', 'object_id', 'field', 'language')},
            },
        ),
    ]
