Fix new services implementation 7

This commit is contained in:
Urtzi Alfaro
2025-08-15 22:40:19 +02:00
parent 277b1332cb
commit 399ba80067
15 changed files with 433 additions and 534 deletions

View File

@@ -17,8 +17,8 @@ from app.schemas.suppliers import (
DeliveryPerformanceStats, DeliverySummaryStats
)
from app.models.suppliers import DeliveryStatus
from shared.auth.dependencies import get_current_user, require_permissions
from shared.auth.models import UserInfo
from shared.auth.decorators import get_current_user_dep
from typing import Dict, Any
router = APIRouter(prefix="/deliveries", tags=["deliveries"])
logger = structlog.get_logger()
@@ -27,11 +27,11 @@ logger = structlog.get_logger()
@router.post("/", response_model=DeliveryResponse)
async def create_delivery(
delivery_data: DeliveryCreate,
current_user: UserInfo = Depends(get_current_user),
current_user: Dict[str, Any] = Depends(get_current_user_dep),
db: Session = Depends(get_db)
):
"""Create a new delivery"""
require_permissions(current_user, ["deliveries:create"])
# require_permissions(current_user, ["deliveries:create"])
try:
service = DeliveryService(db)
@@ -57,11 +57,11 @@ async def list_deliveries(
search_term: Optional[str] = Query(None, description="Search term"),
limit: int = Query(50, ge=1, le=1000, description="Number of results to return"),
offset: int = Query(0, ge=0, description="Number of results to skip"),
current_user: UserInfo = Depends(get_current_user),
current_user: Dict[str, Any] = Depends(get_current_user_dep),
db: Session = Depends(get_db)
):
"""List deliveries with optional filters"""
require_permissions(current_user, ["deliveries:read"])
# require_permissions(current_user, ["deliveries:read"])
try:
from datetime import datetime
@@ -115,11 +115,11 @@ async def list_deliveries(
@router.get("/today", response_model=List[DeliverySummary])
async def get_todays_deliveries(
current_user: UserInfo = Depends(get_current_user),
current_user: Dict[str, Any] = Depends(get_current_user_dep),
db: Session = Depends(get_db)
):
"""Get deliveries scheduled for today"""
require_permissions(current_user, ["deliveries:read"])
# require_permissions(current_user, ["deliveries:read"])
try:
service = DeliveryService(db)
@@ -132,11 +132,11 @@ async def get_todays_deliveries(
@router.get("/overdue", response_model=List[DeliverySummary])
async def get_overdue_deliveries(
current_user: UserInfo = Depends(get_current_user),
current_user: Dict[str, Any] = Depends(get_current_user_dep),
db: Session = Depends(get_db)
):
"""Get overdue deliveries"""
require_permissions(current_user, ["deliveries:read"])
# require_permissions(current_user, ["deliveries:read"])
try:
service = DeliveryService(db)
@@ -151,11 +151,11 @@ async def get_overdue_deliveries(
async def get_scheduled_deliveries(
date_from: Optional[str] = Query(None, description="From date (YYYY-MM-DD)"),
date_to: Optional[str] = Query(None, description="To date (YYYY-MM-DD)"),
current_user: UserInfo = Depends(get_current_user),
current_user: Dict[str, Any] = Depends(get_current_user_dep),
db: Session = Depends(get_db)
):
"""Get scheduled deliveries for a date range"""
require_permissions(current_user, ["deliveries:read"])
# require_permissions(current_user, ["deliveries:read"])
try:
from datetime import datetime
@@ -193,11 +193,11 @@ async def get_scheduled_deliveries(
async def get_delivery_performance_stats(
days_back: int = Query(30, ge=1, le=365, description="Number of days to analyze"),
supplier_id: Optional[UUID] = Query(None, description="Filter by supplier ID"),
current_user: UserInfo = Depends(get_current_user),
current_user: Dict[str, Any] = Depends(get_current_user_dep),
db: Session = Depends(get_db)
):
"""Get delivery performance statistics"""
require_permissions(current_user, ["deliveries:read"])
# require_permissions(current_user, ["deliveries:read"])
try:
service = DeliveryService(db)
@@ -214,11 +214,11 @@ async def get_delivery_performance_stats(
@router.get("/summary-stats", response_model=DeliverySummaryStats)
async def get_delivery_summary_stats(
current_user: UserInfo = Depends(get_current_user),
current_user: Dict[str, Any] = Depends(get_current_user_dep),
db: Session = Depends(get_db)
):
"""Get delivery summary statistics for dashboard"""
require_permissions(current_user, ["deliveries:read"])
# require_permissions(current_user, ["deliveries:read"])
try:
service = DeliveryService(db)
@@ -232,11 +232,11 @@ async def get_delivery_summary_stats(
@router.get("/{delivery_id}", response_model=DeliveryResponse)
async def get_delivery(
delivery_id: UUID = Path(..., description="Delivery ID"),
current_user: UserInfo = Depends(get_current_user),
current_user: Dict[str, Any] = Depends(get_current_user_dep),
db: Session = Depends(get_db)
):
"""Get delivery by ID with items"""
require_permissions(current_user, ["deliveries:read"])
# require_permissions(current_user, ["deliveries:read"])
try:
service = DeliveryService(db)
@@ -261,11 +261,11 @@ async def get_delivery(
async def update_delivery(
delivery_data: DeliveryUpdate,
delivery_id: UUID = Path(..., description="Delivery ID"),
current_user: UserInfo = Depends(get_current_user),
current_user: Dict[str, Any] = Depends(get_current_user_dep),
db: Session = Depends(get_db)
):
"""Update delivery information"""
require_permissions(current_user, ["deliveries:update"])
# require_permissions(current_user, ["deliveries:update"])
try:
service = DeliveryService(db)
@@ -300,11 +300,11 @@ async def update_delivery(
async def update_delivery_status(
status_data: DeliveryStatusUpdate,
delivery_id: UUID = Path(..., description="Delivery ID"),
current_user: UserInfo = Depends(get_current_user),
current_user: Dict[str, Any] = Depends(get_current_user_dep),
db: Session = Depends(get_db)
):
"""Update delivery status"""
require_permissions(current_user, ["deliveries:update"])
# require_permissions(current_user, ["deliveries:update"])
try:
service = DeliveryService(db)
@@ -341,11 +341,11 @@ async def update_delivery_status(
async def receive_delivery(
receipt_data: DeliveryReceiptConfirmation,
delivery_id: UUID = Path(..., description="Delivery ID"),
current_user: UserInfo = Depends(get_current_user),
current_user: Dict[str, Any] = Depends(get_current_user_dep),
db: Session = Depends(get_db)
):
"""Mark delivery as received with inspection details"""
require_permissions(current_user, ["deliveries:receive"])
# require_permissions(current_user, ["deliveries:receive"])
try:
service = DeliveryService(db)
@@ -382,11 +382,11 @@ async def receive_delivery(
@router.get("/purchase-order/{po_id}", response_model=List[DeliverySummary])
async def get_deliveries_by_purchase_order(
po_id: UUID = Path(..., description="Purchase order ID"),
current_user: UserInfo = Depends(get_current_user),
current_user: Dict[str, Any] = Depends(get_current_user_dep),
db: Session = Depends(get_db)
):
"""Get all deliveries for a purchase order"""
require_permissions(current_user, ["deliveries:read"])
# require_permissions(current_user, ["deliveries:read"])
try:
service = DeliveryService(db)