feat: Add voice management functionality with delete capability and UI integration
This commit is contained in:
@@ -170,6 +170,17 @@ async def prepare_and_create_voice_design(
|
||||
raise HTTPException(status_code=500, detail="Failed to prepare voice design")
|
||||
|
||||
|
||||
@router.delete("/{design_id}", status_code=status.HTTP_204_NO_CONTENT)
|
||||
async def delete_voice_design(
|
||||
design_id: int,
|
||||
current_user: User = Depends(get_current_user),
|
||||
db: Session = Depends(get_db)
|
||||
):
|
||||
deleted = crud.delete_voice_design(db, design_id, current_user.id)
|
||||
if not deleted:
|
||||
raise HTTPException(status_code=404, detail="Voice design not found")
|
||||
|
||||
|
||||
@router.post("/{design_id}/prepare-clone")
|
||||
@limiter.limit("10/minute")
|
||||
async def prepare_voice_clone_prompt(
|
||||
|
||||
@@ -339,6 +339,14 @@ def count_voice_designs(
|
||||
query = query.filter(VoiceDesign.backend_type == backend_type)
|
||||
return query.count()
|
||||
|
||||
def delete_voice_design(db: Session, design_id: int, user_id: int) -> bool:
|
||||
design = get_voice_design(db, design_id, user_id)
|
||||
if not design:
|
||||
return False
|
||||
db.delete(design)
|
||||
db.commit()
|
||||
return True
|
||||
|
||||
def update_voice_design_usage(db: Session, design_id: int, user_id: int) -> Optional[VoiceDesign]:
|
||||
design = get_voice_design(db, design_id, user_id)
|
||||
if design:
|
||||
|
||||
Reference in New Issue
Block a user