Accueil:
  path: /
  controller: App\Controller\TicketController::index

app_login:
  path: /login
  controller: App\Controller\SecurityController::login

#Routes Security --------------------------------------------------------------------------------------------------------------------------------------------------------------
api_login:
  path: /api/login
  controller: App\Controller\SecurityController::login_api

api_connexion1:
  path: /api/connexion1
  controller: App\Controller\SecurityController::connexion1

api_me:
  path: /api/me
  controller: App\Controller\SecurityController::login_api

app_logout:
  path: /api/logout
  controller: App\Controller\SecurityController::logout

api_change_password:
  path: /api/changePassword
  controller: App\Controller\SecurityController::changePassword
  methods: ["POST"]

api_send_new_password:
  path: /api/sendNewPassword/{id}
  controller: App\Controller\SecurityController::sendNewPassword
  methods: ["GET"]

#Routes Ticket --------------------------------------------------------------------------------------------------------------------------------------------------------------
api_tickets:
  path: /api/ticket
  #liste de tous les tickets
  controller: App\Controller\TicketController::index
  methods: ["GET"]

api_tickets_open:
  path: /api/ticket/ouvert
  #liste de tickets nouveau, en cours et en attente
  controller: App\Controller\TicketController::ticketOpen
  methods: ["GET"]

api_tickets_close_dates:
  path: /api/ticket/fermer/{start}/{fin}
  #liste de tickets termine et cloture par année
  controller: App\Controller\TicketController::ticketClose
  methods: ["GET"]

api_tickets_export:
  path: /api/ticket/export
  #liste de tickets termine et cloture par année
  controller: App\Controller\TicketController::export
  methods: ["POST"]

api_tickets_downloadExport:
  path: /api/ticket/downloadExport
  #liste de tickets termine et cloture par année
  controller: App\Controller\TicketController::downloadExport
  methods: ["GET"]

api_ticket_nouveau:
  path: /api/ticket/nouveau
  #creation du ticket
  controller: App\Controller\TicketController::creer
  methods: ["POST"]

api_ticket_upload_file:
  path: /api/ticket/fileUpload
  #permets de télécharger un fichier
  controller: App\Controller\TicketController::uploadFile
  methods: ["POST"]

api_ticket_get_file:
  path: /api/ticket/fileGet/{data}
  #permets de remonter un fichier
  controller: App\Controller\TicketController::getFile
  methods: ["GET"]

api_ticket_modif:
  path: /api/ticket/modification/{id}
  #modification d'un ticket existant
  controller: App\Controller\TicketController::modif
  methods: ["PUT"]

api_tickets_voir:
  path: /api/ticket/{id}
  #voir les details d'un ticket
  controller: App\Controller\TicketController::voir
  methods: ["GET"]

api_ticket_delete:
  path: /api/ticket/{id}
  #supprimmer un ticket
  controller: App\Controller\TicketController::delete
  methods: ["DELETE"]

api_ticket_status:
  path: /api/ticket/status/set
  #modification du ticket statut et ajout d'action
  controller: App\Controller\TicketController::setStatus
  methods: ["POST"]

api_ticket_by_client:
  path: /api/ticket/client/{id}
  #liste de tous les tickets par client
  controller: App\Controller\TicketController::getTicketByClient
  methods: ["GET"]

api_ticket_by_contact:
  path: /api/ticket/contact/{id}
  #liste de tous les tickets par contact
  controller: App\Controller\TicketController::getTicketByContact
  methods: ["GET"]

api_tickets_stats:
  path: /api/ticket/stats
  #retourne les statistiques du tickets
  controller: App\Controller\TicketController::stats
  methods: ["POST"]

#Routes Client --------------------------------------------------------------------------------------------------------------------------------------------------------------
api_client:
  path: /api/client
  #liste de tous les Clients
  controller: App\Controller\ClientController::index
  methods: ["GET"]

