Pular para o conteúdo principal

Cage (Gaiola)

A Cage representa um espaco fisico (gaiola, baia, box) usado para acomodar pets durante atendimentos no centro de estetica.

Descricao

As gaiolas sao recursos limitados que precisam ser gerenciados. Cada pet em atendimento ocupa uma gaiola, e o sistema controla automaticamente a ocupacao.

Dados

Informacoes da Gaiola

CampoTipoObrigatorioDescricao
nameTextoSimNome/identificacao (ex: "G01", "Box A")
emptyBooleanoSimSe esta vazia
sizeSelecaoNaoTamanho (pequena, media, grande)
locationTextoNaoLocalizacao (ex: "Setor B")
activeBooleanoSimSe esta ativa

Relacionamentos

Pertence a

EntidadeObrigatorioDescricao
AccountSimConta do petshop
StoreSimFilial

Possui

EntidadeDescricao
BeautyAppointmentsAgendamentos usando esta gaiola

Estados de Ocupacao

Regras de Ocupacao

EstadoCondicao
emptyNenhum agendamento ativo usando
occupiedUm agendamento com status != scheduled e != done

Gerenciamento Automatico

Ao Fazer Check-in

  1. Gaiola selecionada e validada (deve estar vazia)
  2. Gaiola marcada como empty: false
  3. Vinculada ao agendamento

Ao Concluir (done)

  1. Gaiola e automaticamente liberada
  2. Gaiola marcada como empty: true
  3. Disponivel para novo uso

Ao Cancelar

  1. Gaiola e liberada
  2. Disponivel imediatamente

Ao Trocar Gaiola

  1. Gaiola anterior: empty: true
  2. Nova gaiola: empty: false

Filtros na Selecao

Ao selecionar gaiola para check-in:

Filtro: empty = true

Apenas gaiolas vazias aparecem para selecao.

Tamanhos

TamanhoDescricaoUso Tipico
smallPequenaGatos, caes pequeno porte
mediumMediaCaes medio porte
largeGrandeCaes grande porte

Validacoes

CampoRegra
nameObrigatorio, unico por loja
emptyObrigatorio

Regras de Negocio

  1. Gaiola obrigatoria para check-in: Nao e possivel fazer check-in sem gaiola
  2. Uma gaiola por atendimento: Cada agendamento usa apenas uma gaiola
  3. Gaiola unica por loja: Nomes nao podem repetir na mesma filial
  4. Liberacao automatica: Sistema gerencia ocupacao automaticamente

Consultas Comuns

Gaiolas Disponiveis

WHERE empty = true AND active = true

Gaiolas Ocupadas

WHERE empty = false

Taxa de Ocupacao

ocupacao = gaiolas_ocupadas / total_gaiolas * 100

Visualizacao

No Kanban

  • Card do agendamento mostra nome da gaiola
  • Icone indica status da gaiola

Na Lista de Gaiolas

  • Exibe todas as gaiolas
  • Status de ocupacao
  • Agendamento atual (se ocupada)

Permissoes

AcaoDescricao
CriarAdicionar nova gaiola
EditarAlterar nome, tamanho, localizacao
DesativarMarcar como inativa
VisualizarVer status e historico

Integracao com Agendamentos

Obrigatoriedade

Gaiola e obrigatoria quando:

  • Status != "scheduled"
  • Status != "done"
  • Ou seja, durante todo o atendimento

Validacao

Ao tentar fazer check-in:

  1. Verifica se gaiola foi selecionada
  2. Verifica se gaiola esta vazia
  3. Se ocupada: erro "Gaiola ja esta ocupada"