module.exports = Self => {
    Self.remoteMethod('sorted', {
        description: 'Sort the vehicles by warehouse',
        accessType: 'WRITE',
        accepts: [{
            arg: 'warehouseFk',
            type: 'number'
        }],
        returns: {
            type: ['object'],
            root: true
        },
        http: {
            path: `/sorted`,
            verb: `POST`
        }
    });

    Self.sorted = async warehouseFk => {
        return Self.rawSql(`
            SELECT v.id, v.warehouseFk, v.numberPlate, w.name 
                FROM vehicle v
                JOIN warehouse w ON w.id = v.warehouseFk
                ORDER BY v.warehouseFk = ? DESC, w.id, v.numberPlate ASC;
                `, [warehouseFk]);
    };
};