from fastapi import APIRouter, HTTPException from pydantic import BaseModel from ..services.admin_coupon_service import ( create_coupon_service, get_coupons_service, issue_coupon_service, delete_coupon_service ) router = APIRouter() class CouponCreateRequest(BaseModel): token: str coupon_code: str discount_type: str discount_amount: float min_order_amount: float = None valid_from: str valid_to: str quantity: int class CouponIssueRequest(BaseModel): token: str coupon_id: int user_id: int @router.post("/coupons/create") def create_coupon(request: CouponCreateRequest): return create_coupon_service( token=request.token, coupon_code=request.coupon_code, discount_type=request.discount_type, discount_amount=request.discount_amount, min_order_amount=request.min_order_amount, valid_from=request.valid_from, valid_to=request.valid_to, quantity=request.quantity ) @router.get("/coupons") def get_coupons(token: str): return get_coupons_service(token) @router.post("/coupons/issue") def issue_coupon(request: CouponIssueRequest): return issue_coupon_service( token=request.token, coupon_id=request.coupon_id, user_id=request.user_id ) @router.delete("/coupons/{coupon_id}") def delete_coupon(coupon_id: int, token: str): return delete_coupon_service(token, coupon_id)