feat: implement advanced reward management and wheel customization
- Add customizable background color - Add wheel animations and sound effects - Add reward description field and winner modal - Change font to Dana - Add configurable reward probabilities - Support reward types (Empty, Discount Code, LiveCoin) - Replace reward title with reward type selector - Allow wheel page title customization from admin panel
This commit is contained in:
Binary file not shown.
@@ -5,18 +5,27 @@ from app.db.models import Item
|
||||
def get_items(db: Session):
|
||||
return db.query(Item).all()
|
||||
|
||||
def create_item(db: Session, title: str, value: int): # ✅ prize → value
|
||||
item = Item(title=title, value=value) # ✅ prize → value
|
||||
def create_item(db: Session, title: str, prize: str, description: str = "", prize_type: str = "پوچ", probability: float = 1.0):
|
||||
item = Item(
|
||||
title=title,
|
||||
prize=prize,
|
||||
description=description,
|
||||
prize_type=prize_type,
|
||||
probability=probability
|
||||
)
|
||||
db.add(item)
|
||||
db.commit()
|
||||
db.refresh(item)
|
||||
return item
|
||||
|
||||
def update_item(db: Session, item_id: int, title: str, value: int): # ✅ prize → value
|
||||
def update_item(db: Session, item_id: int, title: str, prize: str, description: str = "", prize_type: str = "پوچ", probability: float = 1.0):
|
||||
item = db.query(Item).filter(Item.id == item_id).first()
|
||||
if item:
|
||||
item.title = title
|
||||
item.value = value # ✅ prize → value
|
||||
item.prize = prize
|
||||
item.description = description
|
||||
item.prize_type = prize_type
|
||||
item.probability = probability
|
||||
db.commit()
|
||||
db.refresh(item)
|
||||
return item
|
||||
@@ -32,4 +41,5 @@ def spin_wheel(db: Session):
|
||||
items = db.query(Item).all()
|
||||
if not items:
|
||||
return None
|
||||
return random.choice(items)
|
||||
weights = [item.probability for item in items]
|
||||
return random.choices(items, weights=weights, k=1)[0]
|
||||
Reference in New Issue
Block a user