UI/UX 개선: 모바일 네비게이션, 로그인 모달, 지도 기능, 캐치테이블 연동
- 모바일 하단 네비게이션(홈/식당목록/내주변/찜/내정보) 추가 - 로그인 버튼을 모달 방식으로 변경 (소셜 로그인 확장 가능) - 내위치 기반 정렬 및 영역 필터, 지도 내위치 버튼 추가 - 채널 필터 시 해당 채널만 마커/범례 표시 - 캐치테이블 검색/연동 (단건/벌크), NONE 저장 패턴 - 벌크 트랜스크립트 SSE (Playwright 브라우저 재사용) - 테이블링/캐치테이블 버튼 UI 차별화 - Google Maps 링크 모바일 호환, 초기화 버튼, 검색 라벨 개선 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -42,6 +42,8 @@ export interface Restaurant {
|
||||
cuisine_type: string | null;
|
||||
price_range: string | null;
|
||||
google_place_id: string | null;
|
||||
tabling_url: string | null;
|
||||
catchtable_url: string | null;
|
||||
business_status: string | null;
|
||||
rating: number | null;
|
||||
rating_count: number | null;
|
||||
@@ -322,6 +324,32 @@ export const api = {
|
||||
});
|
||||
},
|
||||
|
||||
searchTabling(restaurantId: string) {
|
||||
return fetchApi<{ title: string; url: string }[]>(
|
||||
`/api/restaurants/${restaurantId}/tabling-search`
|
||||
);
|
||||
},
|
||||
|
||||
setTablingUrl(restaurantId: string, tablingUrl: string) {
|
||||
return fetchApi<{ ok: boolean }>(
|
||||
`/api/restaurants/${restaurantId}/tabling-url`,
|
||||
{ method: "PUT", body: JSON.stringify({ tabling_url: tablingUrl }) }
|
||||
);
|
||||
},
|
||||
|
||||
searchCatchtable(restaurantId: string) {
|
||||
return fetchApi<{ title: string; url: string }[]>(
|
||||
`/api/restaurants/${restaurantId}/catchtable-search`
|
||||
);
|
||||
},
|
||||
|
||||
setCatchtableUrl(restaurantId: string, catchtableUrl: string) {
|
||||
return fetchApi<{ ok: boolean }>(
|
||||
`/api/restaurants/${restaurantId}/catchtable-url`,
|
||||
{ method: "PUT", body: JSON.stringify({ catchtable_url: catchtableUrl }) }
|
||||
);
|
||||
},
|
||||
|
||||
deleteChannel(channelId: string) {
|
||||
return fetchApi<{ ok: boolean }>(`/api/channels/${channelId}`, {
|
||||
method: "DELETE",
|
||||
@@ -381,6 +409,13 @@ export const api = {
|
||||
);
|
||||
},
|
||||
|
||||
uploadTranscript(videoDbId: string, text: string, source: string = "browser") {
|
||||
return fetchApi<{ ok: boolean; length: number; source: string }>(
|
||||
`/api/videos/${videoDbId}/upload-transcript`,
|
||||
{ method: "POST", body: JSON.stringify({ text, source }) }
|
||||
);
|
||||
},
|
||||
|
||||
triggerProcessing(limit: number = 5) {
|
||||
return fetchApi<{ restaurants_extracted: number }>(
|
||||
`/api/videos/process?limit=${limit}`,
|
||||
|
||||
Reference in New Issue
Block a user