Standardize timezone usage to timezone.utc

- Replaced all UTC imports with timezone imports
- Changed all datetime.now(UTC) to datetime.now(timezone.utc)
- Consistent with booking.py and more explicit about timezone usage
- Updated models.py, routes/auth.py, and routes/invites.py
This commit is contained in:
counterweight 2025-12-21 17:58:43 +01:00
parent 1a478f7583
commit 4d5673f181
Signed by: counterweight
GPG key ID: 883EDBAA726BD96C
3 changed files with 12 additions and 12 deletions

View file

@ -1,4 +1,4 @@
from datetime import datetime, date, time, UTC from datetime import datetime, date, time, timezone
from enum import Enum as PyEnum from enum import Enum as PyEnum
from typing import TypedDict from typing import TypedDict
from sqlalchemy import Integer, String, Float, DateTime, Date, Time, ForeignKey, Table, Column, Enum, UniqueConstraint, select from sqlalchemy import Integer, String, Float, DateTime, Date, Time, ForeignKey, Table, Column, Enum, UniqueConstraint, select
@ -197,7 +197,7 @@ class SumRecord(Base):
b: Mapped[float] = mapped_column(Float, nullable=False) b: Mapped[float] = mapped_column(Float, nullable=False)
result: Mapped[float] = mapped_column(Float, nullable=False) result: Mapped[float] = mapped_column(Float, nullable=False)
created_at: Mapped[datetime] = mapped_column( created_at: Mapped[datetime] = mapped_column(
DateTime(timezone=True), default=lambda: datetime.now(UTC) DateTime(timezone=True), default=lambda: datetime.now(timezone.utc)
) )
@ -209,7 +209,7 @@ class CounterRecord(Base):
value_before: Mapped[int] = mapped_column(Integer, nullable=False) value_before: Mapped[int] = mapped_column(Integer, nullable=False)
value_after: Mapped[int] = mapped_column(Integer, nullable=False) value_after: Mapped[int] = mapped_column(Integer, nullable=False)
created_at: Mapped[datetime] = mapped_column( created_at: Mapped[datetime] = mapped_column(
DateTime(timezone=True), default=lambda: datetime.now(UTC) DateTime(timezone=True), default=lambda: datetime.now(timezone.utc)
) )
@ -244,7 +244,7 @@ class Invite(Base):
# Timestamps # Timestamps
created_at: Mapped[datetime] = mapped_column( created_at: Mapped[datetime] = mapped_column(
DateTime(timezone=True), default=lambda: datetime.now(UTC) DateTime(timezone=True), default=lambda: datetime.now(timezone.utc)
) )
spent_at: Mapped[datetime | None] = mapped_column(DateTime(timezone=True), nullable=True) spent_at: Mapped[datetime | None] = mapped_column(DateTime(timezone=True), nullable=True)
revoked_at: Mapped[datetime | None] = mapped_column(DateTime(timezone=True), nullable=True) revoked_at: Mapped[datetime | None] = mapped_column(DateTime(timezone=True), nullable=True)
@ -262,12 +262,12 @@ class Availability(Base):
start_time: Mapped[time] = mapped_column(Time, nullable=False) start_time: Mapped[time] = mapped_column(Time, nullable=False)
end_time: Mapped[time] = mapped_column(Time, nullable=False) end_time: Mapped[time] = mapped_column(Time, nullable=False)
created_at: Mapped[datetime] = mapped_column( created_at: Mapped[datetime] = mapped_column(
DateTime(timezone=True), default=lambda: datetime.now(UTC) DateTime(timezone=True), default=lambda: datetime.now(timezone.utc)
) )
updated_at: Mapped[datetime] = mapped_column( updated_at: Mapped[datetime] = mapped_column(
DateTime(timezone=True), DateTime(timezone=True),
default=lambda: datetime.now(UTC), default=lambda: datetime.now(timezone.utc),
onupdate=lambda: datetime.now(UTC) onupdate=lambda: datetime.now(timezone.utc)
) )
@ -290,6 +290,6 @@ class Appointment(Base):
Enum(AppointmentStatus), nullable=False, default=AppointmentStatus.BOOKED Enum(AppointmentStatus), nullable=False, default=AppointmentStatus.BOOKED
) )
created_at: Mapped[datetime] = mapped_column( created_at: Mapped[datetime] = mapped_column(
DateTime(timezone=True), default=lambda: datetime.now(UTC) DateTime(timezone=True), default=lambda: datetime.now(timezone.utc)
) )
cancelled_at: Mapped[datetime | None] = mapped_column(DateTime(timezone=True), nullable=True) cancelled_at: Mapped[datetime | None] = mapped_column(DateTime(timezone=True), nullable=True)

View file

@ -1,5 +1,5 @@
"""Authentication routes for register, login, logout, and current user.""" """Authentication routes for register, login, logout, and current user."""
from datetime import datetime, UTC from datetime import datetime, timezone
from fastapi import APIRouter, Depends, HTTPException, Response, status from fastapi import APIRouter, Depends, HTTPException, Response, status
from sqlalchemy import select from sqlalchemy import select
@ -90,7 +90,7 @@ async def register(
# Mark invite as spent # Mark invite as spent
invite.status = InviteStatus.SPENT invite.status = InviteStatus.SPENT
invite.used_by_id = user.id invite.used_by_id = user.id
invite.spent_at = datetime.now(UTC) invite.spent_at = datetime.now(timezone.utc)
await db.commit() await db.commit()
await db.refresh(user) await db.refresh(user)

View file

@ -1,5 +1,5 @@
"""Invite routes for public check, user invites, and admin management.""" """Invite routes for public check, user invites, and admin management."""
from datetime import datetime, UTC from datetime import datetime, timezone
from fastapi import APIRouter, Depends, HTTPException, status, Query from fastapi import APIRouter, Depends, HTTPException, status, Query
from sqlalchemy import select, func, desc from sqlalchemy import select, func, desc
@ -228,7 +228,7 @@ async def revoke_invite(
) )
invite.status = InviteStatus.REVOKED invite.status = InviteStatus.REVOKED
invite.revoked_at = datetime.now(UTC) invite.revoked_at = datetime.now(timezone.utc)
await db.commit() await db.commit()
await db.refresh(invite) await db.refresh(invite)