ffbb-data-client 2.0.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- ffbb_api_client_v3/__init__.py +25 -0
- ffbb_data_client/__init__.py +175 -0
- ffbb_data_client/clients/__init__.py +13 -0
- ffbb_data_client/clients/api_ffbb_app_client.py +2475 -0
- ffbb_data_client/clients/ffbb_data_client.py +2789 -0
- ffbb_data_client/clients/meilisearch_client.py +218 -0
- ffbb_data_client/clients/meilisearch_ffbb_client.py +647 -0
- ffbb_data_client/config.py +153 -0
- ffbb_data_client/data/__init__.py +25 -0
- ffbb_data_client/data/collections.json +1364 -0
- ffbb_data_client/data/endpoint_discovery.json +1875 -0
- ffbb_data_client/data/indexes.json +501 -0
- ffbb_data_client/data/openapi.json +35713 -0
- ffbb_data_client/data/openapi_full.json +37622 -0
- ffbb_data_client/helpers/__init__.py +27 -0
- ffbb_data_client/helpers/http_requests_helper.py +73 -0
- ffbb_data_client/helpers/http_requests_utils.py +502 -0
- ffbb_data_client/helpers/meilisearch_client_extension.py +153 -0
- ffbb_data_client/helpers/multi_search_query_helper.py +35 -0
- ffbb_data_client/models/__init__.py +241 -0
- ffbb_data_client/models/affiche.py +45 -0
- ffbb_data_client/models/cartographie.py +82 -0
- ffbb_data_client/models/categorie.py +55 -0
- ffbb_data_client/models/categorie_type.py +42 -0
- ffbb_data_client/models/clock.py +38 -0
- ffbb_data_client/models/club_contacts.py +77 -0
- ffbb_data_client/models/code.py +7 -0
- ffbb_data_client/models/commune.py +66 -0
- ffbb_data_client/models/competition_fields.py +309 -0
- ffbb_data_client/models/competition_id.py +116 -0
- ffbb_data_client/models/competition_id_categorie.py +31 -0
- ffbb_data_client/models/competition_id_sexe.py +31 -0
- ffbb_data_client/models/competition_id_type_competition.py +27 -0
- ffbb_data_client/models/competition_id_type_competition_generique.py +24 -0
- ffbb_data_client/models/competition_origine.py +69 -0
- ffbb_data_client/models/competition_origine_categorie.py +23 -0
- ffbb_data_client/models/competition_origine_type_competition.py +14 -0
- ffbb_data_client/models/competition_origine_type_competition_generique.py +24 -0
- ffbb_data_client/models/competition_type.py +6 -0
- ffbb_data_client/models/competitions_facet_distribution.py +65 -0
- ffbb_data_client/models/competitions_facet_stats.py +14 -0
- ffbb_data_client/models/competitions_hit.py +232 -0
- ffbb_data_client/models/competitions_multi_search_query.py +40 -0
- ffbb_data_client/models/competitions_query.py +11 -0
- ffbb_data_client/models/configuration_models.py +5 -0
- ffbb_data_client/models/contact_info.py +18 -0
- ffbb_data_client/models/content_multi_search_query.py +93 -0
- ffbb_data_client/models/coordonnees.py +27 -0
- ffbb_data_client/models/coordonnees_type.py +5 -0
- ffbb_data_client/models/document_flyer.py +205 -0
- ffbb_data_client/models/document_flyer_type.py +6 -0
- ffbb_data_client/models/engagement_contacts.py +97 -0
- ffbb_data_client/models/engagements_facet_distribution.py +59 -0
- ffbb_data_client/models/engagements_facet_stats.py +14 -0
- ffbb_data_client/models/engagements_hit.py +192 -0
- ffbb_data_client/models/engagements_multi_search_query.py +41 -0
- ffbb_data_client/models/etat.py +6 -0
- ffbb_data_client/models/external_competition_id.py +42 -0
- ffbb_data_client/models/external_id.py +72 -0
- ffbb_data_client/models/facet_distribution.py +13 -0
- ffbb_data_client/models/facet_stats.py +13 -0
- ffbb_data_client/models/field_set.py +10 -0
- ffbb_data_client/models/folder.py +35 -0
- ffbb_data_client/models/formation_session.py +60 -0
- ffbb_data_client/models/formations_facet_distribution.py +61 -0
- ffbb_data_client/models/formations_facet_stats.py +14 -0
- ffbb_data_client/models/formations_hit.py +277 -0
- ffbb_data_client/models/formations_multi_search_query.py +41 -0
- ffbb_data_client/models/game_stats_model.py +57 -0
- ffbb_data_client/models/game_stats_models.py +5 -0
- ffbb_data_client/models/generic_search.py +92 -0
- ffbb_data_client/models/geo.py +27 -0
- ffbb_data_client/models/geo_sort_order.py +6 -0
- ffbb_data_client/models/get_commune_response.py +18 -0
- ffbb_data_client/models/get_competition_response.py +523 -0
- ffbb_data_client/models/get_configuration_response.py +45 -0
- ffbb_data_client/models/get_engagement_response.py +23 -0
- ffbb_data_client/models/get_entraineur_response.py +18 -0
- ffbb_data_client/models/get_formation_response.py +28 -0
- ffbb_data_client/models/get_officiel_response.py +18 -0
- ffbb_data_client/models/get_organisme_response.py +476 -0
- ffbb_data_client/models/get_poule_response.py +68 -0
- ffbb_data_client/models/get_pratique_response.py +18 -0
- ffbb_data_client/models/get_rencontre_response.py +93 -0
- ffbb_data_client/models/get_saisons_response.py +56 -0
- ffbb_data_client/models/get_salle_response.py +20 -0
- ffbb_data_client/models/get_terrain_response.py +16 -0
- ffbb_data_client/models/get_tournoi_response.py +16 -0
- ffbb_data_client/models/gradient_color.py +27 -0
- ffbb_data_client/models/hit.py +16 -0
- ffbb_data_client/models/id_engagement_equipe.py +32 -0
- ffbb_data_client/models/id_organisme_equipe.py +51 -0
- ffbb_data_client/models/id_organisme_equipe1_logo.py +28 -0
- ffbb_data_client/models/id_poule.py +27 -0
- ffbb_data_client/models/jour.py +11 -0
- ffbb_data_client/models/label.py +15 -0
- ffbb_data_client/models/labellisation.py +30 -0
- ffbb_data_client/models/live.py +192 -0
- ffbb_data_client/models/lives.py +6 -0
- ffbb_data_client/models/logo.py +28 -0
- ffbb_data_client/models/multi_search_queries.py +24 -0
- ffbb_data_client/models/multi_search_query.py +96 -0
- ffbb_data_client/models/multi_search_result_competitions.py +14 -0
- ffbb_data_client/models/multi_search_result_engagements.py +14 -0
- ffbb_data_client/models/multi_search_result_formations.py +12 -0
- ffbb_data_client/models/multi_search_result_organismes.py +12 -0
- ffbb_data_client/models/multi_search_result_pratiques.py +12 -0
- ffbb_data_client/models/multi_search_result_rencontres.py +12 -0
- ffbb_data_client/models/multi_search_result_salles.py +12 -0
- ffbb_data_client/models/multi_search_result_terrains.py +12 -0
- ffbb_data_client/models/multi_search_result_tournois.py +12 -0
- ffbb_data_client/models/multi_search_results.py +103 -0
- ffbb_data_client/models/multi_search_results_class.py +96 -0
- ffbb_data_client/models/nature_sol.py +57 -0
- ffbb_data_client/models/niveau.py +10 -0
- ffbb_data_client/models/niveau_class.py +27 -0
- ffbb_data_client/models/niveau_extractor.py +214 -0
- ffbb_data_client/models/niveau_info.py +64 -0
- ffbb_data_client/models/niveau_models.py +14 -0
- ffbb_data_client/models/niveau_type.py +10 -0
- ffbb_data_client/models/objectif.py +7 -0
- ffbb_data_client/models/organisateur.py +197 -0
- ffbb_data_client/models/organisateur_type.py +6 -0
- ffbb_data_client/models/organisme_fields.py +327 -0
- ffbb_data_client/models/organisme_id_pere.py +177 -0
- ffbb_data_client/models/organismes_facet_distribution.py +46 -0
- ffbb_data_client/models/organismes_facet_stats.py +14 -0
- ffbb_data_client/models/organismes_hit.py +196 -0
- ffbb_data_client/models/organismes_multi_search_query.py +41 -0
- ffbb_data_client/models/organismes_query.py +8 -0
- ffbb_data_client/models/phase_code.py +23 -0
- ffbb_data_client/models/poule.py +35 -0
- ffbb_data_client/models/poule_fields.py +261 -0
- ffbb_data_client/models/poule_rencontre_item_model.py +69 -0
- ffbb_data_client/models/poules_models.py +6 -0
- ffbb_data_client/models/poules_query.py +9 -0
- ffbb_data_client/models/pratique.py +7 -0
- ffbb_data_client/models/pratiques_facet_distribution.py +29 -0
- ffbb_data_client/models/pratiques_facet_stats.py +14 -0
- ffbb_data_client/models/pratiques_hit.py +310 -0
- ffbb_data_client/models/pratiques_hit_type.py +9 -0
- ffbb_data_client/models/pratiques_multi_search_query.py +41 -0
- ffbb_data_client/models/pratiques_type_class.py +45 -0
- ffbb_data_client/models/publication_internet.py +6 -0
- ffbb_data_client/models/purple_logo.py +24 -0
- ffbb_data_client/models/query_fields_manager.py +75 -0
- ffbb_data_client/models/ranking_engagement.py +41 -0
- ffbb_data_client/models/rankings_models.py +6 -0
- ffbb_data_client/models/rencontres_engagement.py +23 -0
- ffbb_data_client/models/rencontres_facet_distribution.py +65 -0
- ffbb_data_client/models/rencontres_facet_stats.py +14 -0
- ffbb_data_client/models/rencontres_hit.py +271 -0
- ffbb_data_client/models/rencontres_multi_search_query.py +41 -0
- ffbb_data_client/models/saison.py +23 -0
- ffbb_data_client/models/saison_fields.py +36 -0
- ffbb_data_client/models/saisons_models.py +6 -0
- ffbb_data_client/models/saisons_query.py +9 -0
- ffbb_data_client/models/salle.py +56 -0
- ffbb_data_client/models/salles_facet_distribution.py +14 -0
- ffbb_data_client/models/salles_facet_stats.py +14 -0
- ffbb_data_client/models/salles_hit.py +153 -0
- ffbb_data_client/models/salles_multi_search_query.py +40 -0
- ffbb_data_client/models/sexe.py +9 -0
- ffbb_data_client/models/sexe_class.py +31 -0
- ffbb_data_client/models/source.py +5 -0
- ffbb_data_client/models/status.py +5 -0
- ffbb_data_client/models/team_engagement.py +56 -0
- ffbb_data_client/models/team_ranking.py +108 -0
- ffbb_data_client/models/terrains_categorie_championnat_3x3_libelle.py +5 -0
- ffbb_data_client/models/terrains_facet_distribution.py +41 -0
- ffbb_data_client/models/terrains_facet_stats.py +14 -0
- ffbb_data_client/models/terrains_hit.py +223 -0
- ffbb_data_client/models/terrains_multi_search_query.py +42 -0
- ffbb_data_client/models/terrains_name.py +5 -0
- ffbb_data_client/models/terrains_sexe_enum.py +7 -0
- ffbb_data_client/models/terrains_storage.py +5 -0
- ffbb_data_client/models/tournoi_type_class.py +35 -0
- ffbb_data_client/models/tournoi_type_enum.py +7 -0
- ffbb_data_client/models/tournoi_types_3x3.py +43 -0
- ffbb_data_client/models/tournoi_types_3x3_libelle.py +60 -0
- ffbb_data_client/models/tournoi_types_3x3_libelle_enum.py +10 -0
- ffbb_data_client/models/tournois_facet_distribution.py +41 -0
- ffbb_data_client/models/tournois_facet_stats.py +14 -0
- ffbb_data_client/models/tournois_hit.py +132 -0
- ffbb_data_client/models/tournois_hit_type.py +5 -0
- ffbb_data_client/models/tournois_libelle.py +7 -0
- ffbb_data_client/models/tournois_multi_search_query.py +40 -0
- ffbb_data_client/models/type_association.py +23 -0
- ffbb_data_client/models/type_association_libelle.py +30 -0
- ffbb_data_client/models/type_class.py +23 -0
- ffbb_data_client/models/type_competition.py +8 -0
- ffbb_data_client/models/type_competition_generique.py +31 -0
- ffbb_data_client/models/type_enum.py +7 -0
- ffbb_data_client/models/type_league.py +6 -0
- ffbb_data_client/py.typed +0 -0
- ffbb_data_client/utils/__init__.py +27 -0
- ffbb_data_client/utils/cache_manager.py +393 -0
- ffbb_data_client/utils/converter_utils.py +329 -0
- ffbb_data_client/utils/input_validation.py +360 -0
- ffbb_data_client/utils/retry_utils.py +478 -0
- ffbb_data_client/utils/secure_logging.py +153 -0
- ffbb_data_client/utils/token_manager.py +115 -0
- ffbb_data_client-2.0.0.dist-info/METADATA +339 -0
- ffbb_data_client-2.0.0.dist-info/RECORD +207 -0
- ffbb_data_client-2.0.0.dist-info/WHEEL +5 -0
- ffbb_data_client-2.0.0.dist-info/licenses/LICENSE.txt +201 -0
- ffbb_data_client-2.0.0.dist-info/top_level.txt +2 -0
|
@@ -0,0 +1,327 @@
|
|
|
1
|
+
class OrganismeFields:
|
|
2
|
+
"""Default fields for organisme queries."""
|
|
3
|
+
|
|
4
|
+
# Basic fields
|
|
5
|
+
ID = "id"
|
|
6
|
+
NOM = "nom"
|
|
7
|
+
CODE = "code"
|
|
8
|
+
TELEPHONE = "telephone"
|
|
9
|
+
ADRESSE = "adresse"
|
|
10
|
+
MAIL = "mail"
|
|
11
|
+
TYPE = "type"
|
|
12
|
+
NOM_SIMPLE = "nom_simple"
|
|
13
|
+
URL_SITE_WEB = "urlSiteWeb"
|
|
14
|
+
|
|
15
|
+
# Additional fields from upstream
|
|
16
|
+
DATE_AFFILIATION = "dateAffiliation"
|
|
17
|
+
ENTREPRISE = "entreprise"
|
|
18
|
+
HANDIBASKET = "handibasket"
|
|
19
|
+
HORS_ASSOCIATION = "horsAssociation"
|
|
20
|
+
LOGO_BASE64 = "logo_base64"
|
|
21
|
+
OMNISPORT = "omnisport"
|
|
22
|
+
SAISON_EN_COURS = "saison_en_cours"
|
|
23
|
+
URL_COMPETITION = "url_competition"
|
|
24
|
+
# Commune fields
|
|
25
|
+
COMMUNE_CODE_POSTAL = "commune.codePostal"
|
|
26
|
+
COMMUNE_LIBELLE = "commune.libelle"
|
|
27
|
+
|
|
28
|
+
# Competitions fields
|
|
29
|
+
COMPETITIONS_ID = "competitions.id"
|
|
30
|
+
COMPETITIONS_NOM = "competitions.nom"
|
|
31
|
+
|
|
32
|
+
# Engagements fields
|
|
33
|
+
ENGAGEMENTS_ID = "engagements.id"
|
|
34
|
+
ENGAGEMENTS_NUMERO_EQUIPE = "engagements.numeroEquipe"
|
|
35
|
+
ENGAGEMENTS_ID_COMPETITION_ID = "engagements.idCompetition.id"
|
|
36
|
+
ENGAGEMENTS_ID_COMPETITION_NOM = "engagements.idCompetition.nom"
|
|
37
|
+
ENGAGEMENTS_ID_COMPETITION_CODE = "engagements.idCompetition.code"
|
|
38
|
+
ENGAGEMENTS_ID_COMPETITION_SEXE = "engagements.idCompetition.sexe"
|
|
39
|
+
ENGAGEMENTS_ID_COMPETITION_COMPETITION_ORIGINE = (
|
|
40
|
+
"engagements.idCompetition.competition_origine"
|
|
41
|
+
)
|
|
42
|
+
ENGAGEMENTS_ID_COMPETITION_COMPETITION_ORIGINE_NOM = (
|
|
43
|
+
"engagements.idCompetition.competition_origine_nom"
|
|
44
|
+
)
|
|
45
|
+
ENGAGEMENTS_ID_COMPETITION_COMPETITION_ORIGINE_NIVEAU = (
|
|
46
|
+
"engagements.idCompetition.competition_origine_niveau"
|
|
47
|
+
)
|
|
48
|
+
ENGAGEMENTS_ID_COMPETITION_TYPE_COMPETITION = (
|
|
49
|
+
"engagements.idCompetition.typeCompetition"
|
|
50
|
+
)
|
|
51
|
+
ENGAGEMENTS_ID_COMPETITION_LOGO_ID = "engagements.idCompetition.logo.id"
|
|
52
|
+
ENGAGEMENTS_ID_COMPETITION_LOGO_GRADIENT_COLOR = (
|
|
53
|
+
"engagements.idCompetition.logo.gradient_color"
|
|
54
|
+
)
|
|
55
|
+
ENGAGEMENTS_ID_COMPETITION_SAISON_ID = "engagements.idCompetition.saison.id"
|
|
56
|
+
ENGAGEMENTS_ID_COMPETITION_SAISON_LIBELLE = (
|
|
57
|
+
"engagements.idCompetition.saison.libelle"
|
|
58
|
+
)
|
|
59
|
+
ENGAGEMENTS_ID_COMPETITION_ID_COMPETITION_PERE = (
|
|
60
|
+
"engagements.idCompetition.idCompetitionPere"
|
|
61
|
+
)
|
|
62
|
+
ENGAGEMENTS_ID_COMPETITION_ID_COMPETITION_PERE_ID = (
|
|
63
|
+
"engagements.idCompetition.idCompetitionPere.id"
|
|
64
|
+
)
|
|
65
|
+
ENGAGEMENTS_ID_COMPETITION_ID_COMPETITION_PERE_NOM = (
|
|
66
|
+
"engagements.idCompetition.idCompetitionPere.nom"
|
|
67
|
+
)
|
|
68
|
+
ENGAGEMENTS_ID_COMPETITION_ORGANISATEUR_TYPE = (
|
|
69
|
+
"engagements.idCompetition.organisateur.type"
|
|
70
|
+
)
|
|
71
|
+
ENGAGEMENTS_ID_COMPETITION_TYPE_COMPETITION_GENERIQUE_LOGO_ID = (
|
|
72
|
+
"engagements.idCompetition.typeCompetitionGenerique.logo.id"
|
|
73
|
+
)
|
|
74
|
+
ENGAGEMENTS_ID_COMPETITION_TYPE_COMPETITION_GENERIQUE_LOGO_GRADIENT_COLOR = (
|
|
75
|
+
"engagements.idCompetition.typeCompetitionGenerique.logo.gradient_color"
|
|
76
|
+
)
|
|
77
|
+
ENGAGEMENTS_ID_COMPETITION_CATEGORIE_CODE = (
|
|
78
|
+
"engagements.idCompetition.categorie.code"
|
|
79
|
+
)
|
|
80
|
+
ENGAGEMENTS_ID_COMPETITION_CATEGORIE_ORDRE = (
|
|
81
|
+
"engagements.idCompetition.categorie.ordre"
|
|
82
|
+
)
|
|
83
|
+
ENGAGEMENTS_ID_POULE_ID = "engagements.idPoule.id"
|
|
84
|
+
ENGAGEMENTS_ID_POULE_NOM = "engagements.idPoule.nom"
|
|
85
|
+
|
|
86
|
+
# Cartographie fields (model: CartographieModel)
|
|
87
|
+
CARTOGRAPHIE_LATITUDE = "cartographie.latitude"
|
|
88
|
+
CARTOGRAPHIE_LONGITUDE = "cartographie.longitude"
|
|
89
|
+
|
|
90
|
+
# Club Pro fields (model: direct attributes)
|
|
91
|
+
NOM_CLUB_PRO = "nomClubPro"
|
|
92
|
+
ADRESSE_CLUB_PRO = "adresseClubPro"
|
|
93
|
+
COMMUNE_CLUB_PRO = "communeClubPro"
|
|
94
|
+
|
|
95
|
+
# Logo fields (model: LogoModel)
|
|
96
|
+
LOGO_ID = "logo.id"
|
|
97
|
+
LOGO_GRADIENT_COLOR = "logo.gradient_color"
|
|
98
|
+
|
|
99
|
+
# Salle fields (model: SalleModel)
|
|
100
|
+
SALLE_ID = "salle.id"
|
|
101
|
+
SALLE_NUMERO = "salle.numero"
|
|
102
|
+
SALLE_LIBELLE = "salle.libelle"
|
|
103
|
+
SALLE_LIBELLE2 = "salle.libelle2"
|
|
104
|
+
SALLE_ADRESSE = "salle.adresse"
|
|
105
|
+
SALLE_ADRESSE_COMPLEMENT = "salle.adresseComplement"
|
|
106
|
+
SALLE_COMMUNE_CODE_POSTAL = "salle.commune.codePostal"
|
|
107
|
+
SALLE_COMMUNE_LIBELLE = "salle.commune.libelle"
|
|
108
|
+
SALLE_CARTOGRAPHIE_LATITUDE = "salle.cartographie.latitude"
|
|
109
|
+
SALLE_CARTOGRAPHIE_LONGITUDE = "salle.cartographie.longitude"
|
|
110
|
+
|
|
111
|
+
# Organismes fils (model: list[Any])
|
|
112
|
+
ORGANISMES_FILS = "organismes_fils"
|
|
113
|
+
|
|
114
|
+
# Offres Pratiques fields (model: OffrespratiquesitemModel)
|
|
115
|
+
OFFRES_PRATIQUES_ID = "offresPratiques.ffbbserver_offres_pratiques_id.id"
|
|
116
|
+
OFFRES_PRATIQUES_TITLE = "offresPratiques.ffbbserver_offres_pratiques_id.title"
|
|
117
|
+
OFFRES_PRATIQUES_CATEGORIE = (
|
|
118
|
+
"offresPratiques.ffbbserver_offres_pratiques_id.categoriePratique"
|
|
119
|
+
)
|
|
120
|
+
OFFRES_PRATIQUES_TYPE = (
|
|
121
|
+
"offresPratiques.ffbbserver_offres_pratiques_id.typePratique"
|
|
122
|
+
)
|
|
123
|
+
|
|
124
|
+
# Labellisation fields (model: LabellisationitemModel)
|
|
125
|
+
LABELLISATION_ID = "labellisation.id"
|
|
126
|
+
LABELLISATION_DEBUT = "labellisation.debut"
|
|
127
|
+
LABELLISATION_FIN = "labellisation.fin"
|
|
128
|
+
LABELLISATION_PROGRAMME_ID = "labellisation.idLabellisationProgramme.id"
|
|
129
|
+
LABELLISATION_PROGRAMME_LIBELLE = "labellisation.idLabellisationProgramme.libelle"
|
|
130
|
+
LABELLISATION_PROGRAMME_LABEL = (
|
|
131
|
+
"labellisation.idLabellisationProgramme.labellisationLabel"
|
|
132
|
+
)
|
|
133
|
+
LABELLISATION_PROGRAMME_LOGO_VERTICAL = (
|
|
134
|
+
"labellisation.idLabellisationProgramme.logo_vertical"
|
|
135
|
+
)
|
|
136
|
+
|
|
137
|
+
# Membres fields
|
|
138
|
+
MEMBRES_ID = "membres.id"
|
|
139
|
+
MEMBRES_NOM = "membres.nom"
|
|
140
|
+
MEMBRES_PRENOM = "membres.prenom"
|
|
141
|
+
|
|
142
|
+
@classmethod
|
|
143
|
+
def get_default_fields(cls) -> list[str]:
|
|
144
|
+
"""Get default fields for organisme queries."""
|
|
145
|
+
return [
|
|
146
|
+
cls.ID,
|
|
147
|
+
cls.NOM,
|
|
148
|
+
cls.CODE,
|
|
149
|
+
cls.TELEPHONE,
|
|
150
|
+
cls.ADRESSE,
|
|
151
|
+
cls.COMMUNE_CODE_POSTAL,
|
|
152
|
+
cls.COMMUNE_LIBELLE,
|
|
153
|
+
cls.MAIL,
|
|
154
|
+
cls.TYPE,
|
|
155
|
+
cls.NOM_SIMPLE,
|
|
156
|
+
cls.URL_SITE_WEB,
|
|
157
|
+
cls.DATE_AFFILIATION,
|
|
158
|
+
cls.ENTREPRISE,
|
|
159
|
+
cls.HANDIBASKET,
|
|
160
|
+
cls.HORS_ASSOCIATION,
|
|
161
|
+
cls.LOGO_BASE64,
|
|
162
|
+
cls.OMNISPORT,
|
|
163
|
+
cls.SAISON_EN_COURS,
|
|
164
|
+
cls.URL_COMPETITION,
|
|
165
|
+
# Cartographie
|
|
166
|
+
cls.CARTOGRAPHIE_LATITUDE,
|
|
167
|
+
cls.CARTOGRAPHIE_LONGITUDE,
|
|
168
|
+
# Club Pro
|
|
169
|
+
cls.NOM_CLUB_PRO,
|
|
170
|
+
cls.ADRESSE_CLUB_PRO,
|
|
171
|
+
cls.COMMUNE_CLUB_PRO,
|
|
172
|
+
# Logo
|
|
173
|
+
cls.LOGO_ID,
|
|
174
|
+
cls.LOGO_GRADIENT_COLOR,
|
|
175
|
+
# Salle
|
|
176
|
+
cls.SALLE_ID,
|
|
177
|
+
cls.SALLE_NUMERO,
|
|
178
|
+
cls.SALLE_LIBELLE,
|
|
179
|
+
cls.SALLE_LIBELLE2,
|
|
180
|
+
cls.SALLE_ADRESSE,
|
|
181
|
+
cls.SALLE_ADRESSE_COMPLEMENT,
|
|
182
|
+
cls.SALLE_COMMUNE_CODE_POSTAL,
|
|
183
|
+
cls.SALLE_COMMUNE_LIBELLE,
|
|
184
|
+
cls.SALLE_CARTOGRAPHIE_LATITUDE,
|
|
185
|
+
cls.SALLE_CARTOGRAPHIE_LONGITUDE,
|
|
186
|
+
# Organismes fils
|
|
187
|
+
cls.ORGANISMES_FILS,
|
|
188
|
+
# Offres Pratiques
|
|
189
|
+
cls.OFFRES_PRATIQUES_ID,
|
|
190
|
+
cls.OFFRES_PRATIQUES_TITLE,
|
|
191
|
+
cls.OFFRES_PRATIQUES_CATEGORIE,
|
|
192
|
+
cls.OFFRES_PRATIQUES_TYPE,
|
|
193
|
+
# Labellisation
|
|
194
|
+
cls.LABELLISATION_ID,
|
|
195
|
+
cls.LABELLISATION_DEBUT,
|
|
196
|
+
cls.LABELLISATION_FIN,
|
|
197
|
+
cls.LABELLISATION_PROGRAMME_ID,
|
|
198
|
+
cls.LABELLISATION_PROGRAMME_LIBELLE,
|
|
199
|
+
cls.LABELLISATION_PROGRAMME_LABEL,
|
|
200
|
+
cls.LABELLISATION_PROGRAMME_LOGO_VERTICAL,
|
|
201
|
+
# Competitions
|
|
202
|
+
cls.COMPETITIONS_ID,
|
|
203
|
+
cls.COMPETITIONS_NOM,
|
|
204
|
+
# Engagements
|
|
205
|
+
cls.ENGAGEMENTS_ID,
|
|
206
|
+
cls.ENGAGEMENTS_NUMERO_EQUIPE,
|
|
207
|
+
cls.ENGAGEMENTS_ID_COMPETITION_ID,
|
|
208
|
+
cls.ENGAGEMENTS_ID_COMPETITION_NOM,
|
|
209
|
+
cls.ENGAGEMENTS_ID_COMPETITION_CODE,
|
|
210
|
+
cls.ENGAGEMENTS_ID_COMPETITION_SEXE,
|
|
211
|
+
cls.ENGAGEMENTS_ID_COMPETITION_COMPETITION_ORIGINE,
|
|
212
|
+
cls.ENGAGEMENTS_ID_COMPETITION_COMPETITION_ORIGINE_NOM,
|
|
213
|
+
cls.ENGAGEMENTS_ID_COMPETITION_COMPETITION_ORIGINE_NIVEAU,
|
|
214
|
+
cls.ENGAGEMENTS_ID_COMPETITION_TYPE_COMPETITION,
|
|
215
|
+
cls.ENGAGEMENTS_ID_COMPETITION_LOGO_ID,
|
|
216
|
+
cls.ENGAGEMENTS_ID_COMPETITION_LOGO_GRADIENT_COLOR,
|
|
217
|
+
cls.ENGAGEMENTS_ID_COMPETITION_SAISON_ID,
|
|
218
|
+
cls.ENGAGEMENTS_ID_COMPETITION_SAISON_LIBELLE,
|
|
219
|
+
cls.ENGAGEMENTS_ID_COMPETITION_ID_COMPETITION_PERE,
|
|
220
|
+
cls.ENGAGEMENTS_ID_COMPETITION_ID_COMPETITION_PERE_ID,
|
|
221
|
+
cls.ENGAGEMENTS_ID_COMPETITION_ID_COMPETITION_PERE_NOM,
|
|
222
|
+
cls.ENGAGEMENTS_ID_COMPETITION_ORGANISATEUR_TYPE,
|
|
223
|
+
cls.ENGAGEMENTS_ID_COMPETITION_TYPE_COMPETITION_GENERIQUE_LOGO_ID,
|
|
224
|
+
cls.ENGAGEMENTS_ID_COMPETITION_TYPE_COMPETITION_GENERIQUE_LOGO_GRADIENT_COLOR,
|
|
225
|
+
cls.ENGAGEMENTS_ID_COMPETITION_CATEGORIE_CODE,
|
|
226
|
+
cls.ENGAGEMENTS_ID_COMPETITION_CATEGORIE_ORDRE,
|
|
227
|
+
cls.ENGAGEMENTS_ID_POULE_ID,
|
|
228
|
+
cls.ENGAGEMENTS_ID_POULE_NOM,
|
|
229
|
+
# Membres (basic info)
|
|
230
|
+
cls.MEMBRES_ID,
|
|
231
|
+
cls.MEMBRES_NOM,
|
|
232
|
+
cls.MEMBRES_PRENOM,
|
|
233
|
+
]
|
|
234
|
+
|
|
235
|
+
@classmethod
|
|
236
|
+
def get_search_fields(cls) -> list[str]:
|
|
237
|
+
"""Champs minimaux pour identifier un organisme dans un contexte
|
|
238
|
+
de recherche. 31 champs vs 77 pour get_default_fields().
|
|
239
|
+
Exclus : membres.*, labellisation.*, offresPratiques.*, salle.*
|
|
240
|
+
"""
|
|
241
|
+
return [
|
|
242
|
+
cls.ID,
|
|
243
|
+
cls.NOM,
|
|
244
|
+
cls.CODE,
|
|
245
|
+
cls.TELEPHONE,
|
|
246
|
+
cls.ADRESSE,
|
|
247
|
+
cls.MAIL,
|
|
248
|
+
cls.TYPE,
|
|
249
|
+
cls.NOM_SIMPLE,
|
|
250
|
+
cls.URL_SITE_WEB,
|
|
251
|
+
cls.COMMUNE_CODE_POSTAL,
|
|
252
|
+
cls.COMMUNE_LIBELLE,
|
|
253
|
+
cls.CARTOGRAPHIE_LATITUDE,
|
|
254
|
+
cls.CARTOGRAPHIE_LONGITUDE,
|
|
255
|
+
cls.NOM_CLUB_PRO,
|
|
256
|
+
cls.LOGO_ID,
|
|
257
|
+
cls.LOGO_GRADIENT_COLOR,
|
|
258
|
+
cls.ENGAGEMENTS_ID,
|
|
259
|
+
cls.ENGAGEMENTS_NUMERO_EQUIPE,
|
|
260
|
+
cls.ENGAGEMENTS_ID_COMPETITION_ID,
|
|
261
|
+
cls.ENGAGEMENTS_ID_COMPETITION_NOM,
|
|
262
|
+
cls.ENGAGEMENTS_ID_COMPETITION_CODE,
|
|
263
|
+
cls.ENGAGEMENTS_ID_COMPETITION_SEXE,
|
|
264
|
+
cls.ENGAGEMENTS_ID_COMPETITION_TYPE_COMPETITION,
|
|
265
|
+
cls.ENGAGEMENTS_ID_COMPETITION_SAISON_ID,
|
|
266
|
+
cls.ENGAGEMENTS_ID_COMPETITION_CATEGORIE_CODE,
|
|
267
|
+
cls.ENGAGEMENTS_ID_COMPETITION_CATEGORIE_ORDRE,
|
|
268
|
+
cls.ENGAGEMENTS_ID_POULE_ID,
|
|
269
|
+
cls.ENGAGEMENTS_ID_POULE_NOM,
|
|
270
|
+
cls.COMPETITIONS_ID,
|
|
271
|
+
cls.COMPETITIONS_NOM,
|
|
272
|
+
cls.ORGANISMES_FILS,
|
|
273
|
+
]
|
|
274
|
+
|
|
275
|
+
@classmethod
|
|
276
|
+
def get_engagements_fields(cls) -> list[str]:
|
|
277
|
+
"""Get engagements-only fields for lightweight team listing queries."""
|
|
278
|
+
return [
|
|
279
|
+
cls.ID,
|
|
280
|
+
cls.NOM,
|
|
281
|
+
cls.CODE,
|
|
282
|
+
# Engagements
|
|
283
|
+
cls.ENGAGEMENTS_ID,
|
|
284
|
+
cls.ENGAGEMENTS_NUMERO_EQUIPE,
|
|
285
|
+
cls.ENGAGEMENTS_ID_COMPETITION_ID,
|
|
286
|
+
cls.ENGAGEMENTS_ID_COMPETITION_NOM,
|
|
287
|
+
cls.ENGAGEMENTS_ID_COMPETITION_CODE,
|
|
288
|
+
cls.ENGAGEMENTS_ID_COMPETITION_SEXE,
|
|
289
|
+
cls.ENGAGEMENTS_ID_COMPETITION_COMPETITION_ORIGINE,
|
|
290
|
+
cls.ENGAGEMENTS_ID_COMPETITION_COMPETITION_ORIGINE_NOM,
|
|
291
|
+
cls.ENGAGEMENTS_ID_COMPETITION_COMPETITION_ORIGINE_NIVEAU,
|
|
292
|
+
cls.ENGAGEMENTS_ID_COMPETITION_TYPE_COMPETITION,
|
|
293
|
+
cls.ENGAGEMENTS_ID_COMPETITION_LOGO_ID,
|
|
294
|
+
cls.ENGAGEMENTS_ID_COMPETITION_SAISON_ID,
|
|
295
|
+
cls.ENGAGEMENTS_ID_COMPETITION_ORGANISATEUR_TYPE,
|
|
296
|
+
cls.ENGAGEMENTS_ID_COMPETITION_CATEGORIE_CODE,
|
|
297
|
+
cls.ENGAGEMENTS_ID_COMPETITION_CATEGORIE_ORDRE,
|
|
298
|
+
cls.ENGAGEMENTS_ID_POULE_ID,
|
|
299
|
+
cls.ENGAGEMENTS_ID_POULE_NOM,
|
|
300
|
+
]
|
|
301
|
+
|
|
302
|
+
@classmethod
|
|
303
|
+
def get_basic_fields(cls) -> list[str]:
|
|
304
|
+
"""Get basic fields for simple organisme queries."""
|
|
305
|
+
return [
|
|
306
|
+
cls.ID,
|
|
307
|
+
cls.NOM,
|
|
308
|
+
cls.CODE,
|
|
309
|
+
cls.TELEPHONE,
|
|
310
|
+
cls.ADRESSE,
|
|
311
|
+
cls.MAIL,
|
|
312
|
+
]
|
|
313
|
+
|
|
314
|
+
@classmethod
|
|
315
|
+
def get_detailed_fields(cls) -> list[str]:
|
|
316
|
+
"""Get detailed fields including personal member data."""
|
|
317
|
+
return cls.get_default_fields() + [
|
|
318
|
+
# Additional member personal data (not in default)
|
|
319
|
+
"membres.mail",
|
|
320
|
+
"membres.telephonePortable",
|
|
321
|
+
"membres.adresse1",
|
|
322
|
+
"membres.adresse2",
|
|
323
|
+
"membres.codePostal",
|
|
324
|
+
"membres.ville",
|
|
325
|
+
"membres.telephoneFixe",
|
|
326
|
+
"membres.codeFonction",
|
|
327
|
+
]
|
|
@@ -0,0 +1,177 @@
|
|
|
1
|
+
from __future__ import annotations
|
|
2
|
+
|
|
3
|
+
from dataclasses import dataclass
|
|
4
|
+
from datetime import datetime
|
|
5
|
+
from typing import Any
|
|
6
|
+
from uuid import UUID
|
|
7
|
+
|
|
8
|
+
from ..utils.converter_utils import (
|
|
9
|
+
from_bool,
|
|
10
|
+
from_datetime,
|
|
11
|
+
from_int,
|
|
12
|
+
from_list,
|
|
13
|
+
from_obj,
|
|
14
|
+
from_str,
|
|
15
|
+
from_uuid,
|
|
16
|
+
)
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
@dataclass
|
|
20
|
+
class OrganismeIDPere:
|
|
21
|
+
adresse: str | None = None
|
|
22
|
+
adresse_club_pro: str | None = None
|
|
23
|
+
cartographie: str | None = None
|
|
24
|
+
code: str | None = None
|
|
25
|
+
commune: int | None = None
|
|
26
|
+
commune_club_pro: str | None = None
|
|
27
|
+
date_created: datetime | None = None
|
|
28
|
+
date_updated: datetime | None = None
|
|
29
|
+
id: int | None = None
|
|
30
|
+
mail: str | None = None
|
|
31
|
+
nom: str | None = None
|
|
32
|
+
nom_club_pro: str | None = None
|
|
33
|
+
organisme_id_pere: OrganismeIDPere | None = None
|
|
34
|
+
salle: str | None = None
|
|
35
|
+
telephone: str | None = None
|
|
36
|
+
type: str | None = None
|
|
37
|
+
type_association: str | None = None
|
|
38
|
+
url_site_web: str | None = None
|
|
39
|
+
logo: UUID | None = None
|
|
40
|
+
nom_simple: str | None = None
|
|
41
|
+
date_affiliation: datetime | None = None
|
|
42
|
+
saison_en_cours: bool | None = None
|
|
43
|
+
entreprise: bool | None = None
|
|
44
|
+
handibasket: bool | None = None
|
|
45
|
+
omnisport: bool | None = None
|
|
46
|
+
hors_association: bool | None = None
|
|
47
|
+
offres_pratiques: list[Any] | None = None
|
|
48
|
+
engagements: list[Any] | None = None
|
|
49
|
+
labellisation: list[Any] | None = None
|
|
50
|
+
|
|
51
|
+
@staticmethod
|
|
52
|
+
def from_dict(obj: Any) -> OrganismeIDPere:
|
|
53
|
+
assert isinstance(obj, dict)
|
|
54
|
+
adresse = from_str(obj, "adresse")
|
|
55
|
+
adresse_club_pro = from_str(obj, "adresseClubPro")
|
|
56
|
+
cartographie = from_str(obj, "cartographie")
|
|
57
|
+
code = from_str(obj, "code")
|
|
58
|
+
commune = from_int(obj, "commune")
|
|
59
|
+
commune_club_pro = from_str(obj, "communeClubPro")
|
|
60
|
+
date_created = from_datetime(obj, "date_created")
|
|
61
|
+
date_updated = from_datetime(obj, "date_updated")
|
|
62
|
+
id = from_int(obj, "id")
|
|
63
|
+
mail = from_str(obj, "mail")
|
|
64
|
+
nom = from_str(obj, "nom")
|
|
65
|
+
nom_club_pro = from_str(obj, "nomClubPro")
|
|
66
|
+
organisme_id_pere = from_obj(
|
|
67
|
+
OrganismeIDPere.from_dict, obj, "organisme_id_pere"
|
|
68
|
+
)
|
|
69
|
+
salle = from_str(obj, "salle")
|
|
70
|
+
telephone = from_str(obj, "telephone")
|
|
71
|
+
type = from_str(obj, "type")
|
|
72
|
+
type_association = from_str(obj, "type_association")
|
|
73
|
+
url_site_web = from_str(obj, "urlSiteWeb")
|
|
74
|
+
logo = from_uuid(obj, "logo")
|
|
75
|
+
nom_simple = from_str(obj, "nom_simple")
|
|
76
|
+
date_affiliation = from_datetime(obj, "dateAffiliation")
|
|
77
|
+
saison_en_cours = from_bool(obj, "saison_en_cours")
|
|
78
|
+
entreprise = from_bool(obj, "entreprise")
|
|
79
|
+
handibasket = from_bool(obj, "handibasket")
|
|
80
|
+
omnisport = from_bool(obj, "omnisport")
|
|
81
|
+
hors_association = from_bool(obj, "horsAssociation")
|
|
82
|
+
offres_pratiques = from_list(lambda x: x, obj, "offresPratiques")
|
|
83
|
+
engagements = from_list(lambda x: x, obj, "engagements")
|
|
84
|
+
labellisation = from_list(lambda x: x, obj, "labellisation")
|
|
85
|
+
return OrganismeIDPere(
|
|
86
|
+
adresse=adresse,
|
|
87
|
+
adresse_club_pro=adresse_club_pro,
|
|
88
|
+
cartographie=cartographie,
|
|
89
|
+
code=code,
|
|
90
|
+
commune=commune,
|
|
91
|
+
commune_club_pro=commune_club_pro,
|
|
92
|
+
date_created=date_created,
|
|
93
|
+
date_updated=date_updated,
|
|
94
|
+
id=id,
|
|
95
|
+
mail=mail,
|
|
96
|
+
nom=nom,
|
|
97
|
+
nom_club_pro=nom_club_pro,
|
|
98
|
+
organisme_id_pere=organisme_id_pere,
|
|
99
|
+
salle=salle,
|
|
100
|
+
telephone=telephone,
|
|
101
|
+
type=type,
|
|
102
|
+
type_association=type_association,
|
|
103
|
+
url_site_web=url_site_web,
|
|
104
|
+
logo=logo,
|
|
105
|
+
nom_simple=nom_simple,
|
|
106
|
+
date_affiliation=date_affiliation,
|
|
107
|
+
saison_en_cours=saison_en_cours,
|
|
108
|
+
entreprise=entreprise,
|
|
109
|
+
handibasket=handibasket,
|
|
110
|
+
omnisport=omnisport,
|
|
111
|
+
hors_association=hors_association,
|
|
112
|
+
offres_pratiques=offres_pratiques,
|
|
113
|
+
engagements=engagements,
|
|
114
|
+
labellisation=labellisation,
|
|
115
|
+
)
|
|
116
|
+
|
|
117
|
+
def to_dict(self) -> dict:
|
|
118
|
+
result: dict = {}
|
|
119
|
+
if self.adresse is not None:
|
|
120
|
+
result["adresse"] = self.adresse
|
|
121
|
+
if self.adresse_club_pro is not None:
|
|
122
|
+
result["adresseClubPro"] = self.adresse_club_pro
|
|
123
|
+
if self.cartographie is not None:
|
|
124
|
+
result["cartographie"] = self.cartographie
|
|
125
|
+
if self.code is not None:
|
|
126
|
+
result["code"] = self.code
|
|
127
|
+
if self.commune is not None:
|
|
128
|
+
result["commune"] = str(self.commune)
|
|
129
|
+
if self.commune_club_pro is not None:
|
|
130
|
+
result["communeClubPro"] = self.commune_club_pro
|
|
131
|
+
if self.date_created is not None:
|
|
132
|
+
result["date_created"] = self.date_created.isoformat()
|
|
133
|
+
if self.date_updated is not None:
|
|
134
|
+
result["date_updated"] = self.date_updated.isoformat()
|
|
135
|
+
if self.id is not None:
|
|
136
|
+
result["id"] = str(self.id)
|
|
137
|
+
if self.mail is not None:
|
|
138
|
+
result["mail"] = self.mail
|
|
139
|
+
if self.nom is not None:
|
|
140
|
+
result["nom"] = self.nom
|
|
141
|
+
if self.nom_club_pro is not None:
|
|
142
|
+
result["nomClubPro"] = self.nom_club_pro
|
|
143
|
+
if self.organisme_id_pere is not None:
|
|
144
|
+
result["organisme_id_pere"] = self.organisme_id_pere.to_dict()
|
|
145
|
+
if self.salle is not None:
|
|
146
|
+
result["salle"] = self.salle
|
|
147
|
+
if self.telephone is not None:
|
|
148
|
+
result["telephone"] = self.telephone
|
|
149
|
+
if self.type is not None:
|
|
150
|
+
result["type"] = self.type
|
|
151
|
+
if self.type_association is not None:
|
|
152
|
+
result["type_association"] = self.type_association
|
|
153
|
+
if self.url_site_web is not None:
|
|
154
|
+
result["urlSiteWeb"] = self.url_site_web
|
|
155
|
+
if self.logo is not None:
|
|
156
|
+
result["logo"] = str(self.logo)
|
|
157
|
+
if self.nom_simple is not None:
|
|
158
|
+
result["nom_simple"] = self.nom_simple
|
|
159
|
+
if self.date_affiliation is not None:
|
|
160
|
+
result["dateAffiliation"] = self.date_affiliation.isoformat()
|
|
161
|
+
if self.saison_en_cours is not None:
|
|
162
|
+
result["saison_en_cours"] = self.saison_en_cours
|
|
163
|
+
if self.entreprise is not None:
|
|
164
|
+
result["entreprise"] = self.entreprise
|
|
165
|
+
if self.handibasket is not None:
|
|
166
|
+
result["handibasket"] = self.handibasket
|
|
167
|
+
if self.omnisport is not None:
|
|
168
|
+
result["omnisport"] = self.omnisport
|
|
169
|
+
if self.hors_association is not None:
|
|
170
|
+
result["horsAssociation"] = self.hors_association
|
|
171
|
+
if self.offres_pratiques is not None:
|
|
172
|
+
result["offresPratiques"] = self.offres_pratiques
|
|
173
|
+
if self.engagements is not None:
|
|
174
|
+
result["engagements"] = self.engagements
|
|
175
|
+
if self.labellisation is not None:
|
|
176
|
+
result["labellisation"] = self.labellisation
|
|
177
|
+
return result
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
from __future__ import annotations
|
|
2
|
+
|
|
3
|
+
from dataclasses import dataclass
|
|
4
|
+
from typing import Any
|
|
5
|
+
|
|
6
|
+
from ..utils.converter_utils import from_obj
|
|
7
|
+
from .facet_distribution import FacetDistribution
|
|
8
|
+
from .labellisation import Labellisation
|
|
9
|
+
from .type_association_libelle import TypeAssociationLibelle
|
|
10
|
+
from .type_class import TypeClass
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
@dataclass
|
|
14
|
+
class OrganismesFacetDistribution(FacetDistribution):
|
|
15
|
+
labellisation: Labellisation | None = None
|
|
16
|
+
offres_pratiques: dict[str, int] | None = None
|
|
17
|
+
type: TypeClass | None = None
|
|
18
|
+
type_association_libelle: TypeAssociationLibelle | None = None
|
|
19
|
+
|
|
20
|
+
@staticmethod
|
|
21
|
+
def from_dict(obj: Any) -> OrganismesFacetDistribution:
|
|
22
|
+
assert isinstance(obj, dict)
|
|
23
|
+
labellisation = from_obj(Labellisation.from_dict, obj, "labellisation")
|
|
24
|
+
offres_pratiques = obj.get("offresPratiques")
|
|
25
|
+
type = from_obj(TypeClass.from_dict, obj, "type")
|
|
26
|
+
type_association_libelle = from_obj(
|
|
27
|
+
TypeAssociationLibelle.from_dict, obj, "type_association.libelle"
|
|
28
|
+
)
|
|
29
|
+
return OrganismesFacetDistribution(
|
|
30
|
+
labellisation=labellisation,
|
|
31
|
+
offres_pratiques=offres_pratiques,
|
|
32
|
+
type=type,
|
|
33
|
+
type_association_libelle=type_association_libelle,
|
|
34
|
+
)
|
|
35
|
+
|
|
36
|
+
def to_dict(self) -> dict:
|
|
37
|
+
result: dict = {}
|
|
38
|
+
if self.labellisation is not None:
|
|
39
|
+
result["labellisation"] = self.labellisation.to_dict()
|
|
40
|
+
if self.offres_pratiques is not None:
|
|
41
|
+
result["offresPratiques"] = self.offres_pratiques
|
|
42
|
+
if self.type is not None:
|
|
43
|
+
result["type"] = self.type.to_dict()
|
|
44
|
+
if self.type_association_libelle is not None:
|
|
45
|
+
result["type_association.libelle"] = self.type_association_libelle.to_dict()
|
|
46
|
+
return result
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
from __future__ import annotations
|
|
2
|
+
|
|
3
|
+
from typing import Any
|
|
4
|
+
|
|
5
|
+
from .facet_stats import FacetStats
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
class OrganismesFacetStats(FacetStats):
|
|
9
|
+
@staticmethod
|
|
10
|
+
def from_dict(obj: Any) -> OrganismesFacetStats:
|
|
11
|
+
return OrganismesFacetStats()
|
|
12
|
+
|
|
13
|
+
def to_dict(self) -> dict:
|
|
14
|
+
return super().to_dict()
|