diff --git a/src-tauri/src/plugins/supabase.rs b/src-tauri/src/plugins/supabase.rs index ca01ab7..1ed3130 100644 --- a/src-tauri/src/plugins/supabase.rs +++ b/src-tauri/src/plugins/supabase.rs @@ -247,12 +247,14 @@ impl SupabaseClient { } } - /// Atualiza campos específicos de um fechamento pelo id numérico (PATCH). - pub fn atualizar_fechamento(&self, id: i64, updates: &serde_json::Value) -> Result { - let url = format!( - "{}/rest/v1/fechamentos_web?id=eq.{}", - self.base_url, id - ); + /// Atualiza campos específicos de um fechamento pelo id numérico (pk) ou UUID. + pub fn atualizar_fechamento(&self, id: Option, uuid: &str, updates: &serde_json::Value) -> Result { + // Se temos id numerico, usa id=eq.; senao usa id=eq.UUID + let url = if let Some(num) = id { + format!("{}/rest/v1/fechamentos_web?id=eq.{}", self.base_url, num) + } else { + format!("{}/rest/v1/fechamentos_web?id=eq.{}", self.base_url, uuid) + }; let resp = self .http @@ -262,7 +264,7 @@ impl SupabaseClient { .send()?; if resp.status().is_success() { - Ok(serde_json::json!({ "ok": true, "id": id })) + Ok(serde_json::json!({ "ok": true, "id": id.unwrap_or(0) })) } else { let status = resp.status(); let body = resp.text().unwrap_or_default(); @@ -462,10 +464,13 @@ pub fn sb_buscar_por_id_fechamento( #[tauri::command] pub fn sb_atualizar_fechamento( sb: State<'_, SupabaseClient>, - id: i64, + id: String, updates: serde_json::Value, ) -> Result { - sb.atualizar_fechamento(id, &updates) + // Tenta primeiro como i64 (id numerico), depois como String (UUID) + let id_i64 = id.parse::().ok(); + let id_str = &id; + sb.atualizar_fechamento(id_i64, id_str, &updates) } #[tauri::command]