{
    "openapi": "3.0.0",
    "info": {
        "title": "LADC API",
        "version": "1.0.0"
    },
    "paths": {
        "/api/activities": {
            "get": {
                "summary": "Get list of activities",
                "operationId": "964ff9b15e653bc27f4ba7788ac1839f",
                "parameters": [
                    {
                        "name": "term",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Successful operation",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "array",
                                    "items": {
                                        "$ref": "#/components/schemas/Activity"
                                    }
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "api_key": []
                    }
                ]
            }
        },
        "/api/activities/{keyname}": {
            "get": {
                "summary": "Get a specific activity",
                "operationId": "56efd4ea9c1e9098da50e5be7cbe38bf",
                "parameters": [
                    {
                        "name": "keyname",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Successful operation",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Activity"
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "Activity not found"
                    }
                },
                "security": [
                    {
                        "api_key": []
                    }
                ]
            }
        },
        "/api/ads": {
            "get": {
                "summary": "Get list of ads",
                "operationId": "6ee6f56af84686f64bc524898f1c9a3b",
                "parameters": [
                    {
                        "name": "user_id",
                        "in": "query",
                        "schema": {
                            "type": "user_id"
                        }
                    },
                    {
                        "name": "rubrique",
                        "in": "query",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "fonds-de-commerce",
                                "locaux-commerciaux"
                            ]
                        }
                    },
                    {
                        "name": "type",
                        "in": "query",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "vente",
                                "location"
                            ]
                        }
                    },
                    {
                        "name": "type_fdc",
                        "in": "query",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "vente",
                                "location-gerance",
                                "licences"
                            ]
                        }
                    },
                    {
                        "name": "sous_rubrique",
                        "in": "query",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "bureaux",
                                "locaux-murs-de-boutique",
                                "entrepots-locaux-d-activites",
                                "terrains"
                            ]
                        }
                    },
                    {
                        "name": "type_location",
                        "in": "query",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "tous",
                                "pure",
                                "droits-entree"
                            ]
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Successful operation",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "array",
                                    "items": {
                                        "$ref": "#/components/schemas/Ad"
                                    }
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "api_key": []
                    }
                ]
            },
            "post": {
                "summary": "Create a new ad",
                "operationId": "a528de3f8f551a063563d7b3970e8c39",
                "requestBody": {
                    "required": true,
                    "content": {
                        "multipart/form-data": {
                            "schema": {
                                "required": [
                                    "user_id",
                                    "titre",
                                    "localisation"
                                ],
                                "properties": {
                                    "user_id": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "code_agence": {
                                        "type": "string",
                                        "example": "A001"
                                    },
                                    "reference": {
                                        "type": "string",
                                        "example": "R001"
                                    },
                                    "rubrique": {
                                        "type": "string",
                                        "enum": [
                                            "fonds-de-commerce",
                                            "locaux-commerciaux"
                                        ]
                                    },
                                    "type": {
                                        "type": "string",
                                        "enum": [
                                            "vente",
                                            "location"
                                        ]
                                    },
                                    "type_fdc": {
                                        "type": "string",
                                        "enum": [
                                            "vente",
                                            "location-gerance",
                                            "licences"
                                        ]
                                    },
                                    "sous_rubrique": {
                                        "type": "string",
                                        "enum": [
                                            "bureaux",
                                            "locaux-murs-de-boutique",
                                            "entrepots-locaux-d-activites",
                                            "terrains"
                                        ]
                                    },
                                    "type_location": {
                                        "type": "string",
                                        "enum": [
                                            "tous",
                                            "pure",
                                            "droits-entree"
                                        ]
                                    },
                                    "murs": {
                                        "type": "boolean",
                                        "default": false,
                                        "example": false
                                    },
                                    "country_id": {
                                        "type": "string",
                                        "example": "FR"
                                    },
                                    "localisation": {
                                        "type": "string",
                                        "example": "V16951"
                                    },
                                    "titre": {
                                        "type": "string",
                                        "example": "Ad Title"
                                    },
                                    "description": {
                                        "type": "string",
                                        "example": "Ad Description"
                                    },
                                    "type_bail": {
                                        "type": "string",
                                        "example": "Type Bail"
                                    },
                                    "montant_loyer": {
                                        "type": "string",
                                        "example": "1000"
                                    },
                                    "montant_charges": {
                                        "type": "string",
                                        "example": "100"
                                    },
                                    "horaires": {
                                        "type": "string",
                                        "example": "9am - 5pm"
                                    },
                                    "conges": {
                                        "type": "string",
                                        "example": "None"
                                    },
                                    "tenue_depuis": {
                                        "type": "string",
                                        "example": "2010"
                                    },
                                    "surface": {
                                        "type": "string",
                                        "example": "100sqm"
                                    },
                                    "surface_m2": {
                                        "type": "number",
                                        "format": "float",
                                        "example": 100
                                    },
                                    "terrasse": {
                                        "type": "boolean",
                                        "default": false,
                                        "example": false
                                    },
                                    "vitrine": {
                                        "type": "boolean",
                                        "default": false,
                                        "example": false
                                    },
                                    "metres_lineaires": {
                                        "type": "string",
                                        "example": "10"
                                    },
                                    "nb_place_salle": {
                                        "type": "string",
                                        "example": "50"
                                    },
                                    "nb_places_terrasse": {
                                        "type": "string",
                                        "example": "20"
                                    },
                                    "nb_chambres": {
                                        "type": "string",
                                        "example": "2"
                                    },
                                    "piscine": {
                                        "type": "boolean",
                                        "default": false,
                                        "example": false
                                    },
                                    "nb_etoiles": {
                                        "type": "string",
                                        "example": "5"
                                    },
                                    "type_logement": {
                                        "type": "string",
                                        "example": "Apartment"
                                    },
                                    "materiel": {
                                        "type": "string",
                                        "example": ""
                                    },
                                    "ca_n_1": {
                                        "type": "string",
                                        "example": ""
                                    },
                                    "ca_n_2": {
                                        "type": "string",
                                        "example": ""
                                    },
                                    "ca_n_3": {
                                        "type": "string",
                                        "example": ""
                                    },
                                    "ebe_n_1": {
                                        "type": "string",
                                        "example": ""
                                    },
                                    "ebe_n_2": {
                                        "type": "string",
                                        "example": ""
                                    },
                                    "ebe_n_3": {
                                        "type": "string",
                                        "example": ""
                                    },
                                    "res_n_1": {
                                        "type": "string",
                                        "example": ""
                                    },
                                    "res_n_2": {
                                        "type": "string",
                                        "example": ""
                                    },
                                    "res_n_3": {
                                        "type": "string",
                                        "example": ""
                                    },
                                    "rem_n_1": {
                                        "type": "string",
                                        "example": ""
                                    },
                                    "rem_n_2": {
                                        "type": "string",
                                        "example": ""
                                    },
                                    "rem_n_3": {
                                        "type": "string",
                                        "example": ""
                                    },
                                    "ticket_moyen": {
                                        "type": "string",
                                        "example": ""
                                    },
                                    "dpe": {
                                        "type": "string",
                                        "example": ""
                                    },
                                    "dpe_lettre": {
                                        "type": "string",
                                        "example": "A"
                                    },
                                    "ges": {
                                        "type": "string",
                                        "example": ""
                                    },
                                    "ges_lettre": {
                                        "type": "string",
                                        "example": "A"
                                    },
                                    "offre": {
                                        "type": "string",
                                        "example": ""
                                    },
                                    "forfait": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "opt_tete_rubrique": {
                                        "type": "boolean",
                                        "default": false,
                                        "example": false
                                    },
                                    "date_tete_rubrique": {
                                        "type": "string",
                                        "format": "date-time",
                                        "example": "2023-01-01"
                                    },
                                    "date_end_tete_rubrique": {
                                        "type": "string",
                                        "format": "date-time",
                                        "example": "2023-01-01"
                                    },
                                    "opt_urgent": {
                                        "type": "boolean",
                                        "default": false,
                                        "example": false
                                    },
                                    "opt_vitrine": {
                                        "type": "boolean",
                                        "default": false,
                                        "example": false
                                    },
                                    "date_vitrine": {
                                        "type": "string",
                                        "format": "date-time",
                                        "example": "2023-01-01"
                                    },
                                    "date_end_vitrine": {
                                        "type": "string",
                                        "format": "date-time",
                                        "example": "2023-01-01"
                                    },
                                    "prix": {
                                        "type": "integer",
                                        "example": 1000
                                    },
                                    "loyer": {
                                        "type": "number",
                                        "format": "float",
                                        "example": 500
                                    },
                                    "charges": {
                                        "type": "number",
                                        "format": "float",
                                        "example": 100
                                    },
                                    "prix_droit_au_bail": {
                                        "type": "integer",
                                        "example": 1000
                                    },
                                    "prix_pas_de_porte": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "verified": {
                                        "type": "boolean",
                                        "default": true,
                                        "example": true
                                    },
                                    "published": {
                                        "type": "boolean",
                                        "default": false,
                                        "example": false
                                    },
                                    "date_published": {
                                        "type": "string",
                                        "format": "date-time",
                                        "example": "2023-01-01"
                                    },
                                    "date_end_published": {
                                        "type": "string",
                                        "format": "date-time",
                                        "example": "2023-12-31"
                                    },
                                    "extraction": {
                                        "type": "boolean",
                                        "default": false,
                                        "example": false
                                    },
                                    "situation": {
                                        "type": "string",
                                        "example": "Situation Example"
                                    },
                                    "fermeture_hebdo": {
                                        "type": "string",
                                        "example": "Closed on Sundays"
                                    },
                                    "prix_caution": {
                                        "type": "number",
                                        "format": "float",
                                        "example": 500
                                    },
                                    "loyer_m2": {
                                        "type": "number",
                                        "format": "float",
                                        "example": 10
                                    },
                                    "longitude": {
                                        "type": "number",
                                        "format": "float",
                                        "example": -118.2437
                                    },
                                    "latitude": {
                                        "type": "number",
                                        "format": "float",
                                        "example": 34.0522
                                    },
                                    "license": {
                                        "type": "string",
                                        "example": ""
                                    },
                                    "mandataire_nom": {
                                        "type": "string",
                                        "example": "John Doe"
                                    },
                                    "mandataire_email": {
                                        "type": "string",
                                        "example": "john@example.com"
                                    },
                                    "mandataire_telephone": {
                                        "type": "string",
                                        "example": "01 02 03 04 05"
                                    },
                                    "tags": {
                                        "type": "array",
                                        "items": {
                                            "description": "keyname of tag",
                                            "type": "string",
                                            "example": "bar"
                                        }
                                    },
                                    "images": {
                                        "type": "array",
                                        "items": {
                                            "type": "file"
                                        }
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "Successful operation",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Ad"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "api_key": []
                    }
                ]
            }
        },
        "/api/ads/{id}": {
            "get": {
                "summary": "Get a specific ad",
                "operationId": "6c90fbf934e9bb4dbce4542140a0b16d",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Successful operation",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Ad"
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "Ad not found"
                    }
                },
                "security": [
                    {
                        "api_key": []
                    }
                ]
            },
            "put": {
                "summary": "Update a specific ad",
                "operationId": "3ba88c727ca1a764c009c2a6d82c45bd",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "multipart/form-data": {
                            "schema": {
                                "required": [
                                    "user_id",
                                    "titre",
                                    "localisation"
                                ],
                                "properties": {
                                    "user_id": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "code_agence": {
                                        "type": "string",
                                        "example": "A001"
                                    },
                                    "reference": {
                                        "type": "string",
                                        "example": "R001"
                                    },
                                    "rubrique": {
                                        "type": "string",
                                        "enum": [
                                            "fonds-de-commerce",
                                            "locaux-commerciaux"
                                        ]
                                    },
                                    "type": {
                                        "type": "string",
                                        "enum": [
                                            "vente",
                                            "location"
                                        ]
                                    },
                                    "type_fdc": {
                                        "type": "string",
                                        "enum": [
                                            "vente",
                                            "location-gerance",
                                            "licences"
                                        ]
                                    },
                                    "sous_rubrique": {
                                        "type": "string",
                                        "enum": [
                                            "bureaux",
                                            "locaux-murs-de-boutique",
                                            "entrepots-locaux-d-activites",
                                            "terrains"
                                        ]
                                    },
                                    "type_location": {
                                        "type": "string",
                                        "enum": [
                                            "tous",
                                            "pure",
                                            "droits-entree"
                                        ]
                                    },
                                    "murs": {
                                        "type": "boolean",
                                        "default": false,
                                        "example": false
                                    },
                                    "country_id": {
                                        "type": "string",
                                        "example": "FR"
                                    },
                                    "localisation": {
                                        "type": "string",
                                        "example": "V16951"
                                    },
                                    "titre": {
                                        "type": "string",
                                        "example": "Ad Title"
                                    },
                                    "description": {
                                        "type": "string",
                                        "example": "Ad Description"
                                    },
                                    "type_bail": {
                                        "type": "string",
                                        "example": "Type Bail"
                                    },
                                    "montant_loyer": {
                                        "type": "string",
                                        "example": "1000"
                                    },
                                    "montant_charges": {
                                        "type": "string",
                                        "example": "100"
                                    },
                                    "horaires": {
                                        "type": "string",
                                        "example": "9am - 5pm"
                                    },
                                    "conges": {
                                        "type": "string",
                                        "example": "None"
                                    },
                                    "tenue_depuis": {
                                        "type": "string",
                                        "example": "2010"
                                    },
                                    "surface": {
                                        "type": "string",
                                        "example": "100sqm"
                                    },
                                    "surface_m2": {
                                        "type": "number",
                                        "format": "float",
                                        "example": 100
                                    },
                                    "terrasse": {
                                        "type": "boolean",
                                        "default": false,
                                        "example": false
                                    },
                                    "vitrine": {
                                        "type": "boolean",
                                        "default": false,
                                        "example": false
                                    },
                                    "metres_lineaires": {
                                        "type": "string",
                                        "example": "10"
                                    },
                                    "nb_place_salle": {
                                        "type": "string",
                                        "example": "50"
                                    },
                                    "nb_places_terrasse": {
                                        "type": "string",
                                        "example": "20"
                                    },
                                    "nb_chambres": {
                                        "type": "string",
                                        "example": "2"
                                    },
                                    "piscine": {
                                        "type": "boolean",
                                        "default": false,
                                        "example": false
                                    },
                                    "nb_etoiles": {
                                        "type": "string",
                                        "example": "5"
                                    },
                                    "type_logement": {
                                        "type": "string",
                                        "example": "Apartment"
                                    },
                                    "materiel": {
                                        "type": "string",
                                        "example": ""
                                    },
                                    "ca_n_1": {
                                        "type": "string",
                                        "example": ""
                                    },
                                    "ca_n_2": {
                                        "type": "string",
                                        "example": ""
                                    },
                                    "ca_n_3": {
                                        "type": "string",
                                        "example": ""
                                    },
                                    "ebe_n_1": {
                                        "type": "string",
                                        "example": ""
                                    },
                                    "ebe_n_2": {
                                        "type": "string",
                                        "example": ""
                                    },
                                    "ebe_n_3": {
                                        "type": "string",
                                        "example": ""
                                    },
                                    "res_n_1": {
                                        "type": "string",
                                        "example": ""
                                    },
                                    "res_n_2": {
                                        "type": "string",
                                        "example": ""
                                    },
                                    "res_n_3": {
                                        "type": "string",
                                        "example": ""
                                    },
                                    "rem_n_1": {
                                        "type": "string",
                                        "example": ""
                                    },
                                    "rem_n_2": {
                                        "type": "string",
                                        "example": ""
                                    },
                                    "rem_n_3": {
                                        "type": "string",
                                        "example": ""
                                    },
                                    "ticket_moyen": {
                                        "type": "string",
                                        "example": ""
                                    },
                                    "dpe": {
                                        "type": "string",
                                        "example": ""
                                    },
                                    "dpe_lettre": {
                                        "type": "string",
                                        "example": "A"
                                    },
                                    "ges": {
                                        "type": "string",
                                        "example": ""
                                    },
                                    "ges_lettre": {
                                        "type": "string",
                                        "example": "A"
                                    },
                                    "offre": {
                                        "type": "string",
                                        "example": ""
                                    },
                                    "forfait": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "opt_tete_rubrique": {
                                        "type": "boolean",
                                        "default": false,
                                        "example": false
                                    },
                                    "date_tete_rubrique": {
                                        "type": "string",
                                        "format": "date-time",
                                        "example": "2023-01-01"
                                    },
                                    "date_end_tete_rubrique": {
                                        "type": "string",
                                        "format": "date-time",
                                        "example": "2023-01-01"
                                    },
                                    "opt_urgent": {
                                        "type": "boolean",
                                        "default": false,
                                        "example": false
                                    },
                                    "opt_vitrine": {
                                        "type": "boolean",
                                        "default": false,
                                        "example": false
                                    },
                                    "date_vitrine": {
                                        "type": "string",
                                        "format": "date-time",
                                        "example": "2023-01-01"
                                    },
                                    "date_end_vitrine": {
                                        "type": "string",
                                        "format": "date-time",
                                        "example": "2023-01-01"
                                    },
                                    "prix": {
                                        "type": "integer",
                                        "example": 1000
                                    },
                                    "loyer": {
                                        "type": "number",
                                        "format": "float",
                                        "example": 500
                                    },
                                    "charges": {
                                        "type": "number",
                                        "format": "float",
                                        "example": 100
                                    },
                                    "prix_droit_au_bail": {
                                        "type": "integer",
                                        "example": 1000
                                    },
                                    "prix_pas_de_porte": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "verified": {
                                        "type": "boolean",
                                        "default": true,
                                        "example": true
                                    },
                                    "published": {
                                        "type": "boolean",
                                        "default": false,
                                        "example": false
                                    },
                                    "date_published": {
                                        "type": "string",
                                        "format": "date-time",
                                        "example": "2023-01-01"
                                    },
                                    "date_end_published": {
                                        "type": "string",
                                        "format": "date-time",
                                        "example": "2023-12-31"
                                    },
                                    "extraction": {
                                        "type": "boolean",
                                        "default": false,
                                        "example": false
                                    },
                                    "situation": {
                                        "type": "string",
                                        "example": "Situation Example"
                                    },
                                    "fermeture_hebdo": {
                                        "type": "string",
                                        "example": "Closed on Sundays"
                                    },
                                    "prix_caution": {
                                        "type": "number",
                                        "format": "float",
                                        "example": 500
                                    },
                                    "loyer_m2": {
                                        "type": "number",
                                        "format": "float",
                                        "example": 10
                                    },
                                    "longitude": {
                                        "type": "number",
                                        "format": "float",
                                        "example": -118.2437
                                    },
                                    "latitude": {
                                        "type": "number",
                                        "format": "float",
                                        "example": 34.0522
                                    },
                                    "license": {
                                        "type": "string",
                                        "example": ""
                                    },
                                    "mandataire_nom": {
                                        "type": "string",
                                        "example": "John Doe"
                                    },
                                    "mandataire_email": {
                                        "type": "string",
                                        "example": "john@example.com"
                                    },
                                    "mandataire_telephone": {
                                        "type": "string",
                                        "example": "01 02 03 04 05"
                                    },
                                    "tags": {
                                        "type": "array",
                                        "items": {
                                            "description": "keyname of tag",
                                            "type": "string",
                                            "example": "bar"
                                        }
                                    },
                                    "images": {
                                        "type": "array",
                                        "items": {
                                            "type": "file"
                                        }
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Successful operation",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Ad"
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "Ad not found"
                    }
                },
                "security": [
                    {
                        "api_key": []
                    }
                ]
            },
            "delete": {
                "summary": "Delete a specific ad",
                "operationId": "713f39c7eb168eb5b6aeb596d32e0c66",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "204": {
                        "description": "Successful operation"
                    },
                    "404": {
                        "description": "Ad not found"
                    }
                },
                "security": [
                    {
                        "api_key": []
                    }
                ]
            }
        },
        "/api/ads/add_image/{ad}": {
            "post": {
                "summary": "Add a specific(s) image(s) ad",
                "operationId": "27ed2a55efaf894beef0c860a3b1e626",
                "parameters": [
                    {
                        "name": "ad",
                        "in": "path",
                        "description": "Ad id",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "multipart/form-data": {
                            "schema": {
                                "properties": {
                                    "image": {
                                        "type": "file"
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "204": {
                        "description": "Successful operation"
                    },
                    "404": {
                        "description": "Ad not found"
                    }
                },
                "security": [
                    {
                        "api_key": []
                    }
                ]
            }
        },
        "/api/ads/order_image/{ad}": {
            "post": {
                "summary": "Order all images ad with image id",
                "operationId": "be9ed6ec9f170fc8728497173577d1a1",
                "parameters": [
                    {
                        "name": "ad",
                        "in": "path",
                        "description": "Ad id",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "multipart/form-data": {
                            "schema": {
                                "properties": {
                                    "image_ids": {
                                        "description": "List of image ids in the desired order",
                                        "type": "array",
                                        "items": {
                                            "type": "id",
                                            "format": "integer"
                                        }
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "204": {
                        "description": "Successful operation"
                    },
                    "404": {
                        "description": "Ad not found"
                    }
                },
                "security": [
                    {
                        "api_key": []
                    }
                ]
            }
        },
        "/api/ads/remove_image/{ad}/{image_id}": {
            "delete": {
                "summary": "Delete a specific image ad with image id",
                "operationId": "889d2cc103242a04b7eb60d675bac64f",
                "parameters": [
                    {
                        "name": "ad",
                        "in": "path",
                        "description": "Ad id",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "image_id",
                        "in": "path",
                        "description": "Image id",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "204": {
                        "description": "Successful operation"
                    },
                    "404": {
                        "description": "Ad not found"
                    }
                },
                "security": [
                    {
                        "api_key": []
                    }
                ]
            }
        },
        "/api/localisations": {
            "get": {
                "summary": "Get list of localisations",
                "operationId": "63a76b9016beae77a9a376c45e8162cf",
                "parameters": [
                    {
                        "name": "term",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "category",
                        "in": "query",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "Région",
                                "Département",
                                "Regroupement",
                                "Ville"
                            ]
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Successful operation",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "array",
                                    "items": {
                                        "$ref": "#/components/schemas/Localisation"
                                    }
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "api_key": []
                    }
                ]
            }
        },
        "/api/localisations/{code}": {
            "get": {
                "summary": "Get a specific localisation",
                "operationId": "140d73e44e1bdd3086eb9fc46493a520",
                "parameters": [
                    {
                        "name": "code",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Successful operation",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Localisation"
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "Localisation not found"
                    }
                },
                "security": [
                    {
                        "api_key": []
                    }
                ]
            }
        },
        "/api/users/{email}": {
            "get": {
                "summary": "Get a specific user",
                "operationId": "f78c204d11fe93d3b8cc2114ed42e2ec",
                "parameters": [
                    {
                        "name": "email",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Successful operation",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/User"
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "User not found"
                    }
                },
                "security": [
                    {
                        "api_key": []
                    }
                ]
            }
        }
    },
    "components": {
        "schemas": {
            "Activity": {
                "required": [
                    "name"
                ],
                "properties": {
                    "name": {
                        "type": "string",
                        "example": "Bar"
                    },
                    "keyname": {
                        "type": "string",
                        "example": "bar"
                    }
                },
                "type": "object"
            },
            "Ad": {
                "required": [
                    "id",
                    "user_id",
                    "titre",
                    "localisation"
                ],
                "properties": {
                    "id": {
                        "type": "integer",
                        "example": 1
                    },
                    "user_id": {
                        "type": "integer",
                        "example": 1
                    },
                    "code_agence": {
                        "type": "string",
                        "example": "A001"
                    },
                    "reference": {
                        "type": "string",
                        "example": "R001"
                    },
                    "rubrique": {
                        "type": "string",
                        "enum": [
                            "fonds-de-commerce",
                            "locaux-commerciaux"
                        ]
                    },
                    "sous_rubrique": {
                        "type": "string",
                        "enum": [
                            "bureaux",
                            "locaux-murs-de-boutique",
                            "entrepots-locaux-d-activites",
                            "terrains"
                        ]
                    },
                    "type": {
                        "type": "string",
                        "enum": [
                            "vente",
                            "location"
                        ]
                    },
                    "type_fdc": {
                        "type": "string",
                        "enum": [
                            "vente",
                            "location-gerance",
                            "licences"
                        ]
                    },
                    "type_location": {
                        "type": "string",
                        "enum": [
                            "tous",
                            "pure",
                            "droits-entree"
                        ]
                    },
                    "murs": {
                        "type": "boolean",
                        "default": false,
                        "example": false
                    },
                    "country_id": {
                        "type": "string",
                        "example": "FR"
                    },
                    "localisation": {
                        "properties": {
                            "code": {
                                "type": "string",
                                "example": "V16951"
                            },
                            "label": {
                                "type": "string",
                                "example": "Blois (41000)"
                            }
                        },
                        "type": "object"
                    },
                    "titre": {
                        "type": "string",
                        "example": "Ad Title"
                    },
                    "description": {
                        "type": "string",
                        "example": "Ad Description"
                    },
                    "type_bail": {
                        "type": "string",
                        "example": "Type Bail"
                    },
                    "montant_loyer": {
                        "type": "string",
                        "example": "1000"
                    },
                    "montant_charges": {
                        "type": "string",
                        "example": "100"
                    },
                    "horaires": {
                        "type": "string",
                        "example": "9am - 5pm"
                    },
                    "conges": {
                        "type": "string",
                        "example": "None"
                    },
                    "tenue_depuis": {
                        "type": "string",
                        "example": "2010"
                    },
                    "surface": {
                        "type": "string",
                        "example": "100sqm"
                    },
                    "surface_m2": {
                        "type": "number",
                        "format": "float",
                        "example": 100
                    },
                    "terrasse": {
                        "type": "boolean",
                        "default": false,
                        "example": false
                    },
                    "vitrine": {
                        "type": "boolean",
                        "default": false,
                        "example": false
                    },
                    "metres_lineaires": {
                        "type": "string",
                        "example": "10"
                    },
                    "nb_place_salle": {
                        "type": "string",
                        "example": "50"
                    },
                    "nb_places_terrasse": {
                        "type": "string",
                        "example": "20"
                    },
                    "nb_chambres": {
                        "type": "string",
                        "example": "2"
                    },
                    "piscine": {
                        "type": "boolean",
                        "default": false,
                        "example": false
                    },
                    "nb_etoiles": {
                        "type": "string",
                        "example": "5"
                    },
                    "type_logement": {
                        "type": "string",
                        "example": "Apartment"
                    },
                    "materiel": {
                        "type": "string",
                        "example": ""
                    },
                    "ca_n_1": {
                        "type": "string",
                        "example": ""
                    },
                    "ca_n_2": {
                        "type": "string",
                        "example": ""
                    },
                    "ca_n_3": {
                        "type": "string",
                        "example": ""
                    },
                    "ebe_n_1": {
                        "type": "string",
                        "example": ""
                    },
                    "ebe_n_2": {
                        "type": "string",
                        "example": ""
                    },
                    "ebe_n_3": {
                        "type": "string",
                        "example": ""
                    },
                    "res_n_1": {
                        "type": "string",
                        "example": ""
                    },
                    "res_n_2": {
                        "type": "string",
                        "example": ""
                    },
                    "res_n_3": {
                        "type": "string",
                        "example": ""
                    },
                    "rem_n_1": {
                        "type": "string",
                        "example": ""
                    },
                    "rem_n_2": {
                        "type": "string",
                        "example": ""
                    },
                    "rem_n_3": {
                        "type": "string",
                        "example": ""
                    },
                    "ticket_moyen": {
                        "type": "string",
                        "example": ""
                    },
                    "dpe": {
                        "type": "string",
                        "example": ""
                    },
                    "dpe_lettre": {
                        "type": "string",
                        "example": "A"
                    },
                    "ges": {
                        "type": "string",
                        "example": ""
                    },
                    "ges_lettre": {
                        "type": "string",
                        "example": "A"
                    },
                    "offre": {
                        "type": "string",
                        "example": ""
                    },
                    "forfait": {
                        "type": "integer",
                        "example": 1
                    },
                    "opt_tete_rubrique": {
                        "type": "boolean",
                        "default": false,
                        "example": false
                    },
                    "date_tete_rubrique": {
                        "type": "string",
                        "format": "date-time",
                        "example": "2023-01-01"
                    },
                    "date_end_tete_rubrique": {
                        "type": "string",
                        "format": "date-time",
                        "example": "2023-01-01"
                    },
                    "opt_urgent": {
                        "type": "boolean",
                        "default": false,
                        "example": false
                    },
                    "opt_vitrine": {
                        "type": "boolean",
                        "default": false,
                        "example": false
                    },
                    "date_vitrine": {
                        "type": "string",
                        "format": "date-time",
                        "example": "2023-01-01"
                    },
                    "date_end_vitrine": {
                        "type": "string",
                        "format": "date-time",
                        "example": "2023-01-01"
                    },
                    "prix": {
                        "type": "integer",
                        "example": 1000
                    },
                    "loyer": {
                        "type": "number",
                        "format": "float",
                        "example": 500
                    },
                    "charges": {
                        "type": "number",
                        "format": "float",
                        "example": 100
                    },
                    "prix_droit_au_bail": {
                        "type": "integer",
                        "example": 1000
                    },
                    "prix_pas_de_porte": {
                        "type": "integer",
                        "example": 2000
                    },
                    "imported": {
                        "type": "boolean",
                        "default": false,
                        "example": true
                    },
                    "verified": {
                        "type": "boolean",
                        "default": true,
                        "example": true
                    },
                    "published": {
                        "type": "boolean",
                        "default": false,
                        "example": false
                    },
                    "date_published": {
                        "type": "string",
                        "format": "date-time",
                        "example": "2023-01-01"
                    },
                    "date_end_published": {
                        "type": "string",
                        "format": "date-time",
                        "example": "2023-12-31"
                    },
                    "extraction": {
                        "type": "boolean",
                        "default": false,
                        "example": false
                    },
                    "situation": {
                        "type": "string",
                        "example": "Situation Example"
                    },
                    "fermeture_hebdo": {
                        "type": "string",
                        "example": "Closed on Sundays"
                    },
                    "prix_caution": {
                        "type": "number",
                        "format": "float",
                        "example": 500
                    },
                    "loyer_m2": {
                        "type": "number",
                        "format": "float",
                        "example": 10
                    },
                    "longitude": {
                        "type": "number",
                        "format": "float",
                        "example": -118.2437
                    },
                    "latitude": {
                        "type": "number",
                        "format": "float",
                        "example": 34.0522
                    },
                    "license": {
                        "type": "string",
                        "example": ""
                    },
                    "mandataire_nom": {
                        "type": "string",
                        "example": "John Doe"
                    },
                    "mandataire_email": {
                        "type": "string",
                        "example": "john@example.com"
                    },
                    "mandataire_telephone": {
                        "type": "string",
                        "example": "01 02 03 04 05"
                    },
                    "tags": {
                        "type": "array",
                        "items": {
                            "properties": {
                                "id": {
                                    "type": "number",
                                    "example": 1
                                },
                                "name": {
                                    "type": "string",
                                    "example": "Bar"
                                },
                                "keyname": {
                                    "type": "string",
                                    "example": "bar"
                                }
                            },
                            "type": "object"
                        }
                    },
                    "images": {
                        "type": "array",
                        "items": {
                            "properties": {
                                "id": {
                                    "type": "number",
                                    "example": 1
                                },
                                "filename": {
                                    "type": "string",
                                    "example": "image_annonce1"
                                },
                                "url": {
                                    "type": "string",
                                    "example": "https://www.lesannoncesducommerce.fr/uploads/image_annonce1.jpg"
                                }
                            },
                            "type": "object"
                        }
                    }
                },
                "type": "object"
            },
            "Localisation": {
                "required": [
                    "code"
                ],
                "properties": {
                    "code": {
                        "type": "string",
                        "example": "V16951"
                    },
                    "value": {
                        "type": "string",
                        "example": "Blois (41000)"
                    },
                    "category": {
                        "type": "string",
                        "example": "Ville"
                    },
                    "slug": {
                        "type": "string",
                        "example": "41-loir-et-cher,blois-41000"
                    }
                },
                "type": "object"
            },
            "User": {
                "required": [
                    "email"
                ],
                "properties": {
                    "id": {
                        "type": "integer",
                        "example": "250"
                    },
                    "email": {
                        "type": "string",
                        "example": "contact@example.com"
                    },
                    "username": {
                        "type": "string",
                        "example": "contact@example.com"
                    }
                },
                "type": "object"
            }
        },
        "securitySchemes": {
            "api_key": {
                "type": "http",
                "scheme": "bearer"
            }
        }
    }
}