# Generated by Django 5.1.7 on 2025-03-25 17:13 import django.contrib.auth.models import django.db.models.deletion from django.db import migrations, models class Migration(migrations.Migration): initial = True dependencies = [ ('auth', '0012_alter_user_first_name_max_length'), ] operations = [ migrations.CreateModel( name='Batch', fields=[ ('id', models.BigAutoField(primary_key=True, serialize=False)), ('name', models.CharField(max_length=255)), ('start_date', models.DateField(blank=True, null=True)), ('end_date', models.DateField(blank=True, null=True)), ], options={ 'verbose_name': 'Batch', 'verbose_name_plural': 'Batches', }, ), migrations.CreateModel( name='Course', fields=[ ('id', models.BigAutoField(primary_key=True, serialize=False)), ('name', models.CharField(max_length=500)), ('duration', models.IntegerField(blank=True, default=1, null=True)), ('duration_type', models.CharField(blank=True, choices=[('Year', 'Yearl Based'), ('Semester', 'Semester Based')], max_length=255, null=True)), ], options={ 'verbose_name': 'Course', 'verbose_name_plural': 'Courses', }, ), migrations.CreateModel( name='FCMDevice', fields=[ ('id', models.BigAutoField(primary_key=True, serialize=False)), ('token', models.TextField(unique=True)), ], ), migrations.CreateModel( name='Institute', fields=[ ('id', models.BigAutoField(primary_key=True, serialize=False)), ('name', models.CharField(max_length=255)), ('phone', models.CharField(blank=True, max_length=255, null=True)), ('email', models.CharField(blank=True, max_length=255, null=True)), ('address', models.CharField(blank=True, max_length=255, null=True)), ('pan_no', models.CharField(blank=True, max_length=255, null=True)), ('reg_no', models.CharField(blank=True, max_length=255, null=True)), ('logo', models.ImageField(blank=True, null=True, upload_to='image')), ('description', models.TextField(blank=True, null=True)), ], options={ 'verbose_name': 'Institute', 'verbose_name_plural': 'Institutes', }, ), migrations.CreateModel( name='Notice', fields=[ ('id', models.BigAutoField(primary_key=True, serialize=False)), ('title', models.CharField(max_length=255)), ('image', models.ImageField(blank=True, null=True, upload_to='notice')), ('message', models.TextField(blank=True, null=True)), ('created_at', models.DateTimeField(auto_now_add=True)), ], options={ 'verbose_name': 'Notice', 'verbose_name_plural': 'Notices', }, ), migrations.CreateModel( name='Staff', fields=[ ('last_login', models.DateTimeField(blank=True, null=True, verbose_name='last login')), ('is_active', models.BooleanField(default=True)), ('is_superuser', models.BooleanField(default=False)), ('id', models.BigAutoField(primary_key=True, serialize=False)), ('name', models.CharField(max_length=255)), ('phone', models.CharField(blank=True, max_length=255, null=True, unique=True)), ('designation', models.CharField(blank=True, max_length=255, null=True)), ('gender', models.CharField(blank=True, choices=[('Male', 'Male'), ('Female', 'Female'), ('Other', 'Other')], max_length=255, null=True)), ('birth_date', models.DateField(blank=True, null=True)), ('email', models.CharField(blank=True, max_length=255, null=True)), ('temporary_address', models.CharField(blank=True, max_length=255, null=True)), ('permanent_address', models.CharField(blank=True, max_length=255, null=True)), ('marital_status', models.CharField(blank=True, choices=[('Married', 'Married'), ('Unmarried', 'Unmarried'), ('Divorced', 'Divorced')], max_length=255, null=True)), ('joining_date', models.DateField(blank=True, null=True)), ('password', models.CharField(editable=False, max_length=128, null=True)), ('groups', models.ManyToManyField(blank=True, help_text='The groups this staff belongs to.', related_name='staffs', to='auth.group', verbose_name='groups')), ('user_permissions', models.ManyToManyField(blank=True, help_text='Specific permissions for this staff.', related_name='staff_set', related_query_name='staff', to='auth.permission', verbose_name='user permissions')), ], options={ 'verbose_name': 'Staff', 'verbose_name_plural': 'Staffs', }, managers=[ ('objects', django.contrib.auth.models.UserManager()), ], ), migrations.CreateModel( name='Routine', fields=[ ('id', models.BigAutoField(primary_key=True, serialize=False)), ('name', models.CharField(blank=True, max_length=255, null=True)), ('start_time', models.TimeField(blank=True, null=True)), ('end_time', models.TimeField(blank=True, null=True)), ('teacher', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='routines', to='app.staff')), ], options={ 'verbose_name': 'Routine', 'verbose_name_plural': 'Routines', }, ), migrations.CreateModel( name='Attendance', fields=[ ('id', models.BigAutoField(primary_key=True, serialize=False)), ('date', models.DateField()), ('teacher_attend', models.BooleanField(default=True)), ('class_status', models.BooleanField(default=True)), ('routine', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='attendances', to='app.routine')), ('teacher', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='attendances', to='app.staff')), ], options={ 'verbose_name': 'Attendance', 'verbose_name_plural': 'Attendances', }, ), migrations.CreateModel( name='Staff_leave', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('date', models.DateField()), ('message', models.TextField()), ('status', models.IntegerField(choices=[(0, 'Pending'), (1, 'Approved'), (2, 'Rejected')], default=0)), ('created_at', models.DateTimeField(auto_now_add=True)), ('updated_at', models.DateTimeField(auto_now=True)), ('staff', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='app.staff')), ], options={ 'verbose_name': 'Staff Leave', 'verbose_name_plural': 'Staff Leaves', 'ordering': ['-created_at'], }, ), migrations.CreateModel( name='Student', fields=[ ('last_login', models.DateTimeField(blank=True, null=True, verbose_name='last login')), ('is_active', models.BooleanField(default=True, help_text='Designates whether this user should be treated as active. Unselect this instead of deleting accounts.', verbose_name='active')), ('id', models.BigAutoField(primary_key=True, serialize=False)), ('name', models.CharField(max_length=255)), ('status', models.CharField(blank=True, choices=[('Active', 'Active'), ('Leave', 'Leave'), ('Completed', 'Completed')], max_length=255, null=True)), ('gender', models.CharField(blank=True, choices=[('Male', 'Male'), ('Female', 'Female'), ('Other', 'Other')], max_length=255, null=True)), ('birth_date', models.DateField(blank=True, null=True)), ('email', models.CharField(blank=True, max_length=255, null=True)), ('phone', models.CharField(blank=True, max_length=255, null=True, unique=True)), ('temporary_address', models.CharField(blank=True, max_length=500, null=True)), ('permanent_address', models.CharField(blank=True, max_length=500, null=True)), ('parent_name', models.CharField(blank=True, max_length=255, null=True)), ('parent_phone', models.CharField(blank=True, max_length=255, null=True)), ('joining_date', models.DateField(blank=True, null=True)), ('password', models.CharField(editable=False, max_length=128, null=True)), ('courses', models.ManyToManyField(blank=True, related_name='students', to='app.course')), ('groups', models.ManyToManyField(blank=True, help_text='The groups this student belongs to.', related_name='students', to='auth.group', verbose_name='groups')), ('user_permissions', models.ManyToManyField(blank=True, help_text='Specific permissions for this student.', related_name='student_set', related_query_name='student', to='auth.permission', verbose_name='user permissions')), ], options={ 'verbose_name': 'Student', 'verbose_name_plural': 'Students', }, managers=[ ('objects', django.contrib.auth.models.UserManager()), ], ), migrations.CreateModel( name='AttendanceRecord', fields=[ ('id', models.BigAutoField(primary_key=True, serialize=False)), ('student_attend', models.BooleanField(default=False)), ('attendance', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='records', to='app.attendance')), ('student', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='attendance_records', to='app.student')), ], ), migrations.CreateModel( name='Student_Leave', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('date', models.DateField()), ('message', models.TextField()), ('status', models.IntegerField(choices=[(0, 'Pending'), (1, 'Approved'), (2, 'Rejected')], default=0)), ('created_at', models.DateTimeField(auto_now_add=True)), ('updated_at', models.DateTimeField(auto_now=True)), ('student', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='app.student')), ], options={ 'verbose_name': 'Student Leave', 'verbose_name_plural': 'Student Leaves', 'ordering': ['-created_at'], }, ), migrations.CreateModel( name='StudentRoutine', fields=[ ('id', models.BigAutoField(primary_key=True, serialize=False)), ('course', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='app.course')), ('routine', models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, related_name='students', to='app.routine')), ('student', models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, related_name='routines', to='app.student')), ], ), migrations.CreateModel( name='Subject', fields=[ ('id', models.AutoField(primary_key=True, serialize=False)), ('name', models.CharField(max_length=255)), ('semester_or_year', models.PositiveIntegerField()), ('course', models.ForeignKey(default=1, on_delete=django.db.models.deletion.CASCADE, to='app.course')), ], ), migrations.CreateModel( name='StudentFeedback', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('rating', models.IntegerField(choices=[(1, 1), (2, 2), (3, 3), (4, 4), (5, 5)])), ('feedback_text', models.TextField()), ('created_at', models.DateTimeField(auto_now_add=True)), ('updated_at', models.DateTimeField(auto_now=True)), ('student', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='feedbacks', to='app.student')), ('teacher', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='app.staff')), ('subject', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='app.subject')), ], options={ 'verbose_name': 'Student Feedback', 'verbose_name_plural': 'Student Feedbacks', 'unique_together': {('student', 'subject', 'teacher')}, }, ), migrations.CreateModel( name='TeacherFeedback', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('feedback_text', models.TextField()), ('created_at', models.DateTimeField(auto_now_add=True)), ('updated_at', models.DateTimeField(auto_now=True)), ('subject', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='app.subject')), ('teacher', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='feedbacks', to='app.staff')), ], options={ 'verbose_name': 'Teacher Feedback', 'verbose_name_plural': 'Teacher Feedbacks', 'unique_together': {('teacher', 'subject')}, }, ), ]