Skip to main content

Pesquisa — coezzion-service-jobs (jobs de vitrine/showcase)

Repo: /Users/alt-zz/projetos/arezzo/coezzion-service-jobs
Data: 2026-07-09
Escopo: jobs que tocam showcase / expiração


1. Conclusão executiva

Jobs de showcase são orquestração fina (HTTP para API showcase ou SQS).
Não existe job que marque vitrines Store/Recommend como “vão expirar” ou “expiradas”.
Expiração de vendedor é read-time na API/ES.

Campo no domínio showcase: DateExpiration (não EndDate).


2. Jobs relacionados a showcase

Hangfire idClasseO que fazCA Spike?
UpdateStatusShowCasesBrandUpdateStatusShowCasesBrandJobPUT /api/show-case-new/brand/update-status — ativa/desativa marca por janela Start/ExpirationFora CA (só marca)
RemoveShowCasesBrandTempRemoveShowCasesBrandTempJobPUT .../brand/remove-showcases-temp — limpa temps órfãosFora CA
ShowCaseProductJobShowCaseProductJobEnfileira sync de produtos por marca (SQS)Manter (CA-5 estoque/preço)
ShowCaseProductNoStoreJobShowCaseProductNoStoreJobSync sem store (2 crons)Manter (CA-5)

Scheduler: Jobs.Infrastructure/Services/Implementations/JobScheduler.cs
HTTP client: Jobs.Infrastructure/Integration/ShowCaseService.cs
Schema recorrente: "arezzo".


3. UpdateStatusShowCasesBrand (detalhe)

  • Critério ativo: StartDate.Date <= today && DateExpiration?.Date >= today
  • DateExpiration == null no job de status → tratado como fora da janela (inativa)
  • Por isso a API Brand grava MaxValue quando “sem data” (null do portal)
  • Push só em novas ativações, não em expiração

4. Product jobs

  • Publicam ShowcaseJobEvent nas filas SQS de products / products-no-store
  • Consumidos pelos listeners da API showcase
  • Atualizam catálogo/estoque exibido nas vitrines — independente de DateExpiration da vitrine
  • CA-5: alteração de expiração não deve quebrar estes jobs

5. O que a SP “pensava” vs código

Expectativa informal: “jobs marcam vitrines que vão expirar”.
Realidade: só há job de status de marca; Store/Recommend expiram por filtro de leitura. Não há notificação “vai expirar” de vitrine de vendedor.


6. Impacto da Spike

Alterar jobs?Não para atender CAs Store/Recommend
Risco se alguém gravar null em BrandJob de status desativaria — não é o path da US
Store/Recommend MaxValueJobs de produto indiferentes

Arquivos-chave

src/Jobs.API/Application/Jobs/UpdateStatusShowCasesBrandJob.cs
src/Jobs.API/Application/Jobs/RemoveShowCasesBrandTempJob.cs
src/Jobs.API/Application/Jobs/ShowCaseProductJob.cs
src/Jobs.API/Application/Jobs/ShowCaseProductNoStoreJob.cs
src/Jobs.Infrastructure/Integration/ShowCaseService.cs
src/Jobs.Infrastructure/Integration/ShowCaseProductJobService.cs
src/Jobs.Infrastructure/EventHandlers/ShowcaseJobEventHandler.cs
src/Jobs.Infrastructure/Services/Implementations/JobScheduler.cs