# app/api/v1/vendor/settings.py """ Vendor settings and configuration endpoints. """ import logging from fastapi import APIRouter, Depends, HTTPException from sqlalchemy.orm import Session from app.api.deps import get_current_vendor_api 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.database.user import User from models.database.vendor import Vendor router = APIRouter(prefix="/settings") logger = logging.getLogger(__name__) @router.get("") def get_vendor_settings( vendor: Vendor = Depends(require_vendor_context()), current_user: User = Depends(get_current_vendor_api), db: Session = Depends(get_db), ): """Get vendor settings and configuration.""" return { "vendor_code": vendor.vendor_code, "subdomain": vendor.subdomain, "name": vendor.name, "contact_email": vendor.contact_email, "contact_phone": vendor.contact_phone, "website": vendor.website, "business_address": vendor.business_address, "tax_number": vendor.tax_number, "letzshop_csv_url_fr": vendor.letzshop_csv_url_fr, "letzshop_csv_url_en": vendor.letzshop_csv_url_en, "letzshop_csv_url_de": vendor.letzshop_csv_url_de, "is_active": vendor.is_active, "is_verified": vendor.is_verified, } @router.put("/marketplace") def update_marketplace_settings( marketplace_config: dict, vendor: Vendor = Depends(require_vendor_context()), current_user: User = Depends(get_current_vendor_api), db: Session = Depends(get_db), ): """Update marketplace integration settings.""" # Verify permissions if not vendor_service.can_update_vendor(vendor, current_user): raise HTTPException(status_code=403, detail="Insufficient permissions") # Update Letzshop URLs if "letzshop_csv_url_fr" in marketplace_config: vendor.letzshop_csv_url_fr = marketplace_config["letzshop_csv_url_fr"] if "letzshop_csv_url_en" in marketplace_config: vendor.letzshop_csv_url_en = marketplace_config["letzshop_csv_url_en"] if "letzshop_csv_url_de" in marketplace_config: vendor.letzshop_csv_url_de = marketplace_config["letzshop_csv_url_de"] db.commit() db.refresh(vendor) return { "message": "Marketplace settings updated successfully", "letzshop_csv_url_fr": vendor.letzshop_csv_url_fr, "letzshop_csv_url_en": vendor.letzshop_csv_url_en, "letzshop_csv_url_de": vendor.letzshop_csv_url_de, }