🚀 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,102 @@
-- Criar tabela principal para prioridades de fabricação
CREATE TABLE public.prioridades_fabricacao (
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
of_number TEXT NOT NULL,
etapa_fase TEXT NOT NULL,
prioridade_id UUID REFERENCES prioridades_config(id),
created_at TIMESTAMP WITH TIME ZONE DEFAULT now(),
updated_at TIMESTAMP WITH TIME ZONE DEFAULT now(),
created_by UUID REFERENCES profiles(id),
nome_prioridade TEXT NOT NULL,
ativo BOOLEAN DEFAULT true
);
-- Criar tabela para itens da prioridade
CREATE TABLE public.itens_prioridade_fabricacao (
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
prioridade_fabricacao_id UUID REFERENCES prioridades_fabricacao(id) ON DELETE CASCADE,
peca_id UUID REFERENCES pecas(id),
quantidade_priorizada NUMERIC NOT NULL DEFAULT 0,
ordem_fabricacao INTEGER NOT NULL DEFAULT 1,
peso_total NUMERIC DEFAULT 0,
created_at TIMESTAMP WITH TIME ZONE DEFAULT now(),
updated_at TIMESTAMP WITH TIME ZONE DEFAULT now()
);
-- Habilitar RLS nas tabelas
ALTER TABLE public.prioridades_fabricacao ENABLE ROW LEVEL SECURITY;
ALTER TABLE public.itens_prioridade_fabricacao ENABLE ROW LEVEL SECURITY;
-- Criar políticas RLS para prioridades_fabricacao
CREATE POLICY "Usuários autenticados podem visualizar prioridades"
ON public.prioridades_fabricacao
FOR SELECT
USING (auth.uid() IS NOT NULL);
CREATE POLICY "Usuários autenticados podem inserir prioridades"
ON public.prioridades_fabricacao
FOR INSERT
WITH CHECK (auth.uid() IS NOT NULL);
CREATE POLICY "Usuários autenticados podem atualizar prioridades"
ON public.prioridades_fabricacao
FOR UPDATE
USING (auth.uid() IS NOT NULL);
CREATE POLICY "Usuários autenticados podem deletar prioridades"
ON public.prioridades_fabricacao
FOR DELETE
USING (auth.uid() IS NOT NULL);
-- Criar políticas RLS para itens_prioridade_fabricacao
CREATE POLICY "Usuários autenticados podem visualizar itens prioridade"
ON public.itens_prioridade_fabricacao
FOR SELECT
USING (auth.uid() IS NOT NULL);
CREATE POLICY "Usuários autenticados podem inserir itens prioridade"
ON public.itens_prioridade_fabricacao
FOR INSERT
WITH CHECK (auth.uid() IS NOT NULL);
CREATE POLICY "Usuários autenticados podem atualizar itens prioridade"
ON public.itens_prioridade_fabricacao
FOR UPDATE
USING (auth.uid() IS NOT NULL);
CREATE POLICY "Usuários autenticados podem deletar itens prioridade"
ON public.itens_prioridade_fabricacao
FOR DELETE
USING (auth.uid() IS NOT NULL);
-- Criar trigger para atualizar updated_at
CREATE OR REPLACE FUNCTION update_prioridades_fabricacao_updated_at()
RETURNS TRIGGER AS $$
BEGIN
NEW.updated_at = now();
RETURN NEW;
END;
$$ LANGUAGE plpgsql;
CREATE TRIGGER update_prioridades_fabricacao_updated_at
BEFORE UPDATE ON public.prioridades_fabricacao
FOR EACH ROW
EXECUTE FUNCTION update_prioridades_fabricacao_updated_at();
CREATE OR REPLACE FUNCTION update_itens_prioridade_fabricacao_updated_at()
RETURNS TRIGGER AS $$
BEGIN
NEW.updated_at = now();
RETURN NEW;
END;
$$ LANGUAGE plpgsql;
CREATE TRIGGER update_itens_prioridade_fabricacao_updated_at
BEFORE UPDATE ON public.itens_prioridade_fabricacao
FOR EACH ROW
EXECUTE FUNCTION update_itens_prioridade_fabricacao_updated_at();
-- Criar índices para performance
CREATE INDEX idx_prioridades_fabricacao_of_fase ON public.prioridades_fabricacao(of_number, etapa_fase);
CREATE INDEX idx_itens_prioridade_ordem ON public.itens_prioridade_fabricacao(prioridade_fabricacao_id, ordem_fabricacao);