Professional (Profissional)
O Professional representa um funcionario ou prestador de servico do petshop, com suporte a multiplas funcoes e gestao financeira.
Descricao
Profissionais sao as pessoas que trabalham no petshop: vendedores, tosadores, veterinarios, entregadores. Um profissional pode ter multiplas funcoes simultaneamente e pode ou nao ter acesso ao sistema.
Dados
| Campo | Tipo | Obrigatorio | Descricao |
|---|
| name | Texto | Sim | Nome completo |
| cpf | Texto | Nao | CPF do profissional |
| phone | Texto | Nao | Telefone de contato |
| email | Texto | Condicional | Email (obrigatorio se user_access=true) |
| job | Texto | Nao | Cargo/funcao |
| start_date | Data | Nao | Data de inicio (padrao: hoje) |
| end_date | Data | Nao | Data de desligamento |
Acesso ao Sistema
| Campo | Tipo | Obrigatorio | Descricao |
|---|
| user_access | Booleano | Nao | Se pode acessar o sistema |
| profile | Referencia | Condicional | Perfil de permissoes (obrigatorio se user_access=true) |
Funcoes (Multi-funcao)
| Campo | Tipo | Padrao | Descricao |
|---|
| seller | Booleano | false | E vendedor |
| doctor | Booleano | false | E veterinario |
| beauty | Booleano | false | E tosador/banhista |
| delivery | Booleano | false | E entregador |
| Campo | Tipo | Obrigatorio | Descricao |
|---|
| vehicle_type | Selecao | Nao | Tipo de veiculo (bike, car, motorcycle) |
| vehicle_plate | Texto | Nao | Placa do veiculo |
Dados de Funcionario (Condicional)
| Campo | Tipo | Obrigatorio | Descricao |
|---|
| employee | Booleano | Nao | E funcionario formal |
| salary | Monetario | Nao | Salario bruto |
| salary_liquid | Monetario | Sim (se employee) | Salario liquido |
| salary_day | Numero | Sim (se employee) | Dia do pagamento (1-31) |
| salary_category | Referencia | Sim (se salary > 0) | Categoria financeira do salario |
| benefits | Monetario | Nao | Valor de beneficios |
| benefits_day | Numero | Sim (se employee) | Dia do pagamento de beneficios |
| benefits_category | Referencia | Sim (se benefits > 0) | Categoria financeira dos beneficios |
Comissoes (Condicional)
| Campo | Tipo | Obrigatorio | Descricao |
|---|
| commissions | Booleano | Nao | Recebe comissoes |
| commission_table | Referencia | Sim (se commissions) | Tabela de comissoes |
Dados Financeiros
| Campo | Tipo | Obrigatorio | Descricao |
|---|
| financial_account | Referencia | Sim (se employee) | Conta para pagamentos |
| financial_cost_center | Referencia | Sim (se employee) | Centro de custo |
Relacionamentos
Pertence a
| Entidade | Descricao | Obrigatorio |
|---|
| Account | Conta/empresa | Sim |
| Store | Filial especifica | Nao |
| Profile | Perfil de permissoes | Condicional |
| CommissionTable | Tabela de comissoes | Condicional |
| FinancialAccount | Conta para pagamentos | Condicional |
| FinancialCostCenter | Centro de custo | Condicional |
| SalaryCategory | Categoria do salario | Condicional |
| BenefitsCategory | Categoria dos beneficios | Condicional |
Possui
| Entidade | Descricao |
|---|
| linked_user | Usuario vinculado (1:1) |
| financial_transactions | Transacoes de salario/beneficios |
Funcoes do Profissional
Um profissional pode ter multiplas funcoes simultaneamente:
Vendedor (seller)
| Caracteristica | Descricao |
|---|
| Modulo | PDV |
| Uso | Aparece como vendedor nas vendas |
| Comissao | Pode receber comissao por venda |
Veterinario (doctor)
| Caracteristica | Descricao |
|---|
| Modulo | Clinical, Beauty Center |
| Uso | Aparece em consultas e atendimentos |
| Especializacao | Atendimento clinico |
Tosador/Banhista (beauty)
| Caracteristica | Descricao |
|---|
| Modulo | Beauty Center |
| Uso | Aparece em agendamentos de estetica |
| Servicos | Banho, tosa, hidratacao, etc. |
Entregador (delivery)
| Caracteristica | Descricao |
|---|
| Modulo | Delivery |
| Uso | Aparece em entregas |
| Dados extras | Tipo e placa do veiculo |
Regras de Negocio
Acesso ao Sistema
Quando user_access = true:
- Email se torna obrigatorio
- Profile se torna obrigatorio
- Sistema cria/vincula User automaticamente
- Email e Profile sao sincronizados
Se o profissional tem linked_user:
| Campo alterado | Efeito |
|---|
| profile_id | Atualiza profile do User |
| email | Atualiza email do User |
Validacoes
| Campo | Validacao | Quando |
|---|
| name | Obrigatorio | Sempre |
| email | Obrigatorio + Unico (Account+Store) | user_access = true |
| profile | Obrigatorio | user_access = true |
| salary_liquid | Obrigatorio + > 0 | employee = true |
| salary_day | Obrigatorio + 1-31 | employee = true |
| benefits_day | Obrigatorio + 1-31 | employee = true |
| financial_account | Obrigatorio | employee = true |
| financial_cost_center | Obrigatorio | employee = true |
| salary_category | Obrigatorio | employee = true E salary > 0 |
| benefits_category | Obrigatorio | employee = true E benefits > 0 |
| commission_table | Obrigatorio | commissions = true |
| vehicle_type | bike, car, motorcycle | delivery = true |
Dados de Funcionario
Quando employee = true, o profissional e tratado como funcionario formal:
Automacoes
Transacoes de Salario
Quando profissional e salvo com employee = true e salary_liquid > 0:
-
Cria transacao de salario
- Nome: "Salario: [nome do profissional]"
- Tipo: despesa
- Valor: salary_liquid
- Frequencia: mensal
- Dia: salary_day do proximo mes
- Duracao: 3 anos
-
Atualiza transacao existente
- Se ja existe transacao pendente
- Atualiza valor e data
- Marca para atualizar proximas
Transacoes de Beneficios
Quando profissional e salvo com employee = true e benefits > 0:
-
Cria transacao de beneficios
- Nome: "Beneficios: [nome do profissional]"
- Tipo: despesa
- Valor: benefits
- Frequencia: mensal
- Dia: benefits_day do proximo mes
- Duracao: 3 anos
-
Atualiza transacao existente
- Mesmo comportamento do salario
Geracao de SHA1
- Ao criar profissional, gera identificador unico (SHA1)
- Usado para integracao com sistemas externos de delivery
- Gerado apenas uma vez (se sha1 estiver vazio)
Sistema de Comissoes
Tabela de Comissoes
Quando commissions = true, o profissional usa uma CommissionTable:
Regras de Comissao
As regras podem ser baseadas em:
| Criterio | Descricao |
|---|
| Fabricante | Comissao por fabricante do produto |
| Categoria | Comissao por categoria de estoque |
| Subcategoria | Comissao por subcategoria |
| Todas | Comissao geral (fallback) |
Condicoes de Comissao
As regras podem ter restricoes:
| Condicao | Descricao |
|---|
| Dias da semana | Comissao so aplica em certos dias |
| Horario | Comissao so aplica em certas horas |
Tipos de Comissao
| Tipo | Descricao |
|---|
| Percentual | X% do valor da venda (0-100%) |
| Fixo | Valor fixo em reais |
Visibilidade de Campos
Os campos aparecem condicionalmente:
| Campo | Visivel quando |
|---|
| profile | user_access = true |
| vehicle_type, vehicle_plate | delivery = true |
| salary, salary_liquid, salary_day, salary_category | employee = true |
| benefits, benefits_day, benefits_category | employee = true |
| commission_table | commissions = true |
| financial_account, financial_cost_center | employee = true |
Organizacao por Abas
- Dados pessoais
- Funcoes (checkboxes)
- Acesso ao sistema
- Dados de delivery
Aba "Financeiro"
- Status de funcionario
- Dados de salario
- Dados de beneficios
- Comissoes
- Contas financeiras
Escopos de Busca
| Escopo | Descricao |
|---|
| delivery | Apenas entregadores |
| doctor | Apenas veterinarios |
| beauty | Apenas tosadores/banhistas |
| seller | Apenas vendedores |
Tipos de Veiculo
| Valor | Descricao |
|---|
| bike | Bicicleta |
| car | Carro |
| motorcycle | Motocicleta |
Permissoes
| Acao | Quem Pode |
|---|
| Criar | Owner, usuarios com permissao de RH |
| Editar | Owner, usuarios com permissao de RH |
| Excluir | Owner, usuarios com permissao de RH |
| Ver | Owner, usuarios com permissao de RH |
| Ativar/Desativar | Owner, usuarios com permissao de RH |
Restricoes Importantes
- Email Unico: Por Account + Store
- Um User por Professional: Maximo um User vinculado
- Funcionario requer dados completos: salary_liquid, salary_day, contas financeiras
- Categoria requer valor: salary_category so obrigatoria se salary > 0
- 3 anos de transacoes: Salario e beneficios sao projetados para 3 anos
- Transacoes mensais: Recorrencia automatica mensal
- Comissao condicional: So aplica se regra e dia/hora corresponderem
- Sincronizacao automatica: Email e Profile sincronizam com User vinculado
Exemplos de Uso
Tosador Sem Acesso ao Sistema
name: "Maria Silva"
beauty: true
employee: true
salary_liquid: 2000.00
salary_day: 5
user_access: false
name: "Joao Santos"
email: "joao@petshop.com"
seller: true
employee: true
salary_liquid: 1800.00
salary_day: 5
commissions: true
commission_table: [tabela de vendas]
user_access: true
profile: [perfil de atendente]
Entregador
name: "Pedro Oliveira"
delivery: true
vehicle_type: motorcycle
vehicle_plate: "ABC-1234"
employee: false
user_access: false
name: "Dra. Ana Costa"
email: "ana@petshop.com"
doctor: true
beauty: true
employee: true
salary_liquid: 5000.00
salary_day: 10
user_access: true
profile: [perfil de veterinario]