# Generated by Django 5.1.3 on 2025-05-28 11:14 import django.contrib.postgres.fields import django.db.models.deletion from django.db import migrations, models class Migration(migrations.Migration): initial = True dependencies = [ ('Auth', '0001_initial'), ('Common', '0001_initial'), ('Establishment', '0001_initial'), ] operations = [ migrations.CreateModel( name='Competency', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('name', models.TextField()), ('end_of_cycle', models.BooleanField(blank=True, default=False, null=True)), ('level', models.CharField(blank=True, max_length=50, null=True)), ('category', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='competencies', to='Common.category')), ], ), migrations.CreateModel( name='Discount', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('name', models.CharField(blank=True, max_length=255, null=True)), ('amount', models.DecimalField(decimal_places=2, default=0, max_digits=10)), ('description', models.TextField(blank=True)), ('discount_type', models.IntegerField(choices=[(0, 'Currency'), (1, 'Percent')], default=0)), ('type', models.IntegerField(choices=[(0, 'Registration Fee'), (1, 'Tuition Fee')], default=0)), ('updated_at', models.DateTimeField(auto_now=True)), ('establishment', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='discounts', to='Establishment.establishment')), ], ), migrations.CreateModel( name='EstablishmentCompetency', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('custom_name', models.TextField(blank=True, help_text='Nom de la compétence custom', null=True)), ('is_required', models.BooleanField(default=True)), ('competency', models.ForeignKey(blank=True, help_text='Compétence de référence (optionnelle si custom)', null=True, on_delete=django.db.models.deletion.CASCADE, to='School.competency')), ('custom_category', models.ForeignKey(blank=True, help_text='Catégorie de la compétence custom', null=True, on_delete=django.db.models.deletion.CASCADE, to='Common.category')), ('establishment', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='Establishment.establishment')), ], options={ 'unique_together': {('establishment', 'competency', 'custom_name', 'custom_category')}, }, ), migrations.AddField( model_name='competency', name='establishments', field=models.ManyToManyField(blank=True, related_name='competencies', through='School.EstablishmentCompetency', to='Establishment.establishment'), ), migrations.CreateModel( name='Fee', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('name', models.CharField(blank=True, max_length=255, null=True)), ('base_amount', models.DecimalField(decimal_places=2, default=0, max_digits=10)), ('description', models.TextField(blank=True)), ('is_active', models.BooleanField(default=True)), ('updated_at', models.DateTimeField(auto_now=True)), ('type', models.IntegerField(choices=[(0, 'Registration Fee'), (1, 'Tuition Fee')], default=0)), ('establishment', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='fees', to='Establishment.establishment')), ], ), migrations.CreateModel( name='PaymentMode', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('type', models.IntegerField(choices=[(0, 'Registration Fee'), (1, 'Tuition Fee')], default=0)), ('establishment', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='payment_modes', to='Establishment.establishment')), ('mode', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='payment_modes', to='Common.paymentmodetype')), ], ), migrations.CreateModel( name='PaymentPlan', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('due_dates', django.contrib.postgres.fields.ArrayField(base_field=models.DateField(), blank=True, null=True, size=None)), ('type', models.IntegerField(choices=[(0, 'Registration Fee'), (1, 'Tuition Fee')], default=0)), ('establishment', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='payment_plans', to='Establishment.establishment')), ('plan_type', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='payment_plans', to='Common.paymentplantype')), ], ), migrations.CreateModel( name='SchoolClass', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('atmosphere_name', models.CharField(blank=True, max_length=255, null=True)), ('age_range', models.JSONField(blank=True, null=True)), ('number_of_students', models.PositiveIntegerField(blank=True, null=True)), ('teaching_language', models.CharField(blank=True, max_length=255)), ('school_year', models.CharField(blank=True, max_length=9)), ('updated_date', models.DateTimeField(auto_now=True)), ('type', models.IntegerField(choices=[(1, 'Annuel'), (2, 'Semestriel'), (3, 'Trimestriel')], default=1)), ('time_range', models.JSONField(default=list)), ('opening_days', django.contrib.postgres.fields.ArrayField(base_field=models.IntegerField(), default=list, size=None)), ('establishment', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='school_classes', to='Establishment.establishment')), ('levels', models.ManyToManyField(blank=True, related_name='school_classes', to='Common.level')), ], ), migrations.CreateModel( name='Planning', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('level', models.IntegerField(blank=True, choices=[(1, 'Très Petite Section (TPS)'), (2, 'Petite Section (PS)'), (3, 'Moyenne Section (MS)'), (4, 'Grande Section (GS)'), (5, 'Cours Préparatoire (CP)'), (6, 'Cours Élémentaire 1 (CE1)'), (7, 'Cours Élémentaire 2 (CE2)'), (8, 'Cours Moyen 1 (CM1)'), (9, 'Cours Moyen 2 (CM2)')], null=True)), ('schedule', models.JSONField(default=dict)), ('school_class', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='plannings', to='School.schoolclass')), ], ), migrations.CreateModel( name='Speciality', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('name', models.CharField(max_length=100)), ('updated_date', models.DateTimeField(auto_now=True)), ('color_code', models.CharField(default='#FFFFFF', max_length=7)), ('establishment', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='specialities', to='Establishment.establishment')), ], ), migrations.CreateModel( name='Teacher', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('last_name', models.CharField(max_length=100)), ('first_name', models.CharField(max_length=100)), ('updated_date', models.DateTimeField(auto_now=True)), ('profile_role', models.OneToOneField(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='teacher_profile', to='Auth.profilerole')), ('specialities', models.ManyToManyField(blank=True, to='School.speciality')), ], ), migrations.AddField( model_name='schoolclass', name='teachers', field=models.ManyToManyField(blank=True, to='School.teacher'), ), ]