CheckForm (Formulario de Check)
O CheckForm define formularios dinamicos usados no check-in e checkout do centro de estetica.
Descricao
Formularios de check permitem coletar informacoes padronizadas durante o check-in (estado do pet ao chegar) e checkout (observacoes finais). As perguntas sao configuráveis por cada petshop.
Dados
| Campo | Tipo | Obrigatorio | Descricao |
|---|
| name | Texto | Sim | Nome do formulario |
| type | Selecao | Sim | "checkin" ou "checkout" |
| active | Booleano | Sim | Se esta ativo |
Relacionamentos
Pertence a
| Entidade | Obrigatorio | Descricao |
|---|
| Account | Sim | Conta do petshop |
| Store | Nao | Filial especifica (ou todas) |
Possui
| Entidade | Descricao |
|---|
| CheckQuestions | Perguntas do formulario |
| Tipo | Uso |
|---|
| checkin | Usado ao receber o pet |
| checkout | Usado ao devolver o pet |
CheckQuestion (Pergunta)
Dados
| Campo | Tipo | Obrigatorio | Descricao |
|---|
| question | Texto | Sim | Texto da pergunta |
| type | Selecao | Sim | Tipo de resposta |
| required | Booleano | Nao | Se resposta e obrigatoria |
| options | Array | Condicional | Opcoes (se tipo = select/checkbox) |
| order | Numero | Nao | Ordem de exibicao |
Tipos de Pergunta
| Tipo | Descricao | Exemplo |
|---|
| text | Texto livre | "Observacoes gerais" |
| textarea | Texto longo | "Descreva o estado do pelo" |
| select | Selecao unica | "Estado de saude" |
| checkbox | Multipla escolha | "Tratamentos necessarios" |
| boolean | Sim/Nao | "Pet esta agressivo?" |
| number | Numero | "Temperatura corporal" |
Uso no Agendamento
Check-in
- Usuario seleciona formulario de check-in
- Sistema exibe perguntas do formulario
- Usuario preenche respostas
- Respostas salvas em CheckinAnswers do agendamento
Checkout
- Usuario seleciona formulario de checkout
- Sistema exibe perguntas do formulario
- Usuario preenche respostas
- Respostas salvas em CheckoutAnswers do agendamento
CheckAnswer (Resposta)
Dados
| Campo | Tipo | Descricao |
|---|
| question_id | Referencia | Pergunta respondida |
| question_text | Texto | Texto da pergunta (cache) |
| answer | Texto/Array | Resposta dada |
| answer_type | Texto | Tipo da resposta |
Armazenamento
Respostas sao armazenadas embutidas no BeautyAppointment:
checkin_answers para check-in
checkout_answers para checkout
Exemplos de Perguntas
Check-in Tipico
| Pergunta | Tipo |
|---|
| Pet esta agressivo? | boolean |
| Estado do pelo | select: Limpo, Sujo, Embaracado |
| Observacoes do tutor | textarea |
| Possui pulgas/carrapatos? | boolean |
| Medicamentos em uso | text |
Checkout Tipico
| Pergunta | Tipo |
|---|
| Servicos realizados | checkbox |
| Estado final do pet | select |
| Observacoes para o tutor | textarea |
| Recomendacoes | text |
Validacoes
| Campo | Regra |
|---|
| name | Obrigatorio |
| type | Deve ser "checkin" ou "checkout" |
| Perguntas obrigatorias | Devem ter resposta |
Regras de Negocio
- Um formulario por tipo por loja: Cada loja pode ter seu proprio formulario
- Formulario obrigatorio: Check-in e checkout requerem formulario selecionado
- Perguntas required: Se marcada, resposta e obrigatoria
- Historico preservado: Texto da pergunta e salvo na resposta para historico
Configuracao
- Definir nome e tipo (checkin/checkout)
- Adicionar perguntas
- Definir ordem das perguntas
- Marcar quais sao obrigatorias
- Ativar formulario
- Adicionar/remover perguntas
- Alterar ordem
- Alterar texto (afeta apenas novos usos)
Visualizacao
No Agendamento
- Formulario aparece como modal durante check-in/checkout
- Perguntas exibidas na ordem definida
- Campos de resposta conforme tipo
No Historico
- Respostas salvas podem ser visualizadas depois
- Mostra pergunta e resposta para cada item