from datetime import datetime, timedelta from app.models import Slot slotQRCodes = [ "A1-X06SA", "A2-X06SA", "A3-X06SA", "A4-X06SA", "A5-X06SA", "B1-X06SA", "B2-X06SA", "B3-X06SA", "B4-X06SA", "B5-X06SA", "C1-X06SA", "C2-X06SA", "C3-X06SA", "C4-X06SA", "C5-X06SA", "D1-X06SA", "D2-X06SA", "D3-X06SA", "D4-X06SA", "D5-X06SA", "A1-X10SA", "A2-X10SA", "A3-X10SA", "A4-X10SA", "A5-X10SA", "B1-X10SA", "B2-X10SA", "B3-X10SA", "B4-X10SA", "B5-X10SA", "C1-X10SA", "C2-X10SA", "C3-X10SA", "C4-X10SA", "C5-X10SA", "D1-X10SA", "D2-X10SA", "D3-X10SA", "D4-X10SA", "D5-X10SA", "NB1", "NB2", "NB3", "NB4", "NB5", "NB6", "X10SA-beamline", "X06SA-beamline", "X06DA-beamline", "X10SA-outgoing", "X06-outgoing" ] def timedelta_to_str(td: timedelta) -> str: days, seconds = td.days, td.seconds hours = days * 24 + seconds // 3600 minutes = (seconds % 3600) // 60 return f'PT{hours}H{minutes}M' slots = [ Slot( id=str(i + 1), # Convert id to string to match your schema qr_code=qrcode, label=qrcode.split('-')[0], qr_base=qrcode.split('-')[1] if '-' in qrcode else '', occupied=False, needs_refill=False, last_refill=datetime.utcnow(), time_until_refill=timedelta_to_str(timedelta(hours=24)) # Serialize timedelta to ISO 8601 string ) for i, qrcode in enumerate(slotQRCodes) ]