🚀 Initial commit: Versão atual do TrackSteel APP
This commit is contained in:
@@ -0,0 +1,52 @@
|
||||
|
||||
-- Criar a tabela sugestoes
|
||||
CREATE TABLE public.sugestoes (
|
||||
id UUID NOT NULL DEFAULT gen_random_uuid() PRIMARY KEY,
|
||||
created_at TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT now(),
|
||||
sugestao TEXT NOT NULL,
|
||||
user_id UUID REFERENCES auth.users(id) NOT NULL,
|
||||
user_name TEXT NOT NULL,
|
||||
status TEXT NOT NULL DEFAULT 'Pendente' CHECK (status IN ('Pendente', 'Implementada', 'Rejeitada')),
|
||||
developer_notes TEXT
|
||||
);
|
||||
|
||||
-- Habilitar Row Level Security
|
||||
ALTER TABLE public.sugestoes ENABLE ROW LEVEL SECURITY;
|
||||
|
||||
-- Política para INSERT - qualquer usuário autenticado pode inserir
|
||||
CREATE POLICY "Usuários autenticados podem inserir sugestões"
|
||||
ON public.sugestoes
|
||||
FOR INSERT
|
||||
TO authenticated
|
||||
WITH CHECK (auth.uid() = user_id);
|
||||
|
||||
-- Política para SELECT - qualquer usuário autenticado pode ler todas as sugestões
|
||||
CREATE POLICY "Usuários autenticados podem ver todas as sugestões"
|
||||
ON public.sugestoes
|
||||
FOR SELECT
|
||||
TO authenticated
|
||||
USING (true);
|
||||
|
||||
-- Política para UPDATE - apenas admins podem atualizar status e developer_notes
|
||||
CREATE POLICY "Apenas admins podem atualizar sugestões"
|
||||
ON public.sugestoes
|
||||
FOR UPDATE
|
||||
TO authenticated
|
||||
USING (public.has_role(auth.uid(), 'admin'))
|
||||
WITH CHECK (public.has_role(auth.uid(), 'admin'));
|
||||
|
||||
-- Criar Edge Function para obter informações do banco de dados
|
||||
CREATE OR REPLACE FUNCTION public.get_database_info()
|
||||
RETURNS TABLE (
|
||||
database_size TEXT,
|
||||
table_count BIGINT
|
||||
)
|
||||
LANGUAGE SQL
|
||||
SECURITY DEFINER
|
||||
AS $$
|
||||
SELECT
|
||||
pg_size_pretty(pg_database_size(current_database())) as database_size,
|
||||
COUNT(*) as table_count
|
||||
FROM information_schema.tables
|
||||
WHERE table_schema = 'public';
|
||||
$$;
|
||||
Reference in New Issue
Block a user