🚀 Initial commit: Versão atual do TrackSteel APP
This commit is contained in:
@@ -0,0 +1,40 @@
|
||||
|
||||
-- Criar tabela para configurações de tema
|
||||
CREATE TABLE public.theme_config (
|
||||
id uuid NOT NULL DEFAULT gen_random_uuid() PRIMARY KEY,
|
||||
light_theme jsonb NOT NULL DEFAULT '{}',
|
||||
dark_theme jsonb NOT NULL DEFAULT '{}',
|
||||
created_at timestamp with time zone NOT NULL DEFAULT now(),
|
||||
updated_at timestamp with time zone NOT NULL DEFAULT now()
|
||||
);
|
||||
|
||||
-- Habilitar RLS
|
||||
ALTER TABLE public.theme_config ENABLE ROW LEVEL SECURITY;
|
||||
|
||||
-- Política para permitir que apenas admins possam gerenciar temas
|
||||
CREATE POLICY "Only admins can manage themes"
|
||||
ON public.theme_config
|
||||
FOR ALL
|
||||
USING (public.has_role(auth.uid(), 'admin'));
|
||||
|
||||
-- Inserir registro inicial com tema padrão
|
||||
INSERT INTO public.theme_config (id, light_theme, dark_theme)
|
||||
VALUES (
|
||||
'00000000-0000-0000-0000-000000000001',
|
||||
'{"background": "0 0% 100%", "foreground": "222.2 84% 4.9%", "primary": "222.2 47.4% 11.2%", "primary-foreground": "210 40% 98%", "secondary": "210 40% 96.1%", "secondary-foreground": "222.2 47.4% 11.2%", "accent": "210 40% 96.1%", "accent-foreground": "222.2 47.4% 11.2%", "card": "0 0% 100%", "card-foreground": "222.2 84% 4.9%", "border": "214.3 31.8% 91.4%", "input": "214.3 31.8% 91.4%", "ring": "222.2 84% 4.9%"}',
|
||||
'{"background": "222.2 84% 4.9%", "foreground": "210 40% 98%", "primary": "210 40% 98%", "primary-foreground": "222.2 47.4% 11.2%", "secondary": "217.2 32.6% 17.5%", "secondary-foreground": "210 40% 98%", "accent": "217.2 32.6% 17.5%", "accent-foreground": "210 40% 98%", "card": "222.2 84% 4.9%", "card-foreground": "210 40% 98%", "border": "217.2 32.6% 17.5%", "input": "217.2 32.6% 17.5%", "ring": "212.7 26.8% 83.9%"}'
|
||||
);
|
||||
|
||||
-- Trigger para atualizar updated_at
|
||||
CREATE OR REPLACE FUNCTION update_theme_config_updated_at()
|
||||
RETURNS TRIGGER AS $$
|
||||
BEGIN
|
||||
NEW.updated_at = now();
|
||||
RETURN NEW;
|
||||
END;
|
||||
$$ language 'plpgsql';
|
||||
|
||||
CREATE TRIGGER update_theme_config_updated_at
|
||||
BEFORE UPDATE ON public.theme_config
|
||||
FOR EACH ROW
|
||||
EXECUTE FUNCTION update_theme_config_updated_at();
|
||||
Reference in New Issue
Block a user