api_image_logo:
  path: /api/logoClient/{id}
  #retourne le logo du Client
  controller: App\Controller\ClientController::logoClient
  methods: ["POST"]

api_client_actif:
  path: /api/client/actif
  #liste de tous les Clients Actif
  controller: App\Controller\ClientController::actif
  methods: ["GET"]

api_client_archiver:
  path: /api/client/archiver
  #liste de tous les Clients archiver
  controller: App\Controller\ClientController::archiver
  methods: ["GET"]

api_client_nouveau:
  path: /api/client/nouveau
  #permet de creer un nouveau Client
  controller: App\Controller\ClientController::creer
  methods: ["POST"]

api_client_modif:
  path: /api/client/modification/{id}
  #permet de modifier un client existant
  controller: App\Controller\ClientController::modif
  methods: ["PUT"]

api_client_setContact:
  path: /api/client/modificationContact/{id}
  #permet de lier un contact referent au client
  controller: App\Controller\ClientController::setContactReferent
  methods: ["PUT"]

api_client_setComercial:
  path: /api/client/modificationCommercial/{id}
  #permet de lier un commercial referent au client
  controller: App\Controller\ClientController::setCommercialRef
  methods: ["PUT"]

api_client_setTechnicien:
  path: /api/client/modificationTechnicien/{id}
  #permet de lier un technicien referent au client
  controller: App\Controller\ClientController::setTechnicienRef
  methods: ["PUT"]

api_client_voir:
  path: /api/client/{id}
  #retourne details sur un client
  controller: App\Controller\ClientController::voir
  methods: ["GET"]

api_client_search:
  path: /api/client/search/{search}
  #recherche base sur valeur et retourne un id du client
  controller: App\Controller\ClientController::searchClient
  methods: ["GET"]

api_client_hotlineCompteur:
  path: /api/clientHotlineCompteur
  #permet de mettre à jour les valeurs de hotlineCompteur sur les contracts de télémaintenance
  controller: App\Controller\ClientController::hotlineCompteur
  methods: ["GET"]

api_client_id_graph:
  path: /api/client/oneDrive
  #permet de mettre à jour le ID du dossier de one drive
  controller: App\Controller\ClientController::setIdOneDrive
  methods: ["POST"]

#Routes Contact --------------------------------------------------------------------------------------------------------------------------------------------------------------
api_contact:
  path: /api/contact
  #liste de tous les Contacts
  controller: App\Controller\ContactController::index
  methods: ["GET"]

api_image_avatar:
  path: /api/avatarContact
  #telechargement d'un logo pour le client
  controller: App\Controller\ContactController::avatarContact
  methods: ["POST"]

api_contact_actif:
  path: /api/contact/actif
  #liste des Contacts actif
  controller: App\Controller\ContactController::actif
  methods: ["GET"]

api_contact_actif_list:
  path: /api/contact/actifList
  #liste des Contacts actif
  controller: App\Controller\ContactController::actifList
  methods: ["GET"]

api_contact_archiver:
  path: /api/contact/archiver
  #liste des Contacts archives
  controller: App\Controller\ContactController::archiver
  methods: ["GET"]

api_contact_tech:
  path: /api/contact/tech
  #liste des Contacts Tech
  controller: App\Controller\ContactController::tech
  methods: ["GET"]

api_contact_commercial:
  path: /api/contact/commercial
  #liste des Contacts Commercial
  controller: App\Controller\ContactController::commercial
  methods: ["GET"]

api_contact_nouveau:
  path: /api/contact/nouveau
  #permets de creer un nouveau contact
  controller: App\Controller\ContactController::creer
  methods: ["POST"]

api_contact_modif:
  path: /api/contact/modification/{id}
  #permets de modifier un contact existant
  controller: App\Controller\ContactController::modif
  methods: ["PUT", "POST"]

api_contact_voir:
  path: /api/contact/{id}
  #voir les details d'un contact
  controller: App\Controller\ContactController::voir
  methods: ["GET"]

