openapi: 3.0.0

info:
  title: com.infomil.bill
  version: 1.0.0
  
servers:
  - url: https://hpcs.mservices.eu/Mobile/api
    description: Production
  - url: https://hpcs.mservices.dev.its.dnsi/Mobile/api
    description: Développement (interne)
  - url: https://hpcs.mservices.recette.its.dnsi/Mobile/api
    description: Recette (interne)
  - url: https://hpcs.mservices.image.its.dnsi/Mobile/api
    description: Image (interne)
  - url: https://moneleclerc-mockv2.herokuapp.com/Mobile/api
    description: Mock
  - url: http://localhost:5000/Mobile/api
    description: Mock local
    
tags:
  - name: authentification
  - name: photo
  - name: codeBarre
  - name: scan
  - name: stats
  - name: accueil
  - name: listeMemo
  - name: monCompte
  - name: tickets
  - name: parametrerMobile
  
    
paths:
  /Authentification/RecupererMagasinsPublic:
    post:
      tags:
        - authentification
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                CRC:
                  type: number
                  example: 0
                DATE_REQUETE:
                  type: string
                  example: "2020-09-25T22:02:49.189Z"
                NO_VERIFICATION:
                 type: string
                 format: base64
      responses:
        200:
          description: Magasins
          content:
            application/json:
              schema:
                type: object
                properties:
                  CR:
                    type: number
                    example: 0
                  CRC:
                    type: number
                    example: 0
                  DONNEES:
                    type: array
                    items:
                      $ref: "#/components/schemas/Magasin"
                      
  /Authentification/Authentifier:
    post:
      tags:
        - authentification
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                CRC:
                  type: number
                  example: 0
                DATA:
                  type: string
                  format: base64
                  description: "Payload JSON chiffré avec AES 256 (AES CBC PKCS7)"
                DATE_REQUETE:
                  type: string
                  example: "2020-09-25T22:02:49.189Z"
                IV:
                  type: string
                  format: base64
                  example: "WQbZZ/ccnrP+mI4FLdP6KA=="
                  description: "Valeur aléatoire de 16 octets encodé en Base64"
                NO_VERIFICATION:
                  type: string
                  format: base64
      responses:
        200:
          description: "Token + MonMagasin"
          content:
            application/json:
              schema:
                type: object
                properties:
                  CR:
                    type: number
                    example: 0
                  DONNEES:
                    $ref: '#/components/schemas/Referentiels'
                  JETON:
                    type: string
                    format: uuid
                  NO_MAGASIN_REFERENCE:
                    type: string
                    example: "0033"
                    
  /Magasin/RecupererMagasins:
    post:
      tags:
        - magasin
      requestBody:
        $ref: '#/components/requestBodies/BaseRequest'
      responses:
        200:
          description: Liste des magasins
          content:
            application/json:
              schema:
                type: object
                properties:
                  CR:
                    type: number
                    example: 0
                  CRC:
                    type: number
                    example: 0
                  DONNEES:
                    type: array
                    items:
                      $ref: '#/components/schemas/Magasin'
                      
  /Magasin/ChangerMagasin:
    post:
      tags:
        - magasin
      requestBody:
        $ref: '#/components/requestBodies/ChangerMagasin'
      responses:
        200:
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  CR:
                    type: number
                    example: 0
                  DONNEES:
                    $ref: '#/components/schemas/Referentiels'
                    
  /Magasin/RecupererCarburants:
    post:
      tags:
        - magasin
      requestBody:
        $ref: '#/components/requestBodies/BaseRequest'
      responses:
        200:
          description: Liste des carburants
          content:
            application/json:
              schema:
                type: object
                properties:
                  CR:
                    type: number
                    example: 0
                  CRC:
                    type: number
                    example: 0
                  DONNEES:
                    type: object
                    properties:
                      CARBURANTS:
                        $ref: '#/components/schemas/ListeCarburants'
                      SOUS_TITRE_RELEVE:
                        type: string
                        example: "Prix des carburants relevés le 08/09/20"
                        
  /Referentiels/RecupererReferentiels:
    post:
      tags:
        - referentiels
      requestBody:
        $ref: '#/components/requestBodies/RecupererReferentiels'
      responses:
        200:
          description: Liste de referentiels
          content:
            application/json:
              schema:
                type: object
                properties:
                  CR:
                    type: number
                    example: 0
                  CRC:
                    type: number
                    example: 0
                  DONNEES:
                    $ref: '#/components/schemas/Referentiels'
                    
        
                        
  /Document/ObtenirDocumentsDuMagasin:
    post:
      tags:
        - document
      requestBody:
        $ref: '#/components/requestBodies/BaseRequest'
      responses:
        200:
          description: Liste des documents
          content:
            application/json:
              schema:
                type: object
                properties:
                  CR:
                    type: number
                    example: 0
                  CRC:
                    type: number
                    example: 0
                  DONNEES:
                    type: array
                    items:
                      $ref: '#/components/schemas/Document'
                      
  /Document/ObtenirDocument:
    get:
      parameters:
        - name: id
          in: query
          required: true
          schema:
            type: number
            example: 27
      responses:
        200:
          description: Document
          content:
            application/pdf:
              schema:
                type: string
                format: binary
    
                  
                      
  
  /MonCompte/VerifierValiditeCodeSecret:
    post:
      tags:
        - monCompte
      requestBody:
        $ref: '#/components/requestBodies/CreerCarte'
      responses:
        200:
          description: Result
          content:
            application/json:
              schema:
                type: object
                properties:
                  CR:
                    type: number
                    example: 0
                  MSGERR:
                    type: string
                    example: "Le code confidentiel ne respecte pas les règles de sécurité"
      
  /MonCompte/CreerCarte:
    post:
      tags:
        - monCompte
      requestBody:
        $ref: '#/components/requestBodies/CreerCarte'
      responses:
        200:
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  CR:
                    type: number
                    example: 0
                  DONNEES:
                    type: string
                    example: "2950972719579"
                    description: "Numero de carte"
                    
  /MonCompte/EnregistrerCarteFidelitev2:
    post:
      tags:
        - monCompte
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                CRC:
                  type: number
                  example: 0
                DATE:
                  type: string
                  format: date-time
                DATE_REQUETE:
                  type: string
                  format: date-time
                DateGenerated:
                  type: string
                  format: date-time
                HASH:
                  type: string
                  format: base64
                JETON:
                  type: string
                  format: uuid
                LISTE_REFERENTIEL:
                  type: object
                  properties:
                    CARTE_FIDELITE_V2:
                      type: object
                      properties:
                        CRC:
                          type: number
                          example: 0
                        ENVOYER_DONNEES:
                          type: boolean
                NO_VERIFICATION:
                  type: string
                  format: base64
                NUMERO_CARTE_FIDELITE:
                  type: string
                  example: "2950972719579"
      responses:
        200:
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  CR:
                    type: number
                    example: 0
                  CRC:
                    type: number
                    example: 0
                  DONNEES:
                    type: object
                    properties:
                      REFERENTIELS:
                        type: object
                        properties:
                          CARTE_FIDELITE_V2:
                            type: object
                            properties:
                              CRC:
                                type: number
                                example: 0
                              DONNEES:
                                $ref: '#/components/schemas/MesInformations'
      
  /MonCompte/MesInformationsv2:
    post:
      tags:
        - monCompte
      requestBody:
        $ref: '#/components/requestBodies/BaseRequest'
      responses:
        200:
          description: Mes informations
          content:
            application/json:
              schema:
                type: object
                properties:
                  CR:
                    type: number
                    example: 0
                  CRC:
                    type: number
                    example: 0
                  DONNEES:
                    $ref: '#/components/schemas/MesInformations'
                    
  /MonCompte/BonsAchats:
    post:
      tags:
        - monCompte
      requestBody:
        $ref: '#/components/requestBodies/BaseRequest'
      responses:
        200:
          description: Bons d'achat
          content:
            application/json:
              schema:
                type: object
                properties:
                  CR:
                    type: number
                    example: 0
                  CRC:
                    type: number
                    example: 0
                  DONNEES:
                    type: object
                    properties:
                      BONS:
                        type: array
                        items:
                          type: object #TODO
                      TEXTE_CONDITIONS_BON_ACHAT:
                        type: string
                        example: "Bon d'achat non cessible et non remboursable utilisable dans votre magasin E.Leclerc de {0}.\nA valoir sur vos prochains achats une seule fois pour un montant d'achat supérieur à celui du bon.\nValable du {1} au {2}"
                      TEXTE_CONDITIONS_GENERALES:
                        type: string
                        example: "Bon d'achat valable dans votre centre E.Leclerc émetteur, à valoir sur vos prochains achats pour la période de validité indiquée sur le bon, hors carburant, hors carte cadeau, hors E.Leclerc Drive.\nUtilisable en une seule fois sur présentation à la caisse du bon d'achat et de la carte E.Leclerc du titulaire, pour un montant d'achat supérieur à celui du bon.\nPas de rendu de monnaie, aucun remboursement total ou partiel du bon, pas d'échange contre des espèces."
                        
  /ParametrerMobile/Recuperer:
    post:
      tags:
        - parametrerMobile
      requestBody:
        $ref: '#/components/requestBodies/BaseRequest'
      responses:
        200:
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  CR:
                    type: number
                    example: 0
                  CRC:
                    type: number
                    example: 0
                  DONNEES:
                    type: object
                    properties:
                      PARAMETRES:
                        type: array
                        items:
                          $ref: '#/components/schemas/Parametre'
                      URL_DONNER_AVIS:
                        type: string
                        format: url
                        example: "http://www.e-leclerc.com/catalogue/questions-frequentes/quest-serv-cli"
                        
  /ParametrerMobile/MajInfosNotifV2:
    post:
      tags:
        - parametrerMobile
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                CRC:
                  type: number
                  example: 0
                DATE_REQUETE:
                  type: string
                  format: date-time
                JETON:
                  type: string
                  format: uuid
                MOBINAUT_ID:
                  type: string
                  format: uuid
                NO_JETON_NOTIF:
                  type: string
                  example: "frIe96TO4Ws:AMA81bFGP0UBKEcbdtS9ZBeW4OOvMnGd6q16sSV69zcXWpXBa24znLh01NFkawHVM-MykzYO9aVaMvQuywtyIX1gnSKM9Y9LV5c4JeIMCeoiz5q6yfnH7U4THkwKoW3BqeKAwR8hPe_8"
                NO_VERIFICATION:
                  type: string
                  format: base64
                OPTIN_JEUX:
                  type: string
                  example: "Y"
                OPTIN_COMM:
                  type: string
                  example: "Y"
      responses:
        200:
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  CR:
                    type: number
                    example: 0
                
                        
  /TicketsFactures/Lister:
    post:
      tags:
        - tickets
      requestBody:
        $ref: '#/components/requestBodies/BaseRequest'
      responses:
        200:
          description: Tickets
          content:
            application/json:
              schema:
                type: object
                properties:
                  CR:
                    type: number
                    example: 0
                  CRC:
                    type: number
                    example: 0
                  DONNEES:
                    type: array
                    items:
                      $ref: '#/components/schemas/TicketsMagasin'
                      
  /TicketsFacture/Detail:
    post:
      tags:
        - tickets
      requestBody:
        $ref: '#/components/requestBodies/TicketDetail'
      responses:
        200:
          description: Detail d'un ticket
          content:
            application/json:
              schema:
                type: object
                properties:
                  CR:
                    type: number
                    example: 0
                  CRC:
                    type: number
                    example: 0
                  DONNEES:
                    $ref: '#/components/schemas/DetailTicket'
                    
  /TicketsFacture/DuplicataFacture:
    post:
      tags:
        - tickets
      requestBody:
        $ref: '#/components/requestBodies/TicketDuplicataFacture'
      responses:
        200:
          description: Facture
          content:
            application/json:
              schema:
                type: object
                properties:
                  CR:
                    type: number
                    example: 0
                  CRC:
                    type: number
                    example: 0
                  DONNEES:
                    type: object
                    properties:
                      PDF:
                        type: string
                        description: "Fichier PDF encode en Base64"
                        format: base64
            

  /Photo/Obtenir:
    get:
      tags:
        - photo
      parameters:
        - name: idPhoto
          in: query
          required: true
          schema:
            type: number
            example: 6603475
      responses:
        200:
          description: Photo
          content:
            image/jpg:
              schema:
                type: string
                format: binary
                
  /Photo/ObtenirPhotoGalec:
    get:
      tags:
        - photo
      parameters:
        - name: id
          in: query
          required: true
          schema:
            type: number
            example: 13535
      responses:
        200:
          description: Photo
          content:
            image/jpg:
              schema:
                type: string
                format: binary
                
  /StickersPromo/StickerPromo.ashx:
    get:
      tags:
        - stickersPromo
      parameters:
        - name: type
          in: query
          required: true
          schema:
            type: number
            example: 2000
        - name: qte
          in: query
          required: true
          schema:
            type: number
            example: 1
        - name: val
          in: query
          required: true
          schema:
            type: number
            example: 1.00
        - name: unit
          in: query
          required: true
          schema:
            type: number
            example: 0
            enum:
              - 0 # Euros
              - 1 # Pourcentage
        - name: mindim
          in: query
          required: false
          description: "Hauteur de l'image"
          schema:
            type: number
            example: 128
        - name: prixhp
          in: query
          required: false
          description: "Prix Hors Promo"
          schema:
            type: number
            example: 1.79
        - name: cli
          in: query
          required: false
          schema:
            type: number
            example: 1
        - name: module
          in: query
          required: false
          schema:
            type: string
            example: "maSel"
      responses:
        200:
          description: Image
          content:
            image/png:
              schema:
                type: string
                format: binary

  /CodeBarre/Image:
    get:
      tags:
        - codeBarre
      parameters:
        - name: codeBarre
          description: Test
          in: query
          required: true
          schema:
            type: string
            example: "123456789"
      responses:
        '200':
          description: Image du code barre
          content:
            image/jpg:
              schema:
                type: string
                format: binary
                
  /Scan/Scanner:
    post:
      tags:
        - scan
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                CODE:
                  type: string
                  example: "3564700339398"
                CRC:
                  type: number
                  example: 0
                DATE_REQUETE:
                  type: string
                  example: "2020-09-28T00:55:13.053Z"
                JETON:
                  type: string
                NO_VERIFICATION:
                  type: string
                ORIGINE_CONSULTATION:
                  type: number
                  example: 4
                TYPE:
                  type: string
                  example: "EAN_13"
      responses:
        200:
          description: Resultat
          content:
            application/json:
              schema:
                type: object
                properties:
                  CR:
                    type: number
                    example: 0
                  CRC:
                    type: number
                    example: -603017097
                  DONNEES:
                    type: object
                    properties:
                      OBJET:
                        $ref: '#/components/schemas/InfosProduit'
                      TYPE:
                        type: string
                        example: "INFOS_PRODUIT"
                        
  /Stats/Envoyer:
    post:
      tags:
        - stats
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                CRC:
                  type: number
                  example: 0
                DATE_REQUETE:
                  type: string
                  format: date-time
                JETON:
                  type: string
                  format: uuid
                NO_VERIFICATION:
                  type: string
                  format: base64
                STATS:
                  type: array
                  items:
                    $ref: '#/components/schemas/Stat'
      responses:
        200:
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  CR:
                    type: number
                    example: 0
                  MSGERR:
                    type: string
                    example: ""
                    
  /Accueil/Informations:
    post:
      tags:
        - accueil
      requestBody:
        $ref: '#/components/requestBodies/BaseRequest'
      responses:
        200:
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  CR:
                    type: number
                    example: 0
                  CRC:
                    type: number
                    example: 0
                  DONNEES:
                    type: object
                    properties:
                      ACTUALITE_LOCALE:
                        type: array
                        items:
                          type: object
                      CONSEIL_DISPONIBLE:
                        type: boolean
                      GRATTAGE_DISPONIBLE:
                        type: boolean
                      LOTO_DISPONIBLE:
                        type: boolean
                      LOTO_JACKPOT_DISPONIBLE:
                        type: boolean
                      NOMBRE_ARTICLES_PROMO:
                        type: number
                      NOM_PRODUIT_MARCHE:
                        type: number
                      RECETTE_DISPONIBLE:
                        type: boolean
                      SELECTION_DISPONIBLE:
                        type: boolean
                      TOMBOLA_DISPONIBLE:
                        type: boolean
                  MSGERR:
                    type: string
                    example: ""
                    
  /ListeMemo/Recuperer:
    post:
      tags:
        - listeMemo
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                CRC:
                  type: number
                  example: 0
                DATE_REQUETE:
                  type: string
                  format: date-time
                JETON:
                  type: string
                  format: uuid
                NO_VERIFICATION:
                  type: string
                  format: base64
      responses:
        200:
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  CR:
                    type: number
                    example: 0
                  CRC:
                    type: number
                    example: 0
                  DONNEES:
                    type: object
                    properties:
                      TOKEN:
                        type: string
                        example: ""
                      URL_SITE_MEMO:
                        type: string
                        example: "https://www.lmemo.fr"
                        
  /Bons/Recuperer:
    post:
      tags:
        - bons
      requestBody:
        $ref: '#/components/requestBodies/BaseRequest'
      responses:
        200:
          description: Liste bons
          content:
            application/json:
              schema:
                type: object
                properties:
                  CR:
                    type: number
                    example: 0
                  CRC:
                    type: number
                    example: 0
                  DONNEES:
                    type: object
                    properties:
                      LIBELLE_BON_ACHAT:
                        type: string
                      LIBELLE_BON_CAISSE:
                        type: string
                      LIBELLE_MENTIONS_LEGALES_BR:
                        type: string
                      LIBELLE_MENTIONS_SANTE:
                        type: string
                      LIBELLE_REDUCTION_TEMPLATE:
                        type: string
                      LIBELLE_REDUCTION_TITRE:
                        type: string
                      LIBELLE_REDUCTION_VIDE:
                        type: string
                      LIBELLE_TEMPLATE_DATE_DISPONIBLE:
                        type: string
                      LIBELLE_TEMPLATE_DATE_VALIDITE:
                        type: string
                      LIBELLE_TEMPLATE_EN_EXCLUSIVITE:
                        type: string
                      LIBELLE_TEMPLATE_MES_EXCLUSIVITES:
                        type: string
                      LIBELLE_TEMPLATE_POUR_UN_MONTANT:
                        type: string
                      LIBELLE_TITRE_BON_ACHAT:
                        type: string
                      LIBELLE_TITRE_OFFRE_DU_MOIS:
                        type: string
                      LIBELLE_TITRE_PAGE_BONS_SUR_CARTE:
                        type: string
                      LIBELLE_TITRE_PAGE_MES_BONS:
                        type: string
                      LIBELLE_TITRE_PAGE_SELECTION_BONS:
                        type: string
                      LIBELLE_VERIFICATION_BON_NOK:
                        type: string
                      LIBELLE_VERIFICATION_BON_OK:
                        type: string 
                      LST_BONS:
                        type: array
                        items:
                          $ref: '#/components/schemas/Bon'
                          
  /MaSelection/Recuperer:
    post:
      tags:
        - maSelection
      requestBody:
        $ref: '#/components/requestBodies/BaseRequest'
      responses:
        200:
          description: Liste ma selection
          content:
            application/json:
              schema:
                type: object
                properties:
                  CR:
                    type: number
                    example: 0
                  CRC:
                    type: number
                    example: 0
                  DONNEES:
                    type: object
                    properties:
                      ARTICLES_PROMO:
                        type: object
                        properties:
                          ARTICLES:
                            type: array
                            items:
                              $ref: '#/components/schemas/ArticlePromo'
                      PRODUITS_PHARES:
                        type: object
                        properties:
                          ADuContenu:
                            type: boolean
                          ListeProduitPhare:
                            type: array
                            items:
                              type: object
                              
  /Marche/Recuperer:
    post:
      tags:
        - marche
      requestBody:
        $ref: '#/components/requestBodies/BaseRequest'
      responses:
        200:
          description: Liste des offres
          content:
            application/json:
              schema:
                type: object
                properties:
                  CR:
                    type: number
                    example: 0
                  CRC:
                    type: number
                    example: 0
                  DONNEES:
                    type: object
                    properties:
                      AFFICHAGE_ONGLET_OFFRES:
                        type: boolean
                      CR:
                        type: number
                        example: 0
                      OFFRES:
                        type: array
                        items:
                          $ref: '#/components/schemas/OffreMarche'
                      
              
                  
