fix: replace u.full_name with u.name in remaining services

- companies: user.name in email and contact queries
- customers: user.name in email
- job_seekers: u.name in company user query
- cron tasks (jobs/leads/requirements): use u.name instead of u.full_name
- contracts/profession_shared: u.name for customer_name fields
This commit is contained in:
Tracewebstudio Dev 2026-04-13 17:12:49 +02:00
parent 231ff9530f
commit 2861e7a5fe
7 changed files with 21 additions and 21 deletions

View file

@ -258,7 +258,7 @@ async fn submit_job(
Ok(updated) => { Ok(updated) => {
// Fire email to company user (ignore failures) // Fire email to company user (ignore failures)
if let Ok(user) = UserRepository::get_by_id(&state.pool, auth.user_id).await { if let Ok(user) = UserRepository::get_by_id(&state.pool, auth.user_id).await {
let _ = state.mail.send_job_submitted_email(&user.email, user.full_name.as_deref().unwrap_or("User"), &updated.title).await; let _ = state.mail.send_job_submitted_email(&user.email, user.name.as_deref().unwrap_or("User"), &updated.title).await;
} }
// Create verification case so the request appears in Verification Management first. // Create verification case so the request appears in Verification Management first.
@ -367,7 +367,7 @@ async fn update_application_status(
Ok(updated) => { Ok(updated) => {
// Notify applicant of status change (ignore failures) // Notify applicant of status change (ignore failures)
let applicant_info = sqlx::query_as::<_, (String, String)>( let applicant_info = sqlx::query_as::<_, (String, String)>(
"SELECT u.full_name, u.email FROM users u WHERE u.id = $1", "SELECT u.name, u.email FROM users u WHERE u.id = $1",
) )
.bind(app.applicant_user_id) .bind(app.applicant_user_id)
.fetch_optional(&state.pool) .fetch_optional(&state.pool)
@ -439,7 +439,7 @@ async fn view_contact(
let contact = sqlx::query_as::<_, (Option<String>, String, Option<String>)>( let contact = sqlx::query_as::<_, (Option<String>, String, Option<String>)>(
r#" r#"
SELECT u.full_name, u.email, u.phone SELECT u.name, u.email, u.phone
FROM users u FROM users u
WHERE u.id = $1 WHERE u.id = $1
"#, "#,
@ -449,7 +449,7 @@ async fn view_contact(
.await; .await;
match contact { match contact {
Ok(Some((full_name, email, phone))) => { Ok(Some((name, email, phone))) => {
let new_free = if used_free { free_views - 1 } else { free_views }; let new_free = if used_free { free_views - 1 } else { free_views };
let new_purchased = if used_free { purchased_views } else { purchased_views - 1 }; let new_purchased = if used_free { purchased_views } else { purchased_views - 1 };
@ -470,7 +470,7 @@ async fn view_contact(
(StatusCode::OK, Json(serde_json::json!({ (StatusCode::OK, Json(serde_json::json!({
"application_id": id, "application_id": id,
"full_name": full_name, "name": name,
"email": email, "email": email,
"phone": phone, "phone": phone,
"quota": { "quota": {

View file

@ -16,7 +16,7 @@ pub async fn expire_stale_jobs(
job_id: Uuid, job_id: Uuid,
title: String, title: String,
email: String, email: String,
full_name: String, name: String,
} }
let records = sqlx::query_as::<_, JobRecord>( let records = sqlx::query_as::<_, JobRecord>(
@ -28,7 +28,7 @@ pub async fn expire_stale_jobs(
WHERE jobs.company_id = c.id WHERE jobs.company_id = c.id
AND jobs.status = 'LIVE' AND jobs.status = 'LIVE'
AND jobs.expires_at < $1 AND jobs.expires_at < $1
RETURNING jobs.id as job_id, jobs.title, u.email, u.full_name RETURNING jobs.id as job_id, jobs.title, u.email, u.name
"# "#
) )
.bind(now) .bind(now)
@ -42,7 +42,7 @@ pub async fn expire_stale_jobs(
tracing::info!("Expired {} stale jobs.", records.len()); tracing::info!("Expired {} stale jobs.", records.len());
for rec in records { for rec in records {
let _ = mailer.send_job_expired_email(&rec.email, &rec.full_name, &rec.title).await; let _ = mailer.send_job_expired_email(&rec.email, &rec.name, &rec.title).await;
tracing::info!("Sent expiry email to {} for job {}", rec.email, rec.job_id); tracing::info!("Sent expiry email to {} for job {}", rec.email, rec.job_id);
} }

View file

@ -15,7 +15,7 @@ pub async fn expire_stale_lead_requests(
tracecoins_reserved: i32, tracecoins_reserved: i32,
user_id: Uuid, user_id: Uuid,
email: String, email: String,
full_name: String, name: String,
} }
let records = sqlx::query_as::<_, Record>( let records = sqlx::query_as::<_, Record>(
@ -26,7 +26,7 @@ pub async fn expire_stale_lead_requests(
lr.tracecoins_reserved, lr.tracecoins_reserved,
urp.user_id, urp.user_id,
u.email, u.email,
u.full_name u.name
FROM lead_requests lr FROM lead_requests lr
INNER JOIN user_role_profiles urp ON urp.id = lr.user_role_profile_id INNER JOIN user_role_profiles urp ON urp.id = lr.user_role_profile_id
INNER JOIN users u ON u.id = urp.user_id INNER JOIN users u ON u.id = urp.user_id
@ -86,7 +86,7 @@ pub async fn expire_stale_lead_requests(
tx.commit().await?; tx.commit().await?;
let _ = mailer.send_lead_expired_email(&rec.email, &rec.full_name, rec.tracecoins_reserved).await; let _ = mailer.send_lead_expired_email(&rec.email, &rec.name, rec.tracecoins_reserved).await;
tracing::info!("Expired lead request {} and refunded {} tracecoins to {}", rec.lead_request_id, rec.tracecoins_reserved, rec.email); tracing::info!("Expired lead request {} and refunded {} tracecoins to {}", rec.lead_request_id, rec.tracecoins_reserved, rec.email);
} }

View file

@ -15,7 +15,7 @@ pub async fn expire_stale_leads(
lead_id: Uuid, lead_id: Uuid,
title: String, title: String,
email: String, email: String,
full_name: String, name: String,
} }
let records = sqlx::query_as::<_, LeadRecord>( let records = sqlx::query_as::<_, LeadRecord>(
@ -26,7 +26,7 @@ pub async fn expire_stale_leads(
WHERE leads.created_by_user_id = u.id WHERE leads.created_by_user_id = u.id
AND leads.status = 'OPEN' AND leads.status = 'OPEN'
AND leads.expires_at < $1 AND leads.expires_at < $1
RETURNING leads.id as lead_id, leads.title, u.email, u.full_name RETURNING leads.id as lead_id, leads.title, u.email, u.name
"# "#
) )
.bind(now) .bind(now)
@ -40,7 +40,7 @@ pub async fn expire_stale_leads(
tracing::info!("Expired {} stale leads.", records.len()); tracing::info!("Expired {} stale leads.", records.len());
for rec in records { for rec in records {
let _ = mailer.send_requirement_expired_email(&rec.email, &rec.full_name, &rec.title).await; let _ = mailer.send_requirement_expired_email(&rec.email, &rec.name, &rec.title).await;
tracing::info!("Sent expiry email to {} for lead {}", rec.email, rec.lead_id); tracing::info!("Sent expiry email to {} for lead {}", rec.email, rec.lead_id);
} }

View file

@ -190,7 +190,7 @@ async fn submit_requirement(
Ok(updated) => { Ok(updated) => {
// Fire email to customer (ignore failures) // Fire email to customer (ignore failures)
if let Ok(user) = UserRepository::get_by_id(&state.pool, auth.user_id).await { if let Ok(user) = UserRepository::get_by_id(&state.pool, auth.user_id).await {
let _ = state.mail.send_requirement_submitted_email(&user.email, user.full_name.as_deref().unwrap_or("User"), &updated.title).await; let _ = state.mail.send_requirement_submitted_email(&user.email, user.name.as_deref().unwrap_or("User"), &updated.title).await;
} }
// Create verification case so this request enters Verification Management first. // Create verification case so this request enters Verification Management first.

View file

@ -245,17 +245,17 @@ async fn apply_to_job(
// Send email notification to company // Send email notification to company
// Get company user details via raw query // Get company user details via raw query
let company_user = sqlx::query_as::<_, (String, Option<String>)>( let company_user = sqlx::query_as::<_, (String, Option<String>)>(
"SELECT u.email, u.full_name FROM users u INNER JOIN companies c ON c.user_id = u.id WHERE c.id = $1" "SELECT u.email, u.name FROM users u INNER JOIN companies c ON c.user_id = u.id WHERE c.id = $1"
) )
.bind(job.company_id) .bind(job.company_id)
.fetch_optional(&state.pool) .fetch_optional(&state.pool)
.await; .await;
if let Ok(Some((email, full_name))) = company_user { if let Ok(Some((email, name))) = company_user {
let seeker_name = seeker.full_name.as_deref().unwrap_or("A candidate"); let seeker_name = seeker.full_name.as_deref().unwrap_or("A candidate");
let _ = state.mail.send_new_application_email( let _ = state.mail.send_new_application_email(
&email, &email,
full_name.as_deref().unwrap_or("Company"), name.as_deref().unwrap_or("Company"),
&job.title, &job.title,
seeker_name seeker_name
).await; ).await;

View file

@ -374,7 +374,7 @@ async fn my_requests(
sqlx::query_as::<_, RichLeadReq>( sqlx::query_as::<_, RichLeadReq>(
r#" r#"
SELECT lr.*, r.title as req_title, r.profession_key as req_profession_key, r.location as req_location, r.budget as req_budget, SELECT lr.*, r.title as req_title, r.profession_key as req_profession_key, r.location as req_location, r.budget as req_budget,
CASE WHEN lr.status = 'ACCEPTED' THEN u.full_name ELSE NULL END as customer_name, CASE WHEN lr.status = 'ACCEPTED' THEN u.name ELSE NULL END as customer_name,
CASE WHEN lr.status = 'ACCEPTED' THEN u.email ELSE NULL END as customer_email, CASE WHEN lr.status = 'ACCEPTED' THEN u.email ELSE NULL END as customer_email,
CASE WHEN lr.status = 'ACCEPTED' THEN u.phone ELSE NULL END as customer_phone CASE WHEN lr.status = 'ACCEPTED' THEN u.phone ELSE NULL END as customer_phone
FROM lead_requests lr FROM lead_requests lr
@ -390,7 +390,7 @@ async fn my_requests(
sqlx::query_as::<_, RichLeadReq>( sqlx::query_as::<_, RichLeadReq>(
r#" r#"
SELECT lr.*, r.title as req_title, r.profession_key as req_profession_key, r.location as req_location, r.budget as req_budget, SELECT lr.*, r.title as req_title, r.profession_key as req_profession_key, r.location as req_location, r.budget as req_budget,
CASE WHEN lr.status = 'ACCEPTED' THEN u.full_name ELSE NULL END as customer_name, CASE WHEN lr.status = 'ACCEPTED' THEN u.name ELSE NULL END as customer_name,
CASE WHEN lr.status = 'ACCEPTED' THEN u.email ELSE NULL END as customer_email, CASE WHEN lr.status = 'ACCEPTED' THEN u.email ELSE NULL END as customer_email,
CASE WHEN lr.status = 'ACCEPTED' THEN u.phone ELSE NULL END as customer_phone CASE WHEN lr.status = 'ACCEPTED' THEN u.phone ELSE NULL END as customer_phone
FROM lead_requests lr FROM lead_requests lr
@ -567,7 +567,7 @@ async fn accepted_lead_detail(
r.location AS requirement_location, r.location AS requirement_location,
r.profession_key, r.profession_key,
r.custom_fields, r.custom_fields,
u.full_name AS customer_name, u.name AS customer_name,
u.email AS customer_email, u.email AS customer_email,
u.phone AS customer_phone u.phone AS customer_phone
FROM lead_requests lr FROM lead_requests lr