import { apiDelete, apiGet, apiPut } from "@/lib/api/client"; import type { MenuItem } from "@/lib/api/types"; export interface BranchMenuItem extends MenuItem { masterPrice: number; effectivePrice: number; isOverridden: boolean; hasPriceOverride: boolean; } export function branchMenuItemToMenuItem(row: BranchMenuItem): MenuItem { return { id: row.id, categoryId: row.categoryId, name: row.name, nameAr: row.nameAr, nameEn: row.nameEn, description: row.description, price: row.effectivePrice, imageUrl: row.imageUrl, videoUrl: row.videoUrl, isAvailable: row.isAvailable, }; } export async function getBranchMenu( cafeId: string, branchId: string, options?: { includeUnavailable?: boolean } ): Promise { const qs = options?.includeUnavailable ? "?includeUnavailable=true" : ""; return apiGet( `/api/cafes/${cafeId}/branches/${branchId}/menu${qs}` ); } export async function upsertBranchMenuOverride( cafeId: string, branchId: string, menuItemId: string, body: { isAvailable: boolean; priceOverride: number | null } ): Promise { await apiPut( `/api/cafes/${cafeId}/branches/${branchId}/menu/${menuItemId}/override`, body ); } export async function deleteBranchMenuOverride( cafeId: string, branchId: string, menuItemId: string ): Promise { await apiDelete( `/api/cafes/${cafeId}/branches/${branchId}/menu/${menuItemId}/override` ); }