Spaces:
Runtime error
Runtime error
| from fastapi import FastAPI, HTTPException | |
| from pydantic import BaseModel | |
| from typing import List | |
| import pandas as pd | |
| app = FastAPI() | |
| class Complaint(BaseModel): | |
| title: str | |
| description: str | |
| status: str = "Open" | |
| complaints_db = [] | |
| complaint_id_counter = 1 | |
| def create_complaint(complaint: Complaint): | |
| global complaint_id_counter | |
| new_complaint = { | |
| "id": complaint_id_counter, | |
| "title": complaint.title, | |
| "description": complaint.description, | |
| "status": complaint.status | |
| } | |
| complaints_db.append(new_complaint) | |
| complaint_id_counter += 1 | |
| return {"message": "✅ تم إرسال الشكوى بنجاح!", "complaint": new_complaint} | |
| def get_complaints(): | |
| if not complaints_db: | |
| return [] | |
| return complaints_db | |
| def update_complaint_status(complaint_id: int, new_status: str): | |
| for complaint in complaints_db: | |
| if complaint["id"] == complaint_id: | |
| complaint["status"] = new_status | |
| return {"message": "✅ تم تحديث حالة الشكوى!"} | |
| raise HTTPException(status_code=404, detail="⚠️ الشكوى غير موجودة") | |
| def export_complaints(): | |
| if not complaints_db: | |
| raise HTTPException(status_code=404, detail="⚠️ لا توجد بيانات للتصدير.") | |
| df = pd.DataFrame(complaints_db) | |
| df.to_csv("complaints_export.csv", index=False) | |
| return {"message": "✅ تم تصدير الشكاوى بنجاح! يمكنك تحميل الملف من السيرفر."} | |
| if __name__ == "__main__": | |
| import uvicorn | |
| uvicorn.run(app, host="0.0.0.0", port=8000) | |