@router.post("/manual") async def add_manual(payload_in: ManualIn, user: User = Depends(get_current_user), db: AsyncSession = Depends(get_db), request: Request = None): payload, list_id = payload_in.recipient, payload_in.list_id rl = await db.get(RecipientList, list_id) if not rl or rl.user_id != user.id: raise HTTPException(404, "Recipient list not found") sup, bounced = await _suppression_and_bounces(db) existing = set((await db.execute(select(Recipient.email).where( Recipient.list_id == list_id))).scalars().all()) rpt = recipient_service.validate_rows( [payload.model_dump(exclude={"custom_fields"}) | {"custom_fields": payload.custom_fields}], 28:class SuppressionIn(BaseModel): 54:@router.get("/list") 75:@router.post("/add") 95:@router.post("/import") 160:@router.post("/bulk") 180:@router.post("/check") 192:@router.post("/{sid}/delete") 206:@router.post("/clear-all") 22:@router.get("/list") 23:async def list_subjects(q: str = "", page: int = 1, limit: int = 100, 34:@router.post("") 35:async def add_subject(payload: SubjectIn, user: User = Depends(get_current_user), 47:@router.post("/bulk") 48:async def add_bulk(payload: dict, user: User = Depends(get_current_user), 63:@router.post("/import") 64:async def import_subjects(file: UploadFile = File(...), user: User = Depends(get_current_user), 92:@router.get("/export") 93:async def export_subjects(user: User = Depends(get_current_user), db: AsyncSession = Depends(get_db)): 106:@router.put("/{subject_id}") 107:async def edit_subject(subject_id: int, payload: SubjectIn, 117:@router.delete("/{subject_id}") 118:async def delete_subject(subject_id: int, user: User = Depends(get_current_user), 27:@router.get("/list") 42:@router.post("") 62:@router.post("/upload") 81:@router.post("/upload-multiple") 101:@router.get("/{template_id}") 113:@router.put("/{template_id}") 129:@router.post("/{template_id}/duplicate") 142:@router.delete("/{template_id}") 153:@router.post("/clear-all") 160:@router.post("/{template_id}/preview") 191:@router.post("/{template_id}/test-pdf")