api_contact_search:
  path: /api/contact/search/{search}
  #voir les details d'un contact
  controller: App\Controller\ContactController::searchContact
  methods: ["GET"]

api_contact_get_by_client:
  path: /api/contact/getByClient/{idClient}
  #voir les details d'un contact
  controller: App\Controller\ContactController::getContactsByClient
  methods: ["GET"]

#Routes Contrat --------------------------------------------------------------------------------------------------------------------------------------------------------------
api_contrat:
  path: /api/contrat
  #liste tous les Contrats
  controller: App\Controller\ContratController::index
  methods: ["GET"]

api_contrat_client:
  path: /api/contratClient/{idClient}
  #liste tous les Contrats d'un client
  controller: App\Controller\ContratController::contratsClient
  methods: ["GET"]

api_contrat_nouveau:
  path: /api/contrat/nouveau
  #permets de creer un contrat
  controller: App\Controller\ContratController::creer
  methods: ["POST"]

api_contrat_modif:
  path: /api/contrat/modification/{id}
  #permets de modifier un contrat
  controller: App\Controller\ContratController::modif
  methods: ["PUT"]

api_contrat_voir:
  path: /api/contrat/{id}
  #permets de voir les details d'un contrat
  controller: App\Controller\ContratController::voir
  methods: ["GET"]

api_contrat_stats:
  path: /api/contrats/stats
  #permets de voir les details d'un contrat
  controller: App\Controller\ContratController::voirStatistiques
  methods: ["GET"]

api_ligne_contrat_voir:
  path: /api/ligneContrat/{idClient}/{idType}
  #permets de voir la ligne d'un contrat
  controller: App\Controller\ContratController::getLigneDeContrat
  methods: ["GET"]

api_contrat_export:
  path: /api/contrat_export
  # export template contrats
  controller: App\Controller\ContratController::export
  methods: ["POST"]

api_contrats_downloadExport:
  path: /api/contrat_export/download
  # permet de telecharger l'export des contrats
  controller: App\Controller\ContratController::downloadExport
  methods: ["GET"]

#Routes Intervention --------------------------------------------------------------------------------------------------------------------------------------------------------------
api_intervention:
  path: /api/interventions/{year}
  #liste tous les Interventions par année
  controller: App\Controller\InterventionController::index
  methods: ["GET"]

api_intervention_nouveau:
  path: /api/intervention/nouveau
  #permets de creer une intervention
  controller: App\Controller\InterventionController::creer
  methods: ["POST"]

api_intervention_modif:
  path: /api/intervention/modification/{id}
  #permets de modifier une intervention
  controller: App\Controller\InterventionController::modif
  methods: ["PUT"]

api_intervention_voir:
  path: /api/intervention/{id}
  #retourne les details de une intervention
  controller: App\Controller\InterventionController::voir
  methods: ["GET"]

api_intervention_voir_ligne:
  path: /api/interventionsLigne/{id}
  #retourne les details de une intervention
  controller: App\Controller\InterventionController::getByLigne
  methods: ["GET"]

api_intervention_client:
  path: /api/getResumeClient
  #retourne les details de une intervention
  controller: App\Controller\InterventionController::getResumeClient
  methods: ["GET"]

api_intervention_delete:
  path: /api/intervention/delete/{id}
  #permets de effacer une intervention
  controller: App\Controller\InterventionController::delete
  methods: ["DELETE"]

api_intervention_get_types:
  path: /api/interventionTypes
  #retourne les differents types de intervention
  controller: App\Controller\InterventionController::types
  methods: ["GET"]

api_intervention_generate_rapport:
  path: /api/rapportIntervention/{id}
  #generer le rapport de une intervention
  controller: App\Controller\InterventionController::exportRapport
  methods: ["GET"]

api_intervention_stats:
  path: /api/intervention/stats
  #retourne les statistiques des interventions
  controller: App\Controller\InterventionController::stats
  methods: ["POST"]

