48 lines
1.2 KiB
Python
48 lines
1.2 KiB
Python
from sqlalchemy.orm import Session
|
|
from app.models.coupon import CouponDB, UserCouponDB
|
|
from app.models.user import UserDB
|
|
from datetime import datetime
|
|
from typing import Optional, List
|
|
|
|
class CouponManager:
|
|
def __init__(self, coupon: CouponDB = None):
|
|
self.coupon = coupon
|
|
|
|
# 发放优惠券
|
|
def add_coupon(
|
|
self,
|
|
user_id: int,
|
|
coupon_id: int,
|
|
count: int = 1,
|
|
expire_time: datetime = None
|
|
) -> UserCouponDB:
|
|
"""
|
|
为用户发放优惠券
|
|
|
|
Args:
|
|
user_id: 用户ID
|
|
coupon_id: 优惠券ID
|
|
count: 发放数量
|
|
expire_time: 过期时间
|
|
|
|
Returns:
|
|
UserCouponDB: 创建的用户优惠券对象
|
|
"""
|
|
# 使用传入的优惠券对象
|
|
coupon = self.coupon
|
|
|
|
# 发放优惠券
|
|
user_coupon = UserCouponDB(
|
|
user_id=user_id,
|
|
coupon_id=coupon_id,
|
|
coupon_name=coupon.name,
|
|
coupon_amount=coupon.amount,
|
|
coupon_type=coupon.coupon_type,
|
|
expire_time=expire_time,
|
|
)
|
|
|
|
return user_coupon
|
|
|
|
|
|
|