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

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


class Migration(migrations.Migration):

    initial = True

    dependencies = [
    ]

    operations = [
        migrations.CreateModel(
            name='MasterStudent',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('cohort_year', models.PositiveIntegerField(help_text='Ex: 2024', verbose_name='Annee de promotion')),
                ('current_semester', models.PositiveIntegerField(default=1, verbose_name='Semestre actuel')),
                ('thesis_title', models.CharField(blank=True, max_length=300, verbose_name='Titre du memoire')),
                ('thesis_description', models.TextField(blank=True, verbose_name='Resume du memoire')),
                ('has_scholarship', models.BooleanField(default=False, verbose_name='Boursier')),
                ('graduation_date', models.DateField(blank=True, null=True, verbose_name='Date de diplomation')),
                ('is_alumni', models.BooleanField(default=False, verbose_name='Ancien etudiant')),
            ],
            options={
                'verbose_name': 'Etudiant Master',
                'verbose_name_plural': 'Etudiants Master',
            },
            bases=(traduction.mixins.TranslatableMixin, models.Model),
        ),
        migrations.CreateModel(
            name='Person',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('first_name', models.CharField(max_length=100, verbose_name='Prenom')),
                ('last_name', models.CharField(max_length=100, verbose_name='Nom')),
                ('slug', models.SlugField(blank=True, max_length=200, unique=True, verbose_name='Slug')),
                ('email', models.EmailField(max_length=254, verbose_name='Email')),
                ('phone', models.CharField(blank=True, max_length=30, verbose_name='Telephone')),
                ('photo', models.ImageField(blank=True, null=True, upload_to='team/photos/', verbose_name='Photo')),
                ('bio', models.TextField(blank=True, verbose_name='Biographie')),
                ('person_type', models.CharField(choices=[('professor', 'Professeur'), ('phd', 'Doctorant'), ('master', 'Etudiant Master')], max_length=20, verbose_name='Type')),
                ('research_interests', models.TextField(blank=True, verbose_name='Interets de recherche')),
                ('website', models.URLField(blank=True, verbose_name='Site personnel')),
                ('linkedin_url', models.URLField(blank=True, verbose_name='LinkedIn')),
                ('github_url', models.URLField(blank=True, verbose_name='GitHub')),
                ('google_scholar_url', models.URLField(blank=True, verbose_name='Google Scholar')),
                ('orcid', models.CharField(blank=True, max_length=20, verbose_name='ORCID')),
                ('is_director', models.BooleanField(default=False, verbose_name='Directeur')),
                ('is_coordinator', models.BooleanField(default=False, verbose_name='Coordinateur')),
                ('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': 'Membre',
                'verbose_name_plural': 'Membres',
                'ordering': ['order', 'last_name', 'first_name'],
            },
            bases=(traduction.mixins.TranslatableMixin, models.Model),
        ),
        migrations.CreateModel(
            name='PhDStudent',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('thesis_title', models.CharField(max_length=300, verbose_name='Titre de these')),
                ('thesis_description', models.TextField(blank=True, verbose_name='Resume de these')),
                ('start_date', models.DateField(verbose_name='Date de debut')),
                ('expected_end_date', models.DateField(blank=True, null=True, verbose_name='Date de fin prevue')),
                ('defense_date', models.DateField(blank=True, null=True, verbose_name='Date de soutenance')),
                ('funding_source', models.CharField(blank=True, max_length=200, verbose_name='Source de financement')),
            ],
            options={
                'verbose_name': 'Doctorant',
                'verbose_name_plural': 'Doctorants',
            },
            bases=(traduction.mixins.TranslatableMixin, models.Model),
        ),
        migrations.CreateModel(
            name='Professor',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('title', models.CharField(choices=[('prof', 'Prof.'), ('dr', 'Dr.'), ('prof_dr', 'Prof. Dr.')], default='prof', max_length=20, verbose_name='Titre')),
                ('position', models.CharField(blank=True, help_text='Ex: Professeur des Universites', max_length=200, verbose_name='Poste')),
                ('department', models.CharField(blank=True, max_length=200, verbose_name='Departement')),
                ('specialization', models.CharField(blank=True, max_length=200, verbose_name='Specialisation')),
                ('office_location', models.CharField(blank=True, max_length=100, verbose_name='Bureau')),
                ('office_phone', models.CharField(blank=True, max_length=30, verbose_name='Tel. bureau')),
                ('office_hours', models.CharField(blank=True, max_length=200, verbose_name='Heures de permanence')),
                ('academic_credentials', models.TextField(blank=True, verbose_name='Parcours academique')),
                ('years_experience', models.PositiveIntegerField(blank=True, null=True, verbose_name="Annees d'experience")),
            ],
            options={
                'verbose_name': 'Professeur',
                'verbose_name_plural': 'Professeurs',
            },
            bases=(traduction.mixins.TranslatableMixin, models.Model),
        ),
    ]
