sync: migrate secure-online-shop to Gitea (2026-08-10)

This commit is contained in:
konturai-ops
2026-08-10 15:26:59 +00:00
commit 2022c8890d
44 changed files with 3196 additions and 0 deletions
+42
View File
@@ -0,0 +1,42 @@
from __future__ import annotations
from typing import Annotated
from fastapi import APIRouter, Depends, status
from sqlalchemy.orm import Session
from app.api.dependencies import get_current_shop
from app.db.session import get_db
from app.models.user import User
from app.schemas.product import ProductCreate, ProductResponse
from app.services.product_service import ProductService
router = APIRouter()
@router.get(
"",
response_model=list[ProductResponse],
status_code=status.HTTP_200_OK,
summary="Browse available products",
)
def list_products(
db: Annotated[Session, Depends(get_db)],
) -> list[ProductResponse]:
products = ProductService(db).list_available_products()
return [ProductResponse.model_validate(product) for product in products]
@router.post(
"",
response_model=ProductResponse,
status_code=status.HTTP_201_CREATED,
summary="Create a product (shop only)",
)
def create_product(
payload: ProductCreate,
db: Annotated[Session, Depends(get_db)],
current_shop: Annotated[User, Depends(get_current_shop)],
) -> ProductResponse:
product = ProductService(db).create_product(payload, current_shop)
return ProductResponse.model_validate(product)