# app/api/v1/admin/marketplace.py """ Marketplace import job monitoring endpoints for admin. """ import logging from typing import List, Optional from fastapi import APIRouter, Depends, Query from sqlalchemy.orm import Session from app.api.deps import get_current_admin_api from app.core.database import get_db from app.services.admin_service import admin_service from app.services.stats_service import stats_service from models.schema.marketplace_import_job import MarketplaceImportJobResponse from models.database.user import User router = APIRouter(prefix="/marketplace-import-jobs") logger = logging.getLogger(__name__) @router.get("", response_model=List[MarketplaceImportJobResponse]) def get_all_marketplace_import_jobs( marketplace: Optional[str] = Query(None), vendor_name: Optional[str] = Query(None), status: Optional[str] = Query(None), skip: int = Query(0, ge=0), limit: int = Query(100, ge=1, le=100), db: Session = Depends(get_db), current_admin: User = Depends(get_current_admin_api), ): """Get all marketplace import jobs (Admin only).""" return admin_service.get_marketplace_import_jobs( db=db, marketplace=marketplace, vendor_name=vendor_name, status=status, skip=skip, limit=limit, ) @router.get("/stats") def get_import_statistics( db: Session = Depends(get_db), current_admin: User = Depends(get_current_admin_api), ): """Get marketplace import statistics (Admin only).""" return stats_service.get_import_statistics(db)