demarches-normaliennes/app/graphql/schema.graphql

851 lines
11 KiB
GraphQL
Raw Normal View History

2018-11-23 18:54:51 +01:00
type Avis {
answer: String
2019-09-18 18:45:53 +02:00
attachmentUrl: URL
2018-11-23 18:54:51 +01:00
createdAt: ISO8601DateTime!
email: String!
2019-09-18 18:45:53 +02:00
id: ID!
2018-11-23 18:54:51 +01:00
question: String!
}
type CarteChamp implements Champ {
geoAreas: [GeoArea!]!
id: ID!
2019-11-07 13:34:19 +01:00
"""
Libellé du champ.
"""
label: String!
2019-11-07 13:34:19 +01:00
"""
La valeur du champ sous forme texte.
"""
2019-09-18 18:45:53 +02:00
stringValue: String
}
interface Champ {
id: ID!
2019-11-07 13:34:19 +01:00
"""
Libellé du champ.
"""
label: String!
2019-11-07 13:34:19 +01:00
"""
La valeur du champ sous forme texte.
"""
2019-09-18 18:45:53 +02:00
stringValue: String
}
2019-09-18 18:45:53 +02:00
type ChampDescriptor {
2019-11-07 13:34:19 +01:00
"""
Description du champ.
"""
description: String
id: ID!
2019-11-07 13:34:19 +01:00
"""
Libellé du champ.
"""
label: String!
2019-11-07 13:34:19 +01:00
"""
Est-ce que le champ est obligatoire ?
"""
required: Boolean!
2019-11-07 13:34:19 +01:00
"""
Type de la valeur du champ.
"""
type: TypeDeChamp!
}
type CheckboxChamp implements Champ {
id: ID!
2019-11-07 13:34:19 +01:00
"""
Libellé du champ.
"""
label: String!
2019-11-07 13:34:19 +01:00
"""
La valeur du champ sous forme texte.
"""
2019-09-18 18:45:53 +02:00
stringValue: String
value: Boolean!
}
"""
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!
2019-11-07 13:34:19 +01:00
"""
Libellé du champ.
"""
label: String!
2019-11-07 13:34:19 +01:00
"""
La valeur du champ sous forme texte.
"""
2019-09-18 18:45:53 +02:00
stringValue: String
value: ISO8601DateTime
}
type DecimalNumberChamp implements Champ {
id: ID!
2019-11-07 13:34:19 +01:00
"""
Libellé du champ.
"""
label: String!
2019-11-07 13:34:19 +01:00
"""
La valeur du champ sous forme texte.
"""
2019-09-18 18:45:53 +02:00
stringValue: String
value: Float
}
2018-11-20 22:21:38 +01:00
"""
Une demarche
"""
type Demarche {
2019-09-18 18:45:53 +02:00
annotationDescriptors: [ChampDescriptor!]!
2018-11-20 22:21:38 +01:00
archivedAt: ISO8601DateTime
2019-09-18 18:45:53 +02:00
champDescriptors: [ChampDescriptor!]!
2018-11-20 22:21:38 +01:00
createdAt: ISO8601DateTime!
"""
Déscription 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
"""
2019-09-26 14:57:58 +02:00
Dossiers déposés depuis la date.
2018-11-20 22:21:38 +01:00
"""
2019-09-26 14:57:58 +02:00
createdSince: ISO8601DateTime
2018-11-20 22:21:38 +01:00
"""
2019-09-26 14:57:58 +02:00
Returns the first _n_ elements from the list.
2018-11-20 22:21:38 +01:00
"""
2019-09-26 14:57:58 +02:00
first: Int
2018-11-20 22:21:38 +01:00
"""
Returns the last _n_ elements from the list.
"""
last: Int
"""
2019-09-26 14:57:58 +02:00
L'ordre des dossiers.
"""
order: Order = ASC
"""
Dossiers avec statut.
"""
state: DossierState
2018-11-20 22:21:38 +01:00
"""
2019-09-26 14:57:58 +02:00
Dossiers mis à jour depuis la date.
"""
updatedSince: ISO8601DateTime
2018-11-20 22:21:38 +01:00
): DossierConnection!
groupeInstructeurs: [GroupeInstructeur!]!
2018-11-20 22:21:38 +01:00
id: ID!
"""
2019-09-18 18:45:53 +02:00
Le numero de la démarche.
2018-11-20 22:21:38 +01:00
"""
number: Int!
2019-11-07 13:34:19 +01:00
"""
L'état de la démarche.
"""
2018-11-20 22:21:38 +01:00
state: DemarcheState!
title: String!
updatedAt: ISO8601DateTime!
}
enum DemarcheState {
"""
2019-09-18 18:45:53 +02:00
Archivée
2018-11-20 22:21:38 +01:00
"""
archivee
"""
Brouillon
"""
brouillon
"""
2019-09-18 18:45:53 +02:00
Publiée
2018-11-20 22:21:38 +01:00
"""
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!
}
2018-11-20 22:21:38 +01:00
"""
Un dossier
"""
type Dossier {
annotations: [Champ!]!
2019-09-18 18:45:53 +02:00
archived: Boolean!
2018-11-23 18:54:51 +01:00
avis: [Avis!]!
champs: [Champ!]!
2018-11-20 22:21:38 +01:00
"""
2019-09-18 18:45:53 +02:00
Date de dépôt.
"""
datePassageEnConstruction: ISO8601DateTime!
"""
Date de passage en instruction.
"""
datePassageEnInstruction: ISO8601DateTime
"""
Date de traitement.
2018-11-20 22:21:38 +01:00
"""
2019-09-18 18:45:53 +02:00
dateTraitement: ISO8601DateTime
2018-11-20 22:21:38 +01:00
id: ID!
instructeurs: [Profile!]!
2018-11-23 18:54:51 +01:00
messages: [Message!]!
2018-11-20 22:21:38 +01:00
motivation: String
2019-09-18 18:45:53 +02:00
motivationAttachmentUrl: URL
"""
Le numero du dossier.
"""
number: Int!
2018-11-20 22:21:38 +01:00
"""
L'état du dossier.
"""
state: DossierState!
2019-09-18 18:45:53 +02:00
"""
Date de dernière mise à jour.
"""
2018-11-20 22:21:38 +01:00
updatedAt: ISO8601DateTime!
usager: Profile!
}
"""
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!
}
"""
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!
2019-11-07 13:34:19 +01:00
"""
Libellé du champ.
"""
label: String!
2019-11-07 13:34:19 +01:00
"""
La valeur du champ sous forme texte.
"""
2019-09-18 18:45:53 +02:00
stringValue: String
}
2018-11-20 22:21:38 +01:00
enum DossierState {
"""
Accepté
"""
accepte
"""
En construction
"""
en_construction
"""
En instruction
"""
en_instruction
"""
Refusé
"""
refuse
"""
Sans suite
"""
sans_suite
}
interface GeoArea {
geometry: GeoJSON!
2019-09-18 18:45:53 +02:00
id: ID!
source: GeoAreaSource!
}
enum GeoAreaSource {
"""
2019-11-07 13:52:48 +01:00
Parcelle cadastrale
"""
cadastre
"""
2019-11-07 13:52:48 +01:00
Quartier prioritaire
"""
quartier_prioritaire
"""
2019-11-07 13:52:48 +01:00
Sélection utilisateur
"""
selection_utilisateur
}
type GeoJSON {
coordinates: Coordinates!
type: String!
}
"""
Un groupe instructeur
"""
type GroupeInstructeur {
id: ID!
instructeurs: [Profile!]!
label: String!
}
2018-11-20 22:21:38 +01:00
"""
An ISO 8601-encoded datetime
"""
scalar ISO8601DateTime
type IntegerNumberChamp implements Champ {
id: ID!
2019-11-07 13:34:19 +01:00
"""
Libellé du champ.
"""
label: String!
2019-11-07 13:34:19 +01:00
"""
La valeur du champ sous forme texte.
"""
2019-09-18 18:45:53 +02:00
stringValue: String
value: Int
}
2019-09-18 18:45:53 +02:00
type LinkedDropDownListChamp implements Champ {
id: ID!
2019-11-07 13:34:19 +01:00
"""
Libellé du champ.
"""
2019-09-18 18:45:53 +02:00
label: String!
primaryValue: String
secondaryValue: String
2019-11-07 13:34:19 +01:00
"""
La valeur du champ sous forme texte.
"""
2019-09-18 18:45:53 +02:00
stringValue: String
}
2018-11-23 18:54:51 +01:00
type Message {
2019-09-18 18:45:53 +02:00
attachmentUrl: URL
2018-11-23 18:54:51 +01:00
body: String!
createdAt: ISO8601DateTime!
email: String!
2019-09-18 18:45:53 +02:00
id: ID!
}
type MultipleDropDownListChamp implements Champ {
id: ID!
2019-11-07 13:34:19 +01:00
"""
Libellé du champ.
"""
2019-09-18 18:45:53 +02:00
label: String!
2019-11-07 13:34:19 +01:00
"""
La valeur du champ sous forme texte.
"""
2019-09-18 18:45:53 +02:00
stringValue: String
values: [String!]!
2018-11-23 18:54:51 +01:00
}
2018-11-20 22:21:38 +01:00
type Mutation {
"""
File information required to prepare a direct upload
"""
createDirectUpload(input: CreateDirectUploadInput!): CreateDirectUploadPayload
"""
Envoyer un message à l'usager du dossier.
"""
dossierEnvoyerMessage(input: DossierEnvoyerMessageInput!): DossierEnvoyerMessagePayload
2018-11-20 22:21:38 +01:00
}
2019-09-26 14:57:58 +02:00
enum Order {
"""
Lordre ascendant.
"""
ASC
"""
Lordre descendant.
"""
DESC
}
2018-11-20 22:21:38 +01:00
"""
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!
2019-09-18 18:45:53 +02:00
id: ID!
nomCom: String!
numero: String!
section: String!
source: GeoAreaSource!
surfaceIntersection: Float!
surfaceParcelle: Float!
}
type PersonneMorale {
adresse: String!
codeInseeLocalite: String!
codePostal: String!
complementAdresse: String!
libelleNaf: String!
localite: String!
naf: String!
nomVoie: String!
numeroVoie: String!
siegeSocial: String!
siret: String!
typeVoie: String!
}
type PieceJustificativeChamp implements Champ {
id: ID!
2019-11-07 13:34:19 +01:00
"""
Libellé du champ.
"""
label: String!
2019-11-07 13:34:19 +01:00
"""
La valeur du champ sous forme texte.
"""
2019-09-18 18:45:53 +02:00
stringValue: String
url: URL
}
2018-11-20 22:21:38 +01:00
type Profile {
email: String!
id: ID!
}
type QuartierPrioritaire implements GeoArea {
code: String!
commune: String!
geometry: GeoJSON!
2019-09-18 18:45:53 +02:00
id: ID!
nom: String!
source: GeoAreaSource!
}
2018-11-20 22:21:38 +01:00
type Query {
"""
Informations concernant une démarche.
"""
demarche(
"""
Numéro de la démarche.
"""
number: Int!
2018-11-20 22:21:38 +01:00
): Demarche!
"""
Informations sur un dossier d'une démarche.
"""
dossier(
"""
Numéro du dossier.
"""
number: Int!
2018-11-20 22:21:38 +01:00
): Dossier!
}
type RepetitionChamp implements Champ {
champs: [Champ!]!
id: ID!
2019-11-07 13:34:19 +01:00
"""
Libellé du champ.
"""
label: String!
2019-11-07 13:34:19 +01:00
"""
La valeur du champ sous forme texte.
"""
2019-09-18 18:45:53 +02:00
stringValue: String
}
type SelectionUtilisateur implements GeoArea {
geometry: GeoJSON!
2019-09-18 18:45:53 +02:00
id: ID!
source: GeoAreaSource!
}
type SiretChamp implements Champ {
etablissement: PersonneMorale
id: ID!
2019-11-07 13:34:19 +01:00
"""
Libellé du champ.
"""
label: String!
2019-11-07 13:34:19 +01:00
"""
La valeur du champ sous forme texte.
"""
2019-09-18 18:45:53 +02:00
stringValue: String
}
type TextChamp implements Champ {
id: ID!
2019-11-07 13:34:19 +01:00
"""
Libellé du champ.
"""
label: String!
2019-11-07 13:34:19 +01:00
"""
La valeur du champ sous forme texte.
"""
2019-09-18 18:45:53 +02:00
stringValue: String
value: String
}
enum TypeDeChamp {
"""
Adresse
"""
address
"""
Carte
"""
carte
"""
Case à cocher
"""
checkbox
"""
Civilité
"""
civilite
"""
Date
"""
date
"""
Date et Heure
"""
datetime
"""
Nombre décimal
"""
decimal_number
"""
Départements
"""
departements
"""
Lien vers un autre dossier
"""
dossier_link
"""
Menu déroulant
"""
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
"""
Menu déroulant à 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
}
2018-11-20 22:21:38 +01:00
"""
A valid URL, transported as a string
"""
scalar URL
"""
Éreur de validation
"""
type ValidationError {
"""
A description of the error
"""
message: String!
}