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...