# Generated by Django 5.2.6 on 2025-09-24 11:26

import content.models
import django.db.models.deletion
from django.db import migrations, models


class Migration(migrations.Migration):
    dependencies = [
        ("content", "0032_subject_academicclass_examterm_classresultsummary_and_more"),
    ]

    operations = [
        migrations.AlterField(
            model_name="classresultsubjectavg",
            name="avg_score",
            field=models.DecimalField(decimal_places=2, max_digits=6),
        ),
        migrations.AlterField(
            model_name="classresultsubjectavg",
            name="out_of",
            field=models.PositiveIntegerField(default=100),
        ),
        migrations.AlterField(
            model_name="classresultsummary",
            name="appeared",
            field=models.PositiveIntegerField(default=0),
        ),
        migrations.AlterField(
            model_name="classresultsummary",
            name="highest_pct",
            field=models.DecimalField(decimal_places=2, default=0, max_digits=5),
        ),
        migrations.AlterField(
            model_name="classresultsummary",
            name="lowest_pct",
            field=models.DecimalField(decimal_places=2, default=0, max_digits=5),
        ),
        migrations.AlterField(
            model_name="classresultsummary",
            name="overall_avg_pct",
            field=models.DecimalField(decimal_places=2, default=0, max_digits=5),
        ),
        migrations.AlterField(
            model_name="classresultsummary",
            name="pass_rate_pct",
            field=models.DecimalField(decimal_places=2, default=0, max_digits=5),
        ),
        migrations.CreateModel(
            name="ClassTopper",
            fields=[
                (
                    "id",
                    models.BigAutoField(
                        auto_created=True,
                        primary_key=True,
                        serialize=False,
                        verbose_name="ID",
                    ),
                ),
                ("rank", models.PositiveIntegerField(default=1)),
                ("name", models.CharField(max_length=120)),
                ("roll_no", models.CharField(blank=True, max_length=40)),
                (
                    "profile_image",
                    models.ImageField(
                        blank=True,
                        null=True,
                        upload_to=content.models.upload_student_profile_to,
                    ),
                ),
                (
                    "total_pct",
                    models.DecimalField(
                        decimal_places=2,
                        help_text="Overall % (e.g., 92.50)",
                        max_digits=5,
                    ),
                ),
                (
                    "grade",
                    models.CharField(blank=True, help_text="e.g., A+, A", max_length=8),
                ),
                (
                    "summary",
                    models.ForeignKey(
                        on_delete=django.db.models.deletion.CASCADE,
                        related_name="toppers",
                        to="content.classresultsummary",
                    ),
                ),
            ],
            options={
                "ordering": ("rank", "id"),
                "unique_together": {("summary", "rank")},
            },
        ),
    ]
