# app/api/v1/vendor/profile.py """ Vendor profile management endpoints. """ import logging from fastapi import APIRouter, Depends, HTTPException from sqlalchemy.orm import Session from app.api.deps import get_current_user from app.core.database import get_db from middleware.vendor_context import require_vendor_context from app.services.vendor_service import vendor_service from models.schema.vendor import VendorUpdate, VendorResponse from models.database.user import User from models.database.vendor import Vendor router = APIRouter(prefix="/profile") logger = logging.getLogger(__name__) @router.get("", response_model=VendorResponse) def get_vendor_profile( vendor: Vendor = Depends(require_vendor_context()), current_user: User = Depends(get_current_user), db: Session = Depends(get_db), ): """Get current vendor profile information.""" return vendor @router.put("", response_model=VendorResponse) def update_vendor_profile( vendor_update: VendorUpdate, vendor: Vendor = Depends(require_vendor_context()), current_user: User = Depends(get_current_user), db: Session = Depends(get_db), ): """Update vendor profile information.""" # Verify user has permission to update vendor if not vendor_service.can_update_vendor(vendor, current_user): raise HTTPException(status_code=403, detail="Insufficient permissions") return vendor_service.update_vendor(db, vendor.id, vendor_update)