O futuro da organização

MarcAI — Onde a tecnologia encontra a organização

Plataforma inteligente para agendamentos, organização e gestão do dia a dia, pensada para profissionais e clientes.

Sou Cliente

Quero realizar agendamento com um profissional.

Sou Profissional

Gerenciar minha agenda e clientes.

O que dizem sobre o MarcAI Agenda

Clientes e profissionais que já usam e confiam na plataforma

Encontre um Profissional

Agende seus serviços favoritos com facilidade.

Avalie seu Atendimento

Sua opinião é muito importante para nós!

Acesso Profissional

Gerencie sua agenda e clientes.

Recuperação de Acesso

Token de Segurança
000 000

Olá, Profissional

Painel de Gestão

Ganhos Hoje
R$ 0,00
Ganhos Totais
R$ 0,00
Agendamentos Pendentes
0

Agendamentos de Hoje

Próximos Agendamentos

Histórico Concluído

Acesso Restrito

Painel Administrativo

Total Profissionais
-
Leads (Espera)
-
Status Sistema
Online

Configurações do Site

Setup do Banco de Dados (SQL)

ATENÇÃO: Se você já criou as tabelas antes, copie e rode este código novamente para adicionar as colunas novas.

-- Configs
create table if not exists config (key text primary key, value text);

-- Managers
create table if not exists managers (
  id bigint generated by default as identity primary key, 
  created_at timestamp with time zone default timezone('utc'::text, now()) not null, 
  name text, 
  establishment_name text, 
  specialty text, 
  city text, 
  neighborhood text, 
  username text, 
  temp_password text, 
  expiration_days int default 30, 
  is_active boolean default true, 
  secret_word text, 
  photo_url text, 
  contact_whatsapp text, 
  address text, 
  services jsonb default '[]'::jsonb, 
  working_hours jsonb default '{}'::jsonb, 
  enable_custom_link boolean default false, 
  enable_reviews boolean default false
);

-- MIGRATION (Novas Colunas): Rode isso se der erro ao salvar gerente
alter table managers add column if not exists enable_custom_link boolean default false;
alter table managers add column if not exists enable_reviews boolean default false;

-- Appointments
create table if not exists appointments (id bigint generated by default as identity primary key, created_at timestamp with time zone default timezone('utc'::text, now()) not null, manager_id bigint references managers(id), client_name text, client_phone text, service_name text, service_price numeric, service_duration int, appointment_time timestamp with time zone, status text default 'pending', notes text);

-- Reviews
create table if not exists reviews (id bigint generated by default as identity primary key, appointment_id bigint references appointments(id), rating int, comment text, photo_url text, created_at timestamp with time zone default timezone('utc'::text, now()) not null);

-- Leads
create table if not exists leads (id bigint generated by default as identity primary key, created_at timestamp with time zone default timezone('utc'::text, now()) not null, email text);

-- Testimonials (Comentários da Home)
create table if not exists testimonials (
  id bigint generated by default as identity primary key,
  created_at timestamp with time zone default timezone('utc'::text, now()) not null,
  name text,
  user_type text, -- 'Cliente' ou 'Profissional'
  comment text,
  rating int default 5,
  photo_url text,
  is_active boolean default true
);

-- Policies (RLS)
alter table managers disable row level security;
alter table config disable row level security;
alter table appointments disable row level security;
alter table leads disable row level security;
alter table reviews disable row level security;
alter table testimonials disable row level security;

-- Automation (Opcional - Requer pg_cron)
-- create extension if not exists pg_cron;
-- select cron.schedule('daily_expiration', '0 0 * * *', 'update managers set expiration_days = expiration_days - 1 where expiration_days > 0');

Gerenciar Comentários (Home)

Comentários Cadastrados

Carregando...

Gerenciar Profissionais

Profissionais Cadastrados

Carregando...