feat(players): add origin competition/team model and filtering
This commit is contained in:
@ -11,6 +11,7 @@ from apps.competitions.models import Competition, Season
|
||||
from apps.ingestion.models import IngestionRun
|
||||
from apps.ingestion.services.runs import finish_ingestion_run, log_ingestion_error, start_ingestion_run
|
||||
from apps.players.models import Nationality, Player, PlayerAlias, PlayerCareerEntry, Position, Role
|
||||
from apps.players.services.origin import refresh_player_origin
|
||||
from apps.providers.exceptions import ProviderRateLimitError, ProviderTransientError
|
||||
from apps.providers.registry import get_provider
|
||||
from apps.providers.services.mappings import upsert_external_mapping
|
||||
@ -358,6 +359,7 @@ def _sync_player_stats(provider_namespace: str, payloads: list[dict], run: Inges
|
||||
|
||||
|
||||
def _sync_player_careers(provider_namespace: str, payloads: list[dict], run: IngestionRun, summary: SyncSummary):
|
||||
touched_player_ids: set[int] = set()
|
||||
for payload in payloads:
|
||||
summary.processed += 1
|
||||
external_id = payload.get("external_id", "")
|
||||
@ -380,6 +382,7 @@ def _sync_player_careers(provider_namespace: str, payloads: list[dict], run: Ing
|
||||
)
|
||||
continue
|
||||
|
||||
touched_player_ids.add(player.id)
|
||||
_, created = PlayerCareerEntry.objects.update_or_create(
|
||||
player=player,
|
||||
team=team,
|
||||
@ -399,6 +402,10 @@ def _sync_player_careers(provider_namespace: str, payloads: list[dict], run: Ing
|
||||
else:
|
||||
summary.updated += 1
|
||||
|
||||
if touched_player_ids:
|
||||
for player in Player.objects.filter(id__in=touched_player_ids):
|
||||
refresh_player_origin(player)
|
||||
|
||||
|
||||
def run_sync_job(
|
||||
*,
|
||||
|
||||
Reference in New Issue
Block a user