Commit f9086f08 authored by Emmanuel Raviart's avatar Emmanuel Raviart

Use enums for codes of "classifications" of documents.

parent 303d9825
Pipeline #103036 passed with stage
in 2 minutes and 20 seconds
......@@ -13,13 +13,6 @@ pub struct Chrono {
creation: String,
}
#[derive(Clone, Debug, Deserialize, GraphQLObject)]
#[serde(deny_unknown_fields)]
pub struct CodeEtLibelle {
pub code: String,
pub libelle: String,
}
#[derive(Clone, Debug, Deserialize, GraphQLObject)]
#[serde(deny_unknown_fields)]
pub struct Codier {
......
use actes_legislatifs::{ActeLegislatif, ActesLegislatifs, Initiateur};
use chrono::{Date, FixedOffset};
use commun::{CodeEtLibelle, Indexation, Rapporteur, XmlNamespace};
use commun::{Indexation, Rapporteur, XmlNamespace};
use contexts::Context;
use organes::Organe;
use serde_utils::map_to_vec;
......@@ -993,7 +993,12 @@ pub struct Plf {
pub etudes_plf: Vec<EtudePlf>,
}
type ProcedureParlementaire = CodeEtLibelle;
#[derive(Clone, Debug, Deserialize, GraphQLObject)]
#[serde(deny_unknown_fields)]
pub struct ProcedureParlementaire {
pub code: String, // TODO: Replace with u8.
pub libelle: String,
}
#[derive(Clone, Debug, Deserialize, GraphQLObject)]
#[serde(deny_unknown_fields)]
......
use acteurs::Acteur;
use chrono::{DateTime, FixedOffset};
use commun::{CodeEtLibelle, EmptyChoice, Indexation};
use commun::{EmptyChoice, Indexation};
use contexts::Context;
use dossiers_legislatifs::DossierParlementaire;
use mandats::Mandat;
......@@ -360,6 +360,13 @@ pub struct ChronoDocument {
date_publication_web: Option<DateTime<FixedOffset>>,
}
#[derive(Clone, Debug, Deserialize, GraphQLObject)]
#[serde(deny_unknown_fields)]
pub struct ClasseDocument {
pub code: CodeClasseDocument,
pub libelle: String,
}
#[derive(Debug, Deserialize, GraphQLObject)]
#[serde(deny_unknown_fields)]
pub struct Classification {
......@@ -367,9 +374,147 @@ pub struct Classification {
#[serde(rename = "sousType")]
pub sous_type: Option<SousType>,
#[serde(rename = "statutAdoption")]
pub statut_adoption: Option<String>,
pub statut_adoption: Option<StatutAdoption>,
#[serde(rename = "type")]
pub type_classification: CodeEtLibelle,
pub type_classification: TypeDocument,
}
#[derive(Clone, Copy, Debug, Deserialize, GraphQLEnum)]
pub enum CodeClasseDocument {
/// Avis
AVIS,
/// Proposition de loi
PIONLOI,
/// Proposition de résolution
PIONRES,
/// Projet de loi
PRJLOI,
/// Rapport d'information
RAPINF,
/// Rapport
RAPPORT,
}
#[derive(Clone, Copy, Debug, Deserialize, GraphQLEnum)]
pub enum CodeDepotDocument {
/// Initiative en 1er Dépôt
INITDEP,
/// Initiative en Navette
INITNAV,
/// Rapport autonome
RAPAUT,
/// Rapport sur une initiative
RAPINIT,
/// Rapport sur un texte de commission
RAPTACOM,
}
#[derive(Clone, Copy, Debug, Deserialize, GraphQLEnum)]
pub enum CodeEspeceDocument {
/// en application de l'article 151-5 du règlement
APPART1515,
/// en application de Article 34-1 de la Constitution
APPART341,
/// sur l'application des lois
APPLOI,
/// sur des actes de l'Union européenne
AUE,
/// autorisant la ratification d'une convention
AUTRATCONV,
/// tendant à la création d'une commission d'enquête
COMENQ,
/// constitutionnelle
CONST,
/// divers
DIVERS,
/// d'enquête
ENQU,
/// de finances
FIN,
/// de finances rectificative
FINRECT,
/// de financement de la sécurité sociale
FINSSOC,
/// d'une mission d'information constituée au sein d'une commission permanente
MINFOCOMPER,
/// modifiant le Règlement de l'Assemblée nationale
MODREGLTAN,
/// des offices parlementaires ou délégations mixtes
OFFPARL,
/// organique
ORG,
/// tel quel
PRPDIT,
/// de règlement du budget et d'approbation des comptes
RGLTBUDG,
/// sur les travaux conduits par les institutions européennes
TVXINSTITEUROP,
}
#[derive(Clone, Copy, Debug, Deserialize, GraphQLEnum)]
pub enum CodeSousTypeDocument {
/// en application de l'article 151-5 du règlement
APPART1515,
/// en application de Article 34-1 de la Constitution
APPART341,
/// sur l'application des lois
APPLOI,
/// sur des actes de l'Union européenne
AUE,
/// autorisant la ratification d'une convention
AUTRATCONV,
/// tendant à la création d'une commission d'enquête
COMENQ,
/// Texte comparatif
COMPA,
/// constitutionnelle
CONST,
/// divers
DIVERS,
/// d'enquête
ENQU,
/// de finances
FIN,
/// de finances rectificative
FINRECT,
/// de financement de la sécurité sociale
FINSSOC,
/// d'une mission d'information constituée au sein d'une commission permanente
MINFOCOMPER,
/// modifiant le Règlement de l'Assemblée nationale
MODREGLTAN,
/// des offices parlementaires ou délégations mixtes
OFFPARL,
/// organique
ORG,
/// tel quel
PRPDIT,
/// de règlement du budget et d'approbation des comptes
RGLTBUDG,
/// sur les travaux conduits par les institutions européennes
TVXINSTITEUROP,
}
#[derive(Clone, Copy, Debug, Deserialize, GraphQLEnum)]
pub enum CodeTypeDocument {
/// Accord international
ACIN,
/// Avis
AVIS,
/// Avis du Conseil d'Etat
AVCE,
/// Etude d'impact
ETDI,
/// Proposition de loi
PION,
/// Proposition de résolution
PNRE,
/// Projet de loi
PRJL,
/// Rapport
RAPP,
/// Rapport d'information
RINF,
}
#[derive(Debug, Deserialize)]
......@@ -473,6 +618,13 @@ pub struct CycleDeVieDocument {
pub chrono: ChronoDocument,
}
#[derive(Clone, Debug, Deserialize, GraphQLObject)]
#[serde(deny_unknown_fields)]
pub struct DepotDocument {
pub code: CodeDepotDocument,
pub libelle: String,
}
#[derive(Debug, Deserialize)]
#[serde(deny_unknown_fields)]
pub struct DepotAmendements {
......@@ -953,12 +1105,19 @@ graphql_object!(DocumentEtudeImpact: Context |&self| {
}
});
#[derive(Clone, Debug, Deserialize, GraphQLObject)]
#[serde(deny_unknown_fields)]
pub struct EspeceDocument {
pub code: CodeEspeceDocument,
pub libelle: String,
}
#[derive(Debug, Deserialize, GraphQLObject)]
#[serde(deny_unknown_fields)]
pub struct Famille {
pub classe: CodeEtLibelle,
pub depot: CodeEtLibelle,
pub espece: Option<CodeEtLibelle>,
pub classe: ClasseDocument,
pub depot: DepotDocument,
pub espece: Option<EspeceDocument>,
}
#[derive(Clone, Debug, Deserialize, GraphQLObject)]
......@@ -1125,12 +1284,18 @@ graphql_object!(RapportParlementaire: Context |&self| {
#[derive(Clone, Debug, Deserialize, GraphQLObject)]
#[serde(deny_unknown_fields)]
pub struct SousType {
pub code: String,
pub code: CodeSousTypeDocument,
pub libelle: Option<String>,
#[serde(rename = "libelleEdition")]
pub libelle_edition: Option<String>,
}
#[derive(Clone, Copy, Debug, Deserialize, GraphQLEnum)]
pub enum StatutAdoption {
/// Adopté en commission
ADOPTCOM,
}
#[derive(Debug, Deserialize)]
#[serde(deny_unknown_fields)]
pub struct TexteLoi {
......@@ -1275,3 +1440,10 @@ pub struct Titres {
#[serde(rename = "titrePrincipalCourt")]
titre_principal_court: String,
}
#[derive(Clone, Debug, Deserialize, GraphQLObject)]
#[serde(deny_unknown_fields)]
pub struct TypeDocument {
pub code: CodeTypeDocument,
pub libelle: String,
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment