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

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


class Migration(migrations.Migration):

    initial = True

    dependencies = [
    ]

    operations = [
        migrations.CreateModel(
            name='Publication',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('title', models.CharField(max_length=500, verbose_name='Titre')),
                ('abstract', models.TextField(blank=True, verbose_name='Resume')),
                ('publication_type', models.CharField(choices=[('journal', 'Article de journal'), ('conference', 'Conference'), ('workshop', 'Workshop'), ('book_chapter', 'Chapitre de livre'), ('thesis', 'These'), ('report', 'Rapport')], max_length=20, verbose_name='Type')),
                ('venue', models.CharField(blank=True, max_length=300, verbose_name='Revue/Conference')),
                ('publication_date', models.DateField(verbose_name='Date de publication')),
                ('external_authors', models.TextField(blank=True, help_text='Auteurs non membres du programme', verbose_name='Auteurs externes')),
                ('doi', models.CharField(blank=True, max_length=100, null=True, unique=True, verbose_name='DOI')),
                ('pdf_url', models.URLField(blank=True, verbose_name='Lien PDF')),
                ('external_url', models.URLField(blank=True, verbose_name='Lien externe')),
                ('is_peer_reviewed', models.BooleanField(default=True, verbose_name='Revu par les pairs')),
                ('is_featured', models.BooleanField(default=False, verbose_name='Mis en avant')),
                ('is_active', models.BooleanField(default=True, verbose_name='Actif')),
                ('created_at', models.DateTimeField(auto_now_add=True, verbose_name='Cree le')),
            ],
            options={
                'verbose_name': 'Publication',
                'verbose_name_plural': 'Publications',
                'ordering': ['-publication_date'],
            },
            bases=(traduction.mixins.TranslatableMixin, models.Model),
        ),
        migrations.CreateModel(
            name='PublicationAuthor',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('order', models.PositiveIntegerField(default=0, verbose_name='Ordre')),
                ('is_corresponding', models.BooleanField(default=False, verbose_name='Auteur correspondant')),
            ],
            options={
                'verbose_name': 'Auteur',
                'verbose_name_plural': 'Auteurs',
                'ordering': ['order'],
            },
        ),
        migrations.CreateModel(
            name='ResearchArea',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('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(verbose_name='Description')),
                ('short_description', models.CharField(blank=True, max_length=300, verbose_name='Description courte')),
                ('icon', models.CharField(blank=True, max_length=50, verbose_name='Icone')),
                ('color', colorfield.fields.ColorField(default='#2563eb', image_field=None, max_length=25, samples=None, verbose_name='Couleur')),
                ('image', models.ImageField(blank=True, null=True, upload_to='research/areas/', verbose_name='Image')),
                ('order', models.PositiveIntegerField(default=0, verbose_name='Ordre')),
                ('is_active', models.BooleanField(default=True, verbose_name='Actif')),
            ],
            options={
                'verbose_name': 'Domaine de recherche',
                'verbose_name_plural': 'Domaines de recherche',
                'ordering': ['order', 'name'],
            },
            bases=(traduction.mixins.TranslatableMixin, models.Model),
        ),
        migrations.CreateModel(
            name='ResearchKeyword',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('keyword', models.CharField(max_length=50, verbose_name='Mot-cle')),
                ('order', models.PositiveIntegerField(default=0, verbose_name='Ordre')),
            ],
            options={
                'verbose_name': 'Mot-cle',
                'verbose_name_plural': 'Mots-cles',
                'ordering': ['order'],
            },
        ),
        migrations.CreateModel(
            name='ResearchProject',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('title', models.CharField(max_length=255, verbose_name='Titre')),
                ('slug', models.SlugField(blank=True, max_length=255, unique=True, verbose_name='Slug')),
                ('description', models.TextField(verbose_name='Description')),
                ('short_description', models.CharField(blank=True, max_length=400, verbose_name='Description courte')),
                ('level', models.CharField(choices=[('master', 'Master'), ('phd', 'Doctorat'), ('postdoc', 'Post-doctorat')], default='master', max_length=20, verbose_name='Niveau')),
                ('status', models.CharField(choices=[('active', 'En cours'), ('completed', 'Termine'), ('proposed', 'Propose')], default='active', max_length=20, verbose_name='Statut')),
                ('image', models.ImageField(blank=True, null=True, upload_to='research/projects/', verbose_name='Image')),
                ('start_date', models.DateField(blank=True, null=True, verbose_name='Date de debut')),
                ('end_date', models.DateField(blank=True, null=True, verbose_name='Date de fin')),
                ('funding_amount', models.DecimalField(blank=True, decimal_places=2, max_digits=12, null=True, verbose_name='Financement (EUR)')),
                ('funding_source', models.CharField(blank=True, max_length=200, verbose_name='Source de financement')),
                ('external_url', models.URLField(blank=True, verbose_name='Lien externe')),
                ('is_featured', models.BooleanField(default=False, verbose_name='Mis en avant')),
                ('is_active', models.BooleanField(default=True, verbose_name='Actif')),
                ('order', models.PositiveIntegerField(default=0, verbose_name='Ordre')),
                ('created_at', models.DateTimeField(auto_now_add=True, verbose_name='Cree le')),
            ],
            options={
                'verbose_name': 'Projet de recherche',
                'verbose_name_plural': 'Projets de recherche',
                'ordering': ['-is_featured', 'order', '-start_date'],
            },
            bases=(traduction.mixins.TranslatableMixin, models.Model),
        ),
    ]
