{
  "openapi": "3.0.1",
  "info": {
    "title": "Api",
    "version": "1.0"
  },
  "paths": {
    "/api/appsettings": {
      "get": {
        "tags": [
          "AppSettings"
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MapSettingsResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/brands": {
      "get": {
        "tags": [
          "Brands"
        ],
        "parameters": [
          {
            "name": "cou",
            "in": "query",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/Country"
            }
          },
          {
            "name": "local",
            "in": "query",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/Country"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BrandsResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/cooperation-area": {
      "get": {
        "tags": [
          "CooperationArea"
        ],
        "parameters": [
          {
            "name": "cou",
            "in": "query",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/Country"
            }
          },
          {
            "name": "local",
            "in": "query",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/Country"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CooperationAreasResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/cooperation-subarea": {
      "get": {
        "tags": [
          "CooperationSubArea"
        ],
        "parameters": [
          {
            "name": "cou",
            "in": "query",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/Country"
            }
          },
          {
            "name": "local",
            "in": "query",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/Country"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CooperationSubAreasResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/geocode-address": {
      "get": {
        "tags": [
          "GeocodeAddress"
        ],
        "parameters": [
          {
            "name": "address",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "language",
            "in": "query",
            "schema": {
              "type": "string",
              "default": "en"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GeocodeAddressResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/geocode-geomtry": {
      "get": {
        "tags": [
          "GeocodeGeomtry"
        ],
        "parameters": [
          {
            "name": "latitude",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "longitude",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "language",
            "in": "query",
            "schema": {
              "type": "string",
              "default": "en"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GeocodeGeomtryResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/partnerFilter": {
      "get": {
        "tags": [
          "PartnerFilter"
        ],
        "parameters": [
          {
            "name": "cou",
            "in": "query",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/Country"
            }
          },
          {
            "name": "local",
            "in": "query",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/Country"
            }
          },
          {
            "name": "vehicleRegistrationNumber",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PartnerFilterResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/partners": {
      "get": {
        "tags": [
          "Partners"
        ],
        "parameters": [
          {
            "name": "licensePlate",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "country",
            "in": "query",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/Country"
            }
          },
          {
            "name": "language",
            "in": "query",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/Country"
            }
          },
          {
            "name": "lat",
            "in": "query",
            "required": true,
            "schema": {
              "type": "number",
              "format": "double"
            }
          },
          {
            "name": "lng",
            "in": "query",
            "required": true,
            "schema": {
              "type": "number",
              "format": "double"
            }
          },
          {
            "name": "coopAreas",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "integer",
                "format": "int32"
              }
            }
          },
          {
            "name": "coopSubAreas",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "integer",
                "format": "int32"
              }
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PartnersResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/partner-types": {
      "get": {
        "tags": [
          "PartnerTypes"
        ],
        "parameters": [
          {
            "name": "cou",
            "in": "query",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/Country"
            }
          },
          {
            "name": "local",
            "in": "query",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/Country"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PartnerTypesResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/service-types": {
      "get": {
        "tags": [
          "ServiceTypes"
        ],
        "parameters": [
          {
            "name": "cou",
            "in": "query",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/Country"
            }
          },
          {
            "name": "local",
            "in": "query",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/Country"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceTypesResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "Brand": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64"
          },
          "name": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "BrandsResponse": {
        "type": "object",
        "properties": {
          "status": {
            "type": "string",
            "nullable": true
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Brand"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "CooperationArea": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int32"
          },
          "name": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "CooperationAreasResponse": {
        "type": "object",
        "properties": {
          "status": {
            "type": "string",
            "nullable": true
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CooperationArea"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "CooperationSubArea": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int32"
          },
          "areaId": {
            "type": "integer",
            "format": "int32"
          },
          "name": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "CooperationSubAreasResponse": {
        "type": "object",
        "properties": {
          "status": {
            "type": "string",
            "nullable": true
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CooperationSubArea"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Coordinates": {
        "type": "object",
        "properties": {
          "countryCode": {
            "type": "string",
            "nullable": true
          },
          "lat": {
            "type": "string",
            "nullable": true
          },
          "lng": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Country": {
        "enum": [
          0,
          1,
          2
        ],
        "type": "integer",
        "format": "int32"
      },
      "GeocodeAddressResponse": {
        "type": "object",
        "properties": {
          "status": {
            "type": "string",
            "nullable": true
          },
          "data": {
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "GeocodeGeomtryResponse": {
        "type": "object",
        "properties": {
          "status": {
            "type": "string",
            "nullable": true
          },
          "data": {
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Information": {
        "type": "object",
        "properties": {
          "subnetwork": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "notes": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Location": {
        "type": "object",
        "properties": {
          "latitude": {
            "type": "number",
            "format": "double"
          },
          "longitude": {
            "type": "number",
            "format": "double"
          }
        },
        "additionalProperties": false
      },
      "MapSettings": {
        "type": "object",
        "properties": {
          "googleApiKey": {
            "type": "string",
            "nullable": true
          },
          "defaultCountry": {
            "type": "string",
            "nullable": true
          },
          "defaultLanguage": {
            "type": "string",
            "nullable": true
          },
          "coordinates": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Coordinates"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "MapSettingsResponse": {
        "type": "object",
        "properties": {
          "status": {
            "type": "string",
            "nullable": true
          },
          "data": {
            "$ref": "#/components/schemas/MapSettings"
          }
        },
        "additionalProperties": false
      },
      "Partner": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64"
          },
          "latitude": {
            "type": "number",
            "format": "double"
          },
          "longitude": {
            "type": "number",
            "format": "double"
          },
          "distance": {
            "type": "number",
            "format": "double"
          },
          "openingHours": {
            "type": "string",
            "nullable": true
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "city": {
            "type": "string",
            "nullable": true
          },
          "street": {
            "type": "string",
            "nullable": true
          },
          "zip": {
            "type": "string",
            "nullable": true
          },
          "email": {
            "type": "string",
            "nullable": true
          },
          "gsm": {
            "type": "string",
            "nullable": true
          },
          "website": {
            "type": "string",
            "nullable": true
          },
          "servicesCollection": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Service"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "PartnerFilter": {
        "type": "object",
        "properties": {
          "brands": {
            "type": "array",
            "items": {
              "type": "integer",
              "format": "int32"
            },
            "nullable": true
          },
          "cooperationAreas": {
            "type": "array",
            "items": {
              "type": "integer",
              "format": "int32"
            },
            "nullable": true
          },
          "cooperationSubAreas": {
            "type": "array",
            "items": {
              "type": "integer",
              "format": "int32"
            },
            "nullable": true
          },
          "ids": {
            "type": "array",
            "items": {
              "type": "integer",
              "format": "int32"
            },
            "nullable": true
          },
          "location": {
            "$ref": "#/components/schemas/Location"
          },
          "radius": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "services": {
            "type": "array",
            "items": {
              "type": "integer",
              "format": "int32"
            },
            "nullable": true
          },
          "types": {
            "type": "array",
            "items": {
              "type": "integer",
              "format": "int32"
            },
            "nullable": true
          },
          "subnetworks": {
            "type": "array",
            "items": {
              "type": "integer",
              "format": "int32"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "PartnerFilterResponse": {
        "type": "object",
        "properties": {
          "status": {
            "type": "string",
            "nullable": true
          },
          "data": {
            "$ref": "#/components/schemas/PartnerFilter"
          }
        },
        "additionalProperties": false
      },
      "PartnerType": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64"
          },
          "name": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "PartnerTypesResponse": {
        "type": "object",
        "properties": {
          "status": {
            "type": "string",
            "nullable": true
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PartnerType"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Partners": {
        "type": "object",
        "properties": {
          "totalCount": {
            "type": "integer",
            "format": "int32"
          },
          "partnersCollection": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Partner"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "PartnersResponse": {
        "type": "object",
        "properties": {
          "status": {
            "type": "string",
            "nullable": true
          },
          "data": {
            "$ref": "#/components/schemas/Partners"
          }
        },
        "additionalProperties": false
      },
      "ProblemDetails": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "nullable": true
          },
          "title": {
            "type": "string",
            "nullable": true
          },
          "status": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "detail": {
            "type": "string",
            "nullable": true
          },
          "instance": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": { }
      },
      "Service": {
        "type": "object",
        "properties": {
          "serviceType": {
            "type": "integer",
            "format": "int32"
          },
          "information": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Information"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ServiceType": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64"
          },
          "name": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ServiceTypesResponse": {
        "type": "object",
        "properties": {
          "status": {
            "type": "string",
            "nullable": true
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ServiceType"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      }
    }
  }
}