import type { AdminUser, Area, AreaGroup, AreaType, AutomaticOffer, Destination, Equipment, EquipmentType, House, Link, OperationalCost, Photo, } from '@entities' import type { FilterType, HttpClient, IncludeType } from '@services' import { endpointMaker } from '@services' import type { ApiError, Response } from '@types' export type GetHouseByIdInput = { houseId: string included?: IncludeType filter?: FilterType pagination?: { per: string; page: string } } export type GetHouseByIdIncluded = { adminUsers: AdminUser areaGroups: AreaGroup[] areas: Area[] areaTypes: AreaType[] automaticOffers: AutomaticOffer destinations: Destination | Destination[] equipments: Equipment[] equipmentTypes: EquipmentType[] links: Link | Link[] operationalCosts: OperationalCost | OperationalCost[] photos: Photo[] } const getHouseById = (http: HttpClient) => ({ query: ( input: GetHouseByIdInput, ): Promise> => { const query = endpointMaker({ includes: input.included, filter: input.filter, pagination: input.pagination, }) return http.get(`v3/admin/houses/${input.houseId}${query}`) }, }) export default getHouseById