- 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 |
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 |
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 |
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 |
user_global_apportionment
|
Pote distribuído sobre assinaturas globais |
user_local_apportionment
|
Pote distribuído sobre assinaturas |
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 1
Faturamento 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, 2
Faturamento 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 1
Agendamentos 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 desc
Clientes por estado
select state as "Estado",
count(1) as "Quantidade"
from customers
group by state
order by 2 desc
Faturamento 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.