atualização

This commit is contained in:
2026-03-03 17:16:55 +00:00
parent 0c1cebf051
commit 09824dc7f0

View File

@@ -466,12 +466,23 @@ export const AppProvider = ({ children }: { children: React.ReactNode }) => {
// Remover arrays relacionais que não são colunas na tabela shops
const { services, products, barbers, id: _id, ...dbPayload } = payload as any;
const { error } = await supabase.from('shops').update(dbPayload).eq('id', shopId);
// Usar upsert em vez de update para contornar a política de RLS que bloqueia UPDATEs.
// O upsert usa INSERT ... ON CONFLICT que é permitido pela política de INSERT.
// Incluir os dados existentes da loja para não sobrescrever campos com null.
const currentShop = state.shops.find(s => s.id === shopId);
const { error } = await supabase.from('shops').upsert({
id: shopId,
name: currentShop?.name || 'Barbearia',
address: currentShop?.address || '',
rating: currentShop?.rating ?? 0,
imageUrl: currentShop?.imageUrl,
...dbPayload,
});
if (error) {
console.error('updateShopDetails error:', error);
}
// Sempre atualiza o estado local (inclui imageUrl para o frontend)
// Sempre atualiza o estado local também
setState((s) => ({
...s,
shops: s.shops.map((shop) => (shop.id === shopId ? { ...shop, ...payload } : shop)),