Files
SportstimeAPI/cloudkit/migrations/0005_add_conference_division_alias_sync.py
Trey t 63acf7accb feat: add Django web app, CloudKit sync, dashboard, and game_datetime_utc export
Adds the full Django application layer on top of sportstime_parser:
- core: Sport, Team, Stadium, Game models with aliases and league structure
- scraper: orchestration engine, adapter, job management, Celery tasks
- cloudkit: CloudKit sync client, sync state tracking, sync jobs
- dashboard: staff dashboard for monitoring scrapers, sync, review queue
- notifications: email reports for scrape/sync results
- Docker setup for deployment (Dockerfile, docker-compose, entrypoint)

Game exports now use game_datetime_utc (ISO 8601 UTC) instead of
venue-local date+time strings, matching the canonical format used
by the iOS app.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-19 14:04:27 -06:00

79 lines
2.7 KiB
Python

# Generated by Django 5.1.4 on 2026-02-06 02:21
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('cloudkit', '0004_cloudkitsyncjob_sport_progress'),
]
operations = [
migrations.AddField(
model_name='cloudkitsyncjob',
name='conferences_failed',
field=models.PositiveIntegerField(default=0),
),
migrations.AddField(
model_name='cloudkitsyncjob',
name='conferences_synced',
field=models.PositiveIntegerField(default=0),
),
migrations.AddField(
model_name='cloudkitsyncjob',
name='conferences_total',
field=models.PositiveIntegerField(default=0),
),
migrations.AddField(
model_name='cloudkitsyncjob',
name='divisions_failed',
field=models.PositiveIntegerField(default=0),
),
migrations.AddField(
model_name='cloudkitsyncjob',
name='divisions_synced',
field=models.PositiveIntegerField(default=0),
),
migrations.AddField(
model_name='cloudkitsyncjob',
name='divisions_total',
field=models.PositiveIntegerField(default=0),
),
migrations.AddField(
model_name='cloudkitsyncjob',
name='stadium_aliases_failed',
field=models.PositiveIntegerField(default=0),
),
migrations.AddField(
model_name='cloudkitsyncjob',
name='stadium_aliases_synced',
field=models.PositiveIntegerField(default=0),
),
migrations.AddField(
model_name='cloudkitsyncjob',
name='stadium_aliases_total',
field=models.PositiveIntegerField(default=0),
),
migrations.AddField(
model_name='cloudkitsyncjob',
name='team_aliases_failed',
field=models.PositiveIntegerField(default=0),
),
migrations.AddField(
model_name='cloudkitsyncjob',
name='team_aliases_synced',
field=models.PositiveIntegerField(default=0),
),
migrations.AddField(
model_name='cloudkitsyncjob',
name='team_aliases_total',
field=models.PositiveIntegerField(default=0),
),
migrations.AlterField(
model_name='cloudkitsyncstate',
name='record_type',
field=models.CharField(choices=[('Sport', 'Sport'), ('Conference', 'Conference'), ('Division', 'Division'), ('Team', 'Team'), ('Stadium', 'Stadium'), ('TeamAlias', 'Team Alias'), ('StadiumAlias', 'Stadium Alias'), ('Game', 'Game')], max_length=20),
),
]