from fastapi import APIRouter, Depends from typing import Annotated from ..repositories.owner_repository import OwnerRepository from ..repositories.user_repository import UserRepository from ..dtos.owner_list_response import OwnerListResponse, OwnerResponse from ..dtos.owner_detail_response import OwnerDetailResponse router = APIRouter() @router.get("") async def get_owners(owner_repository: Annotated[OwnerRepository, Depends()]) -> OwnerListResponse: owners = await owner_repository.get_all() owners_response = [OwnerResponse(id=str(owner.id), user_id=str(owner.user_id)) for owner in owners] return OwnerListResponse( owners=owners_response ) @router.get("/{id}") async def get_owner(id: str, owner_repository: Annotated[OwnerRepository, Depends()], user_repository: Annotated[UserRepository, Depends()]) -> OwnerDetailResponse: owner = await owner_repository.get_by_id(id) user = await user_repository.get_by_id(owner.user_id) return OwnerDetailResponse( id=str(owner.id), user_id=str(owner.user_id), email=user.email )