🚀 Initial commit: Versão atual do TrackSteel APP
This commit is contained in:
@@ -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);
|
||||
Reference in New Issue
Block a user