demarches-normaliennes/app/graphql/schema.graphql
2020-06-29 08:59:12 +00:00

1320 lines
19 KiB
GraphQL
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

type Association {
dateCreation: ISO8601Date!
dateDeclaration: ISO8601Date!
datePublication: ISO8601Date!
objet: String!
rna: String!
titre: String!
}
type Avis {
attachment: File
dateQuestion: ISO8601DateTime!
dateReponse: ISO8601DateTime
expert: Profile
id: ID!
instructeur: Profile!
question: String!
reponse: String
}
"""
Represents non-fractional signed whole numeric values. Since the value may
exceed the size of a 32-bit integer, it's encoded as a string.
"""
scalar BigInt
type CarteChamp implements Champ {
geoAreas: [GeoArea!]!
id: ID!
"""
Libellé du champ.
"""
label: String!
"""
La valeur du champ sous forme texte.
"""
stringValue: String
}
interface Champ {
id: ID!
"""
Libellé du champ.
"""
label: String!
"""
La valeur du champ sous forme texte.
"""
stringValue: String
}
type ChampDescriptor {
"""
Description du champ.
"""
description: String
id: ID!
"""
Libellé du champ.
"""
label: String!
"""
Est-ce que le champ est obligatoire ?
"""
required: Boolean!
"""
Type de la valeur du champ.
"""
type: TypeDeChamp!
}
type CheckboxChamp implements Champ {
id: ID!
"""
Libellé du champ.
"""
label: String!
"""
La valeur du champ sous forme texte.
"""
stringValue: String
value: Boolean!
}
enum Civilite {
"""
Monsieur
"""
M
"""
Madame
"""
Mme
}
type CiviliteChamp implements Champ {
id: ID!
"""
Libellé du champ.
"""
label: String!
"""
La valeur du champ sous forme texte.
"""
stringValue: String
value: Civilite
}
"""
GeoJSON coordinates
"""
scalar Coordinates
"""
Autogenerated input type of CreateDirectUpload
"""
input CreateDirectUploadInput {
"""
File size (bytes)
"""
byteSize: Int!
"""
MD5 file checksum as base64
"""
checksum: String!
"""
A unique identifier for the client performing the mutation.
"""
clientMutationId: String
"""
File content type
"""
contentType: String!
"""
Dossier ID
"""
dossierId: ID!
"""
Original file name
"""
filename: String!
}
"""
Autogenerated return type of CreateDirectUpload
"""
type CreateDirectUploadPayload {
"""
A unique identifier for the client performing the mutation.
"""
clientMutationId: String
directUpload: DirectUpload!
}
type DateChamp implements Champ {
id: ID!
"""
Libellé du champ.
"""
label: String!
"""
La valeur du champ sous forme texte.
"""
stringValue: String
value: ISO8601DateTime
}
type DecimalNumberChamp implements Champ {
id: ID!
"""
Libellé du champ.
"""
label: String!
"""
La valeur du champ sous forme texte.
"""
stringValue: String
value: Float
}
interface Demandeur {
id: ID!
}
"""
Une demarche
"""
type Demarche {
annotationDescriptors: [ChampDescriptor!]!
champDescriptors: [ChampDescriptor!]!
"""
Date de la création.
"""
dateCreation: ISO8601DateTime!
"""
Date de la dépublication.
"""
dateDepublication: ISO8601DateTime
"""
Date de la dernière modification.
"""
dateDerniereModification: ISO8601DateTime!
"""
Date de la fermeture.
"""
dateFermeture: ISO8601DateTime
"""
Date de la publication.
"""
datePublication: ISO8601DateTime!
"""
L'état de dossier pour une démarche déclarative
"""
declarative: DossierDeclarativeState
"""
Description de la démarche.
"""
description: String!
"""
Liste de tous les dossiers d'une démarche.
"""
dossiers(
"""
Returns the elements in the list that come after the specified cursor.
"""
after: String
"""
Returns the elements in the list that come before the specified cursor.
"""
before: String
"""
Dossiers déposés depuis la date.
"""
createdSince: ISO8601DateTime
"""
Returns the first _n_ elements from the list.
"""
first: Int
"""
Returns the last _n_ elements from the list.
"""
last: Int
"""
L'ordre des dossiers.
"""
order: Order = ASC
"""
Dossiers avec statut.
"""
state: DossierState
"""
Dossiers mis à jour depuis la date.
"""
updatedSince: ISO8601DateTime
): DossierConnection!
groupeInstructeurs: [GroupeInstructeur!]!
id: ID!
"""
Le numero de la démarche.
"""
number: Int!
service: Service!
"""
L'état de la démarche.
"""
state: DemarcheState!
"""
Le titre de la démarche.
"""
title: String!
}
enum DemarcheState {
"""
Brouillon
"""
brouillon
"""
Close
"""
close
"""
Depubliee
"""
depubliee
"""
Publiée
"""
publiee
}
"""
Represents direct upload credentials
"""
type DirectUpload {
"""
Created blob record ID
"""
blobId: ID!
"""
HTTP request headers (JSON-encoded)
"""
headers: String!
"""
Created blob record signed ID
"""
signedBlobId: ID!
"""
Upload URL
"""
url: String!
}
"""
Un dossier
"""
type Dossier {
annotations: [Champ!]!
archived: Boolean!
avis: [Avis!]!
champs: [Champ!]!
"""
Date de la dernière modification.
"""
dateDerniereModification: ISO8601DateTime!
"""
Date de dépôt.
"""
datePassageEnConstruction: ISO8601DateTime!
"""
Date de passage en instruction.
"""
datePassageEnInstruction: ISO8601DateTime
"""
Date de traitement.
"""
dateTraitement: ISO8601DateTime
demandeur: Demandeur!
groupeInstructeur: GroupeInstructeur!
id: ID!
instructeurs: [Profile!]!
messages: [Message!]!
motivation: String
motivationAttachment: File
"""
Le numero du dossier.
"""
number: Int!
"""
L'état du dossier.
"""
state: DossierState!
usager: Profile!
}
"""
Autogenerated input type of DossierAccepter
"""
input DossierAccepterInput {
"""
A unique identifier for the client performing the mutation.
"""
clientMutationId: String
"""
Dossier ID
"""
dossierId: ID!
"""
Instructeur qui prend la décision sur le dossier.
"""
instructeurId: ID!
justificatif: ID
motivation: String
}
"""
Autogenerated return type of DossierAccepter
"""
type DossierAccepterPayload {
"""
A unique identifier for the client performing the mutation.
"""
clientMutationId: String
dossier: Dossier
errors: [ValidationError!]
}
"""
Autogenerated input type of DossierChangerGroupeInstructeur
"""
input DossierChangerGroupeInstructeurInput {
"""
A unique identifier for the client performing the mutation.
"""
clientMutationId: String
"""
Dossier ID
"""
dossierId: ID!
"""
Group instructeur a affecter
"""
groupeInstructeurId: ID!
}
"""
Autogenerated return type of DossierChangerGroupeInstructeur
"""
type DossierChangerGroupeInstructeurPayload {
"""
A unique identifier for the client performing the mutation.
"""
clientMutationId: String
dossier: Dossier
errors: [ValidationError!]
}
"""
Autogenerated input type of DossierClasserSansSuite
"""
input DossierClasserSansSuiteInput {
"""
A unique identifier for the client performing the mutation.
"""
clientMutationId: String
"""
Dossier ID
"""
dossierId: ID!
"""
Instructeur qui prend la décision sur le dossier.
"""
instructeurId: ID!
justificatif: ID
motivation: String!
}
"""
Autogenerated return type of DossierClasserSansSuite
"""
type DossierClasserSansSuitePayload {
"""
A unique identifier for the client performing the mutation.
"""
clientMutationId: String
dossier: Dossier
errors: [ValidationError!]
}
"""
The connection type for Dossier.
"""
type DossierConnection {
"""
A list of edges.
"""
edges: [DossierEdge]
"""
A list of nodes.
"""
nodes: [Dossier]
"""
Information to aid in pagination.
"""
pageInfo: PageInfo!
}
enum DossierDeclarativeState {
"""
Accepté
"""
accepte
"""
En instruction
"""
en_instruction
}
"""
An edge in a connection.
"""
type DossierEdge {
"""
A cursor for use in pagination.
"""
cursor: String!
"""
The item at the end of the edge.
"""
node: Dossier
}
"""
Autogenerated input type of DossierEnvoyerMessage
"""
input DossierEnvoyerMessageInput {
attachment: ID
body: String!
"""
A unique identifier for the client performing the mutation.
"""
clientMutationId: String
dossierId: ID!
instructeurId: ID!
}
"""
Autogenerated return type of DossierEnvoyerMessage
"""
type DossierEnvoyerMessagePayload {
"""
A unique identifier for the client performing the mutation.
"""
clientMutationId: String
errors: [ValidationError!]
message: Message
}
type DossierLinkChamp implements Champ {
dossier: Dossier
id: ID!
"""
Libellé du champ.
"""
label: String!
"""
La valeur du champ sous forme texte.
"""
stringValue: String
}
"""
Autogenerated input type of DossierPasserEnInstruction
"""
input DossierPasserEnInstructionInput {
"""
A unique identifier for the client performing the mutation.
"""
clientMutationId: String
"""
Dossier ID
"""
dossierId: ID!
"""
Instructeur qui prend la décision sur le dossier.
"""
instructeurId: ID!
}
"""
Autogenerated return type of DossierPasserEnInstruction
"""
type DossierPasserEnInstructionPayload {
"""
A unique identifier for the client performing the mutation.
"""
clientMutationId: String
dossier: Dossier
errors: [ValidationError!]
}
"""
Autogenerated input type of DossierRefuser
"""
input DossierRefuserInput {
"""
A unique identifier for the client performing the mutation.
"""
clientMutationId: String
"""
Dossier ID
"""
dossierId: ID!
"""
Instructeur qui prend la décision sur le dossier.
"""
instructeurId: ID!
justificatif: ID
motivation: String!
}
"""
Autogenerated return type of DossierRefuser
"""
type DossierRefuserPayload {
"""
A unique identifier for the client performing the mutation.
"""
clientMutationId: String
dossier: Dossier
errors: [ValidationError!]
}
enum DossierState {
"""
Accepté
"""
accepte
"""
En construction
"""
en_construction
"""
En instruction
"""
en_instruction
"""
Refusé
"""
refuse
"""
Sans suite
"""
sans_suite
}
type Effectif {
nb: Float!
periode: String!
}
type Entreprise {
attestationFiscaleAttachment: File
attestationSocialeAttachment: File
capitalSocial: BigInt!
codeEffectifEntreprise: String!
dateCreation: ISO8601Date!
"""
effectif moyen d'une année
"""
effectifAnnuel: Effectif
"""
effectif pour un mois donné
"""
effectifMensuel: Effectif
formeJuridique: String!
formeJuridiqueCode: String!
inlineAdresse: String!
nom: String!
nomCommercial: String!
numeroTvaIntracommunautaire: String!
prenom: String!
raisonSociale: String!
siren: String!
siretSiegeSocial: String!
}
type File {
byteSize: Int!
checksum: String!
contentType: String!
filename: String!
url: URL!
}
interface GeoArea {
geometry: GeoJSON!
id: ID!
source: GeoAreaSource!
}
enum GeoAreaSource {
"""
Parcelle cadastrale
"""
cadastre
"""
Quartier prioritaire
"""
quartier_prioritaire
"""
Sélection utilisateur
"""
selection_utilisateur
}
type GeoJSON {
coordinates: Coordinates!
type: String!
}
"""
Un groupe instructeur
"""
type GroupeInstructeur {
id: ID!
instructeurs: [Profile!]!
label: String!
"""
Le numero du groupe instructeur.
"""
number: Int!
}
"""
Un groupe instructeur avec ces dossiers
"""
type GroupeInstructeurWithDossiers {
"""
Liste de tous les dossiers d'une démarche.
"""
dossiers(
"""
Returns the elements in the list that come after the specified cursor.
"""
after: String
"""
Returns the elements in the list that come before the specified cursor.
"""
before: String
"""
Dossiers déposés depuis la date.
"""
createdSince: ISO8601DateTime
"""
Returns the first _n_ elements from the list.
"""
first: Int
"""
Returns the last _n_ elements from the list.
"""
last: Int
"""
L'ordre des dossiers.
"""
order: Order = ASC
"""
Dossiers avec statut.
"""
state: DossierState
"""
Dossiers mis à jour depuis la date.
"""
updatedSince: ISO8601DateTime
): DossierConnection!
id: ID!
instructeurs: [Profile!]!
label: String!
"""
Le numero du groupe instructeur.
"""
number: Int!
}
"""
An ISO 8601-encoded date
"""
scalar ISO8601Date
"""
An ISO 8601-encoded datetime
"""
scalar ISO8601DateTime
type IntegerNumberChamp implements Champ {
id: ID!
"""
Libellé du champ.
"""
label: String!
"""
La valeur du champ sous forme texte.
"""
stringValue: String
value: BigInt
}
type LinkedDropDownListChamp implements Champ {
id: ID!
"""
Libellé du champ.
"""
label: String!
primaryValue: String
secondaryValue: String
"""
La valeur du champ sous forme texte.
"""
stringValue: String
}
type Message {
attachment: File
body: String!
createdAt: ISO8601DateTime!
email: String!
id: ID!
}
type MultipleDropDownListChamp implements Champ {
id: ID!
"""
Libellé du champ.
"""
label: String!
"""
La valeur du champ sous forme texte.
"""
stringValue: String
values: [String!]!
}
type Mutation {
"""
File information required to prepare a direct upload
"""
createDirectUpload(input: CreateDirectUploadInput!): CreateDirectUploadPayload
"""
Accepter le dossier.
"""
dossierAccepter(input: DossierAccepterInput!): DossierAccepterPayload
"""
Changer le grope instructeur du dossier.
"""
dossierChangerGroupeInstructeur(input: DossierChangerGroupeInstructeurInput!): DossierChangerGroupeInstructeurPayload
"""
Classer le dossier sans suite.
"""
dossierClasserSansSuite(input: DossierClasserSansSuiteInput!): DossierClasserSansSuitePayload
"""
Envoyer un message à l'usager du dossier.
"""
dossierEnvoyerMessage(input: DossierEnvoyerMessageInput!): DossierEnvoyerMessagePayload
"""
Passer le dossier en instruction.
"""
dossierPasserEnInstruction(input: DossierPasserEnInstructionInput!): DossierPasserEnInstructionPayload
"""
Refuser le dossier.
"""
dossierRefuser(input: DossierRefuserInput!): DossierRefuserPayload
}
enum Order {
"""
Lordre ascendant.
"""
ASC
"""
Lordre descendant.
"""
DESC
}
"""
Information about pagination in a connection.
"""
type PageInfo {
"""
When paginating forwards, the cursor to continue.
"""
endCursor: String
"""
When paginating forwards, are there more items?
"""
hasNextPage: Boolean!
"""
When paginating backwards, are there more items?
"""
hasPreviousPage: Boolean!
"""
When paginating backwards, the cursor to continue.
"""
startCursor: String
}
type ParcelleCadastrale implements GeoArea {
codeArr: String!
codeCom: String!
codeDep: String!
feuille: Int!
geometry: GeoJSON!
id: ID!
nomCom: String!
numero: String!
section: String!
source: GeoAreaSource!
surfaceIntersection: Float!
surfaceParcelle: Float!
}
type PersonneMorale implements Demandeur {
adresse: String!
association: Association
codeInseeLocalite: String!
codePostal: String!
complementAdresse: String!
entreprise: Entreprise
id: ID!
libelleNaf: String!
localite: String!
naf: String!
nomVoie: String!
numeroVoie: String!
siegeSocial: Boolean!
siret: String!
typeVoie: String!
}
type PersonnePhysique implements Demandeur {
civilite: Civilite
dateDeNaissance: ISO8601Date
id: ID!
nom: String!
prenom: String!
}
type PieceJustificativeChamp implements Champ {
file: File
id: ID!
"""
Libellé du champ.
"""
label: String!
"""
La valeur du champ sous forme texte.
"""
stringValue: String
}
type Profile {
email: String!
id: ID!
}
type QuartierPrioritaire implements GeoArea {
code: String!
commune: String!
geometry: GeoJSON!
id: ID!
nom: String!
source: GeoAreaSource!
}
type Query {
"""
Informations concernant une démarche.
"""
demarche(
"""
Numéro de la démarche.
"""
number: Int!
): Demarche!
"""
Informations sur un dossier d'une démarche.
"""
dossier(
"""
Numéro du dossier.
"""
number: Int!
): Dossier!
"""
Informations sur un groupe instructeur.
"""
groupeInstructeur(
"""
Numéro du groupe instructeur.
"""
number: Int!
): GroupeInstructeurWithDossiers!
}
type RepetitionChamp implements Champ {
champs: [Champ!]!
id: ID!
"""
Libellé du champ.
"""
label: String!
"""
La valeur du champ sous forme texte.
"""
stringValue: String
}
type SelectionUtilisateur implements GeoArea {
geometry: GeoJSON!
id: ID!
source: GeoAreaSource!
}
type Service {
id: ID!
nom: String!
organisme: String!
typeOrganisme: TypeOrganisme!
}
type SiretChamp implements Champ {
etablissement: PersonneMorale
id: ID!
"""
Libellé du champ.
"""
label: String!
"""
La valeur du champ sous forme texte.
"""
stringValue: String
}
type TextChamp implements Champ {
id: ID!
"""
Libellé du champ.
"""
label: String!
"""
La valeur du champ sous forme texte.
"""
stringValue: String
value: String
}
enum TypeDeChamp {
"""
Adresse
"""
address
"""
Carte
"""
carte
"""
Case à cocher
"""
checkbox
"""
Civilité
"""
civilite
"""
Communes
"""
communes
"""
Date
"""
date
"""
Date et Heure
"""
datetime
"""
Nombre décimal
"""
decimal_number
"""
Départements
"""
departements
"""
Lien vers un autre dossier
"""
dossier_link
"""
Choix parmi une liste
"""
drop_down_list
"""
Email
"""
email
"""
Engagement
"""
engagement
"""
Explication
"""
explication
"""
Titre de section
"""
header_section
"""
Nombre entier
"""
integer_number
"""
Deux menus déroulants liés
"""
linked_drop_down_list
"""
Choix multiples
"""
multiple_drop_down_list
"""
Nombre
"""
number
"""
Pays
"""
pays
"""
Téléphone
"""
phone
"""
Pièce justificative
"""
piece_justificative
"""
Régions
"""
regions
"""
Bloc répétable
"""
repetition
"""
SIRET
"""
siret
"""
Texte
"""
text
"""
Zone de texte
"""
textarea
"""
Oui/Non
"""
yes_no
}
enum TypeOrganisme {
"""
Administration centrale
"""
administration_centrale
"""
Association
"""
association
"""
Autre
"""
autre
"""
Collectivité territoriale
"""
collectivite_territoriale
"""
Établissement denseignement
"""
etablissement_enseignement
"""
Opérateur dÉtat
"""
operateur_d_etat
"""
Service déconcentré de lÉtat
"""
service_deconcentre_de_l_etat
}
"""
A valid URL, transported as a string
"""
scalar URL
"""
Éreur de validation
"""
type ValidationError {
"""
A description of the error
"""
message: String!
}