55 lines
1.4 KiB
Python
55 lines
1.4 KiB
Python
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)
|