api_intervention_stats_telemaintenance:
  path: /api/intervention/statsTelemaintenance
  #retourne les statistiques des interventions de type télémaintenance
  controller: App\Controller\InterventionController::statsTelemaintenance
  methods: ["POST"]

api_intervention_sync:
  path: /api/sync/interventions
  #retourne les statistiques des interventions de type télémaintenance
  controller: App\Controller\InterventionController::syncEvenementsOutlook
  methods: ["GET"]

#Routes Action --------------------------------------------------------------------------------------------------------------------------------------------------------------
api_action:
  path: /api/action
  #liste tous les Actions
  controller: App\Controller\ActionsController::index
  methods: ["GET"]

api_action_nouveau:
  path: /api/action/nouveau
  #permets de creer une Action
  controller: App\Controller\ActionsController::creer
  methods: ["POST"]

api_action_modif:
  path: /api/action/modification/{id}
  #permets de modifier une Action
  controller: App\Controller\ActionsController::modif
  methods: ["PUT"]

api_action_voir:
  path: /api/action/{id}
  #permets de voir les details d'une Action
  controller: App\Controller\ActionsController::voir
  methods: ["GET"]

api_action_delete:
  path: /api/action/{id}
  #permets de supprimer une Action
  controller: App\Controller\ActionsController::delete
  methods: ["DELETE"]

api_actions_interventions:
  path: /api/action/intervention/{id}
  #permets de voir les details d'une Action
  controller: App\Controller\ActionsController::voirActionsIntervention
  methods: ["GET"]

api_actions_tickets:
  path: /api/action/ticket/{id}
  #permets de voir les details d'une Action
  controller: App\Controller\ActionsController::voirActionsTicket
  methods: ["GET"]

#Routes Action Commercial ----------------------------------------------------------------------------------------------------------------------------------------------------------

api_action_commercial_nouveau:
  path: /api/action_commercial/nouveau
  #permets de creer une Action Commercial
  controller: App\Controller\ActionCommercialController::creer
  methods: ["POST"]

api_action_commercial_delete:
  path: /api/action_commercial/{id}
  #permets de supprimer une Action Commercial
  controller: App\Controller\ActionCommercialController::delete
  methods: ["DELETE"]

api_actions_commercial_ligne_de_contrat:
  path: /api/action_commercial/ligne_de_contrat/{id}
  #permets de voir les details d'une Action Commercial
  controller: App\Controller\ActionCommercialController::voirActionsLigneDeContrat
  methods: ["GET"]

#Routes Park Elements --------------------------------------------------------------------------------------------------------------------------------------------------------------
api_park:
  path: /api/park/{idClient}
  #liste les parcs d'un client
  controller: App\Controller\ElementsParkController::index
  methods: ["GET"]
  requirements:
    idClient: '\d+'

api_park_nouveau:
  path: /api/park/nouveau
  #permets de creer un nouvel element du parc
  controller: App\Controller\ElementsParkController::creer
  methods: ["POST"]

api_park_upload_file:
  path: /api/park/fileUpload
  #permets de télécharger un fichier
  controller: App\Controller\ElementsParkController::uploadFile
  methods: ["POST"]

api_park_get_file:
  path: /api/park/fileGet/{data}
  #permets de remonter un fichier
  controller: App\Controller\ElementsParkController::getFile
  methods: ["GET"]

api_park_search_element:
  path: /api/park/search
  #recherche elements d'un park
  controller: App\Controller\ElementsParkController::searchElements
  methods: ["POST"]

api_park_delete_file:
  path: /api/park/fileDelete/{data}/{id}
  #permets de effacer un fichier
  controller: App\Controller\ElementsParkController::deleteFile
  methods: ["DELETE"]

api_park_modif:
  path: /api/park/modification/{idElement}
  #permets de modiffier un element du parc
  controller: App\Controller\ElementsParkController::modif
  methods: ["PUT"]