components:
  requestBodies:
    BaseRequest:
      required: true
      content:
        application/json:
          schema:
            type: object
            properties:
              CRC:
                type: number
                example: 0
              DATE_REQUETE:
                type: string
                format: date-time
              JETON:
                type: string
                format: uuid
              NO_VERIFICATION:
                type: string
                format: base64
                
    ChangerMagasin:
      required: true
      content:
        application/json:
          schema:
            type: object
            properties:
              CRC:
                type: number
                example: 0
              DATE_REQUETE:
                type: string
                format: date-time
              JETON:
                type: string
                format: uuid
              NO_VERIFICATION:
                type: string
                format: base64
              NO_MAGASIN:
                type: string
                example: "0033"
              LISTE_REFERENTIEL:
                $ref: '#/components/schemas/ListeReferentiel'
                
    RecupererReferentiels:
      required: true
      content:
        application/json:
          schema:
            type: object
            properties:
              CRC:
                type: number
                example: 0
              DATE_REQUETE:
                type: string
                format: date-time
              JETON:
                type: string
                format: uuid
              NO_VERIFICATION:
                type: string
                format: base64
              LISTE_REFERENTIEL:
                $ref: '#/components/schemas/ListeReferentiel'
                
    TicketDetail:
      required: true
      content:
        application/json:
          schema:
            type: object
            properties:
              CRC:
                type: number
                example: 0
              DATE_REQUETE:
                type: string
                format: date-time
              JETON:
                type: string
                format: uuid
              NO_VERIFICATION:
                type: string
                format: base64
              DATE:
                type: string
                format: date-time
                description: "Date d'emission du ticket"
              MAGASIN:
                type: string
                description: "NO_MAGASIN"
                example: "0033"
              ID:
                type: string
                description: "ID du Ticket"
                example: "00GS106X00"
                
    TicketDuplicataFacture:
      required: true
      content:
        application/json:
          schema:
            type: object
            properties:
              CRC:
                type: number
                example: 0
              DATE_REQUETE:
                type: string
                format: date-time
              JETON:
                type: string
                format: uuid
              NO_VERIFICATION:
                type: string
                format: base64
              NUMERO_FACTURE:
                type: string
                example: "0200012137"
              NUMERO_MAGASIN:
                type: string
                description: "NO_MAGASIN"
                example: "0033"
                
    CreerCarte:
      required: true
      content:
        application/json:
          schema:
            type: object
            properties:
              CIVILITE_CODE:
                type: string
                example: "3"
              CODE_SECRET:
                type: string
                example: "1234"
              CRC:
                type: number
                example: 0
              DATE_NAISSANCE:
                type: string
                format: date-time
              DATE_REQUETE:
                type: string
                format: date-time
              EMAIL:
                type: string
                example: "jdupont@gmail.com"
              JETON:
                type: string
                format: uuid
              NOM:
                type: string
                example: "DUPONT"
              NO_VERIFICATION:
                type: string
                format: base64
              OPTIN_MAIL:
                type: boolean
              OPTIN_PROFILAGE:
                type: boolean
              OPTIN_SMS:
                type: boolean
              OPTIN_TICKET_DEMAT:
                type: boolean
              PRENOM:
                type: string
                example: "Jean"
              TELEPHONE_PORTABLE:
                type: string
                example: "0605040302"
      

  schemas:
    Stat:
      type: object
      properties:
        CODE_STAT_SERVICE:
          type: string
          example: "ACCUEIL"
        JOUR:
          type: string
          format: date-time
          
    Bon:
      type: object
      properties:
        BON_CHARGE_SUR_CARTE:
          type: boolean
        COMPLEMENT:
          type: string
          example: "A VALOIR SUR L'ACHAT D'UN PRODUIT SHAMPOOING PETROLE HAHN ANTIPELLICULAIRE BIO OU FORTIFIANT BIO OU RE-DENSIFIEUR  BIO 250ML"
        DATE_FIN_VALIDITE:
          type: string
          format: date-time
        EANS_ELIGIBLES:
          type: array
          items:
            type: string
            example: "3140100394344"
        LIBELLE_COMMERCIAL:
          type: string
          example: "SHAMPOOING PÉTROLE HAHN BIO 250ML"
        NB_JOUR_VALIDATION_BON:
          type: number
          example: 30
        NB_QUANTITE_POUR_REDUCTION:
          type: number
          example: 1.0
        REDUCTION:
          type: number
          example: 0.7
        TEXTE_REDUCTION_AVEC_DEVISE_LIGNE_1:
          type: string
          example: "-0,70 €"
        TEXTE_REDUCTION_AVEC_DEVISE_LIGNE_2:
          type: string
          example: ""
        TYPE_BON:
          type: string
          example: "GALEC_INTERNET"
          enum:
            - "UNKOWN"
            - "GALEC_INTERNET"
            - "GALEC_CAISSE"
            - "BA"
            - "BR"
        URL_PHOTO:
          type: string
          format: url
          example: "https://hpcs.mservices.eu/mobile/api/Photo/ObtenirPhotoGalec?id=13539"
        URL_STICKER:
          type: string
          format: url
          example: "https://hpcs.mservices.eu/StickersPromo/StickerPromo.ashx?type=200&qte=1&val=0.70&unit=0&mindim=*MIN_SIZE*"
        
        
    MouvementAvantage:
      type: object
      properties:
        TYPE_MOUVEMENT:
          type: number
          example: 5
        VALEUR:
          type: string
          example: "1,24 €"
        VALEUR_NUMERIQUE:
          type: number
          example: 1.24
          
    Generosite:
      type: object
      properties:
        CUMUL_MOUVEMENTS_AVANTAGES:
          type: array
          items:
            $ref: '#/components/schemas/MouvementAvantage'
          
    MesInformations:
      type: object
      properties:
        ADRESSE:
          type: string
          example: "RUE DU PORT"
        ADRESSE_NUMERO:
          type: string
          example: "31"
        AFFICHER_COMPTEUR_DE_POINTS:
          type: boolean
        ANNEE_COURANTE:
          type: number
          example: 2020
        CAT_SOCIO_PRO:
          type: string
          example: "Etudiants"
        CAT_SOCIO_PRO_CODE:
          type: string
          example: "10"
        CIVILITE:
          type: string
          example: "Mr"
        CIVILITE_CODE:
          type: string
          example: "3"
        CODE_POSTAL:
          type: string
          example: "06400"
        CSTMAIL:
          type: boolean
        CSTMAIL_DISPO:
          type: boolean
        CSTPRF:
          type: boolean
        CSTSMS:
          type: boolean
        CSTSMS_DISPO:
          type: boolean
        DATE_NAISSANCE:
          type: string
          format: date-time
        EMAIL:
          type: string
          format: email
          example: "jdupont@gmail.com"
        EST_TICKET_DEMAT:
          type: boolean
        EST_TICKET_DEMAT_DISPO:
          type: boolean
        EST_VEROUILLE_KYC:
          type: boolean
        GENEROSITE:
          type: array
          items:
            $ref: '#/components/schemas/Generosite'
        LABEL_SOLDE_CARTE_FIDELITE:
          type: string
          example: "Tickets E.Leclerc\r\nimmédiatement disponibles"
        LABEL_SOLDE_CARTE_FIDELITE_HL:
          type: string
          example: "Dernier solde connu"
        NOM:
          type: string
          example: "DUPONT"
        NUMERO_CARTE:
          type: string
          example: "2950972719579"
        PAYS:
          type: string
          example: "FRANCE"
        PAYS_CODE:
          type: string
          example: "FR"
        PRENOM:
          type: string
          example: "Jean"
        SITUATION_MARITALE:
          type: string
          example: "Seul(e)"
        SITUATION_MARITALE_CODE:
          type: string
          example: "1"
        SOLDE_CARTE_FIDELITE:
          type: string
          example: "23,44 €"
        SOLDE_CARTE_FIDELITE_NUMERIQUE:
          type: number
          example: 23.44
        SOLDE_TEL_BONUS_MOIS:
          type: string
          example: ""
        STATUT_CLUB_JEUNE:
          type: number
          example: 1
        TELEPHONE_FIXE:
          type: string
          example: "0102030405"
        TELEPHONE_PORTABLE":
          type: string
          example: "0605040302"
        TYPE_HABITATION:
          type: string
          example: "Appartement"
        TYPE_HABITATION_CODE:
          type: string
          example: "1"
        VILLE:
          type: string
          example: "CANNES"
        
  
    InfosProduit:
      type: object
      properties:
        DESIGNATION:
          type: string
          example: "MOUCHOIRS 2 PLIS X110 CARESSE"
        EAN:
          type: string
          example: "3564700339398"
        EST_EN_PROMO:
          type: boolean
        EST_HEYO_GRATTAGE:
          type: boolean
        IMAGE_PRODUITS:
          type: array
          items:
            type: object
            properties:
              URL_PRODUIT:
                type: string
                example: "https://hpcs.mservices.eu/mobile/api/Photo/Obtenir?idPhoto=4118704"
                
    ArticlePromo:
      type: object
      properties:
        DESIGNATION:
          type: string
          example: "HIPRO FRUIT CITRON 2X160G"
        EAN:
          type: string
          example: "3033491482892"
        LIBELLE_GROUPE_CLE:
          type: string
          example: "TOP"
        LST_STICKERS:
          type: array
          items:
            type: string
            example: "https://hpcs.mservices.eu/StickersPromo/StickerPromo.ashx?type=208&qte=1&val=30&prix=1.25&prixhp=1.79&unit=1&cli=1&mindim=*MIN_SIZE*&module=maSel"
        ORDRE_NIV1:
          type: number
          example: 3
        ORDRE_NIV2:
          type: number
          example: 3
        ORDRE_NIV3:
          type: number
          example: 1
        PRIX:
          type: string
          example: "1,25 €"
        PRIX_NUMERIQUE:
          type: number
          example: 1.25
        URL_PHOTO:
          type: string
          format: url
          example: "https://hpcs.mservices.eu/mobile/api/Photo/Obtenir?idPhoto=3989431"
                
    Article:
      type: object
      properties:
        CODE:
          type: string
          example: "3168930009450"
        DESIGNATION:
          type: string
          example: "TWINUTS SALE 260G"
        PRIX:
          type: string
          example: "1,56 €"
        PRIX_NUMERIQUE:
          type: number
          example: 1.56
        MONTANT:
          type: string
          example: "1,56 €"
        MONTANT_NUMERIQUE:
          type: number
          example: 1.56
        QUANTITE:
          type: number
          example: 1
          
    Facture:
      type: object
      properties:
        NUMERO:
          type: string
          example: "0200010023"
        DATE:
          type: string
          format: date-time
        MONTANT:
          type: string
          example: "12,68 €"
        MONTANT_NUMERIQUE:
          type: number
          example: 12.68
          
    Ticket:
      type: object
      properties:
        ID:
          type: string
          example: "00GS106X00"
        DATE:
          type: string
          format: date-time
        MONTANT:
          type: string
          example: "12,68 €"
        MONTANT_NUMERIQUE:
          type: number
          example: 12.68
        FACTURES:
          type: array
          items:
            $ref: '#/components/schemas/Facture'
            
    TicketsMagasin:
      type: object
      properties:
        DUPLICATA_DISPONIBLE:
          type: boolean
        NB_JOURS_CONSERVATION:
          type: number
          example: 355
        NOM_MAGASIN:
          type: string
          example: "LE CANNET ROCHEVILLE"
        NO_MAGASIN:
          type: string
          example: "0033"
        TICKETS:
          type: array
          items:
            $ref: '#/components/schemas/Ticket'
            
    ApplicationPartenaire:
      type: object
      properties:
        ID:
          type: number
          example: 1
        LIBELLE:
          type: string
          example: "Drive"
        TYPE:
          type: string
          example: "APP"
        URL_APP:
          type: string
          example: "com.infomil.leclercdrive"
        URL_PHOTO_LOGO:
          type: string
          example: "https://hpcs.mservices.eu/mobile/api/Photo/Obtenir?idPhoto=6603435"
        URL_STORE:
          type: string
          example: "https://play.google.com/store/apps/details?id=com.infomil.leclercdrive"
            
    Magasin:
      type: object
      properties:
        ADRESSE:
          type: string
          example: "46 AV FRANKLIN ROOSEVELT"
        CODE_POSTAL:
          type: string
          example: "06110"
        DEPARTEMENT:
          type: string
          example: "06"
        LATITUDE:
          type: number
          example: 43.57246
        LONGITUDE:
          type: number
          example: 7.000745
        NOM_MAGASIN:
          type: string
          example: "LE CANNET ROCHEVILLE"
        NO_MAGASIN:
          type: string
          example: "0033"
        VILLE:
          type: string
          example: "LE CANNET ROCHEVILLE"
          
    MonMagasin:
      allOf:
        - $ref: '#/components/schemas/Magasin'
        - type: object
          properties:
            APPLICATIONS_PARTENAIRES:
              type: array
              items:
                $ref: '#/components/schemas/ApplicationPartenaire'
            CONCEPTS:
              type: array
              items:
                $ref: '#/components/schemas/ConceptMagasin'
            EXCEP_A_DU_CONTENU:
              type: boolean
            EXCEP_HORAIRES:
              type: string
              example: "Ouvert le lundi 28 septembre : 13h à 20h"
            EXCEP_TEXTE:
              type: string
              example: "Ouverture exceptionnelle"
            EXISTE_PLAN:
              type: boolean
            HORAIRES:
              type: array
              items:
                $ref: '#/components/schemas/Horaires'
            HORAIRES_EXCEPTIONNELS:
              type: array
              items:
                $ref: '#/components/schemas/HorairesExceptionnels'
            RESEAUX_SOCIAUX:
              type: array
              items:
                $ref: '#/components/schemas/ReseauSocial'
    
    Horaires:
      type: object
      properties:
        HORAIRES_P1:
          type: string
          example: "8h45 à 20h"
        HORAIRE_DEBUT:
          type: string
          example: "08:45:00"
        HORAIRE_FIN:
          type: string
          example: "20:00:00"
        JOUR:
          type: string
          example: "Lundi"
        ORDER:
          type: number
          example: 1
          
    HorairesExceptionnels:
      type: object
      properties:
        DATE:
          type: string
          format: date-time
        DATE_TEXTE:
          type: string
          example: "Le lundi 28 septembre"
        FERME:
          type: boolean
        HORAIRES_P1:
          type: string
          example: "8h45 à 20h"
        HORAIRE_DEBUT:
          type: string
          example: "08:45:00"
        HORAIRE_FIN:
          type: string
          example: "20:00:00"
        JOUR:
          type: string
          example: "Lundi"
        ORDER:
          type: number
          example: 1
    
    ConceptMagasin:
      type: object
      properties:
        ADRESSE:
          type: string
        CODE_POSTAL:
          type: string
        EXCEP_A_DU_CONTENU:
          type: boolean
        EXISTE_PLAN:
          type: boolean
        HORAIRES:
          type: array
          items:
            $ref: '#/components/schemas/Horaires'
        HORAIRES_EXCEPTIONNELS:
          type: array
          items:
            $ref: '#/components/schemas/HorairesExceptionnels'
        ID_CONCEPT_MAGASIN:
          type: number
        LATITUDE:
          type: number
        LONGITUDE:
          type: number
        LIBELLE:
          type: string
          example: "Optique"
        LIBELLE_PERSONNALISE:
          type: string
          example: ""
        TELEPHONE:
          type: string
          example: "01 02 03 04 05"
        URL_LOGO:
          type: string
          format: url
          example: "https://hpcs.mservices.eu/mobile/api/Photo/Obtenir?idPhoto=6603465"
        VILLE:
          type: string
            
    ReseauSocial:
      type: object
      properties:
        ID:
          type: string
          example: ""
        TYPE:
          type: string
          example: "FACEBOOK"
          enum:
            - "FACEBOOK"
            - "TWITTER"
            - "INSTAGRAM"
            - "PINTEREST"
          
    Service:
      type: object
      properties:
        CODE_SERVICE:
          type: string
          example: "Bons"
        IS_HTML:
          type: boolean
        URI_SERVICE:
          type: string
          example: "https://hpcs.mservices.eu/mobile/api/Bons/"
          
    Services:
      type: object
      properties:
        CRC:
          type: number
          example: 0
        DONNEES:
          type: array
          items:
            $ref: '#/components/schemas/Service'
            
    Parametre:
      type: object
      properties:
        CLE:
          type: string
          example: "MISE_EN_VEILLE"
        VALEUR:
          type: string
          example: "false"
            
    DetailTicket:
      type: object
      properties:
        ID:
          type: string
          example: "00GS106X00"
        DATE:
          type: string
          format: date-time
        MONTANT:
          type: string
          example: "12,68 €"
        MONTANT_NUMERIQUE:
          type: number
          example: 12.68
        ARTICLES_A_FACTURER:
          type: array
          items:
            $ref: '#/components/schemas/Article'
        ARTICLES_DEJA_FACTURES:
          type: array
          items:
            $ref: '#/components/schemas/Article'
        TICKET_PAPIER:
          type: string
          description: "Version HTML du ticket papier"
        TYPE_FACTURATION:
          type: number
          example: 0
        TICKET_FACTURABLE:
          type: boolean
          
    ListeReferentiel:
      type: object
      properties:
        DOCUMENT:
          $ref: '#/components/schemas/Referentiel'
        MAGASINS:
          $ref: '#/components/schemas/Referentiel'
        MON_MAGASIN:
          $ref: '#/components/schemas/Referentiel'
        PROSPECTUS:
          $ref: '#/components/schemas/Referentiel'
        SERVICES:
          $ref: '#/components/schemas/Referentiel'
          
    Referentiel:
      type: object
      properties:
        CRC:
          type: number
          example: 0
        ENVOYER_DONNEES:
          type: boolean
          
    Referentiels:
      type: object
      properties:
        BANNIERE:
          type: object
          properties:
            CRC:
              type: number
              example: 0
            DONNEES:
              type: object
        BANNIERE_JEU:
          type: object
          properties:
            CRC:
              type: number
              example: 0
            DONNEES:
              type: object
        BON_D_ACHAT:
          type: object
          properties:
            CRC:
              type: number
              example: 0
            DONNEES:
              type: object
        DOCUMENT:
          type: object
          properties:
            CRC:
              type: number
              example: 0
            DONNEES:
              type: array
              items:
                type: object
        LIBELLE:
          type: object
          properties:
            CRC:
              type: number
              example: 0
        MON_MAGASIN:
          type: object
          properties:
            CRC:
              type: number
              example: 0
            DONNEES:
              $ref: '#/components/schemas/MonMagasin'
        PROSPECTUS:
          type: object
          properties:
            CRC:
              type: number
              example: 0
            DONNEES:
              type: object
        SERVICES:
          type: object
          properties:
            CRC:
              type: number
              example: 0
            DONNEES:
              type: array
              items:
                $ref: '#/components/schemas/Service'
        VERSION:
          type: object
          properties:
            CRC:
              type: number
              example: 0
            DONNEES:
              type: string
              example: "20.5.0.1"
              
    ListeCarburants:
      type: array
      items:
        $ref: '#/components/schemas/Carburant'
    
    Carburant:
      type: object
      properties:
        COULEUR:
          type: string
          example: "#FFA534"
        PRIX:
          type: string
          example: "1.152"
        TITRE:
          type: string
          example: "B7-Gazole"
          
    Document:
      type: object
      properties:
        CODE_DOC:
          type: string
          example: "REG"
        CODE_SERVICE:
          type: string
          example: "JeuGrattage"
        FORMAT_DOC:
          type: string
          example: "application/pdf"
        NUMERO_VERSION:
          type: string
          example: "1"
        TITRE_DOC:
          type: string
          example: "Règlement"
        URL_CONTENU:
          type: string
          format: url
          example: "https://hpcs.mservices.eu/mobile/api/Document/ObtenirDocument?id=27"
          
    ProduitMarche:
      type: object
      properties:
        DATE_FIN_VALIDITE:
          type: string
          format: date-time
        HAUTEUR_IMAGE:
          type: number
          example: 220
        ID_PRODUIT:
          type: number
          example: 94435
        LABELS:
          type: array
          items:
            type: object
        LARGEUR_IMAGE:
          type: number
          example: 220
        LIBELLE_LIGNE_1:
          type: string
          example: "Dos de cabillaud"
        LIBELLE_LIGNE_2:
          type: string
          example: "Barquette de 4 minimum"
        MENTIONS_LEGALES:
          type: string
          example: ""
        MENTION_SANTE:
          type: string
          example: "Pour votre santé, pratiquez une activité physique régulière. www.mangerbouger.fr"
        ORIGINE:
          type: string
          example: "ORIGINE : ATLANTIQUE NORD-EST"
        ORIGINE_BRUT:
          type: string
          example: "ATLANTIQUE NORD-EST"
        PRIX:
          type: string
          example: "15,76 €/kg"
        PRIX_NUMERIQUE:
          type: number
          example: 15.76
        TEXTE_VALIDITE:
          type: string
          example: "Offre Valable jusqu'au  samedi 10 octobre 2020 \r\nDans la limite des stocks disponibles. \r\nPhoto non contractuelle"
        TYPE_UNITE_PRIX:
          type: number
          example: 2
        UNITE_PRIX:
          type: string
          example: "€/kg"
        URL_IMAGE:
          type: string
          format: url
          example: "https://hpcs.mservices.eu/mobile/api/Photo/Obtenir?idPhoto=6674050"
          
    OffreMarche:
      type: object
      properties:
        CATEGORIE:
          type: string
          example: "La Poissonnerie"
        COULEUR:
          type: string
          example: "#59C6F2"
        ID:
          type: number
          example: 1
        PRODUITS:
          type: array
          items:
            $ref: '#/components/schemas/ProduitMarche'
        URL_ICONE:
          type: string
          format: url
          example: "https://hpcs.mservices.eu/mobile/api/Photo/Obtenir?idPhoto=6603511"
        URL_IMAGE:
          type: string
          format: url
          example: "https://hpcs.mservices.eu/mobile/api/Photo/Obtenir?idPhoto=6603503"
