// @ts-nocheck import { supabase } from './supabase' // ============================================ // TEMPLATES MUTATIONS // ============================================ export const createTemplate = async (data: { nome: string tipo: 'novo' | 'derivado' template_pai_id?: string | null topicos_selecionados: string[] descricao?: string }) => { const { data: result, error } = await supabase .from('templates_customizados') .insert([ { nome: data.nome, tipo: data.tipo, template_pai_id: data.template_pai_id || null, topicos_selecionados: data.topicos_selecionados, total_topicos: data.topicos_selecionados.length, total_obrigatorios: data.topicos_selecionados.length, // TODO: calcular corretamente descricao: data.descricao || null, ativo: true, } as any, ]) .select() if (error) throw error return result?.[0] } export const updateTemplate = async ( id: string, data: { nome?: string topicos_selecionados?: string[] descricao?: string } ) => { const { data: result, error } = await supabase .from('templates_customizados') .update({ ...data, total_topicos: data.topicos_selecionados?.length, } as any) .eq('id', id) .select() if (error) throw error return result?.[0] } export const deleteTemplate = async (id: string) => { const { error } = await supabase .from('templates_customizados') .update({ ativo: false } as any) .eq('id', id) if (error) throw error } // ============================================ // DATABOOKS MUTATIONS // ============================================ export const createDatabook = async (data: { numero_projeto: string nome_projeto: string cliente_id?: string | null template_id?: string | null cliente_nome: string cliente_contato: string cliente_email: string cliente_telefone: string produto_nome: string produto_tipo: string produto_descricao: string produto_normas: string[] ordem_compra: string data_inicio: string data_entrega_prevista: string titulo_principal: string subtitulo: string cor_primaria: string cor_secundaria: string tamanho_pagina: 'A4' | 'Letter' orientacao: 'retrato' | 'paisagem' }) => { // Criar projeto const { data: projeto, error: projetoError } = await supabase .from('projetos') .insert([ { numero_projeto: data.numero_projeto, nome_projeto: data.nome_projeto, cliente_id: data.cliente_id || null, template_id: data.template_id || null, status: 'rascunho', progresso_percentual: 0, } as any, ]) .select() if (projetoError) throw projetoError const projetoId = projeto?.[0]?.id // Criar databook_mestre const { data: databook, error: databookError } = await supabase .from('databooks_mestres') .insert([ { projeto_id: projetoId, cliente_nome: data.cliente_nome, cliente_contato: data.cliente_contato, cliente_email: data.cliente_email, cliente_telefone: data.cliente_telefone, produto_nome: data.produto_nome, produto_tipo: data.produto_tipo, produto_descricao: data.produto_descricao, produto_normas: data.produto_normas, numero_projeto: data.numero_projeto, ordem_compra: data.ordem_compra, data_inicio: data.data_inicio, data_entrega_prevista: data.data_entrega_prevista, titulo_principal: data.titulo_principal, subtitulo: data.subtitulo, cor_primaria: data.cor_primaria, cor_secundaria: data.cor_secundaria, tamanho_pagina: data.tamanho_pagina, orientacao: data.orientacao, } as any, ]) .select() if (databookError) throw databookError return { projeto: projeto?.[0], databook: databook?.[0] } } export const updateDatabook = async ( projetoId: string, data: { nome_projeto?: string status?: string progresso_percentual?: number } ) => { const { data: result, error } = await supabase .from('projetos') .update(data as any) .eq('id', projetoId) .select() if (error) throw error return result?.[0] } export const deleteDatabook = async (projetoId: string) => { const { error } = await supabase .from('projetos') .delete() .eq('id', projetoId) if (error) throw error } // ============================================ // CLIENTES MUTATIONS // ============================================ export const createCliente = async (data: { nome: string contato?: string email?: string telefone?: string }) => { const { data: result, error } = await supabase .from('clientes') .insert([ { nome: data.nome, contato: data.contato || null, email: data.email || null, telefone: data.telefone || null, ativo: true, } as any, ]) .select() if (error) throw error return result?.[0] } export const updateCliente = async ( id: string, data: { nome?: string contato?: string email?: string telefone?: string } ) => { const { data: result, error } = await supabase .from('clientes') .update(data as any) .eq('id', id) .select() if (error) throw error return result?.[0] } export const deleteCliente = async (id: string) => { const { error } = await supabase .from('clientes') .update({ ativo: false } as any) .eq('id', id) if (error) throw error }