automatic apply on church jobs

This commit is contained in:
Torsten Schulz (local)
2026-01-29 11:20:45 +01:00
parent 55a86f75f1
commit 9f1c54fde9
2 changed files with 162 additions and 0 deletions

View File

@@ -1836,6 +1836,62 @@ pub const QUERY_REJECT_CHURCH_APPLICATION: &str = r#"
RETURNING id;
"#;
pub const QUERY_GET_OLD_PENDING_CHURCH_APPLICATIONS: &str = r#"
SELECT
ca.id AS application_id,
ca.office_type_id,
ca.character_id,
ca.region_id,
ca.supervisor_id
FROM falukant_data.church_application ca
WHERE ca.status = 'pending'
AND ca.created_at <= NOW() - INTERVAL '36 hours'
ORDER BY ca.created_at ASC;
"#;
pub const QUERY_AUTO_APPROVE_CHURCH_APPLICATION: &str = r#"
WITH updated_application AS (
UPDATE falukant_data.church_application
SET status = 'approved',
decision_date = NOW(),
updated_at = NOW()
WHERE id = $1
AND status = 'pending'
AND created_at <= NOW() - INTERVAL '36 hours'
RETURNING
office_type_id,
character_id,
region_id,
supervisor_id
),
inserted_office AS (
INSERT INTO falukant_data.church_office
(office_type_id, character_id, region_id, supervisor_id, created_at, updated_at)
SELECT
office_type_id,
character_id,
region_id,
supervisor_id,
NOW(),
NOW()
FROM updated_application
WHERE NOT EXISTS(
SELECT 1
FROM falukant_data.church_office co
WHERE co.office_type_id = updated_application.office_type_id
AND co.region_id = updated_application.region_id
AND co.character_id = updated_application.character_id
)
RETURNING id, office_type_id, character_id, region_id
)
SELECT
id AS office_id,
office_type_id,
character_id,
region_id
FROM inserted_office;
"#;
pub const QUERY_CREATE_CHURCH_APPLICATION_JOB: &str = r#"
INSERT INTO falukant_data.church_application
(office_type_id, character_id, region_id, supervisor_id, status, created_at, updated_at)