-- v4.18 Rached workshop fields -- Extends service orders and items to match the Rached legacy workshop flow. -- Applied to all tenants. -- ═════════════════════════════════════════════════════════════════════════════ -- 1. SERVICE_ORDERS: capture free-text customer/vehicle/workshop data -- ═════════════════════════════════════════════════════════════════════════════ ALTER TABLE service_orders ADD COLUMN IF NOT EXISTS workshop_name VARCHAR(200), ADD COLUMN IF NOT EXISTS customer_address TEXT, ADD COLUMN IF NOT EXISTS customer_phone VARCHAR(50), ADD COLUMN IF NOT EXISTS vehicle_description VARCHAR(300); COMMENT ON COLUMN service_orders.workshop_name IS 'Free-text workshop/customer alias (Rached "Taller")'; COMMENT ON COLUMN service_orders.customer_address IS 'Address captured or imported for the service order'; COMMENT ON COLUMN service_orders.customer_phone IS 'Phone captured or imported for the service order'; COMMENT ON COLUMN service_orders.vehicle_description IS 'Free-text vehicle description (alternative to fleet_vehicles)'; CREATE INDEX IF NOT EXISTS idx_service_orders_workshop_name ON service_orders(workshop_name); CREATE INDEX IF NOT EXISTS idx_service_orders_vehicle_description ON service_orders(vehicle_description); -- ═════════════════════════════════════════════════════════════════════════════ -- 2. SERVICE_ORDER_ITEMS: mechanic per item + explicit observations -- ═════════════════════════════════════════════════════════════════════════════ ALTER TABLE service_order_items ADD COLUMN IF NOT EXISTS mechanic_id INTEGER REFERENCES employees(id), ADD COLUMN IF NOT EXISTS observations TEXT; COMMENT ON COLUMN service_order_items.mechanic_id IS 'Mechanic assigned to this specific line item'; COMMENT ON COLUMN service_order_items.observations IS 'Line-item observations (Rached detail notes)'; CREATE INDEX IF NOT EXISTS idx_service_order_items_mechanic_id ON service_order_items(mechanic_id);