Relacionamento com Tutores
O sistema de Tutores permite que um pet tenha multiplos responsaveis (clientes), refletindo situacoes reais onde familias ou parceiros compartilham a responsabilidade por um animal.
Conceito de Tutor
Um tutor e um cliente que e responsavel por um pet. No Onepet2:
- Um pet pode ter multiplos tutores
- Um tutor (cliente) pode ter multiplos pets
- Relacao e bidirecional e sincronizada
Cenarios de Uso
Cenario 1: Casal com Pet
Ambos podem:
- Trazer o pet para servicos
- Receber notificacoes
- Acompanhar historico
Cenario 2: Familia com Varios Pets
Cenario 3: Pet Compartilhado
Gerenciamento de Tutores
No Cadastro do Pet
Ao criar ou editar um pet:
- Campo "Tutores" (customers) e obrigatorio
- Permite selecionar multiplos clientes existentes
- Permite criar novos clientes inline
Campo de Selecao
| Propriedade | Valor |
|---|---|
| Tipo | Select multiplo |
| Obrigatorio | Sim (pelo menos 1) |
| Busca | Por nome, telefone |
| Criacao inline | Sim |
Criacao Inline de Cliente
Ao cadastrar pet, e possivel criar novo cliente:
- Clique em "Adicionar novo tutor"
- Preencha dados basicos (nome, whatsapp)
- Ao salvar o pet, cliente e criado automaticamente
- Vinculo e estabelecido
Sincronizacao Automatica
Como Funciona
O sistema mantem a relacao sincronizada automaticamente:
Ao adicionar tutor ao pet:
Pet.customer_ids << customer_id
→ Customer.pet_ids << pet_id
Ao remover tutor do pet:
Pet.customer_ids.delete(customer_id)
→ Customer.pet_ids.delete(pet_id)
Fluxo Detalhado
Callbacks Envolvidos
| Momento | Metodo | Acao |
|---|---|---|
| Antes de validar | set_account_and_current_user | Herda conta do cliente |
| Apos criar | set_customer_pet_ids | Sincroniza pet_ids nos clientes |
| Antes de atualizar | set_old_customer_ids | Guarda estado anterior |
| Apos atualizar | update_customer_pet_ids | Sincroniza adicoes e remocoes |
Visualizacao
No Perfil do Pet
Aba "Tutores" exibe:
- Lista de todos os tutores
- Nome e contato de cada um
- Link para perfil do cliente
No Perfil do Cliente
Aba "Pets" exibe:
- Lista de todos os pets do cliente
- Link para perfil de cada pet
- Contador de pets
Impacto em Outros Modulos
Beauty Center
- Qualquer tutor pode agendar servicos para o pet
- Notificacoes enviadas para todos os tutores
- Historico compartilhado
PDV
- Venda pode ser vinculada a qualquer tutor
- Produtos do pet aparecem para todos
Clinical
- Qualquer tutor pode autorizar procedimentos
- Historico medico acessivel por todos
Regras de Negocio
Validacoes
| Regra | Descricao |
|---|---|
| Minimo 1 tutor | Pet deve ter pelo menos um tutor |
| Tutores validos | Clientes devem existir na mesma Account |
| Permissao | Usuario deve ter acesso aos clientes |
Restricoes
- Mesma Account: Tutores devem ser da mesma Account do pet
- Nao duplicar: Mesmo cliente nao pode ser tutor duas vezes
- Sincronizacao obrigatoria: Sistema mantem consistencia
Cenarios Especiais
Transferencia de Tutor
Se um pet muda de dono:
- Adicione o novo tutor
- Remova o tutor anterior (se desejado)
- Historico permanece com o pet
Tutor Falecido/Inativo
Se um tutor nao esta mais disponivel:
- Mantenha outros tutores ativos
- Opcional: remova o tutor inativo
- Historico de atendimentos e preservado
Pets sem Tutor
Situacao nao permitida:
- Sistema exige pelo menos 1 tutor
- Ao remover ultimo tutor, operacao e bloqueada
Notificacoes
Quem Recebe
Por padrao, notificacoes sao enviadas para:
| Situacao | Destinatarios |
|---|---|
| Agendamento | Todos os tutores |
| Lembrete | Todos os tutores |
| Finalizacao | Todos os tutores |
| Promocoes | Todos os tutores |
Configuracao
Futuras implementacoes podem permitir:
- Definir tutor principal
- Escolher quem recebe notificacoes
- Preferencias por tipo de notificacao
Permissoes
| Acao | Permissao Necessaria |
|---|---|
| Ver tutores do pet | pet.view_all ou pet.view_own |
| Adicionar tutor | pet.edit_all ou pet.edit_own |
| Remover tutor | pet.edit_all ou pet.edit_own |
| Criar tutor inline | customer.create |
Boas Praticas
Cadastro Inicial
- Sempre pergunte se ha mais tutores
- Cadastre todos os responsaveis
- Confirme dados de contato de cada um
Manutencao
- Atualize quando houver mudancas
- Verifique periodicamente dados de contato
- Mantenha historico mesmo ao remover tutores
Comunicacao
- Notifique todos os tutores sobre servicos
- Confirme com qualquer tutor presente
- Registre qual tutor trouxe/buscou o pet