Portal de housekeeper — o que vê a cleaner?
Atualizado em 2026-04-22
A housekeeper abre o seu link no telemóvel → vista mobile-first com um cartão por quarto. Sem nomes de hóspedes, sem e-mails, sem reservas visíveis — apenas o que precisa para limpar.
Os 4 (ou 5) estados de quarto
🔄 CHECK-OUT (cartão laranja)
Hóspede sai hoje.
- ✅ Saiu às 10:30 — pronto para limpar
- ⏳ Ainda no quarto (com hora de pequeno-almoço → previsto vazio a partir de Y)
- 🕚 A hora normal de check-out aparece indicada
🧺 ATRASO (cartão laranja escuro)
Deteção de backlog para bundle-cleanings:
- O hóspede saiu a X de abril, o quarto esteve bloqueado desde então (sem novo hóspede pelo meio)
- Sem cleaning-log desde o checkout
- Prioridade: alta (fica no topo)
🌙 FICA (cartão azul)
Stay-over. Arranjo ligeiro.
- "O hóspede fica mais 2 noites"
- Hora de pequeno-almoço mostrada se conhecida
🆕 NOVO HÓSPEDE (cartão verde)
Nova chegada hoje.
- Badge 🔥 CEDO se um early check-in foi pedido e aprovado (por ex. 13:00 quando o normal são 15:00)
- Fica então no topo da lista
💤 VAZIO (cartão cinzento)
Sem reserva. Opcionalmente uma limpeza profunda.
Prioridade
A lista está ordenada da prioridade alta para a baixa:
- Quartos com early check-in (🔥 CEDO)
- Check-out ainda não realizado + atraso (à espera que o hóspede saia)
- Check-out já realizado (pode-se avançar de imediato)
- Stay-over (ligeiro)
- Nova chegada sem prioridade
- Vazio
Ação num clique
Por baixo de cada cartão: grande botão verde "Limpei este quarto ✓". Um clique → é criado um registo RoomCleaning com housekeeper_id, data, timestamp. O cartão fica verde e mostra "Limpo às HH:MM".
Toque por engano? O link "Anular" ao lado remove de novo o registo.
Auto-refresh
A página faz polling a cada 30 segundos → quando faz check-in a um hóspede ou atualiza um quarto, ela vê em até 30s.
Garantias de privacidade
- Acesso via
access_token(32 chars aleatórios) — não adivinhável - Pode resetar o token por housekeeper (o link antigo deixa de funcionar)
- Nunca há dados de hóspedes visíveis
- Desativar o módulo → todos os URLs retornam 404