<?php
/**
 * Ce script définit la classe 'canton'.
 *
 * @package openresultat
 * @version SVN : $Id$
 */

require_once "../gen/obj/canton.class.php";

/**
 * Définition de la classe 'canton'.
 *
 * Cette classe gère les cantons, qui sont des subdivisions administratives
 * utilisées notamment pour les élections départementales. Elle hérite de
 * la classe générée canton_gen et ajoute l'exposition des données en JSON
 * pour permettre l'intégration avec des applications tierces.
 */
class canton extends canton_gen {

    /**
     * Définition des actions disponibles sur la classe.
     *
     * Ajoute les actions JSON permettant d'exposer les données des cantons
     * via une API REST :
     * - json_list (997) : liste de tous les cantons
     * - json_data (998) : données d'un canton spécifique
     *
     * @return void
     */
    function init_class_actions() {
        parent::init_class_actions();
        // ACTION - 997 - json_list
        // Expose la liste des cantons au format JSON
        $this->class_actions[997] = array(
            "identifier" => "json_list",
            "view" => "view_json_list",
            "permission_suffix" => "tab",
        );
        // ACTION - 998 - json_data
        // Expose les données d'un canton au format JSON
        $this->class_actions[998] = array(
            "identifier" => "json_data",
            "view" => "view_json_data",
            "permission_suffix" => "consulter",
        );
    }
}
