Files
tracksteel_app/supabase/migrations/20250625112005-5fbef8c8-8f66-4621-bc06-22302ad38958.sql

60 lines
1.7 KiB
PL/PgSQL

-- Criar tabela para cadastro de peças
CREATE TABLE public.pecas (
id UUID NOT NULL DEFAULT gen_random_uuid() PRIMARY KEY,
of_number TEXT NOT NULL,
etapa_fase TEXT,
marca TEXT NOT NULL,
descricao TEXT,
quantidade INTEGER DEFAULT 0,
peso_unitario NUMERIC(10,3) DEFAULT 0,
peso_total NUMERIC(10,3) DEFAULT 0,
tratamento_superficial TEXT,
material TEXT,
perfil_principal TEXT,
created_at TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT now(),
updated_at TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT now(),
user_id UUID REFERENCES auth.users
);
-- Habilitar RLS (Row Level Security)
ALTER TABLE public.pecas ENABLE ROW LEVEL SECURITY;
-- Política para permitir que usuários vejam todas as peças
CREATE POLICY "Users can view all pecas"
ON public.pecas
FOR SELECT
USING (true);
-- Política para permitir que usuários criem peças
CREATE POLICY "Users can create pecas"
ON public.pecas
FOR INSERT
WITH CHECK (auth.uid() = user_id);
-- Política para permitir que usuários atualizem suas próprias peças
CREATE POLICY "Users can update their own pecas"
ON public.pecas
FOR UPDATE
USING (auth.uid() = user_id);
-- Política para permitir que usuários deletem suas próprias peças
CREATE POLICY "Users can delete their own pecas"
ON public.pecas
FOR DELETE
USING (auth.uid() = user_id);
-- Trigger para atualizar updated_at automaticamente
CREATE OR REPLACE FUNCTION update_pecas_updated_at()
RETURNS TRIGGER AS $$
BEGIN
NEW.updated_at = now();
RETURN NEW;
END;
$$ LANGUAGE plpgsql;
CREATE TRIGGER update_pecas_updated_at_trigger
BEFORE UPDATE ON public.pecas
FOR EACH ROW
EXECUTE FUNCTION update_pecas_updated_at();