api_park_voir:
  path: /api/park/element/{idClient}/{idElement}
  #permets de modiffier un element du parc
  controller: App\Controller\ElementsParkController::voir
  methods: ["GET"]

api_park_archive:
  path: /api/park/archive/{idClient}
  #permets de modiffier un element du parc
  controller: App\Controller\ElementsParkController::getArchive
  methods: ["GET"]

api_park_delete:
  path: /api/park/element/{idElement}
  #permets de effacer un element du parc
  controller: App\Controller\ElementsParkController::delete
  methods: ["DELETE"]

#Routes Park Types --------------------------------------------------------------------------------------------------------------------------------------------------------------
api_park_get_types:
  path: /api/park/types
  #liste de les types d'elements existants
  controller: App\Controller\ElementsParkController::getTypes
  methods: ["GET"]

api_park_ordinateur_types:
  path: /api/park/ordinateurTypes
  #liste de les types des elements d'ordinateurs existants
  controller: App\Controller\ElementsParkController::getOrdinateurTypes
  methods: ["GET"]

api_park_ordinateur_supp:
  path: /api/park/getOrdSupp/{id}/{idType}
  #retourne les elements supplementaires à ordinateurs
  controller: App\Controller\ElementsParkController::getOrdinateurSupp
  methods: ["GET"]

#Routes Urgence --------------------------------------------------------------------------------------------------------------------------------------------------------------
api_urgences:
  path: /api/urgence
  #liste de les types d'urgences existants
  controller: App\Controller\UrgenceController::index
  methods: ["GET"]

#Routes Status --------------------------------------------------------------------------------------------------------------------------------------------------------------
api_status:
  path: /api/status
  #liste de les types de status existants
  controller: App\Controller\StatusController::index
  methods: ["GET"]

api_status_tickets:
  path: /api/statusTickets
  #liste de les types de status pour les tickets
  controller: App\Controller\StatusController::getStatusTickets
  methods: ["GET"]

#Route Role --------------------------------------------------------------------------------------------------------------------------------------------------------------
api_get_roles:
  path: /api/role/get
  #liste de les types de roles existants
  controller: App\Controller\SecurityController::getRoles
  methods: ["GET"]

app.swagger_ui:
  path: /api/doc/{area}
  methods: GET
  defaults: { _controller: nelmio_api_doc.controller.swagger_ui, area: default }

#Routes Alertes --------------------------------------------------------------------------------------------------------------------------------------------------------------
api_alert_creer:
  path: /api/alerts/add
  #permets de creer une alerte
  controller: App\Controller\AlertsController::creer
  methods: ["POST"]

api_alert_delete:
  path: /api/alerts/delete/{id}
  #permets de effacer une alerte
  controller: App\Controller\AlertsController::delete
  methods: ["DELETE"]

api_alert_get_types:
  path: /api/alerts/types
  #liste de les types de alertes existants
  controller: App\Controller\AlertsController::getTypes
  methods: ["GET"]

api_get_notifications:
  path: /api/notifications/{id}
  #retourne les alertes de type notification par idContact
  controller: App\Controller\AlertsController::getNotifications
  methods: ["GET"]

api_set_notification_traite:
  path: /api/setAlertTreated/{id}
  #permets de marquer une notification comme traite
  controller: App\Controller\AlertsController::setAlertAsTreated
  methods: ["GET"]

api_get_alertes:
  path: /api/alertes
  #list de tous les alertes de type General
  controller: App\Controller\AlertsController::index
  methods: ["GET"]

api_get_alertes_client:
  path: /api/alertesClient/{id}
  #list de tous les alertes de type General
  controller: App\Controller\AlertsController::getClient
  methods: ["GET"]

api_alertes_element_park:
  path: /api/alertesElement/{id}
  #list de tous les alertes de type General
  controller: App\Controller\AlertsController::getAlertesElements
  methods: ["GET"]

