diff --git a/src/api.js b/src/api.js index 604f502..616fc93 100644 --- a/src/api.js +++ b/src/api.js @@ -862,3 +862,23 @@ export const getWatchlist = () => apiGet('/api/stock/watchlist'); export const addWatchlist = (body) => apiPost('/api/stock/watchlist', body); export const removeWatchlist = (ticker) => apiDelete(`/api/stock/watchlist/${encodeURIComponent(ticker)}`); export const getTradeAlerts = (days = 7) => apiGet(`/api/stock/trade-alerts?days=${days}`); + +// ── Realestate Listings / 안전마진 / 예산 (실매물) ── +// GET /api/realestate/listings → { listings: [...] } (+판정 join) +export const getListings = ({ dong, deal_type, tier, matched_only, page = 1, size = 20 } = {}) => { + const q = new URLSearchParams(); + if (dong) q.set('dong', dong); + if (deal_type) q.set('deal_type', deal_type); + if (tier) q.set('tier', tier); + if (matched_only) q.set('matched_only', 'true'); + q.set('page', String(page)); + q.set('size', String(size)); + return apiGet(`/api/realestate/listings?${q.toString()}`); +}; +export const collectListings = () => apiPost('/api/realestate/listings/collect'); +export const getListingsCollectStatus = () => apiGet('/api/realestate/listings/collect/status'); +export const getListingsCriteria = () => apiGet('/api/realestate/listings/criteria'); +export const putListingsCriteria = (body) => apiPut('/api/realestate/listings/criteria', body); +export const getListingsMatches = () => apiGet('/api/realestate/listings/matches'); +export const safetyCheck = (body) => apiPost('/api/realestate/safety-check', body); +export const budgetCalc = (body) => apiPost('/api/realestate/budget', body);