- Como funciona
- Informações técnicas
- Informações importantes
- Schema de banco de dados
- Queries de exemplo
Como funciona
Informações técnicas
Informações importantes
O banco de dados é sincronizado com a Plataforma BEMP uma vez por dia durante a noite, portanto qualquer consulta realizada poderá refletir dados com até um dia de atraso da plataforma BEMP.
O banco de dados disponibilizado é somente para leitura, não permitindo criar qualquer tipo de objeto ou realizar qualquer alteração nos dados.
Você poderá abrir até 5 conexões simultâneas neste banco de dados não podendo exceder esse limite.
Consultas realizadas não poderão exceder 60 segundos.
Campos de data e hora existentes na plataforma BEMP são registrados sempre com GMT-0, tenha cuidado ao fazer queries que filtram ou agrupam por estes campos pois deve sempre considerar a diferença de timezone.
Schema de banco de dados
IntegrationStatus
Estrutura de controle para consultar horário da última sincronização.
| Nome | Descrição |
last_sync |
Data e hora da última sincronização da base de dados com a Plataforma BEMP |
Billings
É uma tabela desnormalizada a partir da tabela Orders para simplificar consultas relacionadas a faturamento. Nela consta todos os registros que são relativos ao faturamento.
| Nome | Descrição |
date |
Data para faturamento (GMT-0) |
entity |
Entidade de faturamento, mais detalhes aqui. |
salon_id |
ID da unidade |
order_id |
ID da Order |
customer_id |
ID do cliente |
user_id |
ID do colaborador que realizou o fechamento da OS |
origin |
Origem ou tipo de OS, mais detalhes aqui. |
payment_type |
Forma de pagamento do item da OS, segmenta itens pagos com forma de pagamento ou outras modalidades como créditos, pontos, assinaturas, etc. mais detalhes aqui. |
discount_id |
ID do desconto nomeado (quando aplicado) |
service_id |
ID do serviço (quando execução de serviço) |
product_id |
ID do produto (quando venda de produto) |
package_id |
ID do pacote (quando venda de pacote) |
subscription_plan_id |
ID do plano de assinatura (quando venda de assinatura) |
quantity |
Quantidade |
price |
Preço de venda do item |
discount |
Desconto concedido |
commission |
Comissão paga sobre item |
commission_retention |
Valor descontado da comissão para taxa de meio de pagamento |
payment_retention |
Taxa de meio de pagamento |
paid_with_money_credit |
Valor pago com carteira de crédito |
total |
Preço |
total_gross |
Total bruto |
total_net |
Total liquido |
gift |
Indica que o item foi concedido como presente (100% de desconto) |
gifts_count |
Quantidade de itens concedidos como presente |
gifts_value |
Valor concedido como presente |
Blocks
| Nome | Descrição |
| id | Identificador único |
| name | Nome |
| salon_id | ID da unidade |
| user_id | ID do cliente |
| date | Data |
| end_date | Data fim |
| start_time | Data/hora do início do agendamento |
| end_time | Data/hora do início do agendamento |
| repetable | Repetível |
| sunday | Domingo |
| monday | Segunda-feira |
| tuesday | Terça-feira |
| wednesday | Quarta-feira |
| thursday | Quinta-feira |
| friday | Sexta-feira |
| saturday | Sábado |
| block_assiduity | id de Bloqueio |
Block_exceptions
| Nome | Descrição |
| id | Identificador único |
| block_id | Assiduidade |
| date | Data |
Customers
Registro de clientes.
| Nome | Descrição |
| id | Identificador único |
| name | Nome |
| active | Indica se está ativo |
email |
|
birthdate |
Data de nascimento |
verified |
Indica se é cliente verificado |
gender |
Gênero, mais detalhes aqui |
| channel | Onde nos conheceu, mais detalhes aqui |
phone_country_code |
Telefone - DDI |
phone_area_code |
Telefone - DDD |
phone_number |
Telefone - Número |
document_type |
Tipo de documento, mais detalhes aqui |
document_id |
Documento |
zipcode |
Endereço - CEP |
street |
Endereço - Rua |
street_number |
Endereço - Número |
street_complement |
Endereço - Complemento |
neighborhood |
Endereço - Bairro |
city |
Endereço - Cidade |
state |
Endereço - Estado |
created_at |
Data de criação do cliente |
Discounts
Registro de descontos.
| Nome | Descrição |
| id | Identificador único |
| name | Nome |
| active | Indica se está ativo |
Executions
É uma tabela desnormalizada a partir da tabela Orders para simplificar consultas relacionadas à execução de serviços. Nela consta todos os registros que são relativos à execução.
| Nome | Descrição |
date |
Data para faturamento (GMT-0) |
entity |
Entidade de faturamento, mais detalhes aqui. |
salon_id |
ID da unidade |
order_id |
ID da Order |
customer_id |
ID do cliente |
user_id |
ID do colaborador que realizou o fechamento da OS |
origin |
Origem ou tipo de OS, mais detalhes aqui. |
payment_type |
Forma de pagamento do item da OS, segmenta itens pagos com forma de pagamento ou outras modalidades como créditos, pontos, assinaturas, etc. mais detalhes aqui. |
discount_id |
ID do desconto nomeado (quando aplicado) |
service_id |
ID do serviço (quando execução de serviço) |
product_id |
ID do produto (quando venda de produto) |
package_id |
ID do pacote (quando venda de pacote) |
subscription_plan_id |
ID do plano de assinatura (quando venda de assinatura) |
quantity |
Quantidade |
price |
Preço de venda do item |
discount |
Desconto concedido |
commission |
Comissão paga sobre item |
commission_retention |
Valor descontado da comissão para taxa de meio de pagamento |
payment_retention |
Taxa de meio de pagamento |
paid_with_money_credit |
Valor pago com carteira de crédito |
total |
Preço |
total_gross |
Total bruto |
total_net |
Total liquido |
gift |
Indica que o item foi concedido como presente (100% de desconto) |
gifts_count |
Quantidade de itens concedidos como presente |
gifts_value |
Valor concedido como presente |
Orders
Registro de OSs.
| Nome | Descrição |
| id | Identificador único |
salon_id |
ID da unidade |
customer_id |
ID do cliente |
status |
Status da OS, mais detalhes aqui. |
origin |
Origem ou tipo de OS, mais detalhes aqui. |
price_total |
Preço total da OS (sem descontos) |
discount_total |
Total de descontos |
total_gross |
Total bruto |
total_pay_with_credit |
Total pago com dinheiro da carteira do cliente |
total |
Total liquido |
closed_at |
Data de fechamento (quando fechada) |
created_at |
Data de criação |
canceled_at |
Data de cancelamento (quando cancelada) |
note |
Observação |
OrderPackages
Associa os pacotes relacionados às OS.
| Nome | Descrição |
| id | Identificador único |
order_id |
ID da OS |
package |
ID do pacote |
user_id |
ID do profissional que realizou a venda |
quantity |
Quantidade |
price |
Preço unitário |
price_total |
Preço total |
discount |
Desconto concedido |
discount_id |
ID do desconto |
total |
Total |
payment_kind |
Forma de pagamento, mais detalhes aqui |
OrderPayments
Associa pagamentos relacionados às OS.
| Nome | Descrição |
| order_id | ID da OS |
| date | Data do pagamento |
| kind |
|
method |
Nome da forma da pagamento |
| method_kind |
|
installments |
Total de parcelas |
installment |
Número da parcela |
value |
Valor |
status |
Status do pagamento, mais detalhes aqui |
OrderProducts
Associa os produtos relacionados às OS.
| Nome | Descrição |
| id | Identificador único |
order_id |
ID da OS |
product_id |
ID do produto |
user_id |
ID do profissional que realizou a venda |
quantity |
Quantidade |
price |
Preço unitário |
price_total |
Preço total |
discount |
Desconto concedido |
discount_id |
ID do desconto |
total |
Total |
payment_kind |
Forma de pagamento, mais detalhes aqui |
OrderServices
Associa os serviços relacionados às OS.
| Nome | Descrição |
| id | Identificador único |
order_id |
ID da OS |
service_id |
ID do serviço |
user_id |
ID do profissional que realizou o serviço |
quantity |
Quantidade |
price |
Preço unitário |
price_total |
Preço total |
discount |
Desconto concedido |
discount_id |
ID do desconto |
total |
Total |
payment_kind |
Forma de pagamento, mais detalhes aqui |
OrderSubscriptions
Associa os plano de assinatura relacionados às OS.
| Nome | Descrição |
id |
Identificador único |
order_id |
ID da OS |
subscriptions_plan_id |
ID do plano de assinatura |
quantity |
Quantidade |
price |
Preço unitário |
price_total |
Preço total |
discount |
Desconto concedido |
total |
Total |
membership |
Valor da taxa de adesão |
monthly |
Valor da mensalidade |
Packages
Registros de Pacote.
| Nome | Descrição |
| id | Identificador único |
| name | Nome |
| active | Indica se está ativo |
Products
Registro de produtos.
| Nome | Descrição |
| id | Identificador único |
| name | Nome |
| active | Indica se está ativo |
| group_name | Nome do grupo do produto que pertence |
default_product |
Indica se é um produto padrão |
feedstock |
Indica se é um insumo |
salon_id |
ID da unidade em caso de produto específico da unidade |
Salons
Registro de unidades.
| Nome | Descrição |
| id | Identificador único |
| name | Nome |
| active | Indica se está ativo |
| document_type | Tipo de documento, mais detalhes aqui |
| document_id | Documento |
phone_country_code |
Telefone - DDI |
phone_area_code |
Telefone - DDD |
phone_number |
Telefone - Número |
zipcode |
Endereço - CEP |
street |
Endereço - Rua |
street_number |
Endereço - Número |
street_complement |
Endereço - Complemento |
neighborhood |
Endereço - Bairro |
city |
Endereço - Cidade |
state |
Endereço - Estado |
SalonStats
Registro de série temporal que consolida, por unidade e por dia, métricas de ocupação da agenda, agendamentos, vendas, comissões, descontos, retenções e gratuidades.
| Campo | Descrição |
|---|---|
| salon_id | Identificação — ID da unidade |
| date | Identificação — Data |
| idle_time | Ocupação da agenda — tempo ocioso em segundos (base para idle_perc) |
| schedule_time | Ocupação da agenda — tempo ocupado em segundos (base para schedule_perc) |
| salon_block_time | Ocupação da agenda — tempo bloqueado pelo salão (base para block_perc) |
| user_block_time | Ocupação da agenda — tempo bloqueado pelo profissional (base para block_perc) |
| worktimelog_available_time | Ocupação da agenda — Tempo disponível (Turnos) |
| schedules_count | Agendamentos — Agendamentos |
| canceled_schedules_count | Agendamentos — Agendamentos cancelados |
| service_price | Valor de venda — Somente serviços |
| product_price | Valor de venda — Somente produtos |
| package_price | Valor de venda — Somente pacotes |
| subscription_price | Valor de venda — Somente assinaturas |
| total_price | Valor de venda — Total |
| service_discount | Desconto — Somente serviços |
| product_discount | Desconto — Somente produtos |
| package_discount | Desconto — Somente pacotes |
| total_discount | Desconto — Total |
| service_gross | Valor faturado bruto — Somente serviços |
| product_gross | Valor faturado bruto — Somente produtos |
| package_gross | Valor faturado bruto — Somente pacotes |
| subscription_gross | Valor faturado bruto — Somente assinaturas |
| total_gross | Valor faturado bruto — Total |
| service_commission | Comissão — Somente serviços |
| product_commission | Comissão — Somente produtos |
| total_commission | Comissão — Total |
| service_retention | Taxa dos meios de pagamento — Somente serviços |
| product_retention | Taxa dos meios de pagamento — Somente produtos |
| package_retention | Taxa dos meios de pagamento — Somente pacotes |
| subscription_retention | Taxa dos meios de pagamento — Somente assinaturas |
| total_retention | Taxa dos meios de pagamento — Total |
| service_net | Valor faturado líquido — Somente serviços |
| product_net | Valor faturado líquido — Somente produtos |
| package_net | Valor faturado líquido — Somente pacotes |
| subscription_net | Valor faturado líquido — Somente assinaturas |
| total_net | Valor faturado líquido — Total |
| service_orders | Ordens de serviço — Somente serviços |
| product_orders | Ordens de serviço — Somente produtos |
| package_orders | Ordens de serviço — Somente pacotes |
| subscription_orders | Ordens de serviço — Somente assinaturas |
| total_orders | Ordens de serviço — Total |
| orders_with_services_count | Ordens de serviço — OSs com serviço (base para service_with_price_ratio) |
| service_sales | OS de venda (excl. gratuidades) — Somente serviços |
| product_sales | OS de venda (excl. gratuidades) — Somente produtos |
| package_sales | OS de venda (excl. gratuidades) — Somente pacotes |
| subscription_sales | OS de venda (excl. gratuidades) — Somente assinaturas |
| total_sales | OS de venda (excl. gratuidades) — Total |
| services_with_price_count | Serviços únicos — Total |
| service_gifts | Gratuidades — OSs gratuitas de serviços (base para total_gifts) |
| product_gifts | Gratuidades — OSs gratuitas de produtos (base para total_gifts) |
| package_gifts | Gratuidades — OSs gratuitas de pacotes (base para total_gifts) |
| total_gifts | Gratuidades — Serviços gratuitos (total) |
| service_gifts_value | Gratuidades (valor) — Somente serviços |
| product_gifts_value | Gratuidades (valor) — Somente produtos |
| package_gifts_value | Gratuidades (valor) — Somente pacotes |
| total_gifts_value | Gratuidades (valor) — Total (base para average_ticket_with_gifts) |
| gifts_count | Gratuidades — OSs gratuitas (contagem total) |
Schedules
Registro de agendamentos.
| Nome | Descrição |
| id | Identificador único |
user_id |
ID do usuário (profissional) |
customer_id |
ID do cliente |
salon_id |
ID da unidade |
start_time |
Data/hora do início do agendamento |
end_time |
Data/hora do fim do agendamento |
note |
Observação |
created_at |
Data/hora de criação do agendamento |
status |
Status do agendamento, mais detalhes aqui |
origin |
Origem do agendamento, mais detalhes aqui |
ScheduleRatings
Avaliações dos agendamentos pelos clientes
| Nome | Descrição |
| id | Identificador único |
schedule_id |
ID do agendamento |
rating |
Nota do atendimento (1 a 5) |
note |
Observação |
date |
Data/hora de criação da avaliação |
Services
Registro de serviços.
| Nome | Descrição |
| id | Identificador único |
| name | Nome |
| active | Indica se está ativo |
| description | Descrição |
| group_name | Nome do grupo de serviço que pertence |
dynamic_price |
Indica se o serviço tem preço dinâmico |
commissionable |
Indica se os profissionais recebem comissão sobre esse serviço |
Subscriptions
Registro de assinaturas.
| Nome | Descrição |
| id | Identificador único |
| customer_id | ID do cliente |
subscription_plan_id |
ID do plano de assinatura |
| salon_id | ID da unidade |
order_id |
ID da OS que realizou a venda |
joined_at |
Data e hora da adesão |
| status | Status da assinatura, mais detalhes aqui |
SubscriptionPlans
Registro de planos de assinatura.
| Nome | Descrição |
| id | Identificador único |
| name | Nome |
| active | Indica se está ativo |
Users
Registro de colaboradores
| Nome | Descrição |
| id | Identificador único |
| name | Nome |
| active | Indica se está ativo |
| access_role | Perfil de acesso |
| has_schedule | Indica se possui agenda |
Worktimes
Registros de turno dos colaboradores.
| Nome | Descrição |
| id | Identificador único |
| user_id | ID do colaborador |
salon_id |
ID da unidade |
checkin |
Data / Hora da entrada |
checkout |
Data / Hora da saída |
note |
Observação |
status |
Status do registro, mais detalhes aqui |
Billings - entity
Valores possíveis para Billings.entity.
| Nome | Descrição |
consumptions |
Produtos vendidos em OS de consumo interno aos colaboradores |
package_services |
Serviços quando pagos com pacote de crédito |
packages |
Pacotes vendidos |
products |
Produtos pagos com ou sem desconto |
recurring_quotas |
Parcelas de crédito recorrente |
rewards_products |
Produtos pagos com crédito de pontos do cliente |
rewards_services |
Serviços pagos com crédito de pontos do cliente |
services |
Serviços pagos com ou sem desconto |
subscription_cancellation_fines |
Pagamento de multa de cancelamento de assinatura |
subscription_quotas |
Parcelas de assinaturas (apenas parcelas aprovadas) |
subscription_services |
Serviços pagos com assinatura |
subscriptions |
Adesão de assinatura |
subscription_apportionments |
Pote distribuído ás Unidades sobre assinaturas globais |
Billings - payment_type
Valores possíveis para Billings.payment_type.
| Nome | Descrição |
consumptions |
Consumo interno, pagamento a ser descontado da comissão. |
monthly |
Mensalidade de assinatura |
normal |
Normal, pagamento realizado com meios de pagamento. |
package_credit |
Pagamento realizado com crédito de pacote |
recurrent |
Tipo específico para parcelas de crédito recorrente |
subscription_credit |
Pagamento realizado com assinatura |
wallet_points |
Pagamento realizado com pontos de fidelidade |
Customers - channel
Valores possíveis para Customers.channel.
| Nome | Descrição |
| digital_influencer | Influenciador digital |
facebook |
|
google |
|
instagram |
|
internet |
Pesquisa na internet |
| radio | Radio |
recommendation |
Indicação |
store |
Loja física |
tv |
Televisão |
others |
Outros |
Customers - gender
Valores possíveis para Customers.gender.
| Nome | Descrição |
| female | Feminino |
| male | Masculino |
| trans | Transgênero |
| other | Outro |
DocumentTypes
Valores possíveis para tipos de documento.
| Nome | Descrição |
| cpf | CPF |
| cnpj | CNPJ |
| passport | Passaporte |
| rg | RG |
other |
Outros |
Orders - origin
Valores possíveis para Orders.origin.
| Nome | Descrição |
internal |
OS Interna |
package |
OS de venda de pacotes |
schedule |
OS proveniente de agendamento |
single |
OS avulsa |
subscription |
OS de venda de assinatura |
subscription_cancellation_fine |
OS de multa de cancelamento de assinatura |
Orders - status
Valores possíveis para Orders.status.
| Nome | Descrição |
| open | OS Aberta |
| closed | OS Fechada |
| canceled | OS Cancelada |
OrderPayments - status
Valores possíveis para OrderPayments.status.
| Nome | Descrição |
pending |
Pagamento pendente |
approved |
Pagamento aprovado |
denied |
Pagamento negado |
canceled |
Pagamento cancelado |
late |
Pagamento atrasado |
OrderPackages - payment_kind
Valores possíveis para OrderPackages.payment_kind.
| Nome | Descrição |
| full | Pagamento integral |
| discount | Pagamento com desconto |
OrderProducts - payment_kind
Valores possíveis para OrderProducts.payment_kind.
| Nome | Descrição |
| full | Pagamento integral |
| discount | Pagamento com desconto |
| wallet_points | Pagamento com pontos de fidelidade |
package_credit |
Pagamento com pacote de crédito |
subscription_credit |
Pagamento com assinatura |
OrderServices - payment_kind
Valores possíveis para OrderServices.payment_kind.
| Nome | Descrição |
| full | Pagamento integral |
| discount | Pagamento com desconto |
| wallet_points | Pagamento com pontos de fidelidade |
package_credit |
Pagamento com pacote de crédito |
subscription_credit |
Pagamento com assinatura |
Schedules - origin
Valores possíveis para Schedules.origin.
| Nome | Descrição |
| app | Agendamento criado via aplicativo |
| Agendamento criado via Google | |
system |
Agendamento criado via sistema |
| website | Agendamento criado via website integrado |
Schedules - status
Valores possíveis para Schedules.status.
| Nome | Descrição |
| open | Agendamento Aberto |
| confirmed | Agendamento confirmado |
| inservice | Agendamento em execução |
| closed | Agendamento finalizado |
| canceled | Agendamento cancelado |
Subscriptions - Status
Valores possíveis para Subscriptions.status.
| Nome | Descrição |
| active | Assinatura ativa |
| canceled | Assinatura cancelada |
pending_payment |
Assinatura aguardando primeiro pagamento |
error_payment |
Assinatura com problema de pagamento |
Worktimes - Status
Valores possíveis apra Worktimes.status.
| Nome | Descrição |
| pending | Em aberto |
| complete | Completa |
| error | Com erro |
Queries de exemplo
Abaixo listamos algumas queries de exemplo que ajudam a entender como utilizar o Schema do banco de dados de integração.
Faturamento Bruto por Unidade
select salons.name as "Unidade",
sum(total_gross) as "Faturamento Bruto"
from billings
join salons on salons.id = billings.salon_id
where date between '2022-01-01 03:00:00' and '2022-02-01 02:59:59.999999'
group by 1Faturamento Bruto por Unidade e Serviço
select salons.name as "Unidade",
services.name as "Serviço",
sum(total_gross) as "Faturamento Bruto"
from billings
join salons on salons.id = billings.salon_id
join services on services.id = billings.service_id
where date between '2022-01-01 03:00:00' and '2022-02-01 02:59:59.999999'
group by 1, 2
order by 1, 2Faturamento Bruto por Grupo de Serviço
select services.group_name as "Grupo de Serviço",
sum(total_gross) as "Faturamento Bruto"
from billings
join salons on salons.id = billings.salon_id
join services on services.id = billings.service_id
where date between'2022-01-01 03:00:00' and '2022-02-01 02:59:59.999999'
group by 1
order by 1Agendamentos por Status
select status as "Status",
count(1) as "Quantidade"
from schedules
where start_time between'2022-01-01 03:00:00' and '2022-02-01 02:59:59.999999'
group by 1
order by 2 descClientes por estado
select state as "Estado",
count(1) as "Quantidade"
from customers
group by state
order by 2 descFaturamento do mês
select sum(total) as "Preço total",
sum(discount) as "Total em descontos",
sum(paid_with_money_credit) as "Total pago com carteira de dinheiro",
sum(total_gross) as "Total Bruto",
sum(commission) as "Total em comissões",
sum(payment_retention) as "Taxa do meio de pagamento",
sum(total_net) as "Total Liquido"
from billings
where date between '2023-01-01 03:00:00' and '2023-02-01 02:59:59';Execuções do mês
select sum(total) as "Preço total",
sum(discount) as "Total em descontos",
sum(paid_with_money_credit) as "Total pago com carteira de dinheiro",
sum(total_gross) as "Total Bruto",
sum(commission) as "Total em comissões",
sum(payment_retention) as "Taxa do meio de pagamento",
sum(total_net) as "Total Liquido"
from executions
where date between '2023-01-01 03:00:00' and '2023-02-01 02:59:59';
Comentários
0 comentário
Artigo fechado para comentários.