"""
File management API endpoints
Handles logo upload and static file serving
"""

from fastapi import APIRouter, HTTPException, UploadFile, File
from services.file_service import FileService

router = APIRouter()

# Initialize service
file_service = FileService()

@router.post("/upload-logo")
async def upload_logo(logo: UploadFile = File(...)):
    """
    Upload restaurant logo
    """
    try:
        # Validate file type
        if not logo.content_type.startswith("image/"):
            raise HTTPException(status_code=400, detail="File must be an image")
        
        # Validate file size (2MB max)
        if logo.size > 2 * 1024 * 1024:
            raise HTTPException(status_code=400, detail="File size must be less than 2MB")
        
        # Save logo file
        result = await file_service.save_logo(logo)
        
        return {
            "status": "success",
            "filename": result["filename"],
            "path": result["path"],
            "size": result["size"],
            "original_name": logo.filename
        }
        
    except HTTPException:
        raise
    except Exception as e:
        raise HTTPException(status_code=500, detail=f"Logo upload failed: {str(e)}")

