# Generated for the HoopScout MVP. import django.db.models.deletion from django.conf import settings from django.db import migrations, models class Migration(migrations.Migration): initial = True dependencies = [ migrations.swappable_dependency(settings.AUTH_USER_MODEL), ] operations = [ migrations.CreateModel( name="League", fields=[ ("id", models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name="ID")), ("name", models.CharField(max_length=120)), ("code", models.CharField(max_length=16, unique=True)), ("region", models.CharField(max_length=60)), ("country", models.CharField(max_length=80)), ], options={"ordering": ["region", "country", "name"]}, ), migrations.CreateModel( name="Season", fields=[ ("id", models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name="ID")), ("label", models.CharField(max_length=20, unique=True)), ("is_active", models.BooleanField(default=False)), ], options={"ordering": ["-label"]}, ), migrations.CreateModel( name="Team", fields=[ ("id", models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name="ID")), ("name", models.CharField(max_length=120)), ("country", models.CharField(max_length=80)), ( "league", models.ForeignKey( on_delete=django.db.models.deletion.PROTECT, related_name="teams", to="scouting.league", ), ), ], options={ "ordering": ["name"], "constraints": [ models.UniqueConstraint(fields=("name", "league"), name="unique_team_per_league"), ], }, ), migrations.CreateModel( name="UserProfile", fields=[ ("id", models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name="ID")), ( "role", models.CharField( choices=[("admin", "Admin"), ("scout", "Scout"), ("viewer", "Viewer")], default="viewer", max_length=16, ), ), ( "user", models.OneToOneField( on_delete=django.db.models.deletion.CASCADE, related_name="profile", to=settings.AUTH_USER_MODEL, ), ), ], ), migrations.CreateModel( name="Player", fields=[ ("id", models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name="ID")), ("first_name", models.CharField(max_length=80)), ("last_name", models.CharField(max_length=80)), ( "position", models.CharField( choices=[ ("PG", "Point Guard"), ("SG", "Shooting Guard"), ("SF", "Small Forward"), ("PF", "Power Forward"), ("C", "Center"), ], max_length=2, ), ), ("role", models.CharField(blank=True, max_length=120)), ("birth_year", models.PositiveSmallIntegerField(blank=True, null=True)), ("height_cm", models.PositiveSmallIntegerField(blank=True, null=True)), ("weight_kg", models.PositiveSmallIntegerField(blank=True, null=True)), ("nationality", models.CharField(blank=True, max_length=80)), ("external_source", models.CharField(blank=True, max_length=80)), ("external_id", models.CharField(blank=True, max_length=120)), ("profile_url", models.URLField(blank=True)), ("created_at", models.DateTimeField(auto_now_add=True)), ("updated_at", models.DateTimeField(auto_now=True)), ( "current_team", models.ForeignKey( blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name="players", to="scouting.team", ), ), ], options={ "ordering": ["last_name", "first_name"], "constraints": [ models.UniqueConstraint( fields=("first_name", "last_name", "birth_year", "nationality"), name="unique_player_identity", ), ], }, ), migrations.CreateModel( name="PlayerGameLog", fields=[ ("id", models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name="ID")), ("opponent", models.CharField(max_length=120)), ("game_date", models.DateField()), ("points", models.PositiveSmallIntegerField(default=0)), ("assists", models.PositiveSmallIntegerField(default=0)), ("rebounds", models.PositiveSmallIntegerField(default=0)), ("steals", models.PositiveSmallIntegerField(default=0)), ("blocks", models.PositiveSmallIntegerField(default=0)), ("turnovers", models.PositiveSmallIntegerField(default=0)), ("efficiency_rating", models.DecimalField(decimal_places=2, default=0, max_digits=6)), ( "league", models.ForeignKey( on_delete=django.db.models.deletion.PROTECT, related_name="game_logs", to="scouting.league", ), ), ( "player", models.ForeignKey( on_delete=django.db.models.deletion.CASCADE, related_name="game_logs", to="scouting.player", ), ), ( "season", models.ForeignKey( on_delete=django.db.models.deletion.PROTECT, related_name="game_logs", to="scouting.season", ), ), ( "team", models.ForeignKey( on_delete=django.db.models.deletion.PROTECT, related_name="game_logs", to="scouting.team", ), ), ], options={"ordering": ["-game_date"]}, ), migrations.CreateModel( name="PlayerSeasonStat", fields=[ ("id", models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name="ID")), ("games_played", models.PositiveSmallIntegerField(default=0)), ("minutes_per_game", models.DecimalField(decimal_places=2, default=0, max_digits=5)), ("points_per_game", models.DecimalField(decimal_places=2, default=0, max_digits=5)), ("assists_per_game", models.DecimalField(decimal_places=2, default=0, max_digits=5)), ("rebounds_per_game", models.DecimalField(decimal_places=2, default=0, max_digits=5)), ("steals_per_game", models.DecimalField(decimal_places=2, default=0, max_digits=5)), ("blocks_per_game", models.DecimalField(decimal_places=2, default=0, max_digits=5)), ("turnovers_per_game", models.DecimalField(decimal_places=2, default=0, max_digits=5)), ("field_goal_percentage", models.DecimalField(decimal_places=2, default=0, max_digits=5)), ("three_point_percentage", models.DecimalField(decimal_places=2, default=0, max_digits=5)), ("free_throw_percentage", models.DecimalField(decimal_places=2, default=0, max_digits=5)), ("efficiency_rating", models.DecimalField(decimal_places=2, default=0, max_digits=6)), ("true_shooting_percentage", models.DecimalField(decimal_places=2, default=0, max_digits=5)), ("usage_percentage", models.DecimalField(decimal_places=2, default=0, max_digits=5)), ("total_points", models.PositiveSmallIntegerField(default=0)), ("total_assists", models.PositiveSmallIntegerField(default=0)), ("total_rebounds", models.PositiveSmallIntegerField(default=0)), ( "league", models.ForeignKey( on_delete=django.db.models.deletion.PROTECT, related_name="season_stats", to="scouting.league", ), ), ( "player", models.ForeignKey( on_delete=django.db.models.deletion.CASCADE, related_name="season_stats", to="scouting.player", ), ), ( "season", models.ForeignKey( on_delete=django.db.models.deletion.PROTECT, related_name="player_stats", to="scouting.season", ), ), ( "team", models.ForeignKey( on_delete=django.db.models.deletion.PROTECT, related_name="season_stats", to="scouting.team", ), ), ], options={ "ordering": ["-efficiency_rating", "-points_per_game"], "constraints": [ models.UniqueConstraint( fields=("player", "team", "league", "season"), name="unique_player_stat_line", ), ], }, ), ]