from fastapi import APIRouter, Depends, Request
from sqlalchemy.ext.asyncio import AsyncSession
from app.core.database import get_db
from app.core.security import require_permission
from app.models.core_models import LoginUsers
from app.modules.vendor_portal_admin.schemas import VendorPortalAccessRequest, VendorPortalAccessResponse
from app.modules.vendor_portal_admin.service import update_vendor_portal_access

router = APIRouter()

@router.post("/vendor-access", response_model=VendorPortalAccessResponse)
async def manage_vendor_access(
    req: VendorPortalAccessRequest,
    request: Request,
    admin: LoginUsers = Depends(require_permission('VENDOR_PORTAL_ADMIN', 'edit')),
    db: AsyncSession = Depends(get_db),
):
    return await update_vendor_portal_access(db, admin.user_id, req, request.client.host)
