from typing import Optional, List from fastapi import APIRouter, Depends from sqlalchemy.ext.asyncio import AsyncSession from app.database.session import get_db from app.domain.entities.company_profile_socials import CompanyProfileSocialRead, CompanyProfileSocialCreate from app.domain.models import User from app.infrastructure.company_profile_socials_service import CompanyProfileSocialsService from app.infrastructure.dependencies import require_employer company_profile_socials_router = APIRouter() @company_profile_socials_router.get( '/{company_profile_id}/', response_model=Optional[List[CompanyProfileSocialRead]], summary='Get company profile socials', description='Get company profile socials', ) async def get_company_profile_socials( company_profile_id: int, db: AsyncSession = Depends(get_db), ): company_profile_socials_service = CompanyProfileSocialsService(db) return await company_profile_socials_service.get_by_company_profile_id(company_profile_id) @company_profile_socials_router.post( '/{company_profile_id}/', response_model=Optional[List[CompanyProfileSocialRead]], summary='Replace company profile social', description='Replace company profile social', ) async def replace_company_profile_social( company_profile_id: int, company_profile_socials: List[CompanyProfileSocialCreate], db: AsyncSession = Depends(get_db), user: User = Depends(require_employer), ): company_profile_social_service = CompanyProfileSocialsService(db) return await company_profile_social_service.replace_company_profile_socials(company_profile_socials, company_profile_id, user)