🚀 Initial commit: Versão atual do TrackSteel APP

This commit is contained in:
2026-03-18 21:17:53 +00:00
commit bde410c9ad
633 changed files with 108150 additions and 0 deletions

View File

@@ -0,0 +1,43 @@
-- Criar tabela para logs de backup
CREATE TABLE public.backup_logs (
id uuid NOT NULL DEFAULT gen_random_uuid() PRIMARY KEY,
operation_type text NOT NULL CHECK (operation_type IN ('backup', 'restore')),
status text NOT NULL DEFAULT 'in_progress' CHECK (status IN ('in_progress', 'completed', 'failed')),
file_name text NOT NULL,
file_size bigint,
tables_count integer,
records_count integer,
started_at timestamp with time zone NOT NULL DEFAULT now(),
completed_at timestamp with time zone,
error_message text,
created_by uuid REFERENCES auth.users(id) NOT NULL,
created_at timestamp with time zone NOT NULL DEFAULT now()
);
-- Habilitar RLS
ALTER TABLE public.backup_logs ENABLE ROW LEVEL SECURITY;
-- Política para admins poderem gerenciar logs de backup
CREATE POLICY "Only admins can manage backup logs"
ON public.backup_logs
FOR ALL
USING (has_role(auth.uid(), 'admin'::app_role));
-- Função para atualizar updated_at
CREATE OR REPLACE FUNCTION public.update_backup_logs_updated_at()
RETURNS trigger
LANGUAGE plpgsql
AS $function$
BEGIN
NEW.completed_at = now();
RETURN NEW;
END;
$function$;
-- Trigger para atualizar completed_at quando status muda para completed ou failed
CREATE TRIGGER update_backup_logs_completed_at
BEFORE UPDATE ON public.backup_logs
FOR EACH ROW
WHEN (OLD.status = 'in_progress' AND NEW.status IN ('completed', 'failed'))
EXECUTE FUNCTION public.update_backup_logs_updated_at();