Bem-vinda, Amanda ✨

—

Atendimentos
0
No período
👥
Faturamento
R$0
No período
💰
Hoje
0
Agendamentos
📅
Cancelamentos
0
No período
❌
Atendimentos por dia
Evolução no período
Por serviço
Distribuição no período
Próximos Agendamentos
Cliente Serviço Data Horário Status
Carregando...

Agenda Mensal

Clique em um agendamento para editar

—
Dom
Seg
Ter
Qua
Qui
Sex
Sáb

Todos os Agendamentos

Gerencie e acompanhe todos os horários

Cliente WhatsApp Serviço Data Horário Status Ações
Carregando...

Horários de Atendimento

Ative os dias, clique nos horários para marcar/desmarcar e salve.

Carregando...

Dias Bloqueados

Férias, feriados e dias sem atendimento

Adicionar dia bloqueado
Datas Bloqueadas
🗓️
Carregando...

Vídeos do Hero

Gerencie o carrossel de vídeos da página principal

🎬
Clique para selecionar vídeos
MP4, MOV, WEBM • Máx. 50MB por vídeo • Sem áudio (mudo automaticamente)
💡
Os vídeos aparecem em carrossel automático no lado direito da página inicial, sem áudio. Arraste os cards para reordenar. Recomendado: vídeos curtos de 10–30 segundos.
🗄️ Setup do banco de dados (clique para ver o SQL)

Execute este SQL no Supabase → SQL Editor uma única vez para criar a tabela e o bucket:

-- 1. Criar tabela
create table if not exists hero_videos (
  id uuid primary key default gen_random_uuid(),
  url text not null,
  storage_path text,
  description text,
  position integer default 1,
  created_at timestamptz default now()
);

-- 2. Habilitar RLS na tabela
alter table hero_videos enable row level security;

-- Remover políticas antigas se existirem (evita conflito)
drop policy if exists "public read" on hero_videos;
drop policy if exists "auth write" on hero_videos;

create policy "public read" on hero_videos for select using (true);
create policy "auth write" on hero_videos for all using (auth.role() = 'authenticated');

-- 3. Criar bucket de storage público
insert into storage.buckets (id, name, public, file_size_limit, allowed_mime_types)
values ('hero_videos', 'hero_videos', true, 104857600, array['video/mp4','video/mov','video/webm','video/quicktime'])
on conflict (id) do update set public = true, file_size_limit = 104857600;

-- 4. Políticas do Storage (ESSENCIAL para upload funcionar)
drop policy if exists "hero_videos public read" on storage.objects;
drop policy if exists "hero_videos auth upload" on storage.objects;
drop policy if exists "hero_videos auth update" on storage.objects;
drop policy if exists "hero_videos auth delete" on storage.objects;

create policy "hero_videos public read"
  on storage.objects for select
  using (bucket_id = 'hero_videos');

create policy "hero_videos auth upload"
  on storage.objects for insert
  with check (bucket_id = 'hero_videos' and auth.role() = 'authenticated');

create policy "hero_videos auth update"
  on storage.objects for update
  using (bucket_id = 'hero_videos' and auth.role() = 'authenticated');

create policy "hero_videos auth delete"
  on storage.objects for delete
  using (bucket_id = 'hero_videos' and auth.role() = 'authenticated');

-- 5. Se a tabela já existe, adicione a coluna description
alter table hero_videos add column if not exists description text;
🎬
Nenhum vídeo ainda.
Faça upload acima.

Meus Serviços

Gerencie serviços, preços e fotos

Carregando...
Agendamento
Serviço
✂️ Selecione abaixo
🎨 Alterar Ícone

Escolha o novo ícone para este serviço:

🎬 Editar Descrição do Vídeo
Esta descrição aparece sobre o vídeo na página principal
✏️ Editar Descrição da Foto
Enter = nova linha  |  • ≡ = tópico com marcador  |  Ctrl+B/I/U = formatar
🗑️ Apagar Dados

Escolha o período cujos dados deseja apagar. Esta ação não pode ser desfeita.

🔔 Novo Agendamento!