Add vehicle repair automation in DirectorWorker: Implement functionality to automatically repair vehicles based on their condition and region. Update SQL queries to support vehicle selection and repair operations, enhancing the Director's capabilities in managing vehicle maintenance.
This commit is contained in:
@@ -72,7 +72,14 @@ SELECT sell_cost, sell_cost AS original_sell_cost FROM falukant_type.product WHE
|
||||
"#;
|
||||
|
||||
pub const QUERY_GET_DIRECTORS: &str = r#"
|
||||
SELECT d.may_produce, d.may_sell, d.may_start_transport, b.id AS branch_id, fu.id AS falukantUserId, d.id
|
||||
SELECT
|
||||
d.may_produce,
|
||||
d.may_sell,
|
||||
d.may_start_transport,
|
||||
d.may_repair_vehicles,
|
||||
b.id AS branch_id,
|
||||
fu.id AS falukant_user_id,
|
||||
d.id
|
||||
FROM falukant_data.director d
|
||||
JOIN falukant_data.falukant_user fu ON fu.id = d.employer_user_id
|
||||
JOIN falukant_data.character c ON c.id = d.director_character_id
|
||||
@@ -80,6 +87,40 @@ JOIN falukant_data.branch b ON b.region_id = c.region_id AND b.falukant_user_id
|
||||
WHERE current_time BETWEEN '08:00:00' AND '17:00:00';
|
||||
"#;
|
||||
|
||||
// Director: vehicle repair automation
|
||||
pub const QUERY_GET_VEHICLES_TO_REPAIR_IN_REGION: &str = r#"
|
||||
SELECT
|
||||
v.id AS vehicle_id,
|
||||
v.condition,
|
||||
vt.cost,
|
||||
COALESCE(vt.build_time_minutes, 0) AS build_time_minutes
|
||||
FROM falukant_data.vehicle v
|
||||
JOIN falukant_type.vehicle vt ON vt.id = v.vehicle_type_id
|
||||
WHERE v.falukant_user_id = $1
|
||||
AND v.region_id = $2
|
||||
AND v.condition < 10
|
||||
AND v.condition < 100
|
||||
AND v.available_from <= NOW()
|
||||
AND NOT EXISTS (
|
||||
SELECT 1 FROM falukant_data.transport t WHERE t.vehicle_id = v.id
|
||||
)
|
||||
ORDER BY v.condition ASC, v.id ASC;
|
||||
"#;
|
||||
|
||||
pub const QUERY_REPAIR_VEHICLE: &str = r#"
|
||||
UPDATE falukant_data.vehicle v
|
||||
SET condition = 100,
|
||||
available_from = NOW() + (COALESCE(vt.build_time_minutes, 0) * INTERVAL '1 minute'),
|
||||
updated_at = NOW()
|
||||
FROM falukant_type.vehicle vt
|
||||
WHERE vt.id = v.vehicle_type_id
|
||||
AND v.id = $1
|
||||
AND v.condition < 100
|
||||
AND v.available_from <= NOW()
|
||||
AND NOT EXISTS (SELECT 1 FROM falukant_data.transport t WHERE t.vehicle_id = v.id)
|
||||
RETURNING v.id AS vehicle_id, v.available_from, COALESCE(vt.build_time_minutes, 0) AS build_time_minutes;
|
||||
"#;
|
||||
|
||||
pub const QUERY_GET_BEST_PRODUCTION: &str = r#"
|
||||
SELECT fdu.id falukant_user_id, CAST(fdu.money AS text) AS money, fdu.certificate, ftp.id product_id, ftp.label_tr, fdb.region_id,
|
||||
(SELECT SUM(quantity) FROM falukant_data.stock fds WHERE fds.branch_id = fdb.id) AS stock_size,
|
||||
|
||||
Reference in New Issue
Block a user