from typing import Annotated from fastapi import APIRouter, Depends from sqlalchemy.ext.asyncio import AsyncSession from backend.dependecies import SessionDependency from backend.session import get_session from schemas.shipping_warehouse import * from services.auth import authorized_user, guest_user from services.shipping_warehouse import ShippingWarehouseService shipping_warehouse_router = APIRouter( prefix="/shipping-warehouse", tags=["shipping-warehouse"], ) @shipping_warehouse_router.get( '/get-all', response_model=GetAllShippingWarehousesResponse, operation_id='get_all_shipping_warehouses', dependencies=[Depends(guest_user)], ) async def get_all( session: Annotated[AsyncSession, Depends(get_session)] ): return await ShippingWarehouseService(session).get_all() @shipping_warehouse_router.post( '/create', response_model=CreateShippingWarehouseResponse, operation_id='create_shipping_warehouse', dependencies=[Depends(authorized_user)] ) async def create( session: SessionDependency, request: CreateShippingWarehouseRequest ): return await ShippingWarehouseService(session).create(request) @shipping_warehouse_router.post( '/update', response_model=UpdateShippingWarehouseResponse, operation_id='update_shipping_warehouse', dependencies=[Depends(authorized_user)], ) async def update( session: SessionDependency, request: UpdateShippingWarehouseRequest ): return await ShippingWarehouseService(session).update(request) @shipping_warehouse_router.post( '/delete', response_model=DeleteShippingWarehouseResponse, operation_id='delete_shipping_warehouse', dependencies=[Depends(authorized_user)], ) async def delete( session: SessionDependency, request: DeleteShippingWarehouseRequest ): return await ShippingWarehouseService(session).delete(request)