Quando o usuário busca algo que não existe no banco, ele salva os critérios e recebe email assim que um imóvel com aquele padrão for cadastrado. Sem IA — usa os filtros do sistema existente.
Exemplo: usuário busca "kitnet 1 quarto até R$800 em Petrópolis, Natal" → zero resultados → clica "Me avise quando chegar" → quando alguém cadastrar um imóvel com esses critérios, recebe email com link direto.
Critérios de aceitação
Backend:
Frontend:
Sem Celery para o caso básico — o signal dispara direto no post_save. Pode evoluir para task assíncrona com volume alto.
Quando o usuário busca algo que não existe no banco, ele salva os critérios e recebe email assim que um imóvel com aquele padrão for cadastrado. Sem IA — usa os filtros do sistema existente.
Exemplo: usuário busca "kitnet 1 quarto até R$800 em Petrópolis, Natal" → zero resultados → clica "Me avise quando chegar" → quando alguém cadastrar um imóvel com esses critérios, recebe email com link direto.
Critérios de aceitação
Backend:
PropertyAlert:user(FK),filters(JSONField),is_active(bool),created_at,last_notified_atPropertyAlertPOST /api/users/alerts/— cria alerta com os filtros atuais (autenticado)GET /api/users/alerts/— lista alertas do usuárioDELETE /api/users/alerts/{id}/— remove alertapost_saveemProperties: verifica alertas ativos e dispara email para quem casa com o novo imóvellast_notified_atatualizado após cada envio (evita spam)Frontend:
/alertscom alertas ativos e opção de desativar/remover