feat(backend): Add script to fix tour dates
Some checks are pending
Deploy Elmeg / deploy (push) Waiting to run
Some checks are pending
Deploy Elmeg / deploy (push) Waiting to run
This commit is contained in:
parent
d09bcef56c
commit
47420b6e57
1 changed files with 56 additions and 0 deletions
56
backend/fix_tour_dates.py
Normal file
56
backend/fix_tour_dates.py
Normal file
|
|
@ -0,0 +1,56 @@
|
||||||
|
#!/usr/bin/env python3
|
||||||
|
"""
|
||||||
|
Fix Tour Dates Script
|
||||||
|
Iterates through all Tours, finds their associated shows, and updates
|
||||||
|
the tour's start_date and end_date based on the range of show dates.
|
||||||
|
"""
|
||||||
|
from sqlmodel import Session, select
|
||||||
|
from database import engine
|
||||||
|
from models import Tour, Show
|
||||||
|
from datetime import datetime
|
||||||
|
|
||||||
|
def fix_tour_dates():
|
||||||
|
print("="*60)
|
||||||
|
print("FIX TOUR DATES")
|
||||||
|
print("="*60)
|
||||||
|
|
||||||
|
with Session(engine) as session:
|
||||||
|
tours = session.exec(select(Tour)).all()
|
||||||
|
print(f"Found {len(tours)} tours to process.")
|
||||||
|
|
||||||
|
updated_count = 0
|
||||||
|
|
||||||
|
for tour in tours:
|
||||||
|
# Get all shows for this tour
|
||||||
|
shows = session.exec(
|
||||||
|
select(Show).where(Show.tour_id == tour.id)
|
||||||
|
).all()
|
||||||
|
|
||||||
|
if not shows:
|
||||||
|
print(f"Skipping '{tour.name}' - No shows found.")
|
||||||
|
continue
|
||||||
|
|
||||||
|
dates = [s.date for s in shows]
|
||||||
|
min_date = min(dates)
|
||||||
|
max_date = max(dates)
|
||||||
|
|
||||||
|
# Check if update is needed
|
||||||
|
needs_update = False
|
||||||
|
if tour.start_date != min_date:
|
||||||
|
tour.start_date = min_date
|
||||||
|
needs_update = True
|
||||||
|
|
||||||
|
if tour.end_date != max_date:
|
||||||
|
tour.end_date = max_date
|
||||||
|
needs_update = True
|
||||||
|
|
||||||
|
if needs_update:
|
||||||
|
session.add(tour)
|
||||||
|
updated_count += 1
|
||||||
|
print(f"Updated '{tour.name}': {min_date.date()} - {max_date.date()}")
|
||||||
|
|
||||||
|
session.commit()
|
||||||
|
print(f"\nSuccessfully updated {updated_count} tours.")
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
fix_tour_dates()
|
||||||
Loading…
Add table
Reference in a new issue