#Routes Imports --------------------------------------------------------------------------------------------------------------------------------------------------------------
api_import_first:
  path: /api/imports/first
  #imports de donnes de l'ancien bdd
  controller: App\Controller\MigrationsController::importFirstStage
  methods: ["GET"]

api_import_second:
  path: /api/imports/second
  #imports de donnes de l'ancien bdd
  controller: App\Controller\MigrationsController::importSecondStage
  methods: ["GET"]

api_import_third:
  path: /api/imports/third
  #imports de donnes de l'ancien bdd
  controller: App\Controller\MigrationsController::importThirdStage
  methods: ["GET"]

api_import_fourth:
  path: /api/imports/fourth
  #imports de donnes de l'ancien bdd
  controller: App\Controller\MigrationsController::importFourthStage
  methods: ["GET"]

api_import_fifth:
  path: /api/imports/fifth
  #imports de donnes de l'ancien bdd
  controller: App\Controller\MigrationsController::importFifthStage
  methods: ["GET"]

api_import_ocs:
  path: /api/imports/syncocs/{idClient}
  #imports de donnes de l'ancien bdd
  controller: App\Controller\MigrationsController::syncocs
  methods: ["GET"]

show_hotline:
  path: /ticket
  controller: App\Controller\TicketController::showHotline

#Routes Images --------------------------------------------------------------------------------------------------------------------------------------------------------------
api_images_get:
  path: /api/images/get/{id}
  #permets de recuperer les images d'un client
  controller: App\Controller\ImagesController::index
  methods: ["GET"]

api_images_upload:
  path: /api/images/upload
  #permets de télécharger une image
  controller: App\Controller\ImagesController::upload
  methods: ["POST"]

api_images_modif:
  path: /api/images/modification/{id}
  #permets de modiffier une image
  controller: App\Controller\ImagesController::modif
  methods: ["PUT"]

api_images_delete:
  path: /api/images/delete/{id}
  #permets de supprimer une image
  controller: App\Controller\ImagesController::delete
  methods: ["DELETE"]

api_img_base64:
  path: /api/images/base64/{id}
  #permets de recuperer une image en base64
  controller: App\Controller\ImagesController::getBase64Image
  methods: ["GET"]

api_folders_get:
  path: /api/folders/get/{idFolder}
  #permets de lister les dossiers du client
  controller: App\Controller\ImagesController::listFoldersClients
  methods: ["GET"]

#Routes Regles --------------------------------------------------------------------------------------------------------------------------------------------------------------
api_regles_get:
  path: /api/regles/get/{id}
  #permets de recuperer les regles d'un client
  controller: App\Controller\ReglesController::index
  methods: ["GET"]

api_regles_date:
  path: /api/regles/verifications/{date}
  #permets de recuperer le regle et ses vrifications par rapport a un date
  controller: App\Controller\ReglesController::getByDate
  methods: ["GET"]

api_regles_upload:
  path: /api/regles/upload
  #permets de créer une regle pour un client
  controller: App\Controller\ReglesController::creer
  methods: ["POST"]

api_regles_modification:
  path: /api/regles/modification/{id}
  #permets de modifier une regle pour un client
  controller: App\Controller\ReglesController::modification
  methods: ["POST"]

# api_regles_delete:
#   path: /api/regles/delete/{id}
#   #permets de supprimer une regle pour un client
#   controller: App\Controller\ReglesController::delete
#   methods: ["DELETE"]

#Routes Regles Verifications --------------------------------------------------------------------------------------------------------------------------------------------------------------
api_verifications_details:
  path: /api/verifications/details
  #permets de recuperer le regle et ses vrifications par rapport a un date et un ruleId
  controller: App\Controller\ReglesVerificationController::getVerificationsDetails
  methods: ["GET"]

api_verifications_verificate:
  path: /api/verifications/verificate
  controller: App\Controller\ReglesVerificationController::verificate
  methods: ["GET"]
