🚀 Initial commit: Versão atual do TrackSteel APP
This commit is contained in:
@@ -0,0 +1,51 @@
|
||||
|
||||
-- Criar tabela para armazenar os catálogos
|
||||
CREATE TABLE public.catalogos (
|
||||
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
||||
titulo TEXT NOT NULL,
|
||||
categoria TEXT NOT NULL,
|
||||
disciplina TEXT NOT NULL,
|
||||
palavras_chave TEXT[],
|
||||
conteudo TEXT NOT NULL,
|
||||
numero_paginas INTEGER,
|
||||
created_at TIMESTAMP WITH TIME ZONE DEFAULT now(),
|
||||
updated_at TIMESTAMP WITH TIME ZONE DEFAULT now(),
|
||||
created_by UUID REFERENCES auth.users(id)
|
||||
);
|
||||
|
||||
-- Habilitar RLS
|
||||
ALTER TABLE public.catalogos ENABLE ROW LEVEL SECURITY;
|
||||
|
||||
-- Política para leitura (todos os usuários autenticados podem ler)
|
||||
CREATE POLICY "Todos podem ver catalogos"
|
||||
ON public.catalogos
|
||||
FOR SELECT
|
||||
TO authenticated
|
||||
USING (true);
|
||||
|
||||
-- Política para inserção (apenas admins)
|
||||
CREATE POLICY "Admins podem criar catalogos"
|
||||
ON public.catalogos
|
||||
FOR INSERT
|
||||
TO authenticated
|
||||
WITH CHECK (public.has_role(auth.uid(), 'admin'));
|
||||
|
||||
-- Política para atualização (apenas admins)
|
||||
CREATE POLICY "Admins podem atualizar catalogos"
|
||||
ON public.catalogos
|
||||
FOR UPDATE
|
||||
TO authenticated
|
||||
USING (public.has_role(auth.uid(), 'admin'));
|
||||
|
||||
-- Política para exclusão (apenas admins)
|
||||
CREATE POLICY "Admins podem excluir catalogos"
|
||||
ON public.catalogos
|
||||
FOR DELETE
|
||||
TO authenticated
|
||||
USING (public.has_role(auth.uid(), 'admin'));
|
||||
|
||||
-- Trigger para atualizar updated_at
|
||||
CREATE TRIGGER update_catalogos_updated_at
|
||||
BEFORE UPDATE ON public.catalogos
|
||||
FOR EACH ROW
|
||||
EXECUTE FUNCTION public.update_updated_at_column();
|
||||
Reference in New Issue
Block a user