// License: GPL. For details, see LICENSE file.
package org.openstreetmap.josm.plugins.opendata.modules.fr.toulouse.datasets.transport;

import org.apache.commons.text.WordUtils;
import org.openstreetmap.josm.data.osm.DataSet;
import org.openstreetmap.josm.data.osm.Node;
import org.openstreetmap.josm.plugins.opendata.modules.fr.toulouse.datasets.ToulouseDataSetHandler;

public class VeloToulouseHandler extends ToulouseDataSetHandler {

    public VeloToulouseHandler() {
        super("velo-toulouse", "amenity=bicycle_rental");
        setWikiPage("Vélô Toulouse");
        setCategory(CAT_TRANSPORT);
    }

    @Override
    public boolean acceptsFilename(String filename) {
        return acceptsCsvKmzTabFilename(filename, "Velo_Toulouse");
    }

    @Override
    public void updateDataSet(DataSet ds) {
        for (Node n : ds.getNodes()) {
            n.put("amenity", "bicycle_rental");
            n.put("network", "VélôToulouse");
            n.put("operator", "JCDecaux");
            if (n.hasKey("M_en_S_16_nov_07") && n.get("M_en_S_16_nov_07").equals("O")) {
                n.put("start_date", "2007-11-16");
            }
            n.remove("M_en_S_16_nov_07");
            n.remove("Mot_Directeur");
            n.remove("No");
            n.remove("Nrivoli");
            n.remove("street");
            replace(n, "nb_bornettes", "capacity");
            replace(n, "num_station", "ref");
            replace(n, "nom", "name");
            n.put("name", WordUtils.capitalizeFully(n.get("name")));
            n.remove("code_insee");
            n.remove("commune");
            n.remove("color");
            if (n.hasKey("En_service") && n.get("En_service").equals("N")) {
                n.put("fixme", "Station pas en service");
            }
            n.remove("En_service");
        }
    }
}
