From 4d5673f181ec7fa89a6eafbfe954326be7e38189 Mon Sep 17 00:00:00 2001 From: counterweight Date: Sun, 21 Dec 2025 17:58:43 +0100 Subject: [PATCH] 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 --- backend/models.py | 16 ++++++++-------- backend/routes/auth.py | 4 ++-- backend/routes/invites.py | 4 ++-- 3 files changed, 12 insertions(+), 12 deletions(-) diff --git a/backend/models.py b/backend/models.py index bbe5b91..87bfe8e 100644 --- a/backend/models.py +++ b/backend/models.py @@ -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 typing import TypedDict 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) result: Mapped[float] = mapped_column(Float, nullable=False) 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_after: Mapped[int] = mapped_column(Integer, nullable=False) 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 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) 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) end_time: Mapped[time] = mapped_column(Time, nullable=False) 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( DateTime(timezone=True), - default=lambda: datetime.now(UTC), - onupdate=lambda: datetime.now(UTC) + default=lambda: datetime.now(timezone.utc), + onupdate=lambda: datetime.now(timezone.utc) ) @@ -290,6 +290,6 @@ class Appointment(Base): Enum(AppointmentStatus), nullable=False, default=AppointmentStatus.BOOKED ) 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) diff --git a/backend/routes/auth.py b/backend/routes/auth.py index 5763cb2..be8c138 100644 --- a/backend/routes/auth.py +++ b/backend/routes/auth.py @@ -1,5 +1,5 @@ """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 sqlalchemy import select @@ -90,7 +90,7 @@ async def register( # Mark invite as spent invite.status = InviteStatus.SPENT invite.used_by_id = user.id - invite.spent_at = datetime.now(UTC) + invite.spent_at = datetime.now(timezone.utc) await db.commit() await db.refresh(user) diff --git a/backend/routes/invites.py b/backend/routes/invites.py index 46f9948..4fde96e 100644 --- a/backend/routes/invites.py +++ b/backend/routes/invites.py @@ -1,5 +1,5 @@ """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 sqlalchemy import select, func, desc @@ -228,7 +228,7 @@ async def revoke_invite( ) invite.status = InviteStatus.REVOKED - invite.revoked_at = datetime.now(UTC) + invite.revoked_at = datetime.now(timezone.utc) await db.commit() await db.refresh(invite)