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

@@ -3,9 +3,9 @@ Services for ride status transitions and management.
Following Django styleguide pattern for business logic encapsulation.
"""
from typing import Optional
from django.db import transaction
from django.contrib.auth.models import AbstractBaseUser
from django.db import transaction
from apps.rides.models import Ride
@@ -14,7 +14,7 @@ class RideStatusService:
"""Service for managing ride status transitions using FSM."""
@staticmethod
def open_ride(*, ride_id: int, user: Optional[AbstractBaseUser] = None) -> Ride:
def open_ride(*, ride_id: int, user: AbstractBaseUser | None = None) -> Ride:
"""
Open a ride for operation.
@@ -35,7 +35,7 @@ class RideStatusService:
@staticmethod
def close_ride_temporarily(
*, ride_id: int, user: Optional[AbstractBaseUser] = None
*, ride_id: int, user: AbstractBaseUser | None = None
) -> Ride:
"""
Temporarily close a ride.
@@ -57,7 +57,7 @@ class RideStatusService:
@staticmethod
def mark_ride_sbno(
*, ride_id: int, user: Optional[AbstractBaseUser] = None
*, ride_id: int, user: AbstractBaseUser | None = None
) -> Ride:
"""
Mark a ride as SBNO (Standing But Not Operating).
@@ -83,7 +83,7 @@ class RideStatusService:
ride_id: int,
closing_date,
post_closing_status: str,
user: Optional[AbstractBaseUser] = None,
user: AbstractBaseUser | None = None,
) -> Ride:
"""
Mark a ride as closing with a specific date and post-closing status.
@@ -112,7 +112,7 @@ class RideStatusService:
@staticmethod
def close_ride_permanently(
*, ride_id: int, user: Optional[AbstractBaseUser] = None
*, ride_id: int, user: AbstractBaseUser | None = None
) -> Ride:
"""
Permanently close a ride.
@@ -133,7 +133,7 @@ class RideStatusService:
return ride
@staticmethod
def demolish_ride(*, ride_id: int, user: Optional[AbstractBaseUser] = None) -> Ride:
def demolish_ride(*, ride_id: int, user: AbstractBaseUser | None = None) -> Ride:
"""
Mark a ride as demolished.
@@ -153,7 +153,7 @@ class RideStatusService:
return ride
@staticmethod
def relocate_ride(*, ride_id: int, user: Optional[AbstractBaseUser] = None) -> Ride:
def relocate_ride(*, ride_id: int, user: AbstractBaseUser | None = None) -> Ride:
"""
Mark a ride as relocated.