feat: Implement MFA authentication, add ride statistics model, and update various services, APIs, and tests across the application.

This commit is contained in:
pacnpal
2025-12-28 17:32:53 -05:00
parent aa56c46c27
commit c95f99ca10
452 changed files with 7948 additions and 6073 deletions

View File

@@ -4,12 +4,14 @@ Park-specific media models for ThrillWiki.
This module contains media models specific to parks domain.
"""
from typing import Any, List, Optional, cast
from django.db import models
from typing import Any, cast
import pghistory
from django.conf import settings
from django.db import models
from apps.core.history import TrackedModel
from apps.core.services.media_service import MediaService
import pghistory
def park_photo_upload_path(instance: models.Model, filename: str) -> str:
@@ -114,7 +116,7 @@ class ParkPhoto(TrackedModel):
super().save(*args, **kwargs)
@property
def file_size(self) -> Optional[int]:
def file_size(self) -> int | None:
"""Get file size in bytes."""
try:
return self.image.size
@@ -122,7 +124,7 @@ class ParkPhoto(TrackedModel):
return None
@property
def dimensions(self) -> Optional[List[int]]:
def dimensions(self) -> list[int] | None:
"""Get image dimensions as [width, height]."""
try:
return [self.image.width, self.image.height]