diff --git a/crates/application/src/wrapup/handle_requested.rs b/crates/application/src/wrapup/handle_requested.rs index a71e860..2c6fba1 100644 --- a/crates/application/src/wrapup/handle_requested.rs +++ b/crates/application/src/wrapup/handle_requested.rs @@ -13,6 +13,13 @@ pub async fn execute( start_date: chrono::NaiveDate, end_date: chrono::NaiveDate, ) -> Result<(), DomainError> { + if let Ok(Some(rec)) = ctx.repos.wrapup_repo.get_by_id(&wrapup_id).await { + if rec.status == WrapUpStatus::Ready || rec.status == WrapUpStatus::Generating { + tracing::debug!("wrapup {} already {}, skipping", wrapup_id.value(), if rec.status == WrapUpStatus::Ready { "ready" } else { "generating" }); + return Ok(()); + } + } + ctx.repos .wrapup_repo .update_status(&wrapup_id, &WrapUpStatus::Generating, None)