{
  "openapi": "3.0.0",
  "info": {
    "title": "gras-grapi",
    "version": "0.0.1",
    "description": "gras-grapi of grapple-solutions.com. This API allows you to manage tennis training sessions (rapports) and retrieve reports about trainers and their training hours. The key fields in the rapports include 'trainingsdauer' (training duration) and 'datum' (date-time of the training session). When working with these fields, please adhere to the following strict formatting requirements to ensure compatibility with the backend validation and calculations. Trainer Jean-Claude Scherrer is also called JC. When using the trainerreport endpoints, please use the following date format as per this example 2025-01-23 for all date fields (fromdate, todate, date).",
    "contact": {
      "name": "grapple-solutions.com",
      "email": "info@grapple-solutions.com"
    }
  },
  "paths": {
    "/archived-rapports/count": {
      "get": {
        "x-controller-name": "ArchivedRapportController",
        "x-operation-name": "count",
        "tags": [
          "ArchivedRapportController"
        ],
        "responses": {
          "200": {
            "description": "ArchivedRapport count",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/loopback.Count"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "filter",
            "in": "query",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ArchivedRapport.Filter"
                }
              }
            }
          },
          {
            "name": "where",
            "in": "query",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "title": "ArchivedRapport.WhereFilter",
                  "additionalProperties": true,
                  "x-typescript-type": "@loopback/repository#Where<ArchivedRapport>"
                }
              }
            }
          }
        ],
        "operationId": "ArchivedRapportController.count"
      }
    },
    "/archived-rapports/{id}/court": {
      "get": {
        "x-controller-name": "ArchivedRapportCourtController",
        "x-operation-name": "getCourt",
        "tags": [
          "ArchivedRapportCourtController"
        ],
        "responses": {
          "200": {
            "description": "Court belonging to ArchivedRapport",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Court"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "number"
            },
            "required": true
          }
        ],
        "operationId": "ArchivedRapportCourtController.getCourt"
      }
    },
    "/archived-rapports/{id}/gruppe": {
      "get": {
        "x-controller-name": "ArchivedRapportGruppeController",
        "x-operation-name": "getGruppe",
        "tags": [
          "ArchivedRapportGruppeController"
        ],
        "responses": {
          "200": {
            "description": "Gruppe belonging to ArchivedRapport",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Gruppe"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "number"
            },
            "required": true
          }
        ],
        "operationId": "ArchivedRapportGruppeController.getGruppe"
      }
    },
    "/archived-rapports/{id}/invoices": {
      "post": {
        "x-controller-name": "ArchivedRapportInvoicesController",
        "x-operation-name": "create",
        "tags": [
          "ArchivedRapportInvoicesController"
        ],
        "responses": {
          "200": {
            "description": "ArchivedRapport model instance",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Invoices"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "number"
            },
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/NewInvoicesInArchivedRapport"
              }
            }
          },
          "x-parameter-index": 1
        },
        "operationId": "ArchivedRapportInvoicesController.create"
      },
      "patch": {
        "x-controller-name": "ArchivedRapportInvoicesController",
        "x-operation-name": "patch",
        "tags": [
          "ArchivedRapportInvoicesController"
        ],
        "responses": {
          "200": {
            "description": "ArchivedRapport.Invoices PATCH success count",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/loopback.Count"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "number"
            },
            "required": true
          },
          {
            "name": "where",
            "in": "query",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "title": "Invoices.WhereFilter",
                  "additionalProperties": true,
                  "x-typescript-type": "@loopback/repository#Where<Invoices>"
                }
              }
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/InvoicesPartial"
              }
            }
          },
          "x-parameter-index": 1
        },
        "operationId": "ArchivedRapportInvoicesController.patch"
      },
      "get": {
        "x-controller-name": "ArchivedRapportInvoicesController",
        "x-operation-name": "find",
        "tags": [
          "ArchivedRapportInvoicesController"
        ],
        "responses": {
          "200": {
            "description": "Array of ArchivedRapport has many Invoices",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Invoices"
                  }
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "number"
            },
            "required": true
          },
          {
            "name": "filter",
            "in": "query",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true
                }
              }
            }
          }
        ],
        "operationId": "ArchivedRapportInvoicesController.find"
      },
      "delete": {
        "x-controller-name": "ArchivedRapportInvoicesController",
        "x-operation-name": "delete",
        "tags": [
          "ArchivedRapportInvoicesController"
        ],
        "responses": {
          "200": {
            "description": "ArchivedRapport.Invoices DELETE success count",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/loopback.Count"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "number"
            },
            "required": true
          },
          {
            "name": "where",
            "in": "query",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "title": "Invoices.WhereFilter",
                  "additionalProperties": true,
                  "x-typescript-type": "@loopback/repository#Where<Invoices>"
                }
              }
            }
          }
        ],
        "operationId": "ArchivedRapportInvoicesController.delete"
      }
    },
    "/archived-rapports/{id}/platz": {
      "get": {
        "x-controller-name": "ArchivedRapportPlatzController",
        "x-operation-name": "getPlatz",
        "tags": [
          "ArchivedRapportPlatzController"
        ],
        "responses": {
          "200": {
            "description": "Platz belonging to ArchivedRapport",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Platz"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "number"
            },
            "required": true
          }
        ],
        "operationId": "ArchivedRapportPlatzController.getPlatz"
      }
    },
    "/archived-rapports/{id}/trainer": {
      "get": {
        "x-controller-name": "ArchivedRapportTrainerController",
        "x-operation-name": "getTrainer",
        "tags": [
          "ArchivedRapportTrainerController"
        ],
        "responses": {
          "200": {
            "description": "Trainer belonging to ArchivedRapport",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Trainer"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "number"
            },
            "required": true
          }
        ],
        "operationId": "ArchivedRapportTrainerController.getTrainer"
      }
    },
    "/archived-rapports/{id}/weekly-training-plan": {
      "get": {
        "x-controller-name": "ArchivedRapportWeeklyTrainingPlanController",
        "x-operation-name": "getWeeklyTrainingPlan",
        "tags": [
          "ArchivedRapportWeeklyTrainingPlanController"
        ],
        "responses": {
          "200": {
            "description": "WeeklyTrainingPlan belonging to ArchivedRapport",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WeeklyTrainingPlan"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "number"
            },
            "required": true
          }
        ],
        "operationId": "ArchivedRapportWeeklyTrainingPlanController.getWeeklyTrainingPlan"
      }
    },
    "/archived-rapports/{id}": {
      "put": {
        "x-controller-name": "ArchivedRapportController",
        "x-operation-name": "replaceById",
        "tags": [
          "ArchivedRapportController"
        ],
        "responses": {
          "204": {
            "description": "ArchivedRapport was updated"
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "x-precision": 10,
              "x-scale": 0,
              "x-generated": 1,
              "x-primary-key": true,
              "type": "number",
              "nullable": false
            },
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ArchivedRapport"
              }
            }
          },
          "x-parameter-index": 1
        },
        "operationId": "ArchivedRapportController.replaceById"
      },
      "patch": {
        "x-controller-name": "ArchivedRapportController",
        "x-operation-name": "updateById",
        "tags": [
          "ArchivedRapportController"
        ],
        "responses": {
          "204": {
            "description": "ArchivedRapport was updated"
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "x-precision": 10,
              "x-scale": 0,
              "x-generated": 1,
              "x-primary-key": true,
              "type": "number",
              "nullable": false
            },
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ArchivedRapportPartial"
              }
            }
          },
          "x-parameter-index": 1
        },
        "operationId": "ArchivedRapportController.updateById"
      },
      "get": {
        "x-controller-name": "ArchivedRapportController",
        "x-operation-name": "findById",
        "tags": [
          "ArchivedRapportController"
        ],
        "responses": {
          "200": {
            "description": "ArchivedRapport instance",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ArchivedRapportWithRelations"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "x-precision": 10,
              "x-scale": 0,
              "x-generated": 1,
              "x-primary-key": true,
              "type": "number",
              "nullable": false
            },
            "required": true
          },
          {
            "name": "filter",
            "in": "query",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ArchivedRapport.Filter1"
                }
              }
            }
          }
        ],
        "operationId": "ArchivedRapportController.findById"
      },
      "delete": {
        "x-controller-name": "ArchivedRapportController",
        "x-operation-name": "deleteById",
        "tags": [
          "ArchivedRapportController"
        ],
        "responses": {
          "204": {
            "description": "ArchivedRapport was deleted"
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "x-precision": 10,
              "x-scale": 0,
              "x-generated": 1,
              "x-primary-key": true,
              "type": "number",
              "nullable": false
            },
            "required": true
          }
        ],
        "operationId": "ArchivedRapportController.deleteById"
      }
    },
    "/archived-rapports": {
      "post": {
        "x-controller-name": "ArchivedRapportController",
        "x-operation-name": "create",
        "tags": [
          "ArchivedRapportController"
        ],
        "responses": {
          "200": {
            "description": "ArchivedRapport instance created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ArchivedRapport"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/NewArchivedRapport"
              }
            }
          }
        },
        "operationId": "ArchivedRapportController.create"
      },
      "patch": {
        "x-controller-name": "ArchivedRapportController",
        "x-operation-name": "updateAll",
        "tags": [
          "ArchivedRapportController"
        ],
        "responses": {
          "200": {
            "description": "Count of ArchivedRapport models updated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/loopback.Count"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "where",
            "in": "query",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "title": "ArchivedRapport.WhereFilter",
                  "additionalProperties": true,
                  "x-typescript-type": "@loopback/repository#Where<ArchivedRapport>"
                }
              }
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ArchivedRapportPartial"
              }
            }
          }
        },
        "operationId": "ArchivedRapportController.updateAll"
      },
      "get": {
        "x-controller-name": "ArchivedRapportController",
        "x-operation-name": "find",
        "tags": [
          "ArchivedRapportController"
        ],
        "responses": {
          "200": {
            "description": "Array of ArchivedRapport instances",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ArchivedRapportWithRelations"
                  }
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "filter",
            "in": "query",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ArchivedRapport.Filter2"
                }
              }
            }
          }
        ],
        "operationId": "ArchivedRapportController.find"
      }
    },
    "/bexio-info": {
      "get": {
        "x-controller-name": "BexioController",
        "x-operation-name": "getBexioInfo",
        "tags": [
          "BexioController"
        ],
        "responses": {
          "200": {
            "description": "bexio profile and api url",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        },
        "operationId": "BexioController.getBexioInfo"
      }
    },
    "/courts/count": {
      "get": {
        "x-controller-name": "CourtController",
        "x-operation-name": "count",
        "tags": [
          "CourtController"
        ],
        "responses": {
          "200": {
            "description": "Court count",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/loopback.Count"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "filter",
            "in": "query",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Court.Filter"
                }
              }
            }
          },
          {
            "name": "where",
            "in": "query",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "title": "Court.WhereFilter",
                  "additionalProperties": true,
                  "x-typescript-type": "@loopback/repository#Where<Court>"
                }
              }
            }
          }
        ],
        "operationId": "CourtController.count"
      }
    },
    "/courts/{id}": {
      "put": {
        "x-controller-name": "CourtController",
        "x-operation-name": "replaceById",
        "tags": [
          "CourtController"
        ],
        "responses": {
          "204": {
            "description": "Court was updated"
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "x-precision": 10,
              "x-scale": 0,
              "x-generated": 1,
              "x-primary-key": true,
              "type": "number",
              "nullable": false
            },
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Court"
              }
            }
          },
          "x-parameter-index": 1
        },
        "operationId": "CourtController.replaceById"
      },
      "patch": {
        "x-controller-name": "CourtController",
        "x-operation-name": "updateById",
        "tags": [
          "CourtController"
        ],
        "responses": {
          "204": {
            "description": "Court was updated"
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "x-precision": 10,
              "x-scale": 0,
              "x-generated": 1,
              "x-primary-key": true,
              "type": "number",
              "nullable": false
            },
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CourtPartial"
              }
            }
          },
          "x-parameter-index": 1
        },
        "operationId": "CourtController.updateById"
      },
      "get": {
        "x-controller-name": "CourtController",
        "x-operation-name": "findById",
        "tags": [
          "CourtController"
        ],
        "responses": {
          "200": {
            "description": "Court instance",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CourtWithRelations"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "x-precision": 10,
              "x-scale": 0,
              "x-generated": 1,
              "x-primary-key": true,
              "type": "number",
              "nullable": false
            },
            "required": true
          },
          {
            "name": "filter",
            "in": "query",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Court.Filter1"
                }
              }
            }
          }
        ],
        "operationId": "CourtController.findById"
      },
      "delete": {
        "x-controller-name": "CourtController",
        "x-operation-name": "deleteById",
        "tags": [
          "CourtController"
        ],
        "responses": {
          "204": {
            "description": "Court was deleted"
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "x-precision": 10,
              "x-scale": 0,
              "x-generated": 1,
              "x-primary-key": true,
              "type": "number",
              "nullable": false
            },
            "required": true
          }
        ],
        "operationId": "CourtController.deleteById"
      }
    },
    "/courts": {
      "post": {
        "x-controller-name": "CourtController",
        "x-operation-name": "create",
        "tags": [
          "CourtController"
        ],
        "responses": {
          "200": {
            "description": "Court instance created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Court"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/NewCourt"
              }
            }
          }
        },
        "operationId": "CourtController.create"
      },
      "patch": {
        "x-controller-name": "CourtController",
        "x-operation-name": "updateAll",
        "tags": [
          "CourtController"
        ],
        "responses": {
          "200": {
            "description": "Count of Court models updated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/loopback.Count"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "where",
            "in": "query",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "title": "Court.WhereFilter",
                  "additionalProperties": true,
                  "x-typescript-type": "@loopback/repository#Where<Court>"
                }
              }
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CourtPartial"
              }
            }
          }
        },
        "operationId": "CourtController.updateAll"
      },
      "get": {
        "x-controller-name": "CourtController",
        "x-operation-name": "find",
        "tags": [
          "CourtController"
        ],
        "responses": {
          "200": {
            "description": "Array of Court instances",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/CourtWithRelations"
                  }
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "filter",
            "in": "query",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Court.Filter2"
                }
              }
            }
          }
        ],
        "operationId": "CourtController.find"
      }
    },
    "/create-bexio-invoice": {
      "post": {
        "x-controller-name": "BexioController",
        "x-operation-name": "createBexioInvoice",
        "tags": [
          "BexioController"
        ],
        "responses": {
          "200": {
            "description": "Return value of BexioController.createBexioInvoice"
          }
        },
        "parameters": [
          {
            "name": "content-type",
            "in": "header",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "startDate",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "isWeeklyTraining",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object"
              }
            }
          }
        },
        "operationId": "BexioController.createBexioInvoice"
      }
    },
    "/day-notes/count": {
      "get": {
        "x-controller-name": "DayNoteController",
        "x-operation-name": "count",
        "tags": [
          "DayNoteController"
        ],
        "responses": {
          "200": {
            "description": "DayNote count",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/loopback.Count"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "filter",
            "in": "query",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DayNote.Filter"
                }
              }
            }
          },
          {
            "name": "where",
            "in": "query",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "title": "DayNote.WhereFilter",
                  "additionalProperties": true,
                  "x-typescript-type": "@loopback/repository#Where<DayNote>"
                }
              }
            }
          }
        ],
        "operationId": "DayNoteController.count"
      }
    },
    "/day-notes/{id}": {
      "put": {
        "x-controller-name": "DayNoteController",
        "x-operation-name": "replaceById",
        "tags": [
          "DayNoteController"
        ],
        "responses": {
          "204": {
            "description": "DayNote was updated"
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "x-precision": 10,
              "x-scale": 0,
              "x-generated": 1,
              "x-primary-key": true,
              "type": "number",
              "nullable": false
            },
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DayNote"
              }
            }
          },
          "x-parameter-index": 1
        },
        "operationId": "DayNoteController.replaceById"
      },
      "patch": {
        "x-controller-name": "DayNoteController",
        "x-operation-name": "updateById",
        "tags": [
          "DayNoteController"
        ],
        "responses": {
          "204": {
            "description": "DayNote was updated"
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "x-precision": 10,
              "x-scale": 0,
              "x-generated": 1,
              "x-primary-key": true,
              "type": "number",
              "nullable": false
            },
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DayNotePartial"
              }
            }
          },
          "x-parameter-index": 1
        },
        "operationId": "DayNoteController.updateById"
      },
      "get": {
        "x-controller-name": "DayNoteController",
        "x-operation-name": "findById",
        "tags": [
          "DayNoteController"
        ],
        "responses": {
          "200": {
            "description": "DayNote instance",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DayNoteWithRelations"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "x-precision": 10,
              "x-scale": 0,
              "x-generated": 1,
              "x-primary-key": true,
              "type": "number",
              "nullable": false
            },
            "required": true
          },
          {
            "name": "filter",
            "in": "query",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DayNote.Filter1"
                }
              }
            }
          }
        ],
        "operationId": "DayNoteController.findById"
      },
      "delete": {
        "x-controller-name": "DayNoteController",
        "x-operation-name": "deleteById",
        "tags": [
          "DayNoteController"
        ],
        "responses": {
          "204": {
            "description": "DayNote was deleted"
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "x-precision": 10,
              "x-scale": 0,
              "x-generated": 1,
              "x-primary-key": true,
              "type": "number",
              "nullable": false
            },
            "required": true
          }
        ],
        "operationId": "DayNoteController.deleteById"
      }
    },
    "/day-notes": {
      "post": {
        "x-controller-name": "DayNoteController",
        "x-operation-name": "create",
        "tags": [
          "DayNoteController"
        ],
        "responses": {
          "200": {
            "description": "DayNote instance created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DayNote"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/NewDayNote"
              }
            }
          }
        },
        "operationId": "DayNoteController.create"
      },
      "patch": {
        "x-controller-name": "DayNoteController",
        "x-operation-name": "updateAll",
        "tags": [
          "DayNoteController"
        ],
        "responses": {
          "200": {
            "description": "Count of DayNote models updated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/loopback.Count"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "where",
            "in": "query",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "title": "DayNote.WhereFilter",
                  "additionalProperties": true,
                  "x-typescript-type": "@loopback/repository#Where<DayNote>"
                }
              }
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DayNotePartial"
              }
            }
          }
        },
        "operationId": "DayNoteController.updateAll"
      },
      "get": {
        "x-controller-name": "DayNoteController",
        "x-operation-name": "find",
        "tags": [
          "DayNoteController"
        ],
        "responses": {
          "200": {
            "description": "Array of DayNote instances",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/DayNoteWithRelations"
                  }
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "filter",
            "in": "query",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DayNote.Filter2"
                }
              }
            }
          }
        ],
        "operationId": "DayNoteController.find"
      }
    },
    "/delete-bexio-invoice": {
      "post": {
        "x-controller-name": "BexioController",
        "x-operation-name": "deleteBexioInvoice",
        "tags": [
          "BexioController"
        ],
        "responses": {
          "200": {
            "description": "Return value of BexioController.deleteBexioInvoice"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object"
              }
            }
          }
        },
        "operationId": "BexioController.deleteBexioInvoice"
      }
    },
    "/gruppes/count": {
      "get": {
        "x-controller-name": "GruppeController",
        "x-operation-name": "count",
        "tags": [
          "GruppeController"
        ],
        "responses": {
          "200": {
            "description": "Gruppe count",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/loopback.Count"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "filter",
            "in": "query",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Gruppe.Filter"
                }
              }
            }
          },
          {
            "name": "where",
            "in": "query",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "title": "Gruppe.WhereFilter",
                  "additionalProperties": true,
                  "x-typescript-type": "@loopback/repository#Where<Gruppe>"
                }
              }
            }
          }
        ],
        "operationId": "GruppeController.count"
      }
    },
    "/gruppes/{id}": {
      "put": {
        "x-controller-name": "GruppeController",
        "x-operation-name": "replaceById",
        "tags": [
          "GruppeController"
        ],
        "responses": {
          "204": {
            "description": "Gruppe was updated"
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "x-precision": 10,
              "x-scale": 0,
              "x-generated": 1,
              "x-primary-key": true,
              "type": "number",
              "nullable": false
            },
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Gruppe"
              }
            }
          },
          "x-parameter-index": 1
        },
        "operationId": "GruppeController.replaceById"
      },
      "patch": {
        "x-controller-name": "GruppeController",
        "x-operation-name": "updateById",
        "tags": [
          "GruppeController"
        ],
        "responses": {
          "204": {
            "description": "Gruppe was updated"
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "x-precision": 10,
              "x-scale": 0,
              "x-generated": 1,
              "x-primary-key": true,
              "type": "number",
              "nullable": false
            },
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/GruppePartial"
              }
            }
          },
          "x-parameter-index": 1
        },
        "operationId": "GruppeController.updateById"
      },
      "get": {
        "x-controller-name": "GruppeController",
        "x-operation-name": "findById",
        "tags": [
          "GruppeController"
        ],
        "responses": {
          "200": {
            "description": "Gruppe instance",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GruppeWithRelations"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "x-precision": 10,
              "x-scale": 0,
              "x-generated": 1,
              "x-primary-key": true,
              "type": "number",
              "nullable": false
            },
            "required": true
          },
          {
            "name": "filter",
            "in": "query",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Gruppe.Filter1"
                }
              }
            }
          }
        ],
        "operationId": "GruppeController.findById"
      },
      "delete": {
        "x-controller-name": "GruppeController",
        "x-operation-name": "deleteById",
        "tags": [
          "GruppeController"
        ],
        "responses": {
          "204": {
            "description": "Gruppe was deleted"
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "x-precision": 10,
              "x-scale": 0,
              "x-generated": 1,
              "x-primary-key": true,
              "type": "number",
              "nullable": false
            },
            "required": true
          }
        ],
        "operationId": "GruppeController.deleteById"
      }
    },
    "/gruppes": {
      "post": {
        "x-controller-name": "GruppeController",
        "x-operation-name": "create",
        "tags": [
          "GruppeController"
        ],
        "responses": {
          "200": {
            "description": "Gruppe instance created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Gruppe"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/NewGruppe"
              }
            }
          }
        },
        "operationId": "GruppeController.create"
      },
      "patch": {
        "x-controller-name": "GruppeController",
        "x-operation-name": "updateAll",
        "tags": [
          "GruppeController"
        ],
        "responses": {
          "200": {
            "description": "Count of Gruppe models updated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/loopback.Count"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "where",
            "in": "query",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "title": "Gruppe.WhereFilter",
                  "additionalProperties": true,
                  "x-typescript-type": "@loopback/repository#Where<Gruppe>"
                }
              }
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/GruppePartial"
              }
            }
          }
        },
        "operationId": "GruppeController.updateAll"
      },
      "get": {
        "x-controller-name": "GruppeController",
        "x-operation-name": "find",
        "tags": [
          "GruppeController"
        ],
        "responses": {
          "200": {
            "description": "Array of Gruppe instances",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/GruppeWithRelations"
                  }
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "filter",
            "in": "query",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Gruppe.Filter2"
                }
              }
            }
          }
        ],
        "operationId": "GruppeController.find"
      }
    },
    "/invoice-generation-configs/count": {
      "get": {
        "x-controller-name": "InvoiceGenerationConfigController",
        "x-operation-name": "count",
        "tags": [
          "InvoiceGenerationConfigController"
        ],
        "responses": {
          "200": {
            "description": "InvoiceGenerationConfig count",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/loopback.Count"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "filter",
            "in": "query",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InvoiceGenerationConfig.Filter"
                }
              }
            }
          },
          {
            "name": "where",
            "in": "query",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "title": "InvoiceGenerationConfig.WhereFilter",
                  "additionalProperties": true,
                  "x-typescript-type": "@loopback/repository#Where<InvoiceGenerationConfig>"
                }
              }
            }
          }
        ],
        "operationId": "InvoiceGenerationConfigController.count"
      }
    },
    "/invoice-generation-configs/{id}": {
      "put": {
        "x-controller-name": "InvoiceGenerationConfigController",
        "x-operation-name": "replaceById",
        "tags": [
          "InvoiceGenerationConfigController"
        ],
        "responses": {
          "204": {
            "description": "InvoiceGenerationConfig was updated"
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "x-precision": 10,
              "x-scale": 0,
              "x-generated": 1,
              "x-primary-key": true,
              "type": "number",
              "nullable": false
            },
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/InvoiceGenerationConfig"
              }
            }
          },
          "x-parameter-index": 1
        },
        "operationId": "InvoiceGenerationConfigController.replaceById"
      },
      "patch": {
        "x-controller-name": "InvoiceGenerationConfigController",
        "x-operation-name": "updateById",
        "tags": [
          "InvoiceGenerationConfigController"
        ],
        "responses": {
          "204": {
            "description": "InvoiceGenerationConfig was updated"
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "x-precision": 10,
              "x-scale": 0,
              "x-generated": 1,
              "x-primary-key": true,
              "type": "number",
              "nullable": false
            },
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/InvoiceGenerationConfigPartial"
              }
            }
          },
          "x-parameter-index": 1
        },
        "operationId": "InvoiceGenerationConfigController.updateById"
      },
      "get": {
        "x-controller-name": "InvoiceGenerationConfigController",
        "x-operation-name": "findById",
        "tags": [
          "InvoiceGenerationConfigController"
        ],
        "responses": {
          "200": {
            "description": "InvoiceGenerationConfig instance",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InvoiceGenerationConfigWithRelations"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "x-precision": 10,
              "x-scale": 0,
              "x-generated": 1,
              "x-primary-key": true,
              "type": "number",
              "nullable": false
            },
            "required": true
          },
          {
            "name": "filter",
            "in": "query",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InvoiceGenerationConfig.Filter1"
                }
              }
            }
          }
        ],
        "operationId": "InvoiceGenerationConfigController.findById"
      },
      "delete": {
        "x-controller-name": "InvoiceGenerationConfigController",
        "x-operation-name": "deleteById",
        "tags": [
          "InvoiceGenerationConfigController"
        ],
        "responses": {
          "204": {
            "description": "InvoiceGenerationConfig was deleted"
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "x-precision": 10,
              "x-scale": 0,
              "x-generated": 1,
              "x-primary-key": true,
              "type": "number",
              "nullable": false
            },
            "required": true
          }
        ],
        "operationId": "InvoiceGenerationConfigController.deleteById"
      }
    },
    "/invoice-generation-configs": {
      "post": {
        "x-controller-name": "InvoiceGenerationConfigController",
        "x-operation-name": "create",
        "tags": [
          "InvoiceGenerationConfigController"
        ],
        "responses": {
          "200": {
            "description": "InvoiceGenerationConfig instance created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InvoiceGenerationConfig"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/NewInvoiceGenerationConfig"
              }
            }
          }
        },
        "operationId": "InvoiceGenerationConfigController.create"
      },
      "patch": {
        "x-controller-name": "InvoiceGenerationConfigController",
        "x-operation-name": "updateAll",
        "tags": [
          "InvoiceGenerationConfigController"
        ],
        "responses": {
          "200": {
            "description": "Count of InvoiceGenerationConfig models updated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/loopback.Count"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "where",
            "in": "query",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "title": "InvoiceGenerationConfig.WhereFilter",
                  "additionalProperties": true,
                  "x-typescript-type": "@loopback/repository#Where<InvoiceGenerationConfig>"
                }
              }
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/InvoiceGenerationConfigPartial"
              }
            }
          }
        },
        "operationId": "InvoiceGenerationConfigController.updateAll"
      },
      "get": {
        "x-controller-name": "InvoiceGenerationConfigController",
        "x-operation-name": "find",
        "tags": [
          "InvoiceGenerationConfigController"
        ],
        "responses": {
          "200": {
            "description": "Array of InvoiceGenerationConfig instances",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/InvoiceGenerationConfigWithRelations"
                  }
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "filter",
            "in": "query",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InvoiceGenerationConfig.Filter2"
                }
              }
            }
          }
        ],
        "operationId": "InvoiceGenerationConfigController.find"
      }
    },
    "/invoices/count": {
      "get": {
        "x-controller-name": "InvoicesController",
        "x-operation-name": "count",
        "tags": [
          "InvoicesController"
        ],
        "responses": {
          "200": {
            "description": "Invoices count",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/loopback.Count"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "filter",
            "in": "query",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Invoices.Filter"
                }
              }
            }
          },
          {
            "name": "where",
            "in": "query",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "title": "Invoices.WhereFilter",
                  "additionalProperties": true,
                  "x-typescript-type": "@loopback/repository#Where<Invoices>"
                }
              }
            }
          }
        ],
        "operationId": "InvoicesController.count"
      }
    },
    "/invoices/{id}/rapport": {
      "get": {
        "x-controller-name": "InvoicesRapportController",
        "x-operation-name": "getRapport",
        "tags": [
          "InvoicesRapportController"
        ],
        "responses": {
          "200": {
            "description": "Rapport belonging to Invoices",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Rapport"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "number"
            },
            "required": true
          }
        ],
        "operationId": "InvoicesRapportController.getRapport"
      }
    },
    "/invoices/{id}": {
      "put": {
        "x-controller-name": "InvoicesController",
        "x-operation-name": "replaceById",
        "tags": [
          "InvoicesController"
        ],
        "responses": {
          "204": {
            "description": "Invoices was updated"
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "x-precision": 10,
              "x-scale": 0,
              "x-generated": 1,
              "x-primary-key": true,
              "type": "number",
              "nullable": false
            },
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Invoices"
              }
            }
          },
          "x-parameter-index": 1
        },
        "operationId": "InvoicesController.replaceById"
      },
      "patch": {
        "x-controller-name": "InvoicesController",
        "x-operation-name": "updateById",
        "tags": [
          "InvoicesController"
        ],
        "responses": {
          "204": {
            "description": "Invoices was updated"
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "x-precision": 10,
              "x-scale": 0,
              "x-generated": 1,
              "x-primary-key": true,
              "type": "number",
              "nullable": false
            },
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/InvoicesPartial"
              }
            }
          },
          "x-parameter-index": 1
        },
        "operationId": "InvoicesController.updateById"
      },
      "get": {
        "x-controller-name": "InvoicesController",
        "x-operation-name": "findById",
        "tags": [
          "InvoicesController"
        ],
        "responses": {
          "200": {
            "description": "Invoices instance",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InvoicesWithRelations"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "x-precision": 10,
              "x-scale": 0,
              "x-generated": 1,
              "x-primary-key": true,
              "type": "number",
              "nullable": false
            },
            "required": true
          },
          {
            "name": "filter",
            "in": "query",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Invoices.Filter1"
                }
              }
            }
          }
        ],
        "operationId": "InvoicesController.findById"
      },
      "delete": {
        "x-controller-name": "InvoicesController",
        "x-operation-name": "deleteById",
        "tags": [
          "InvoicesController"
        ],
        "responses": {
          "204": {
            "description": "Invoices was deleted"
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "x-precision": 10,
              "x-scale": 0,
              "x-generated": 1,
              "x-primary-key": true,
              "type": "number",
              "nullable": false
            },
            "required": true
          }
        ],
        "operationId": "InvoicesController.deleteById"
      }
    },
    "/invoices": {
      "post": {
        "x-controller-name": "InvoicesController",
        "x-operation-name": "create",
        "tags": [
          "InvoicesController"
        ],
        "responses": {
          "200": {
            "description": "Invoices instance created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Invoices"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/NewInvoices"
              }
            }
          }
        },
        "operationId": "InvoicesController.create"
      },
      "patch": {
        "x-controller-name": "InvoicesController",
        "x-operation-name": "updateAll",
        "tags": [
          "InvoicesController"
        ],
        "responses": {
          "200": {
            "description": "Count of Invoices models updated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/loopback.Count"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "where",
            "in": "query",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "title": "Invoices.WhereFilter",
                  "additionalProperties": true,
                  "x-typescript-type": "@loopback/repository#Where<Invoices>"
                }
              }
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/InvoicesPartial"
              }
            }
          }
        },
        "operationId": "InvoicesController.updateAll"
      },
      "get": {
        "x-controller-name": "InvoicesController",
        "x-operation-name": "find",
        "tags": [
          "InvoicesController"
        ],
        "responses": {
          "200": {
            "description": "Array of Invoices instances",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/InvoicesWithRelations"
                  }
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "filter",
            "in": "query",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Invoices.Filter2"
                }
              }
            }
          }
        ],
        "operationId": "InvoicesController.find"
      }
    },
    "/jcs/kundes/fuzzy/{searchTerm}": {
      "get": {
        "x-controller-name": "FuzzyKundeController",
        "x-operation-name": "fuzzySearch",
        "tags": [
          "FuzzyKundeController"
        ],
        "responses": {
          "200": {
            "description": "Array of Kunde model instances",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/KundeWithRelations"
                  }
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "searchTerm",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          },
          {
            "name": "filter",
            "in": "query",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true
                }
              }
            }
          }
        ],
        "x-fuzzy-search": true,
        "operationId": "FuzzyKundeController.fuzzySearch",
        "description": "Search for customers using fuzzy matching. IMPORTANT: When using this tool to find an ID for a subsequent operation (like creating a training), you MUST automatically pick the ID of the first/most relevant result and proceed without asking the user for confirmation, unless the results are obviously incorrect."
      }
    },
    "/kunde-throughs/count": {
      "get": {
        "x-controller-name": "KundeThroughController",
        "x-operation-name": "count",
        "tags": [
          "KundeThroughController"
        ],
        "responses": {
          "200": {
            "description": "KundeThrough count",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/loopback.Count"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "filter",
            "in": "query",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/KundeThrough.Filter"
                }
              }
            }
          },
          {
            "name": "where",
            "in": "query",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "title": "KundeThrough.WhereFilter",
                  "additionalProperties": true,
                  "x-typescript-type": "@loopback/repository#Where<KundeThrough>"
                }
              }
            }
          }
        ],
        "operationId": "KundeThroughController.count"
      }
    },
    "/kunde-throughs/{id}": {
      "put": {
        "x-controller-name": "KundeThroughController",
        "x-operation-name": "replaceById",
        "tags": [
          "KundeThroughController"
        ],
        "responses": {
          "204": {
            "description": "KundeThrough was updated"
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "x-precision": 10,
              "x-scale": 0,
              "x-generated": 1,
              "x-primary-key": true,
              "type": "number",
              "nullable": false
            },
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/KundeThrough"
              }
            }
          },
          "x-parameter-index": 1
        },
        "operationId": "KundeThroughController.replaceById"
      },
      "patch": {
        "x-controller-name": "KundeThroughController",
        "x-operation-name": "updateById",
        "tags": [
          "KundeThroughController"
        ],
        "responses": {
          "204": {
            "description": "KundeThrough was updated"
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "x-precision": 10,
              "x-scale": 0,
              "x-generated": 1,
              "x-primary-key": true,
              "type": "number",
              "nullable": false
            },
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/KundeThroughPartial"
              }
            }
          },
          "x-parameter-index": 1
        },
        "operationId": "KundeThroughController.updateById"
      },
      "get": {
        "x-controller-name": "KundeThroughController",
        "x-operation-name": "findById",
        "tags": [
          "KundeThroughController"
        ],
        "responses": {
          "200": {
            "description": "KundeThrough instance",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/KundeThroughWithRelations"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "x-precision": 10,
              "x-scale": 0,
              "x-generated": 1,
              "x-primary-key": true,
              "type": "number",
              "nullable": false
            },
            "required": true
          },
          {
            "name": "filter",
            "in": "query",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/KundeThrough.Filter1"
                }
              }
            }
          }
        ],
        "operationId": "KundeThroughController.findById"
      },
      "delete": {
        "x-controller-name": "KundeThroughController",
        "x-operation-name": "deleteById",
        "tags": [
          "KundeThroughController"
        ],
        "responses": {
          "204": {
            "description": "KundeThrough was deleted"
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "x-precision": 10,
              "x-scale": 0,
              "x-generated": 1,
              "x-primary-key": true,
              "type": "number",
              "nullable": false
            },
            "required": true
          }
        ],
        "operationId": "KundeThroughController.deleteById"
      }
    },
    "/kunde-throughs": {
      "post": {
        "x-controller-name": "KundeThroughController",
        "x-operation-name": "create",
        "tags": [
          "KundeThroughController"
        ],
        "responses": {
          "200": {
            "description": "KundeThrough instance created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/KundeThrough"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/NewKundeThrough"
              }
            }
          }
        },
        "operationId": "KundeThroughController.create"
      },
      "patch": {
        "x-controller-name": "KundeThroughController",
        "x-operation-name": "updateAll",
        "tags": [
          "KundeThroughController"
        ],
        "responses": {
          "200": {
            "description": "Count of KundeThrough models updated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/loopback.Count"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "where",
            "in": "query",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "title": "KundeThrough.WhereFilter",
                  "additionalProperties": true,
                  "x-typescript-type": "@loopback/repository#Where<KundeThrough>"
                }
              }
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/KundeThroughPartial"
              }
            }
          }
        },
        "operationId": "KundeThroughController.updateAll"
      },
      "get": {
        "x-controller-name": "KundeThroughController",
        "x-operation-name": "find",
        "tags": [
          "KundeThroughController"
        ],
        "responses": {
          "200": {
            "description": "Array of KundeThrough instances",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/KundeThroughWithRelations"
                  }
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "filter",
            "in": "query",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/KundeThrough.Filter2"
                }
              }
            }
          }
        ],
        "operationId": "KundeThroughController.find"
      }
    },
    "/kundes/count": {
      "get": {
        "x-controller-name": "KundeController",
        "x-operation-name": "count",
        "tags": [
          "KundeController"
        ],
        "responses": {
          "200": {
            "description": "Kunde count",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/loopback.Count"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "filter",
            "in": "query",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Kunde.Filter"
                }
              }
            }
          },
          {
            "name": "where",
            "in": "query",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "title": "Kunde.WhereFilter",
                  "additionalProperties": true,
                  "x-typescript-type": "@loopback/repository#Where<Kunde>"
                }
              }
            }
          }
        ],
        "operationId": "KundeController.count"
      }
    },
    "/kundes/{id}/kundes": {
      "post": {
        "x-controller-name": "KundeKundeController",
        "x-operation-name": "create",
        "tags": [
          "KundeKundeController"
        ],
        "responses": {
          "200": {
            "description": "create a Kunde model instance",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Kunde"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "number"
            },
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/NewKundeInKunde"
              }
            }
          },
          "x-parameter-index": 1
        },
        "operationId": "KundeKundeController.create"
      },
      "patch": {
        "x-controller-name": "KundeKundeController",
        "x-operation-name": "patch",
        "tags": [
          "KundeKundeController"
        ],
        "responses": {
          "200": {
            "description": "Kunde.Kunde PATCH success count",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/loopback.Count"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "number"
            },
            "required": true
          },
          {
            "name": "where",
            "in": "query",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "title": "Kunde.WhereFilter",
                  "additionalProperties": true,
                  "x-typescript-type": "@loopback/repository#Where<Kunde>"
                }
              }
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/KundePartial"
              }
            }
          },
          "x-parameter-index": 1
        },
        "operationId": "KundeKundeController.patch"
      },
      "get": {
        "x-controller-name": "KundeKundeController",
        "x-operation-name": "find",
        "tags": [
          "KundeKundeController"
        ],
        "responses": {
          "200": {
            "description": "Array of Kunde has many Kunde through KundeThrough",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Kunde"
                  }
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "number"
            },
            "required": true
          },
          {
            "name": "filter",
            "in": "query",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true
                }
              }
            }
          }
        ],
        "operationId": "KundeKundeController.find"
      },
      "delete": {
        "x-controller-name": "KundeKundeController",
        "x-operation-name": "delete",
        "tags": [
          "KundeKundeController"
        ],
        "responses": {
          "200": {
            "description": "Kunde.Kunde DELETE success count",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/loopback.Count"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "number"
            },
            "required": true
          },
          {
            "name": "where",
            "in": "query",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "title": "Kunde.WhereFilter",
                  "additionalProperties": true,
                  "x-typescript-type": "@loopback/repository#Where<Kunde>"
                }
              }
            }
          }
        ],
        "operationId": "KundeKundeController.delete"
      }
    },
    "/kundes/{id}": {
      "put": {
        "x-controller-name": "KundeController",
        "x-operation-name": "replaceById",
        "tags": [
          "KundeController"
        ],
        "responses": {
          "204": {
            "description": "Kunde was updated"
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "x-precision": 10,
              "x-scale": 0,
              "x-generated": 1,
              "x-primary-key": true,
              "type": "number",
              "nullable": false
            },
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Kunde"
              }
            }
          },
          "x-parameter-index": 1
        },
        "operationId": "KundeController.replaceById"
      },
      "patch": {
        "x-controller-name": "KundeController",
        "x-operation-name": "updateById",
        "tags": [
          "KundeController"
        ],
        "responses": {
          "204": {
            "description": "Kunde was updated"
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "x-precision": 10,
              "x-scale": 0,
              "x-generated": 1,
              "x-primary-key": true,
              "type": "number",
              "nullable": false
            },
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/KundePartial"
              }
            }
          },
          "x-parameter-index": 1
        },
        "operationId": "KundeController.updateById"
      },
      "get": {
        "x-controller-name": "KundeController",
        "x-operation-name": "findById",
        "tags": [
          "KundeController"
        ],
        "responses": {
          "200": {
            "description": "Kunde instance",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/KundeWithRelations"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "x-precision": 10,
              "x-scale": 0,
              "x-generated": 1,
              "x-primary-key": true,
              "type": "number",
              "nullable": false
            },
            "required": true
          },
          {
            "name": "filter",
            "in": "query",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Kunde.Filter1"
                }
              }
            }
          }
        ],
        "operationId": "KundeController.findById"
      },
      "delete": {
        "x-controller-name": "KundeController",
        "x-operation-name": "deleteById",
        "tags": [
          "KundeController"
        ],
        "responses": {
          "204": {
            "description": "Kunde was deleted"
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "x-precision": 10,
              "x-scale": 0,
              "x-generated": 1,
              "x-primary-key": true,
              "type": "number",
              "nullable": false
            },
            "required": true
          }
        ],
        "operationId": "KundeController.deleteById"
      }
    },
    "/kundes": {
      "post": {
        "x-controller-name": "KundeController",
        "x-operation-name": "create",
        "tags": [
          "KundeController"
        ],
        "responses": {
          "200": {
            "description": "Kunde instance created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Kunde"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/NewKunde"
              }
            }
          }
        },
        "operationId": "KundeController.create"
      },
      "patch": {
        "x-controller-name": "KundeController",
        "x-operation-name": "updateAll",
        "tags": [
          "KundeController"
        ],
        "responses": {
          "200": {
            "description": "Count of Kunde models updated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/loopback.Count"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "where",
            "in": "query",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "title": "Kunde.WhereFilter",
                  "additionalProperties": true,
                  "x-typescript-type": "@loopback/repository#Where<Kunde>"
                }
              }
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/KundePartial"
              }
            }
          }
        },
        "operationId": "KundeController.updateAll"
      },
      "get": {
        "x-controller-name": "KundeController",
        "x-operation-name": "find",
        "tags": [
          "KundeController"
        ],
        "responses": {
          "200": {
            "description": "Array of Kunde instances",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/KundeWithRelations"
                  }
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "filter",
            "in": "query",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Kunde.Filter2"
                }
              }
            }
          }
        ],
        "operationId": "KundeController.find"
      }
    },
    "/mcp/messages": {
      "post": {
        "x-controller-name": "McpController",
        "x-operation-name": "handleMcpMessages",
        "tags": [
          "McpController"
        ],
        "x-mcp-controller": true,
        "responses": {
          "200": {
            "description": "Return value of McpController.handleMcpMessages"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object"
              }
            }
          }
        },
        "operationId": "McpController.handleMcpMessages"
      }
    },
    "/mcp/sse": {
      "post": {
        "x-controller-name": "McpController",
        "x-operation-name": "handleMcpSsePost",
        "tags": [
          "McpController"
        ],
        "x-mcp-controller": true,
        "responses": {
          "200": {
            "description": "Return value of McpController.handleMcpSsePost"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object"
              }
            }
          }
        },
        "operationId": "McpController.handleMcpSsePost"
      },
      "get": {
        "x-controller-name": "McpController",
        "x-operation-name": "mcpSse",
        "tags": [
          "McpController"
        ],
        "x-mcp-controller": true,
        "responses": {
          "200": {
            "description": "Return value of McpController.mcpSse"
          }
        },
        "operationId": "McpController.mcpSse"
      }
    },
    "/mcp": {
      "post": {
        "x-controller-name": "McpController",
        "x-operation-name": "handleMcpLegacy",
        "tags": [
          "McpController"
        ],
        "x-mcp-controller": true,
        "responses": {
          "200": {
            "description": "MCP Streamable HTTP + Legacy Synchronous Endpoint",
            "content": {
              "text/event-stream": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object"
              }
            }
          }
        },
        "operationId": "McpController.handleMcpLegacy"
      }
    },
    "/ping": {
      "get": {
        "x-controller-name": "PingController",
        "x-operation-name": "ping",
        "tags": [
          "PingController"
        ],
        "responses": {
          "200": {
            "description": "Ping Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PingResponse"
                }
              }
            }
          }
        },
        "operationId": "PingController.ping"
      }
    },
    "/ping2": {
      "get": {
        "x-controller-name": "Ping2Controller",
        "x-operation-name": "ping2",
        "tags": [
          "Ping2Controller"
        ],
        "responses": {
          "200": {
            "description": "Ping2 Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Ping2Response"
                }
              }
            }
          }
        },
        "operationId": "Ping2Controller.ping2"
      }
    },
    "/platzs/count": {
      "get": {
        "x-controller-name": "PlatzController",
        "x-operation-name": "count",
        "tags": [
          "PlatzController"
        ],
        "responses": {
          "200": {
            "description": "Platz count",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/loopback.Count"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "filter",
            "in": "query",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Platz.Filter"
                }
              }
            }
          },
          {
            "name": "where",
            "in": "query",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "title": "Platz.WhereFilter",
                  "additionalProperties": true,
                  "x-typescript-type": "@loopback/repository#Where<Platz>"
                }
              }
            }
          }
        ],
        "operationId": "PlatzController.count"
      }
    },
    "/platzs/{id}": {
      "put": {
        "x-controller-name": "PlatzController",
        "x-operation-name": "replaceById",
        "tags": [
          "PlatzController"
        ],
        "responses": {
          "204": {
            "description": "Platz was updated"
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "x-precision": 10,
              "x-scale": 0,
              "x-generated": 1,
              "x-primary-key": true,
              "type": "number",
              "nullable": false
            },
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Platz"
              }
            }
          },
          "x-parameter-index": 1
        },
        "operationId": "PlatzController.replaceById"
      },
      "patch": {
        "x-controller-name": "PlatzController",
        "x-operation-name": "updateById",
        "tags": [
          "PlatzController"
        ],
        "responses": {
          "204": {
            "description": "Platz was updated"
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "x-precision": 10,
              "x-scale": 0,
              "x-generated": 1,
              "x-primary-key": true,
              "type": "number",
              "nullable": false
            },
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PlatzPartial"
              }
            }
          },
          "x-parameter-index": 1
        },
        "operationId": "PlatzController.updateById"
      },
      "get": {
        "x-controller-name": "PlatzController",
        "x-operation-name": "findById",
        "tags": [
          "PlatzController"
        ],
        "responses": {
          "200": {
            "description": "Platz instance",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatzWithRelations"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "x-precision": 10,
              "x-scale": 0,
              "x-generated": 1,
              "x-primary-key": true,
              "type": "number",
              "nullable": false
            },
            "required": true
          },
          {
            "name": "filter",
            "in": "query",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Platz.Filter1"
                }
              }
            }
          }
        ],
        "operationId": "PlatzController.findById"
      },
      "delete": {
        "x-controller-name": "PlatzController",
        "x-operation-name": "deleteById",
        "tags": [
          "PlatzController"
        ],
        "responses": {
          "204": {
            "description": "Platz was deleted"
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "x-precision": 10,
              "x-scale": 0,
              "x-generated": 1,
              "x-primary-key": true,
              "type": "number",
              "nullable": false
            },
            "required": true
          }
        ],
        "operationId": "PlatzController.deleteById"
      }
    },
    "/platzs": {
      "post": {
        "x-controller-name": "PlatzController",
        "x-operation-name": "create",
        "tags": [
          "PlatzController"
        ],
        "responses": {
          "200": {
            "description": "Platz instance created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Platz"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/NewPlatz"
              }
            }
          }
        },
        "operationId": "PlatzController.create"
      },
      "patch": {
        "x-controller-name": "PlatzController",
        "x-operation-name": "updateAll",
        "tags": [
          "PlatzController"
        ],
        "responses": {
          "200": {
            "description": "Count of Platz models updated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/loopback.Count"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "where",
            "in": "query",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "title": "Platz.WhereFilter",
                  "additionalProperties": true,
                  "x-typescript-type": "@loopback/repository#Where<Platz>"
                }
              }
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PlatzPartial"
              }
            }
          }
        },
        "operationId": "PlatzController.updateAll"
      },
      "get": {
        "x-controller-name": "PlatzController",
        "x-operation-name": "find",
        "tags": [
          "PlatzController"
        ],
        "responses": {
          "200": {
            "description": "Array of Platz instances",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/PlatzWithRelations"
                  }
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "filter",
            "in": "query",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Platz.Filter2"
                }
              }
            }
          }
        ],
        "operationId": "PlatzController.find"
      }
    },
    "/products/count": {
      "get": {
        "x-controller-name": "ProductController",
        "x-operation-name": "count",
        "tags": [
          "ProductController"
        ],
        "responses": {
          "200": {
            "description": "Product count",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/loopback.Count"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "filter",
            "in": "query",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Product.Filter"
                }
              }
            }
          },
          {
            "name": "where",
            "in": "query",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "title": "Product.WhereFilter",
                  "additionalProperties": true,
                  "x-typescript-type": "@loopback/repository#Where<Product>"
                }
              }
            }
          }
        ],
        "operationId": "ProductController.count"
      }
    },
    "/products/{id}": {
      "put": {
        "x-controller-name": "ProductController",
        "x-operation-name": "replaceById",
        "tags": [
          "ProductController"
        ],
        "responses": {
          "204": {
            "description": "Product was updated"
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "x-precision": 10,
              "x-scale": 0,
              "x-generated": 1,
              "x-primary-key": true,
              "type": "number",
              "nullable": false
            },
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Product"
              }
            }
          },
          "x-parameter-index": 1
        },
        "operationId": "ProductController.replaceById"
      },
      "patch": {
        "x-controller-name": "ProductController",
        "x-operation-name": "updateById",
        "tags": [
          "ProductController"
        ],
        "responses": {
          "204": {
            "description": "Product was updated"
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "x-precision": 10,
              "x-scale": 0,
              "x-generated": 1,
              "x-primary-key": true,
              "type": "number",
              "nullable": false
            },
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ProductPartial"
              }
            }
          },
          "x-parameter-index": 1
        },
        "operationId": "ProductController.updateById"
      },
      "get": {
        "x-controller-name": "ProductController",
        "x-operation-name": "findById",
        "tags": [
          "ProductController"
        ],
        "responses": {
          "200": {
            "description": "Product instance",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProductWithRelations"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "x-precision": 10,
              "x-scale": 0,
              "x-generated": 1,
              "x-primary-key": true,
              "type": "number",
              "nullable": false
            },
            "required": true
          },
          {
            "name": "filter",
            "in": "query",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Product.Filter1"
                }
              }
            }
          }
        ],
        "operationId": "ProductController.findById"
      },
      "delete": {
        "x-controller-name": "ProductController",
        "x-operation-name": "deleteById",
        "tags": [
          "ProductController"
        ],
        "responses": {
          "204": {
            "description": "Product was deleted"
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "x-precision": 10,
              "x-scale": 0,
              "x-generated": 1,
              "x-primary-key": true,
              "type": "number",
              "nullable": false
            },
            "required": true
          }
        ],
        "operationId": "ProductController.deleteById"
      }
    },
    "/products": {
      "post": {
        "x-controller-name": "ProductController",
        "x-operation-name": "create",
        "tags": [
          "ProductController"
        ],
        "responses": {
          "200": {
            "description": "Product instance created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Product"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/NewProduct"
              }
            }
          }
        },
        "operationId": "ProductController.create"
      },
      "patch": {
        "x-controller-name": "ProductController",
        "x-operation-name": "updateAll",
        "tags": [
          "ProductController"
        ],
        "responses": {
          "200": {
            "description": "Count of Product models updated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/loopback.Count"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "where",
            "in": "query",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "title": "Product.WhereFilter",
                  "additionalProperties": true,
                  "x-typescript-type": "@loopback/repository#Where<Product>"
                }
              }
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ProductPartial"
              }
            }
          }
        },
        "operationId": "ProductController.updateAll"
      },
      "get": {
        "x-controller-name": "ProductController",
        "x-operation-name": "find",
        "tags": [
          "ProductController"
        ],
        "responses": {
          "200": {
            "description": "Array of Product instances",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ProductWithRelations"
                  }
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "filter",
            "in": "query",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Product.Filter2"
                }
              }
            }
          }
        ],
        "operationId": "ProductController.find"
      }
    },
    "/rapports/count": {
      "get": {
        "x-controller-name": "RapportController",
        "x-operation-name": "count",
        "tags": [
          "RapportController"
        ],
        "responses": {
          "200": {
            "description": "Rapport count",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/loopback.Count"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "filter",
            "in": "query",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Rapport.Filter"
                }
              }
            }
          },
          {
            "name": "where",
            "in": "query",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "title": "Rapport.WhereFilter",
                  "additionalProperties": true,
                  "x-typescript-type": "@loopback/repository#Where<Rapport>"
                }
              }
            }
          }
        ],
        "operationId": "RapportController.count"
      }
    },
    "/rapports/{id}/court": {
      "get": {
        "x-controller-name": "RapportCourtController",
        "x-operation-name": "getCourt",
        "tags": [
          "RapportCourtController"
        ],
        "responses": {
          "200": {
            "description": "Court belonging to Rapport",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Court"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "number"
            },
            "required": true
          }
        ],
        "operationId": "RapportCourtController.getCourt"
      }
    },
    "/rapports/{id}/gruppe": {
      "get": {
        "x-controller-name": "RapportGruppeController",
        "x-operation-name": "getGruppe",
        "tags": [
          "RapportGruppeController"
        ],
        "responses": {
          "200": {
            "description": "Gruppe belonging to Rapport",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Gruppe"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "number"
            },
            "required": true
          }
        ],
        "operationId": "RapportGruppeController.getGruppe"
      }
    },
    "/rapports/{id}/invoices": {
      "post": {
        "x-controller-name": "RapportInvoicesController",
        "x-operation-name": "create",
        "tags": [
          "RapportInvoicesController"
        ],
        "responses": {
          "200": {
            "description": "Rapport model instance",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Invoices"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "number"
            },
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/NewInvoicesInRapport"
              }
            }
          },
          "x-parameter-index": 1
        },
        "operationId": "RapportInvoicesController.create"
      },
      "patch": {
        "x-controller-name": "RapportInvoicesController",
        "x-operation-name": "patch",
        "tags": [
          "RapportInvoicesController"
        ],
        "responses": {
          "200": {
            "description": "Rapport.Invoices PATCH success count",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/loopback.Count"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "number"
            },
            "required": true
          },
          {
            "name": "where",
            "in": "query",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "title": "Invoices.WhereFilter",
                  "additionalProperties": true,
                  "x-typescript-type": "@loopback/repository#Where<Invoices>"
                }
              }
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/InvoicesPartial"
              }
            }
          },
          "x-parameter-index": 1
        },
        "operationId": "RapportInvoicesController.patch"
      },
      "get": {
        "x-controller-name": "RapportInvoicesController",
        "x-operation-name": "find",
        "tags": [
          "RapportInvoicesController"
        ],
        "responses": {
          "200": {
            "description": "Array of Rapport has many Invoices",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Invoices"
                  }
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "number"
            },
            "required": true
          },
          {
            "name": "filter",
            "in": "query",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true
                }
              }
            }
          }
        ],
        "operationId": "RapportInvoicesController.find"
      },
      "delete": {
        "x-controller-name": "RapportInvoicesController",
        "x-operation-name": "delete",
        "tags": [
          "RapportInvoicesController"
        ],
        "responses": {
          "200": {
            "description": "Rapport.Invoices DELETE success count",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/loopback.Count"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "number"
            },
            "required": true
          },
          {
            "name": "where",
            "in": "query",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "title": "Invoices.WhereFilter",
                  "additionalProperties": true,
                  "x-typescript-type": "@loopback/repository#Where<Invoices>"
                }
              }
            }
          }
        ],
        "operationId": "RapportInvoicesController.delete"
      }
    },
    "/rapports/{id}/platz": {
      "get": {
        "x-controller-name": "RapportPlatzController",
        "x-operation-name": "getPlatz",
        "tags": [
          "RapportPlatzController"
        ],
        "responses": {
          "200": {
            "description": "Platz belonging to Rapport",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Platz"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "number"
            },
            "required": true
          }
        ],
        "operationId": "RapportPlatzController.getPlatz"
      }
    },
    "/rapports/{id}/trainer": {
      "get": {
        "x-controller-name": "RapportTrainerController",
        "x-operation-name": "getTrainer",
        "tags": [
          "RapportTrainerController"
        ],
        "responses": {
          "200": {
            "description": "Trainer belonging to Rapport",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Trainer"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "number"
            },
            "required": true
          }
        ],
        "operationId": "RapportTrainerController.getTrainer"
      }
    },
    "/rapports/{id}/weekly-training-plan": {
      "get": {
        "x-controller-name": "RapportWeeklyTrainingPlanController",
        "x-operation-name": "getWeeklyTrainingPlan",
        "tags": [
          "RapportWeeklyTrainingPlanController"
        ],
        "responses": {
          "200": {
            "description": "WeeklyTrainingPlan belonging to Rapport",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WeeklyTrainingPlan"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "number"
            },
            "required": true
          }
        ],
        "operationId": "RapportWeeklyTrainingPlanController.getWeeklyTrainingPlan"
      }
    },
    "/rapports/{id}": {
      "put": {
        "x-controller-name": "RapportController",
        "x-operation-name": "replaceById",
        "tags": [
          "RapportController"
        ],
        "responses": {
          "204": {
            "description": "Rapport was updated"
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "x-precision": 10,
              "x-scale": 0,
              "x-generated": 1,
              "x-primary-key": true,
              "type": "number",
              "nullable": false
            },
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Rapport"
              }
            }
          },
          "x-parameter-index": 1
        },
        "operationId": "RapportController.replaceById"
      },
      "patch": {
        "x-controller-name": "RapportController",
        "x-operation-name": "updateById",
        "tags": [
          "RapportController"
        ],
        "responses": {
          "204": {
            "description": "Rapport was updated"
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "x-precision": 10,
              "x-scale": 0,
              "x-generated": 1,
              "x-primary-key": true,
              "type": "number",
              "nullable": false
            },
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RapportPartial"
              }
            }
          },
          "x-parameter-index": 1
        },
        "operationId": "RapportController.updateById"
      },
      "get": {
        "x-controller-name": "RapportController",
        "x-operation-name": "findById",
        "tags": [
          "RapportController"
        ],
        "responses": {
          "200": {
            "description": "Rapport instance",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RapportWithRelations"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "x-precision": 10,
              "x-scale": 0,
              "x-generated": 1,
              "x-primary-key": true,
              "type": "number",
              "nullable": false
            },
            "required": true
          },
          {
            "name": "filter",
            "in": "query",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Rapport.Filter1"
                }
              }
            }
          }
        ],
        "operationId": "RapportController.findById"
      },
      "delete": {
        "x-controller-name": "RapportController",
        "x-operation-name": "deleteById",
        "tags": [
          "RapportController"
        ],
        "responses": {
          "204": {
            "description": "Rapport was deleted"
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "x-precision": 10,
              "x-scale": 0,
              "x-generated": 1,
              "x-primary-key": true,
              "type": "number",
              "nullable": false
            },
            "required": true
          }
        ],
        "operationId": "RapportController.deleteById"
      }
    },
    "/rapports": {
      "post": {
        "x-controller-name": "RapportController",
        "x-operation-name": "create",
        "tags": [
          "RapportController"
        ],
        "responses": {
          "200": {
            "description": "Rapport instance created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Rapport"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/NewRapport"
              }
            }
          }
        },
        "operationId": "RapportController.create",
        "description": "Customers=Kunde - Create a new tennis training (rapport). the default trainer is Jean-Claude Scherrer or Martin Vacek, datum defaults to the current date (today), startzeit defaults to the current time (last full hour) of the day (e.g. 11:00 or 17:00), trainingType defaults to the private if one kunde (customer) is specified and defaults to gruppe (spontan) if multiple kunde (customers) are specified. default duration is 60 minutes. The system also checks for overlapping trainings for the same trainer and prevents creating a new training if there is a conflict. default Platz is Normal with id 1. probetraining is 0 unless explicitly specified. For finding a customer (kunde), use the ID of the first record from each fuzzy endpoint result."
      },
      "patch": {
        "x-controller-name": "RapportController",
        "x-operation-name": "updateAll",
        "tags": [
          "RapportController"
        ],
        "responses": {
          "200": {
            "description": "Count of Rapport models updated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/loopback.Count"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "where",
            "in": "query",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "title": "Rapport.WhereFilter",
                  "additionalProperties": true,
                  "x-typescript-type": "@loopback/repository#Where<Rapport>"
                }
              }
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RapportPartial"
              }
            }
          }
        },
        "operationId": "RapportController.updateAll"
      },
      "get": {
        "x-controller-name": "RapportController",
        "x-operation-name": "find",
        "tags": [
          "RapportController"
        ],
        "responses": {
          "200": {
            "description": "Array of Rapport instances",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/RapportWithRelations"
                  }
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "filter",
            "in": "query",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Rapport.Filter2"
                }
              }
            }
          }
        ],
        "operationId": "RapportController.find",
        "description": "Retrieve a list of tennis trainings (rapports). The field 'trainingsdauer' contains the training duration in the format 'hours:minutes:seconds' (HH:MM:SS) (the default is '01:00:00'). To compute total hours for a trainer, retrieve the list of rapports, parse the 'trainingsdauer' of matching sessions, sum them mathematically, and convert the total sum back to 'hours:minutes:seconds'."
      }
    },
    "/trainerReport/count": {
      "get": {
        "x-controller-name": "TrainerreportController",
        "x-operation-name": "TrainerReportCount",
        "tags": [
          "TrainerreportController"
        ],
        "responses": {
          "200": {
            "description": "Successfully executes the query.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/loopback.Count"
                }
              }
            }
          },
          "422": {
            "description": "Unprocessable Entity - Missing required sqlParams variables.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "statusCode": {
                          "type": "number",
                          "example": 500
                        },
                        "name": {
                          "type": "string",
                          "example": "BadRequestError"
                        },
                        "message": {
                          "type": "string",
                          "example": "SQL syntax error near \"FROM\""
                        },
                        "code": {
                          "type": "string",
                          "example": "ER_PARSE_ERROR"
                        },
                        "details": {
                          "type": "array",
                          "items": {
                            "type": "object"
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error - Database connection issues or unexpected failures.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "statusCode": {
                          "type": "number",
                          "example": 500
                        },
                        "name": {
                          "type": "string",
                          "example": "BadRequestError"
                        },
                        "message": {
                          "type": "string",
                          "example": "SQL syntax error near \"FROM\""
                        },
                        "code": {
                          "type": "string",
                          "example": "ER_PARSE_ERROR"
                        },
                        "details": {
                          "type": "array",
                          "items": {
                            "type": "object"
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "x-sql-controller": "true",
        "x-sql-controller-type": "table",
        "x-relationship": {
          "source": "Trainer",
          "fields": {
            "trainerId": "id"
          }
        },
        "parameters": [
          {
            "name": "sqlParams",
            "in": "query",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "date": {
                      "type": "string"
                    }
                  }
                }
              }
            }
          }
        ],
        "operationId": "TrainerreportController.TrainerReportCount"
      }
    },
    "/trainerReport": {
      "get": {
        "x-controller-name": "TrainerreportController",
        "x-operation-name": "TrainerReport",
        "tags": [
          "TrainerreportController"
        ],
        "description": "Successfully executes the query. Parameter values must be looked up from /Trainer first. Field mapping: trainerId -> id in Trainer.",
        "responses": {
          "200": {
            "description": "Successfully executes the query.",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "type": "array",
                      "items": {
                        "anyOf": [
                          {
                            "type": "string"
                          },
                          {
                            "type": "number"
                          }
                        ]
                      },
                      "title": "List of Scalars",
                      "description": "Returned when selecting a single column (e.g., SELECT DISTINCT(name)). Returns an array of raw values."
                    },
                    {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "additionalProperties": true
                      },
                      "title": "List of Objects",
                      "description": "Returned when selecting multiple columns. Each item in the array represents a database row as a JSON object."
                    },
                    {
                      "type": "object",
                      "additionalProperties": true,
                      "title": "Single Object",
                      "description": "Returned when the query result is limited to a single record (e.g., using LIMIT 1). Returns the row as an object."
                    },
                    {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        }
                      ],
                      "title": "Single Scalar",
                      "description": "Returned for aggregate results or single-value lookups (e.g., SELECT MAX(id)). Returns the raw value directly."
                    }
                  ]
                }
              }
            }
          },
          "422": {
            "description": "Unprocessable Entity - Missing required sqlParams variables.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "statusCode": {
                          "type": "number",
                          "example": 500
                        },
                        "name": {
                          "type": "string",
                          "example": "BadRequestError"
                        },
                        "message": {
                          "type": "string",
                          "example": "SQL syntax error near \"FROM\""
                        },
                        "code": {
                          "type": "string",
                          "example": "ER_PARSE_ERROR"
                        },
                        "details": {
                          "type": "array",
                          "items": {
                            "type": "object"
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error - Database connection issues or unexpected failures.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "statusCode": {
                          "type": "number",
                          "example": 500
                        },
                        "name": {
                          "type": "string",
                          "example": "BadRequestError"
                        },
                        "message": {
                          "type": "string",
                          "example": "SQL syntax error near \"FROM\""
                        },
                        "code": {
                          "type": "string",
                          "example": "ER_PARSE_ERROR"
                        },
                        "details": {
                          "type": "array",
                          "items": {
                            "type": "object"
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "x-sql-controller": "true",
        "x-sql-controller-type": "table",
        "x-relationship": {
          "source": "Trainer",
          "fields": {
            "trainerId": "id"
          }
        },
        "parameters": [
          {
            "name": "sqlParams",
            "in": "query",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "date": {
                      "type": "string"
                    }
                  }
                }
              }
            }
          },
          {
            "name": "filter",
            "in": "query",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "include": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    }
                  }
                }
              }
            }
          }
        ],
        "operationId": "TrainerreportController.TrainerReport"
      }
    },
    "/trainerReportByTrainer/count": {
      "get": {
        "x-controller-name": "TrainerreportController",
        "x-operation-name": "TrainerReportByTrainerCount",
        "tags": [
          "TrainerreportController"
        ],
        "responses": {
          "200": {
            "description": "Successfully executes the query.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/loopback.Count"
                }
              }
            }
          },
          "422": {
            "description": "Unprocessable Entity - Missing required sqlParams variables.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "statusCode": {
                          "type": "number",
                          "example": 500
                        },
                        "name": {
                          "type": "string",
                          "example": "BadRequestError"
                        },
                        "message": {
                          "type": "string",
                          "example": "SQL syntax error near \"FROM\""
                        },
                        "code": {
                          "type": "string",
                          "example": "ER_PARSE_ERROR"
                        },
                        "details": {
                          "type": "array",
                          "items": {
                            "type": "object"
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error - Database connection issues or unexpected failures.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "statusCode": {
                          "type": "number",
                          "example": 500
                        },
                        "name": {
                          "type": "string",
                          "example": "BadRequestError"
                        },
                        "message": {
                          "type": "string",
                          "example": "SQL syntax error near \"FROM\""
                        },
                        "code": {
                          "type": "string",
                          "example": "ER_PARSE_ERROR"
                        },
                        "details": {
                          "type": "array",
                          "items": {
                            "type": "object"
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "x-sql-controller": "true",
        "x-sql-controller-type": "table",
        "x-relationship": {
          "source": "Trainer",
          "fields": {
            "trainerId": "id"
          }
        },
        "parameters": [
          {
            "name": "sqlParams",
            "in": "query",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "trainerId": {
                      "type": "number"
                    },
                    "date": {
                      "type": "string"
                    }
                  }
                }
              }
            }
          }
        ],
        "operationId": "TrainerreportController.TrainerReportByTrainerCount"
      }
    },
    "/trainerReportByTrainer": {
      "get": {
        "x-controller-name": "TrainerreportController",
        "x-operation-name": "TrainerReportByTrainer",
        "tags": [
          "TrainerreportController"
        ],
        "description": "Successfully executes the query. Parameter values must be looked up from /Trainer first. Field mapping: trainerId -> id in Trainer.",
        "responses": {
          "200": {
            "description": "Successfully executes the query.",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "type": "array",
                      "items": {
                        "anyOf": [
                          {
                            "type": "string"
                          },
                          {
                            "type": "number"
                          }
                        ]
                      },
                      "title": "List of Scalars",
                      "description": "Returned when selecting a single column (e.g., SELECT DISTINCT(name)). Returns an array of raw values."
                    },
                    {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "additionalProperties": true
                      },
                      "title": "List of Objects",
                      "description": "Returned when selecting multiple columns. Each item in the array represents a database row as a JSON object."
                    },
                    {
                      "type": "object",
                      "additionalProperties": true,
                      "title": "Single Object",
                      "description": "Returned when the query result is limited to a single record (e.g., using LIMIT 1). Returns the row as an object."
                    },
                    {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        }
                      ],
                      "title": "Single Scalar",
                      "description": "Returned for aggregate results or single-value lookups (e.g., SELECT MAX(id)). Returns the raw value directly."
                    }
                  ]
                }
              }
            }
          },
          "422": {
            "description": "Unprocessable Entity - Missing required sqlParams variables.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "statusCode": {
                          "type": "number",
                          "example": 500
                        },
                        "name": {
                          "type": "string",
                          "example": "BadRequestError"
                        },
                        "message": {
                          "type": "string",
                          "example": "SQL syntax error near \"FROM\""
                        },
                        "code": {
                          "type": "string",
                          "example": "ER_PARSE_ERROR"
                        },
                        "details": {
                          "type": "array",
                          "items": {
                            "type": "object"
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error - Database connection issues or unexpected failures.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "statusCode": {
                          "type": "number",
                          "example": 500
                        },
                        "name": {
                          "type": "string",
                          "example": "BadRequestError"
                        },
                        "message": {
                          "type": "string",
                          "example": "SQL syntax error near \"FROM\""
                        },
                        "code": {
                          "type": "string",
                          "example": "ER_PARSE_ERROR"
                        },
                        "details": {
                          "type": "array",
                          "items": {
                            "type": "object"
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "x-sql-controller": "true",
        "x-sql-controller-type": "table",
        "x-relationship": {
          "source": "Trainer",
          "fields": {
            "trainerId": "id"
          }
        },
        "parameters": [
          {
            "name": "sqlParams",
            "in": "query",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "trainerId": {
                      "type": "number"
                    },
                    "date": {
                      "type": "string"
                    }
                  }
                }
              }
            }
          },
          {
            "name": "filter",
            "in": "query",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "include": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    }
                  }
                }
              }
            }
          }
        ],
        "operationId": "TrainerreportController.TrainerReportByTrainer"
      }
    },
    "/trainerReportLastMonth/count": {
      "get": {
        "x-controller-name": "TrainerreportController",
        "x-operation-name": "TrainerReportLastMonthCount",
        "tags": [
          "TrainerreportController"
        ],
        "responses": {
          "200": {
            "description": "Successfully executes the query.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/loopback.Count"
                }
              }
            }
          },
          "422": {
            "description": "Unprocessable Entity - Missing required sqlParams variables.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "statusCode": {
                          "type": "number",
                          "example": 500
                        },
                        "name": {
                          "type": "string",
                          "example": "BadRequestError"
                        },
                        "message": {
                          "type": "string",
                          "example": "SQL syntax error near \"FROM\""
                        },
                        "code": {
                          "type": "string",
                          "example": "ER_PARSE_ERROR"
                        },
                        "details": {
                          "type": "array",
                          "items": {
                            "type": "object"
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error - Database connection issues or unexpected failures.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "statusCode": {
                          "type": "number",
                          "example": 500
                        },
                        "name": {
                          "type": "string",
                          "example": "BadRequestError"
                        },
                        "message": {
                          "type": "string",
                          "example": "SQL syntax error near \"FROM\""
                        },
                        "code": {
                          "type": "string",
                          "example": "ER_PARSE_ERROR"
                        },
                        "details": {
                          "type": "array",
                          "items": {
                            "type": "object"
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "x-sql-controller": "true",
        "x-sql-controller-type": "table",
        "x-relationship": {
          "source": "Trainer",
          "fields": {
            "trainerId": "id"
          }
        },
        "operationId": "TrainerreportController.TrainerReportLastMonthCount"
      }
    },
    "/trainerReportLastMonth": {
      "get": {
        "x-controller-name": "TrainerreportController",
        "x-operation-name": "TrainerReportLastMonth",
        "tags": [
          "TrainerreportController"
        ],
        "description": "Successfully executes the query. Parameter values must be looked up from /Trainer first. Field mapping: trainerId -> id in Trainer.",
        "responses": {
          "200": {
            "description": "Successfully executes the query.",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "type": "array",
                      "items": {
                        "anyOf": [
                          {
                            "type": "string"
                          },
                          {
                            "type": "number"
                          }
                        ]
                      },
                      "title": "List of Scalars",
                      "description": "Returned when selecting a single column (e.g., SELECT DISTINCT(name)). Returns an array of raw values."
                    },
                    {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "additionalProperties": true
                      },
                      "title": "List of Objects",
                      "description": "Returned when selecting multiple columns. Each item in the array represents a database row as a JSON object."
                    },
                    {
                      "type": "object",
                      "additionalProperties": true,
                      "title": "Single Object",
                      "description": "Returned when the query result is limited to a single record (e.g., using LIMIT 1). Returns the row as an object."
                    },
                    {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        }
                      ],
                      "title": "Single Scalar",
                      "description": "Returned for aggregate results or single-value lookups (e.g., SELECT MAX(id)). Returns the raw value directly."
                    }
                  ]
                }
              }
            }
          },
          "422": {
            "description": "Unprocessable Entity - Missing required sqlParams variables.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "statusCode": {
                          "type": "number",
                          "example": 500
                        },
                        "name": {
                          "type": "string",
                          "example": "BadRequestError"
                        },
                        "message": {
                          "type": "string",
                          "example": "SQL syntax error near \"FROM\""
                        },
                        "code": {
                          "type": "string",
                          "example": "ER_PARSE_ERROR"
                        },
                        "details": {
                          "type": "array",
                          "items": {
                            "type": "object"
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error - Database connection issues or unexpected failures.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "statusCode": {
                          "type": "number",
                          "example": 500
                        },
                        "name": {
                          "type": "string",
                          "example": "BadRequestError"
                        },
                        "message": {
                          "type": "string",
                          "example": "SQL syntax error near \"FROM\""
                        },
                        "code": {
                          "type": "string",
                          "example": "ER_PARSE_ERROR"
                        },
                        "details": {
                          "type": "array",
                          "items": {
                            "type": "object"
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "x-sql-controller": "true",
        "x-sql-controller-type": "table",
        "x-relationship": {
          "source": "Trainer",
          "fields": {
            "trainerId": "id"
          }
        },
        "parameters": [
          {
            "name": "filter",
            "in": "query",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "include": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    }
                  }
                }
              }
            }
          }
        ],
        "operationId": "TrainerreportController.TrainerReportLastMonth"
      }
    },
    "/trainerReportLastMonthByTrainer/count": {
      "get": {
        "x-controller-name": "TrainerreportController",
        "x-operation-name": "TrainerReportLastMonthByTrainerCount",
        "tags": [
          "TrainerreportController"
        ],
        "responses": {
          "200": {
            "description": "Successfully executes the query.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/loopback.Count"
                }
              }
            }
          },
          "422": {
            "description": "Unprocessable Entity - Missing required sqlParams variables.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "statusCode": {
                          "type": "number",
                          "example": 500
                        },
                        "name": {
                          "type": "string",
                          "example": "BadRequestError"
                        },
                        "message": {
                          "type": "string",
                          "example": "SQL syntax error near \"FROM\""
                        },
                        "code": {
                          "type": "string",
                          "example": "ER_PARSE_ERROR"
                        },
                        "details": {
                          "type": "array",
                          "items": {
                            "type": "object"
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error - Database connection issues or unexpected failures.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "statusCode": {
                          "type": "number",
                          "example": 500
                        },
                        "name": {
                          "type": "string",
                          "example": "BadRequestError"
                        },
                        "message": {
                          "type": "string",
                          "example": "SQL syntax error near \"FROM\""
                        },
                        "code": {
                          "type": "string",
                          "example": "ER_PARSE_ERROR"
                        },
                        "details": {
                          "type": "array",
                          "items": {
                            "type": "object"
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "x-sql-controller": "true",
        "x-sql-controller-type": "table",
        "x-relationship": {
          "source": "Trainer",
          "fields": {
            "trainerId": "id"
          }
        },
        "parameters": [
          {
            "name": "sqlParams",
            "in": "query",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "trainerId": {
                      "type": "number"
                    }
                  }
                }
              }
            }
          }
        ],
        "operationId": "TrainerreportController.TrainerReportLastMonthByTrainerCount"
      }
    },
    "/trainerReportLastMonthByTrainer": {
      "get": {
        "x-controller-name": "TrainerreportController",
        "x-operation-name": "TrainerReportLastMonthByTrainer",
        "tags": [
          "TrainerreportController"
        ],
        "description": "Successfully executes the query. Parameter values must be looked up from /Trainer first. Field mapping: trainerId -> id in Trainer.",
        "responses": {
          "200": {
            "description": "Successfully executes the query.",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "type": "array",
                      "items": {
                        "anyOf": [
                          {
                            "type": "string"
                          },
                          {
                            "type": "number"
                          }
                        ]
                      },
                      "title": "List of Scalars",
                      "description": "Returned when selecting a single column (e.g., SELECT DISTINCT(name)). Returns an array of raw values."
                    },
                    {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "additionalProperties": true
                      },
                      "title": "List of Objects",
                      "description": "Returned when selecting multiple columns. Each item in the array represents a database row as a JSON object."
                    },
                    {
                      "type": "object",
                      "additionalProperties": true,
                      "title": "Single Object",
                      "description": "Returned when the query result is limited to a single record (e.g., using LIMIT 1). Returns the row as an object."
                    },
                    {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        }
                      ],
                      "title": "Single Scalar",
                      "description": "Returned for aggregate results or single-value lookups (e.g., SELECT MAX(id)). Returns the raw value directly."
                    }
                  ]
                }
              }
            }
          },
          "422": {
            "description": "Unprocessable Entity - Missing required sqlParams variables.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "statusCode": {
                          "type": "number",
                          "example": 500
                        },
                        "name": {
                          "type": "string",
                          "example": "BadRequestError"
                        },
                        "message": {
                          "type": "string",
                          "example": "SQL syntax error near \"FROM\""
                        },
                        "code": {
                          "type": "string",
                          "example": "ER_PARSE_ERROR"
                        },
                        "details": {
                          "type": "array",
                          "items": {
                            "type": "object"
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error - Database connection issues or unexpected failures.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "statusCode": {
                          "type": "number",
                          "example": 500
                        },
                        "name": {
                          "type": "string",
                          "example": "BadRequestError"
                        },
                        "message": {
                          "type": "string",
                          "example": "SQL syntax error near \"FROM\""
                        },
                        "code": {
                          "type": "string",
                          "example": "ER_PARSE_ERROR"
                        },
                        "details": {
                          "type": "array",
                          "items": {
                            "type": "object"
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "x-sql-controller": "true",
        "x-sql-controller-type": "table",
        "x-relationship": {
          "source": "Trainer",
          "fields": {
            "trainerId": "id"
          }
        },
        "parameters": [
          {
            "name": "sqlParams",
            "in": "query",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "trainerId": {
                      "type": "number"
                    }
                  }
                }
              }
            }
          },
          {
            "name": "filter",
            "in": "query",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "include": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    }
                  }
                }
              }
            }
          }
        ],
        "operationId": "TrainerreportController.TrainerReportLastMonthByTrainer"
      }
    },
    "/trainerReportPeriod/count": {
      "get": {
        "x-controller-name": "TrainerreportController",
        "x-operation-name": "TrainerReportPeriodCount",
        "tags": [
          "TrainerreportController"
        ],
        "responses": {
          "200": {
            "description": "Successfully executes the query.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/loopback.Count"
                }
              }
            }
          },
          "422": {
            "description": "Unprocessable Entity - Missing required sqlParams variables.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "statusCode": {
                          "type": "number",
                          "example": 500
                        },
                        "name": {
                          "type": "string",
                          "example": "BadRequestError"
                        },
                        "message": {
                          "type": "string",
                          "example": "SQL syntax error near \"FROM\""
                        },
                        "code": {
                          "type": "string",
                          "example": "ER_PARSE_ERROR"
                        },
                        "details": {
                          "type": "array",
                          "items": {
                            "type": "object"
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error - Database connection issues or unexpected failures.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "statusCode": {
                          "type": "number",
                          "example": 500
                        },
                        "name": {
                          "type": "string",
                          "example": "BadRequestError"
                        },
                        "message": {
                          "type": "string",
                          "example": "SQL syntax error near \"FROM\""
                        },
                        "code": {
                          "type": "string",
                          "example": "ER_PARSE_ERROR"
                        },
                        "details": {
                          "type": "array",
                          "items": {
                            "type": "object"
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "x-sql-controller": "true",
        "x-sql-controller-type": "table",
        "x-relationship": {
          "source": "Trainer",
          "fields": {
            "trainerId": "id"
          }
        },
        "parameters": [
          {
            "name": "sqlParams",
            "in": "query",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "fromdate": {
                      "type": "string"
                    },
                    "todate": {
                      "type": "string"
                    }
                  }
                }
              }
            }
          }
        ],
        "operationId": "TrainerreportController.TrainerReportPeriodCount"
      }
    },
    "/trainerReportPeriod": {
      "get": {
        "x-controller-name": "TrainerreportController",
        "x-operation-name": "TrainerReportPeriod",
        "tags": [
          "TrainerreportController"
        ],
        "description": "Successfully executes the query. Parameter values must be looked up from /Trainer first. Field mapping: trainerId -> id in Trainer.",
        "responses": {
          "200": {
            "description": "Successfully executes the query.",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "type": "array",
                      "items": {
                        "anyOf": [
                          {
                            "type": "string"
                          },
                          {
                            "type": "number"
                          }
                        ]
                      },
                      "title": "List of Scalars",
                      "description": "Returned when selecting a single column (e.g., SELECT DISTINCT(name)). Returns an array of raw values."
                    },
                    {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "additionalProperties": true
                      },
                      "title": "List of Objects",
                      "description": "Returned when selecting multiple columns. Each item in the array represents a database row as a JSON object."
                    },
                    {
                      "type": "object",
                      "additionalProperties": true,
                      "title": "Single Object",
                      "description": "Returned when the query result is limited to a single record (e.g., using LIMIT 1). Returns the row as an object."
                    },
                    {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        }
                      ],
                      "title": "Single Scalar",
                      "description": "Returned for aggregate results or single-value lookups (e.g., SELECT MAX(id)). Returns the raw value directly."
                    }
                  ]
                }
              }
            }
          },
          "422": {
            "description": "Unprocessable Entity - Missing required sqlParams variables.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "statusCode": {
                          "type": "number",
                          "example": 500
                        },
                        "name": {
                          "type": "string",
                          "example": "BadRequestError"
                        },
                        "message": {
                          "type": "string",
                          "example": "SQL syntax error near \"FROM\""
                        },
                        "code": {
                          "type": "string",
                          "example": "ER_PARSE_ERROR"
                        },
                        "details": {
                          "type": "array",
                          "items": {
                            "type": "object"
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error - Database connection issues or unexpected failures.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "statusCode": {
                          "type": "number",
                          "example": 500
                        },
                        "name": {
                          "type": "string",
                          "example": "BadRequestError"
                        },
                        "message": {
                          "type": "string",
                          "example": "SQL syntax error near \"FROM\""
                        },
                        "code": {
                          "type": "string",
                          "example": "ER_PARSE_ERROR"
                        },
                        "details": {
                          "type": "array",
                          "items": {
                            "type": "object"
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "x-sql-controller": "true",
        "x-sql-controller-type": "table",
        "x-relationship": {
          "source": "Trainer",
          "fields": {
            "trainerId": "id"
          }
        },
        "parameters": [
          {
            "name": "sqlParams",
            "in": "query",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "fromdate": {
                      "type": "string"
                    },
                    "todate": {
                      "type": "string"
                    }
                  }
                }
              }
            }
          },
          {
            "name": "filter",
            "in": "query",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "include": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    }
                  }
                }
              }
            }
          }
        ],
        "operationId": "TrainerreportController.TrainerReportPeriod"
      }
    },
    "/trainerReportPeriodByTrainer/count": {
      "get": {
        "x-controller-name": "TrainerreportController",
        "x-operation-name": "TrainerReportPeriodByTrainerCount",
        "tags": [
          "TrainerreportController"
        ],
        "responses": {
          "200": {
            "description": "Successfully executes the query.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/loopback.Count"
                }
              }
            }
          },
          "422": {
            "description": "Unprocessable Entity - Missing required sqlParams variables.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "statusCode": {
                          "type": "number",
                          "example": 500
                        },
                        "name": {
                          "type": "string",
                          "example": "BadRequestError"
                        },
                        "message": {
                          "type": "string",
                          "example": "SQL syntax error near \"FROM\""
                        },
                        "code": {
                          "type": "string",
                          "example": "ER_PARSE_ERROR"
                        },
                        "details": {
                          "type": "array",
                          "items": {
                            "type": "object"
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error - Database connection issues or unexpected failures.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "statusCode": {
                          "type": "number",
                          "example": 500
                        },
                        "name": {
                          "type": "string",
                          "example": "BadRequestError"
                        },
                        "message": {
                          "type": "string",
                          "example": "SQL syntax error near \"FROM\""
                        },
                        "code": {
                          "type": "string",
                          "example": "ER_PARSE_ERROR"
                        },
                        "details": {
                          "type": "array",
                          "items": {
                            "type": "object"
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "x-sql-controller": "true",
        "x-sql-controller-type": "table",
        "x-relationship": {
          "source": "Trainer",
          "fields": {
            "trainerId": "id"
          }
        },
        "parameters": [
          {
            "name": "sqlParams",
            "in": "query",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "trainerId": {
                      "type": "number"
                    },
                    "fromdate": {
                      "type": "string"
                    },
                    "todate": {
                      "type": "string"
                    }
                  }
                }
              }
            }
          }
        ],
        "operationId": "TrainerreportController.TrainerReportPeriodByTrainerCount"
      }
    },
    "/trainerReportPeriodByTrainer": {
      "get": {
        "x-controller-name": "TrainerreportController",
        "x-operation-name": "TrainerReportPeriodByTrainer",
        "tags": [
          "TrainerreportController"
        ],
        "description": "Successfully executes the query. Parameter values must be looked up from /Trainer first. Field mapping: trainerId -> id in Trainer.",
        "responses": {
          "200": {
            "description": "Successfully executes the query.",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "type": "array",
                      "items": {
                        "anyOf": [
                          {
                            "type": "string"
                          },
                          {
                            "type": "number"
                          }
                        ]
                      },
                      "title": "List of Scalars",
                      "description": "Returned when selecting a single column (e.g., SELECT DISTINCT(name)). Returns an array of raw values."
                    },
                    {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "additionalProperties": true
                      },
                      "title": "List of Objects",
                      "description": "Returned when selecting multiple columns. Each item in the array represents a database row as a JSON object."
                    },
                    {
                      "type": "object",
                      "additionalProperties": true,
                      "title": "Single Object",
                      "description": "Returned when the query result is limited to a single record (e.g., using LIMIT 1). Returns the row as an object."
                    },
                    {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        }
                      ],
                      "title": "Single Scalar",
                      "description": "Returned for aggregate results or single-value lookups (e.g., SELECT MAX(id)). Returns the raw value directly."
                    }
                  ]
                }
              }
            }
          },
          "422": {
            "description": "Unprocessable Entity - Missing required sqlParams variables.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "statusCode": {
                          "type": "number",
                          "example": 500
                        },
                        "name": {
                          "type": "string",
                          "example": "BadRequestError"
                        },
                        "message": {
                          "type": "string",
                          "example": "SQL syntax error near \"FROM\""
                        },
                        "code": {
                          "type": "string",
                          "example": "ER_PARSE_ERROR"
                        },
                        "details": {
                          "type": "array",
                          "items": {
                            "type": "object"
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error - Database connection issues or unexpected failures.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "statusCode": {
                          "type": "number",
                          "example": 500
                        },
                        "name": {
                          "type": "string",
                          "example": "BadRequestError"
                        },
                        "message": {
                          "type": "string",
                          "example": "SQL syntax error near \"FROM\""
                        },
                        "code": {
                          "type": "string",
                          "example": "ER_PARSE_ERROR"
                        },
                        "details": {
                          "type": "array",
                          "items": {
                            "type": "object"
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "x-sql-controller": "true",
        "x-sql-controller-type": "table",
        "x-relationship": {
          "source": "Trainer",
          "fields": {
            "trainerId": "id"
          }
        },
        "parameters": [
          {
            "name": "sqlParams",
            "in": "query",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "trainerId": {
                      "type": "number"
                    },
                    "fromdate": {
                      "type": "string"
                    },
                    "todate": {
                      "type": "string"
                    }
                  }
                }
              }
            }
          },
          {
            "name": "filter",
            "in": "query",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "include": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    }
                  }
                }
              }
            }
          }
        ],
        "operationId": "TrainerreportController.TrainerReportPeriodByTrainer"
      }
    },
    "/trainers/count": {
      "get": {
        "x-controller-name": "TrainerController",
        "x-operation-name": "count",
        "tags": [
          "TrainerController"
        ],
        "responses": {
          "200": {
            "description": "Trainer count",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/loopback.Count"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "filter",
            "in": "query",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Trainer.Filter"
                }
              }
            }
          },
          {
            "name": "where",
            "in": "query",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "title": "Trainer.WhereFilter",
                  "additionalProperties": true,
                  "x-typescript-type": "@loopback/repository#Where<Trainer>"
                }
              }
            }
          }
        ],
        "operationId": "TrainerController.count"
      }
    },
    "/trainers/{id}/product": {
      "get": {
        "x-controller-name": "TrainerProductController",
        "x-operation-name": "getProduct",
        "tags": [
          "TrainerProductController"
        ],
        "responses": {
          "200": {
            "description": "Product belonging to Trainer",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Product"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "number"
            },
            "required": true
          }
        ],
        "operationId": "TrainerProductController.getProduct"
      }
    },
    "/trainers/{id}": {
      "put": {
        "x-controller-name": "TrainerController",
        "x-operation-name": "replaceById",
        "tags": [
          "TrainerController"
        ],
        "responses": {
          "204": {
            "description": "Trainer was updated"
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "x-precision": 10,
              "x-scale": 0,
              "x-generated": 1,
              "x-primary-key": true,
              "type": "number",
              "nullable": false
            },
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Trainer"
              }
            }
          },
          "x-parameter-index": 1
        },
        "operationId": "TrainerController.replaceById"
      },
      "patch": {
        "x-controller-name": "TrainerController",
        "x-operation-name": "updateById",
        "tags": [
          "TrainerController"
        ],
        "responses": {
          "204": {
            "description": "Trainer was updated"
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "x-precision": 10,
              "x-scale": 0,
              "x-generated": 1,
              "x-primary-key": true,
              "type": "number",
              "nullable": false
            },
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TrainerPartial"
              }
            }
          },
          "x-parameter-index": 1
        },
        "operationId": "TrainerController.updateById"
      },
      "get": {
        "x-controller-name": "TrainerController",
        "x-operation-name": "findById",
        "tags": [
          "TrainerController"
        ],
        "responses": {
          "200": {
            "description": "Trainer instance",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TrainerWithRelations"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "x-precision": 10,
              "x-scale": 0,
              "x-generated": 1,
              "x-primary-key": true,
              "type": "number",
              "nullable": false
            },
            "required": true
          },
          {
            "name": "filter",
            "in": "query",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Trainer.Filter1"
                }
              }
            }
          }
        ],
        "operationId": "TrainerController.findById"
      },
      "delete": {
        "x-controller-name": "TrainerController",
        "x-operation-name": "deleteById",
        "tags": [
          "TrainerController"
        ],
        "responses": {
          "204": {
            "description": "Trainer was deleted"
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "x-precision": 10,
              "x-scale": 0,
              "x-generated": 1,
              "x-primary-key": true,
              "type": "number",
              "nullable": false
            },
            "required": true
          }
        ],
        "operationId": "TrainerController.deleteById"
      }
    },
    "/trainers": {
      "post": {
        "x-controller-name": "TrainerController",
        "x-operation-name": "create",
        "tags": [
          "TrainerController"
        ],
        "responses": {
          "200": {
            "description": "Trainer instance created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Trainer"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/NewTrainer"
              }
            }
          }
        },
        "operationId": "TrainerController.create"
      },
      "patch": {
        "x-controller-name": "TrainerController",
        "x-operation-name": "updateAll",
        "tags": [
          "TrainerController"
        ],
        "responses": {
          "200": {
            "description": "Count of Trainer models updated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/loopback.Count"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "where",
            "in": "query",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "title": "Trainer.WhereFilter",
                  "additionalProperties": true,
                  "x-typescript-type": "@loopback/repository#Where<Trainer>"
                }
              }
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TrainerPartial"
              }
            }
          }
        },
        "operationId": "TrainerController.updateAll"
      },
      "get": {
        "x-controller-name": "TrainerController",
        "x-operation-name": "find",
        "tags": [
          "TrainerController"
        ],
        "responses": {
          "200": {
            "description": "Array of Trainer instances",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/TrainerWithRelations"
                  }
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "filter",
            "in": "query",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Trainer.Filter2"
                }
              }
            }
          }
        ],
        "operationId": "TrainerController.find"
      }
    },
    "/weekly-training-plans/count": {
      "get": {
        "x-controller-name": "WeeklyTrainingPlanController",
        "x-operation-name": "count",
        "tags": [
          "WeeklyTrainingPlanController"
        ],
        "responses": {
          "200": {
            "description": "WeeklyTrainingPlan count",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/loopback.Count"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "filter",
            "in": "query",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WeeklyTrainingPlan.Filter"
                }
              }
            }
          },
          {
            "name": "where",
            "in": "query",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "title": "WeeklyTrainingPlan.WhereFilter",
                  "additionalProperties": true,
                  "x-typescript-type": "@loopback/repository#Where<WeeklyTrainingPlan>"
                }
              }
            }
          }
        ],
        "operationId": "WeeklyTrainingPlanController.count"
      }
    },
    "/weekly-training-plans/{id}/court": {
      "get": {
        "x-controller-name": "WeeklyTrainingPlanCourtController",
        "x-operation-name": "getCourt",
        "tags": [
          "WeeklyTrainingPlanCourtController"
        ],
        "responses": {
          "200": {
            "description": "Court belonging to WeeklyTrainingPlan",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Court"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "number"
            },
            "required": true
          }
        ],
        "operationId": "WeeklyTrainingPlanCourtController.getCourt"
      }
    },
    "/weekly-training-plans/{id}/gruppe": {
      "get": {
        "x-controller-name": "WeeklyTrainingPlanGruppeController",
        "x-operation-name": "getGruppe",
        "tags": [
          "WeeklyTrainingPlanGruppeController"
        ],
        "responses": {
          "200": {
            "description": "Gruppe belonging to WeeklyTrainingPlan",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Gruppe"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "number"
            },
            "required": true
          }
        ],
        "operationId": "WeeklyTrainingPlanGruppeController.getGruppe"
      }
    },
    "/weekly-training-plans/{id}/platz": {
      "get": {
        "x-controller-name": "WeeklyTrainingPlanPlatzController",
        "x-operation-name": "getPlatz",
        "tags": [
          "WeeklyTrainingPlanPlatzController"
        ],
        "responses": {
          "200": {
            "description": "Platz belonging to WeeklyTrainingPlan",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Platz"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "number"
            },
            "required": true
          }
        ],
        "operationId": "WeeklyTrainingPlanPlatzController.getPlatz"
      }
    },
    "/weekly-training-plans/{id}/trainer": {
      "get": {
        "x-controller-name": "WeeklyTrainingPlanTrainerController",
        "x-operation-name": "getTrainer",
        "tags": [
          "WeeklyTrainingPlanTrainerController"
        ],
        "responses": {
          "200": {
            "description": "Trainer belonging to WeeklyTrainingPlan",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Trainer"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "number"
            },
            "required": true
          }
        ],
        "operationId": "WeeklyTrainingPlanTrainerController.getTrainer"
      }
    },
    "/weekly-training-plans/{id}": {
      "put": {
        "x-controller-name": "WeeklyTrainingPlanController",
        "x-operation-name": "replaceById",
        "tags": [
          "WeeklyTrainingPlanController"
        ],
        "responses": {
          "204": {
            "description": "WeeklyTrainingPlan was updated"
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "x-precision": 10,
              "x-scale": 0,
              "x-generated": 1,
              "x-primary-key": true,
              "type": "number",
              "nullable": false
            },
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/WeeklyTrainingPlan"
              }
            }
          },
          "x-parameter-index": 1
        },
        "operationId": "WeeklyTrainingPlanController.replaceById"
      },
      "patch": {
        "x-controller-name": "WeeklyTrainingPlanController",
        "x-operation-name": "updateById",
        "tags": [
          "WeeklyTrainingPlanController"
        ],
        "responses": {
          "204": {
            "description": "WeeklyTrainingPlan was updated"
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "x-precision": 10,
              "x-scale": 0,
              "x-generated": 1,
              "x-primary-key": true,
              "type": "number",
              "nullable": false
            },
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/WeeklyTrainingPlanPartial"
              }
            }
          },
          "x-parameter-index": 1
        },
        "operationId": "WeeklyTrainingPlanController.updateById"
      },
      "get": {
        "x-controller-name": "WeeklyTrainingPlanController",
        "x-operation-name": "findById",
        "tags": [
          "WeeklyTrainingPlanController"
        ],
        "responses": {
          "200": {
            "description": "WeeklyTrainingPlan instance",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WeeklyTrainingPlanWithRelations"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "x-precision": 10,
              "x-scale": 0,
              "x-generated": 1,
              "x-primary-key": true,
              "type": "number",
              "nullable": false
            },
            "required": true
          },
          {
            "name": "filter",
            "in": "query",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WeeklyTrainingPlan.Filter1"
                }
              }
            }
          }
        ],
        "operationId": "WeeklyTrainingPlanController.findById"
      },
      "delete": {
        "x-controller-name": "WeeklyTrainingPlanController",
        "x-operation-name": "deleteById",
        "tags": [
          "WeeklyTrainingPlanController"
        ],
        "responses": {
          "204": {
            "description": "WeeklyTrainingPlan was deleted"
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "x-precision": 10,
              "x-scale": 0,
              "x-generated": 1,
              "x-primary-key": true,
              "type": "number",
              "nullable": false
            },
            "required": true
          }
        ],
        "operationId": "WeeklyTrainingPlanController.deleteById"
      }
    },
    "/weekly-training-plans": {
      "post": {
        "x-controller-name": "WeeklyTrainingPlanController",
        "x-operation-name": "create",
        "tags": [
          "WeeklyTrainingPlanController"
        ],
        "responses": {
          "200": {
            "description": "WeeklyTrainingPlan instance created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WeeklyTrainingPlan"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/NewWeeklyTrainingPlan"
              }
            }
          }
        },
        "operationId": "WeeklyTrainingPlanController.create"
      },
      "patch": {
        "x-controller-name": "WeeklyTrainingPlanController",
        "x-operation-name": "updateAll",
        "tags": [
          "WeeklyTrainingPlanController"
        ],
        "responses": {
          "200": {
            "description": "Count of WeeklyTrainingPlan models updated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/loopback.Count"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "where",
            "in": "query",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "title": "WeeklyTrainingPlan.WhereFilter",
                  "additionalProperties": true,
                  "x-typescript-type": "@loopback/repository#Where<WeeklyTrainingPlan>"
                }
              }
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/WeeklyTrainingPlanPartial"
              }
            }
          }
        },
        "operationId": "WeeklyTrainingPlanController.updateAll"
      },
      "get": {
        "x-controller-name": "WeeklyTrainingPlanController",
        "x-operation-name": "find",
        "tags": [
          "WeeklyTrainingPlanController"
        ],
        "responses": {
          "200": {
            "description": "Array of WeeklyTrainingPlan instances",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/WeeklyTrainingPlanWithRelations"
                  }
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "filter",
            "in": "query",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WeeklyTrainingPlan.Filter2"
                }
              }
            }
          }
        ],
        "operationId": "WeeklyTrainingPlanController.find"
      }
    }
  },
  "servers": [
    {
      "url": "https://mv-pr-422-jcs-grapi.nop.grpl.io"
    }
  ],
  "components": {
    "schemas": {
      "Trainer": {
        "title": "Trainer",
        "type": "object",
        "description": "(tsType: Omit<Trainer, >, schemaOptions: { exclude: [] })",
        "properties": {
          "id": {
            "x-precision": 10,
            "x-scale": 0,
            "x-generated": 1,
            "x-primary-key": true,
            "type": "number",
            "nullable": false
          },
          "name": {
            "x-length": 256,
            "x-generated": false,
            "x-primary-key": false,
            "type": "string",
            "nullable": true
          },
          "vorname": {
            "x-length": 256,
            "x-generated": false,
            "x-primary-key": false,
            "type": "string",
            "nullable": false
          },
          "email": {
            "x-length": 255,
            "x-generated": false,
            "x-primary-key": false,
            "type": "string",
            "nullable": true
          },
          "aktiv": {
            "x-precision": 3,
            "x-scale": 0,
            "x-generated": false,
            "x-primary-key": false,
            "type": "number",
            "nullable": true
          },
          "token": {
            "x-length": 256,
            "x-generated": 1,
            "x-primary-key": false,
            "type": "string",
            "nullable": true
          },
          "color": {
            "x-length": 45,
            "x-generated": false,
            "x-primary-key": false,
            "type": "string",
            "nullable": true
          },
          "colorFont": {
            "x-length": 45,
            "x-generated": false,
            "x-primary-key": false,
            "type": "string",
            "nullable": true
          },
          "notizen": {
            "x-length": 256,
            "x-generated": false,
            "x-primary-key": false,
            "type": "string",
            "nullable": true
          },
          "SummerRateBeforeId": {
            "x-precision": 10,
            "x-scale": 0,
            "x-generated": false,
            "x-primary-key": false,
            "type": "number",
            "nullable": true
          },
          "SummerRateAfterId": {
            "x-primary-key": false,
            "type": "number"
          },
          "WinterRateBeforeId": {
            "x-primary-key": false,
            "type": "number"
          },
          "WinterRateAfterId": {
            "x-primary-key": false,
            "type": "number"
          },
          "ClubRateId": {
            "x-primary-key": false,
            "type": "number"
          }
        },
        "required": [
          "vorname"
        ],
        "additionalProperties": true,
        "x-typescript-type": "Omit<Trainer, >"
      },
      "Platz": {
        "title": "Platz",
        "type": "object",
        "description": "(tsType: Omit<Platz, >, schemaOptions: { exclude: [] })",
        "properties": {
          "id": {
            "x-precision": 10,
            "x-scale": 0,
            "x-generated": 1,
            "x-primary-key": true,
            "type": "number",
            "nullable": false
          },
          "tenniscourt": {
            "x-length": 256,
            "x-generated": false,
            "x-primary-key": false,
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": true,
        "x-typescript-type": "Omit<Platz, >"
      },
      "Gruppe": {
        "title": "Gruppe",
        "type": "object",
        "description": "(tsType: Omit<Gruppe, >, schemaOptions: { exclude: [] })",
        "properties": {
          "id": {
            "x-precision": 10,
            "x-scale": 0,
            "x-generated": 1,
            "x-primary-key": true,
            "type": "number",
            "nullable": false
          },
          "gruppentyp": {
            "x-length": 256,
            "x-generated": false,
            "x-primary-key": false,
            "type": "string",
            "nullable": true
          },
          "gruppenname": {
            "x-length": 256,
            "x-generated": false,
            "x-primary-key": false,
            "type": "string",
            "nullable": false
          },
          "beschreibung": {
            "x-length": 256,
            "x-generated": false,
            "x-primary-key": false,
            "type": "string",
            "nullable": true
          },
          "notizen": {
            "x-length": 256,
            "x-generated": false,
            "x-primary-key": false,
            "type": "string",
            "nullable": true
          },
          "farbe": {
            "x-length": 32,
            "x-generated": false,
            "x-primary-key": false,
            "type": "string",
            "nullable": true
          },
          "tennisballe": {
            "x-length": 16,
            "x-generated": false,
            "x-primary-key": false,
            "type": "string",
            "nullable": true
          }
        },
        "required": [
          "gruppenname"
        ],
        "additionalProperties": true,
        "x-typescript-type": "Omit<Gruppe, >"
      },
      "Court": {
        "title": "Court",
        "type": "object",
        "description": "(tsType: Omit<Court, >, schemaOptions: { exclude: [] })",
        "properties": {
          "id": {
            "x-precision": 10,
            "x-scale": 0,
            "x-generated": 1,
            "x-primary-key": true,
            "type": "number",
            "nullable": false
          },
          "name": {
            "x-length": 255,
            "x-generated": false,
            "x-primary-key": false,
            "type": "string",
            "nullable": false
          },
          "active": {
            "x-precision": 3,
            "x-scale": 0,
            "x-generated": false,
            "x-primary-key": false,
            "type": "number",
            "nullable": false
          }
        },
        "required": [
          "name",
          "active"
        ],
        "additionalProperties": true,
        "x-typescript-type": "Omit<Court, >"
      },
      "Product": {
        "title": "Product",
        "type": "object",
        "properties": {
          "id": {
            "x-precision": 10,
            "x-scale": 0,
            "x-generated": 1,
            "x-primary-key": true,
            "type": "number",
            "nullable": false
          },
          "bexioId": {
            "x-length": 45,
            "x-generated": false,
            "x-primary-key": false,
            "type": "string",
            "nullable": true
          },
          "interncode": {
            "x-length": 45,
            "x-generated": false,
            "x-primary-key": false,
            "type": "string",
            "nullable": true
          },
          "internname": {
            "x-length": 256,
            "x-generated": false,
            "x-primary-key": false,
            "type": "string",
            "nullable": true
          },
          "interndescription": {
            "x-length": 500,
            "x-generated": false,
            "x-primary-key": false,
            "type": "string",
            "nullable": true
          },
          "saleprice": {
            "x-precision": 6,
            "x-scale": 2,
            "x-generated": false,
            "x-primary-key": false,
            "type": "number",
            "nullable": true
          },
          "taxid": {
            "x-length": 45,
            "x-generated": false,
            "x-primary-key": false,
            "type": "string",
            "nullable": true
          },
          "articlegroupid": {
            "x-length": 45,
            "x-generated": false,
            "x-primary-key": false,
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": true
      },
      "WeeklyTrainingPlan": {
        "title": "WeeklyTrainingPlan",
        "type": "object",
        "description": "(tsType: Omit<WeeklyTrainingPlan, >, schemaOptions: { exclude: [] })",
        "properties": {
          "id": {
            "x-precision": 10,
            "x-scale": 0,
            "x-generated": 1,
            "x-primary-key": true,
            "type": "number",
            "nullable": false
          },
          "dayOfWeek": {
            "x-precision": 3,
            "x-scale": 0,
            "x-generated": false,
            "x-primary-key": false,
            "type": "number",
            "nullable": false
          },
          "startDate": {
            "x-generated": false,
            "x-primary-key": false,
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "endDate": {
            "x-generated": false,
            "x-primary-key": false,
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "startzeit": {
            "x-generated": false,
            "x-primary-key": false,
            "type": "string",
            "nullable": false
          },
          "trainingsdauer": {
            "x-generated": false,
            "x-primary-key": false,
            "type": "string",
            "nullable": true
          },
          "notizen": {
            "x-length": 256,
            "x-generated": false,
            "x-primary-key": false,
            "type": "string",
            "nullable": true
          },
          "trainingType": {
            "x-length": 256,
            "x-generated": false,
            "x-primary-key": false,
            "type": "string",
            "nullable": false
          },
          "confirmed": {
            "x-precision": 3,
            "x-scale": 0,
            "x-generated": false,
            "x-primary-key": false,
            "type": "number",
            "nullable": false
          },
          "archived": {
            "x-precision": 3,
            "x-scale": 0,
            "x-generated": false,
            "x-primary-key": false,
            "type": "number",
            "nullable": true
          },
          "invoicedIn": {
            "x-length": 4096,
            "x-generated": false,
            "x-primary-key": false,
            "type": "string",
            "nullable": true
          },
          "excludeFromInvoicing": {
            "x-precision": 3,
            "x-scale": 0,
            "x-generated": false,
            "x-primary-key": false,
            "type": "number",
            "nullable": true
          },
          "trainerId": {
            "x-precision": 10,
            "x-scale": 0,
            "x-generated": false,
            "x-primary-key": false,
            "type": "number",
            "nullable": true
          },
          "courtId": {
            "x-precision": 10,
            "x-scale": 0,
            "x-generated": false,
            "x-primary-key": false,
            "type": "number",
            "nullable": true
          },
          "platzId": {
            "x-precision": 10,
            "x-scale": 0,
            "x-generated": false,
            "x-primary-key": false,
            "type": "number",
            "nullable": true
          },
          "gruppeId": {
            "x-precision": 10,
            "x-scale": 0,
            "x-generated": false,
            "x-primary-key": false,
            "type": "number",
            "nullable": true
          },
          "kundeIds": {
            "type": "array",
            "items": {
              "x-primary-key": false,
              "type": "number"
            }
          }
        },
        "required": [
          "dayOfWeek",
          "startzeit",
          "trainingType",
          "confirmed"
        ],
        "additionalProperties": true,
        "x-typescript-type": "Omit<WeeklyTrainingPlan, >"
      },
      "Invoices": {
        "title": "Invoices",
        "type": "object",
        "description": "(tsType: Omit<Invoices, >, schemaOptions: { exclude: [] })",
        "properties": {
          "id": {
            "x-precision": 10,
            "x-scale": 0,
            "x-generated": 1,
            "x-primary-key": true,
            "type": "number",
            "nullable": false
          },
          "rapportId": {
            "x-precision": 10,
            "x-scale": 0,
            "x-generated": false,
            "x-primary-key": false,
            "type": "number",
            "nullable": true
          },
          "relatedRapportId": {
            "x-precision": 10,
            "x-scale": 0,
            "x-generated": false,
            "x-primary-key": false,
            "type": "number",
            "nullable": true
          }
        },
        "additionalProperties": true,
        "x-typescript-type": "Omit<Invoices, >"
      },
      "NewInvoicesInRapport": {
        "title": "NewInvoicesInRapport",
        "type": "object",
        "description": "(tsType: @loopback/repository-json-schema#Optional<Omit<Invoices, 'id'>, 'rapportId'>, schemaOptions: { title: 'NewInvoicesInRapport', exclude: [ 'id' ], optional: [ 'rapportId' ] })",
        "properties": {
          "rapportId": {
            "x-precision": 10,
            "x-scale": 0,
            "x-generated": false,
            "x-primary-key": false,
            "type": "number",
            "nullable": true
          },
          "relatedRapportId": {
            "x-precision": 10,
            "x-scale": 0,
            "x-generated": false,
            "x-primary-key": false,
            "type": "number",
            "nullable": true
          }
        },
        "additionalProperties": true,
        "x-typescript-type": "@loopback/repository-json-schema#Optional<Omit<Invoices, 'id'>, 'rapportId'>"
      },
      "InvoicesPartial": {
        "title": "InvoicesPartial",
        "type": "object",
        "description": "(tsType: Partial<Invoices>, schemaOptions: { partial: true })",
        "properties": {
          "id": {
            "x-precision": 10,
            "x-scale": 0,
            "x-generated": 1,
            "x-primary-key": true,
            "type": "number",
            "nullable": false
          },
          "rapportId": {
            "x-precision": 10,
            "x-scale": 0,
            "x-generated": false,
            "x-primary-key": false,
            "type": "number",
            "nullable": true
          },
          "relatedRapportId": {
            "x-precision": 10,
            "x-scale": 0,
            "x-generated": false,
            "x-primary-key": false,
            "type": "number",
            "nullable": true
          }
        },
        "additionalProperties": true,
        "x-typescript-type": "Partial<Invoices>"
      },
      "Kunde": {
        "title": "Kunde",
        "type": "object",
        "properties": {
          "id": {
            "x-precision": 10,
            "x-scale": 0,
            "x-generated": 1,
            "x-primary-key": true,
            "type": "number",
            "nullable": false
          },
          "bexioId": {
            "x-length": 45,
            "x-generated": false,
            "x-primary-key": false,
            "type": "string",
            "nullable": true
          },
          "name": {
            "x-length": 256,
            "x-generated": false,
            "x-primary-key": false,
            "type": "string",
            "nullable": true
          },
          "vorname": {
            "x-length": 256,
            "x-generated": false,
            "x-primary-key": false,
            "type": "string",
            "nullable": true
          },
          "strasse": {
            "x-length": 256,
            "x-generated": false,
            "x-primary-key": false,
            "type": "string",
            "nullable": true
          },
          "plz": {
            "x-length": 45,
            "x-generated": false,
            "x-primary-key": false,
            "type": "string",
            "nullable": true
          },
          "ort": {
            "x-length": 256,
            "x-generated": false,
            "x-primary-key": false,
            "type": "string",
            "nullable": true
          },
          "land": {
            "x-length": 256,
            "x-generated": false,
            "x-primary-key": false,
            "type": "string",
            "nullable": true
          },
          "mail": {
            "x-length": 256,
            "x-generated": false,
            "x-primary-key": false,
            "type": "string",
            "nullable": true
          },
          "mail2": {
            "x-length": 256,
            "x-generated": false,
            "x-primary-key": false,
            "type": "string",
            "nullable": true
          },
          "phone": {
            "x-length": 45,
            "x-generated": false,
            "x-primary-key": false,
            "type": "string",
            "nullable": true
          },
          "phone2": {
            "x-length": 45,
            "x-generated": false,
            "x-primary-key": false,
            "type": "string",
            "nullable": true
          },
          "phoneMobile": {
            "x-length": 45,
            "x-generated": false,
            "x-primary-key": false,
            "type": "string",
            "nullable": true
          },
          "geburtstag": {
            "x-generated": false,
            "x-primary-key": false,
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "notizen": {
            "x-length": 5000,
            "x-generated": false,
            "x-primary-key": false,
            "type": "string",
            "nullable": true
          },
          "active": {
            "x-precision": 3,
            "x-scale": 0,
            "x-generated": false,
            "x-primary-key": false,
            "type": "number",
            "nullable": true
          }
        },
        "additionalProperties": true
      },
      "NewKundeInKunde": {
        "title": "NewKundeInKunde",
        "type": "object",
        "description": "(tsType: Omit<Kunde, 'id'>, schemaOptions: { title: 'NewKundeInKunde', exclude: [ 'id' ] })",
        "properties": {
          "bexioId": {
            "x-length": 45,
            "x-generated": false,
            "x-primary-key": false,
            "type": "string",
            "nullable": true
          },
          "name": {
            "x-length": 256,
            "x-generated": false,
            "x-primary-key": false,
            "type": "string",
            "nullable": true
          },
          "vorname": {
            "x-length": 256,
            "x-generated": false,
            "x-primary-key": false,
            "type": "string",
            "nullable": true
          },
          "strasse": {
            "x-length": 256,
            "x-generated": false,
            "x-primary-key": false,
            "type": "string",
            "nullable": true
          },
          "plz": {
            "x-length": 45,
            "x-generated": false,
            "x-primary-key": false,
            "type": "string",
            "nullable": true
          },
          "ort": {
            "x-length": 256,
            "x-generated": false,
            "x-primary-key": false,
            "type": "string",
            "nullable": true
          },
          "land": {
            "x-length": 256,
            "x-generated": false,
            "x-primary-key": false,
            "type": "string",
            "nullable": true
          },
          "mail": {
            "x-length": 256,
            "x-generated": false,
            "x-primary-key": false,
            "type": "string",
            "nullable": true
          },
          "mail2": {
            "x-length": 256,
            "x-generated": false,
            "x-primary-key": false,
            "type": "string",
            "nullable": true
          },
          "phone": {
            "x-length": 45,
            "x-generated": false,
            "x-primary-key": false,
            "type": "string",
            "nullable": true
          },
          "phone2": {
            "x-length": 45,
            "x-generated": false,
            "x-primary-key": false,
            "type": "string",
            "nullable": true
          },
          "phoneMobile": {
            "x-length": 45,
            "x-generated": false,
            "x-primary-key": false,
            "type": "string",
            "nullable": true
          },
          "geburtstag": {
            "x-generated": false,
            "x-primary-key": false,
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "notizen": {
            "x-length": 5000,
            "x-generated": false,
            "x-primary-key": false,
            "type": "string",
            "nullable": true
          },
          "active": {
            "x-precision": 3,
            "x-scale": 0,
            "x-generated": false,
            "x-primary-key": false,
            "type": "number",
            "nullable": true
          }
        },
        "additionalProperties": true,
        "x-typescript-type": "Omit<Kunde, 'id'>"
      },
      "KundePartial": {
        "title": "KundePartial",
        "type": "object",
        "description": "(tsType: Partial<Kunde>, schemaOptions: { partial: true })",
        "properties": {
          "id": {
            "x-precision": 10,
            "x-scale": 0,
            "x-generated": 1,
            "x-primary-key": true,
            "type": "number",
            "nullable": false
          },
          "bexioId": {
            "x-length": 45,
            "x-generated": false,
            "x-primary-key": false,
            "type": "string",
            "nullable": true
          },
          "name": {
            "x-length": 256,
            "x-generated": false,
            "x-primary-key": false,
            "type": "string",
            "nullable": true
          },
          "vorname": {
            "x-length": 256,
            "x-generated": false,
            "x-primary-key": false,
            "type": "string",
            "nullable": true
          },
          "strasse": {
            "x-length": 256,
            "x-generated": false,
            "x-primary-key": false,
            "type": "string",
            "nullable": true
          },
          "plz": {
            "x-length": 45,
            "x-generated": false,
            "x-primary-key": false,
            "type": "string",
            "nullable": true
          },
          "ort": {
            "x-length": 256,
            "x-generated": false,
            "x-primary-key": false,
            "type": "string",
            "nullable": true
          },
          "land": {
            "x-length": 256,
            "x-generated": false,
            "x-primary-key": false,
            "type": "string",
            "nullable": true
          },
          "mail": {
            "x-length": 256,
            "x-generated": false,
            "x-primary-key": false,
            "type": "string",
            "nullable": true
          },
          "mail2": {
            "x-length": 256,
            "x-generated": false,
            "x-primary-key": false,
            "type": "string",
            "nullable": true
          },
          "phone": {
            "x-length": 45,
            "x-generated": false,
            "x-primary-key": false,
            "type": "string",
            "nullable": true
          },
          "phone2": {
            "x-length": 45,
            "x-generated": false,
            "x-primary-key": false,
            "type": "string",
            "nullable": true
          },
          "phoneMobile": {
            "x-length": 45,
            "x-generated": false,
            "x-primary-key": false,
            "type": "string",
            "nullable": true
          },
          "geburtstag": {
            "x-generated": false,
            "x-primary-key": false,
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "notizen": {
            "x-length": 5000,
            "x-generated": false,
            "x-primary-key": false,
            "type": "string",
            "nullable": true
          },
          "active": {
            "x-precision": 3,
            "x-scale": 0,
            "x-generated": false,
            "x-primary-key": false,
            "type": "number",
            "nullable": true
          }
        },
        "additionalProperties": true,
        "x-typescript-type": "Partial<Kunde>"
      },
      "Rapport": {
        "title": "Rapport",
        "type": "object",
        "description": "(tsType: Omit<Rapport, >, schemaOptions: { exclude: [] })",
        "properties": {
          "id": {
            "x-precision": 10,
            "x-scale": 0,
            "x-generated": 1,
            "x-primary-key": true,
            "type": "number",
            "nullable": false
          },
          "datum": {
            "x-generated": false,
            "x-primary-key": false,
            "type": "string",
            "format": "date-time",
            "nullable": false
          },
          "startzeit": {
            "x-generated": false,
            "x-primary-key": false,
            "type": "string",
            "nullable": false
          },
          "trainingsdauer": {
            "x-generated": false,
            "x-primary-key": false,
            "type": "string",
            "nullable": true
          },
          "effectiveKundeIds": {
            "x-length": 255,
            "x-generated": false,
            "x-primary-key": false,
            "type": "string",
            "nullable": true
          },
          "nachholtermin": {
            "x-precision": 3,
            "x-scale": 0,
            "x-generated": false,
            "x-primary-key": false,
            "type": "number",
            "nullable": true
          },
          "probetraining": {
            "x-precision": 3,
            "x-scale": 0,
            "x-generated": false,
            "x-primary-key": false,
            "type": "number",
            "nullable": true
          },
          "notizen": {
            "x-length": 256,
            "x-generated": false,
            "x-primary-key": false,
            "type": "string",
            "nullable": true
          },
          "trainingType": {
            "x-length": 256,
            "x-generated": false,
            "x-primary-key": false,
            "type": "string",
            "nullable": false
          },
          "invoicedIn": {
            "x-length": 4096,
            "x-generated": false,
            "x-primary-key": false,
            "type": "string",
            "nullable": true
          },
          "invoiceJson": {
            "x-generated": false,
            "x-primary-key": false,
            "type": "object",
            "nullable": true
          },
          "archived": {
            "x-precision": 3,
            "x-scale": 0,
            "x-generated": false,
            "x-primary-key": false,
            "type": "number",
            "nullable": true
          },
          "excludeFromInvoicing": {
            "x-precision": 3,
            "x-scale": 0,
            "x-generated": false,
            "x-primary-key": false,
            "type": "number",
            "nullable": true
          },
          "attendanceReported": {
            "x-precision": 3,
            "x-scale": 0,
            "x-generated": false,
            "x-primary-key": false,
            "type": "number",
            "nullable": true
          },
          "trainerId": {
            "x-precision": 10,
            "x-scale": 0,
            "x-generated": false,
            "x-primary-key": false,
            "type": "number",
            "nullable": true
          },
          "platzId": {
            "x-precision": 10,
            "x-scale": 0,
            "x-generated": false,
            "x-primary-key": false,
            "type": "number",
            "nullable": true
          },
          "kundeIds": {
            "type": "array",
            "items": {
              "x-primary-key": false,
              "type": "number"
            }
          },
          "gruppeId": {
            "x-precision": 10,
            "x-scale": 0,
            "x-generated": false,
            "x-primary-key": false,
            "type": "number",
            "nullable": true
          },
          "courtId": {
            "x-precision": 10,
            "x-scale": 0,
            "x-generated": false,
            "x-primary-key": false,
            "type": "number",
            "nullable": true
          },
          "templateId": {
            "x-precision": 10,
            "x-scale": 0,
            "x-generated": false,
            "x-primary-key": false,
            "type": "number",
            "nullable": true
          }
        },
        "required": [
          "datum",
          "startzeit",
          "trainingType"
        ],
        "additionalProperties": true,
        "x-typescript-type": "Omit<Rapport, >"
      },
      "KundeWithRelations": {
        "title": "KundeWithRelations",
        "type": "object",
        "description": "(tsType: KundeWithRelations, schemaOptions: { includeRelations: true }), ${JSON.stringify({ relationships })}",
        "properties": {
          "id": {
            "x-precision": 10,
            "x-scale": 0,
            "x-generated": 1,
            "x-primary-key": true,
            "type": "number",
            "nullable": false
          },
          "bexioId": {
            "x-length": 45,
            "x-generated": false,
            "x-primary-key": false,
            "type": "string",
            "nullable": true
          },
          "name": {
            "x-length": 256,
            "x-generated": false,
            "x-primary-key": false,
            "type": "string",
            "nullable": true
          },
          "vorname": {
            "x-length": 256,
            "x-generated": false,
            "x-primary-key": false,
            "type": "string",
            "nullable": true
          },
          "strasse": {
            "x-length": 256,
            "x-generated": false,
            "x-primary-key": false,
            "type": "string",
            "nullable": true
          },
          "plz": {
            "x-length": 45,
            "x-generated": false,
            "x-primary-key": false,
            "type": "string",
            "nullable": true
          },
          "ort": {
            "x-length": 256,
            "x-generated": false,
            "x-primary-key": false,
            "type": "string",
            "nullable": true
          },
          "land": {
            "x-length": 256,
            "x-generated": false,
            "x-primary-key": false,
            "type": "string",
            "nullable": true
          },
          "mail": {
            "x-length": 256,
            "x-generated": false,
            "x-primary-key": false,
            "type": "string",
            "nullable": true
          },
          "mail2": {
            "x-length": 256,
            "x-generated": false,
            "x-primary-key": false,
            "type": "string",
            "nullable": true
          },
          "phone": {
            "x-length": 45,
            "x-generated": false,
            "x-primary-key": false,
            "type": "string",
            "nullable": true
          },
          "phone2": {
            "x-length": 45,
            "x-generated": false,
            "x-primary-key": false,
            "type": "string",
            "nullable": true
          },
          "phoneMobile": {
            "x-length": 45,
            "x-generated": false,
            "x-primary-key": false,
            "type": "string",
            "nullable": true
          },
          "geburtstag": {
            "x-generated": false,
            "x-primary-key": false,
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "notizen": {
            "x-length": 5000,
            "x-generated": false,
            "x-primary-key": false,
            "type": "string",
            "nullable": true
          },
          "active": {
            "x-precision": 3,
            "x-scale": 0,
            "x-generated": false,
            "x-primary-key": false,
            "type": "number",
            "nullable": true
          },
          "KUNDE": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Kunde"
            }
          }
        },
        "additionalProperties": true,
        "x-typescript-type": "KundeWithRelations"
      },
      "NewInvoicesInArchivedRapport": {
        "title": "NewInvoicesInArchivedRapport",
        "type": "object",
        "description": "(tsType: @loopback/repository-json-schema#Optional<Omit<Invoices, 'id'>, 'rapportId'>, schemaOptions: { title: 'NewInvoicesInArchivedRapport', exclude: [ 'id' ], optional: [ 'rapportId' ] })",
        "properties": {
          "rapportId": {
            "x-precision": 10,
            "x-scale": 0,
            "x-generated": false,
            "x-primary-key": false,
            "type": "number",
            "nullable": true
          },
          "relatedRapportId": {
            "x-precision": 10,
            "x-scale": 0,
            "x-generated": false,
            "x-primary-key": false,
            "type": "number",
            "nullable": true
          }
        },
        "additionalProperties": true,
        "x-typescript-type": "@loopback/repository-json-schema#Optional<Omit<Invoices, 'id'>, 'rapportId'>"
      },
      "WeeklyTrainingPlanWithRelations": {
        "title": "WeeklyTrainingPlanWithRelations",
        "type": "object",
        "description": "(tsType: Omit<WeeklyTrainingPlanWithRelations, >, schemaOptions: { includeRelations: true, exclude: [] }), ${JSON.stringify({ relationships })}",
        "properties": {
          "id": {
            "x-precision": 10,
            "x-scale": 0,
            "x-generated": 1,
            "x-primary-key": true,
            "type": "number",
            "nullable": false
          },
          "dayOfWeek": {
            "x-precision": 3,
            "x-scale": 0,
            "x-generated": false,
            "x-primary-key": false,
            "type": "number",
            "nullable": false
          },
          "startDate": {
            "x-generated": false,
            "x-primary-key": false,
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "endDate": {
            "x-generated": false,
            "x-primary-key": false,
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "startzeit": {
            "x-generated": false,
            "x-primary-key": false,
            "type": "string",
            "nullable": false
          },
          "trainingsdauer": {
            "x-generated": false,
            "x-primary-key": false,
            "type": "string",
            "nullable": true
          },
          "notizen": {
            "x-length": 256,
            "x-generated": false,
            "x-primary-key": false,
            "type": "string",
            "nullable": true
          },
          "trainingType": {
            "x-length": 256,
            "x-generated": false,
            "x-primary-key": false,
            "type": "string",
            "nullable": false
          },
          "confirmed": {
            "x-precision": 3,
            "x-scale": 0,
            "x-generated": false,
            "x-primary-key": false,
            "type": "number",
            "nullable": false
          },
          "archived": {
            "x-precision": 3,
            "x-scale": 0,
            "x-generated": false,
            "x-primary-key": false,
            "type": "number",
            "nullable": true
          },
          "invoicedIn": {
            "x-length": 4096,
            "x-generated": false,
            "x-primary-key": false,
            "type": "string",
            "nullable": true
          },
          "excludeFromInvoicing": {
            "x-precision": 3,
            "x-scale": 0,
            "x-generated": false,
            "x-primary-key": false,
            "type": "number",
            "nullable": true
          },
          "trainerId": {
            "x-precision": 10,
            "x-scale": 0,
            "x-generated": false,
            "x-primary-key": false,
            "type": "number",
            "nullable": true
          },
          "courtId": {
            "x-precision": 10,
            "x-scale": 0,
            "x-generated": false,
            "x-primary-key": false,
            "type": "number",
            "nullable": true
          },
          "platzId": {
            "x-precision": 10,
            "x-scale": 0,
            "x-generated": false,
            "x-primary-key": false,
            "type": "number",
            "nullable": true
          },
          "gruppeId": {
            "x-precision": 10,
            "x-scale": 0,
            "x-generated": false,
            "x-primary-key": false,
            "type": "number",
            "nullable": true
          },
          "kundeIds": {
            "type": "array",
            "items": {
              "x-primary-key": false,
              "type": "number"
            }
          },
          "trainer": {
            "$ref": "#/components/schemas/Trainer"
          },
          "court": {
            "$ref": "#/components/schemas/Court"
          },
          "platz": {
            "$ref": "#/components/schemas/Platz"
          },
          "gruppe": {
            "$ref": "#/components/schemas/Gruppe"
          },
          "kundes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Kunde"
            }
          }
        },
        "required": [
          "dayOfWeek",
          "startzeit",
          "trainingType",
          "confirmed"
        ],
        "additionalProperties": true,
        "x-typescript-type": "Omit<WeeklyTrainingPlanWithRelations, >"
      },
      "NewWeeklyTrainingPlan": {
        "title": "NewWeeklyTrainingPlan",
        "type": "object",
        "description": "(tsType: Omit<WeeklyTrainingPlan, 'id'>, schemaOptions: { title: 'NewWeeklyTrainingPlan', exclude: [ 'id' ] })",
        "properties": {
          "dayOfWeek": {
            "x-precision": 3,
            "x-scale": 0,
            "x-generated": false,
            "x-primary-key": false,
            "type": "number",
            "nullable": false
          },
          "startDate": {
            "x-generated": false,
            "x-primary-key": false,
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "endDate": {
            "x-generated": false,
            "x-primary-key": false,
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "startzeit": {
            "x-generated": false,
            "x-primary-key": false,
            "type": "string",
            "nullable": false
          },
          "trainingsdauer": {
            "x-generated": false,
            "x-primary-key": false,
            "type": "string",
            "nullable": true
          },
          "notizen": {
            "x-length": 256,
            "x-generated": false,
            "x-primary-key": false,
            "type": "string",
            "nullable": true
          },
          "trainingType": {
            "x-length": 256,
            "x-generated": false,
            "x-primary-key": false,
            "type": "string",
            "nullable": false
          },
          "confirmed": {
            "x-precision": 3,
            "x-scale": 0,
            "x-generated": false,
            "x-primary-key": false,
            "type": "number",
            "nullable": false
          },
          "archived": {
            "x-precision": 3,
            "x-scale": 0,
            "x-generated": false,
            "x-primary-key": false,
            "type": "number",
            "nullable": true
          },
          "invoicedIn": {
            "x-length": 4096,
            "x-generated": false,
            "x-primary-key": false,
            "type": "string",
            "nullable": true
          },
          "excludeFromInvoicing": {
            "x-precision": 3,
            "x-scale": 0,
            "x-generated": false,
            "x-primary-key": false,
            "type": "number",
            "nullable": true
          },
          "trainerId": {
            "x-precision": 10,
            "x-scale": 0,
            "x-generated": false,
            "x-primary-key": false,
            "type": "number",
            "nullable": true
          },
          "courtId": {
            "x-precision": 10,
            "x-scale": 0,
            "x-generated": false,
            "x-primary-key": false,
            "type": "number",
            "nullable": true
          },
          "platzId": {
            "x-precision": 10,
            "x-scale": 0,
            "x-generated": false,
            "x-primary-key": false,
            "type": "number",
            "nullable": true
          },
          "gruppeId": {
            "x-precision": 10,
            "x-scale": 0,
            "x-generated": false,
            "x-primary-key": false,
            "type": "number",
            "nullable": true
          },
          "kundeIds": {
            "type": "array",
            "items": {
              "x-primary-key": false,
              "type": "number"
            }
          }
        },
        "required": [
          "dayOfWeek",
          "startzeit",
          "trainingType",
          "confirmed"
        ],
        "additionalProperties": true,
        "x-typescript-type": "Omit<WeeklyTrainingPlan, 'id'>"
      },
      "WeeklyTrainingPlanPartial": {
        "title": "WeeklyTrainingPlanPartial",
        "type": "object",
        "description": "(tsType: Partial<WeeklyTrainingPlan>, schemaOptions: { partial: true })",
        "properties": {
          "id": {
            "x-precision": 10,
            "x-scale": 0,
            "x-generated": 1,
            "x-primary-key": true,
            "type": "number",
            "nullable": false
          },
          "dayOfWeek": {
            "x-precision": 3,
            "x-scale": 0,
            "x-generated": false,
            "x-primary-key": false,
            "type": "number",
            "nullable": false
          },
          "startDate": {
            "x-generated": false,
            "x-primary-key": false,
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "endDate": {
            "x-generated": false,
            "x-primary-key": false,
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "startzeit": {
            "x-generated": false,
            "x-primary-key": false,
            "type": "string",
            "nullable": false
          },
          "trainingsdauer": {
            "x-generated": false,
            "x-primary-key": false,
            "type": "string",
            "nullable": true
          },
          "notizen": {
            "x-length": 256,
            "x-generated": false,
            "x-primary-key": false,
            "type": "string",
            "nullable": true
          },
          "trainingType": {
            "x-length": 256,
            "x-generated": false,
            "x-primary-key": false,
            "type": "string",
            "nullable": false
          },
          "confirmed": {
            "x-precision": 3,
            "x-scale": 0,
            "x-generated": false,
            "x-primary-key": false,
            "type": "number",
            "nullable": false
          },
          "archived": {
            "x-precision": 3,
            "x-scale": 0,
            "x-generated": false,
            "x-primary-key": false,
            "type": "number",
            "nullable": true
          },
          "invoicedIn": {
            "x-length": 4096,
            "x-generated": false,
            "x-primary-key": false,
            "type": "string",
            "nullable": true
          },
          "excludeFromInvoicing": {
            "x-precision": 3,
            "x-scale": 0,
            "x-generated": false,
            "x-primary-key": false,
            "type": "number",
            "nullable": true
          },
          "trainerId": {
            "x-precision": 10,
            "x-scale": 0,
            "x-generated": false,
            "x-primary-key": false,
            "type": "number",
            "nullable": true
          },
          "courtId": {
            "x-precision": 10,
            "x-scale": 0,
            "x-generated": false,
            "x-primary-key": false,
            "type": "number",
            "nullable": true
          },
          "platzId": {
            "x-precision": 10,
            "x-scale": 0,
            "x-generated": false,
            "x-primary-key": false,
            "type": "number",
            "nullable": true
          },
          "gruppeId": {
            "x-precision": 10,
            "x-scale": 0,
            "x-generated": false,
            "x-primary-key": false,
            "type": "number",
            "nullable": true
          },
          "kundeIds": {
            "type": "array",
            "items": {
              "x-primary-key": false,
              "type": "number"
            }
          }
        },
        "additionalProperties": true,
        "x-typescript-type": "Partial<WeeklyTrainingPlan>"
      },
      "TrainerWithRelations": {
        "title": "TrainerWithRelations",
        "type": "object",
        "description": "(tsType: Omit<TrainerWithRelations, >, schemaOptions: { includeRelations: true, exclude: [] }), ${JSON.stringify({ relationships })}",
        "properties": {
          "id": {
            "x-precision": 10,
            "x-scale": 0,
            "x-generated": 1,
            "x-primary-key": true,
            "type": "number",
            "nullable": false
          },
          "name": {
            "x-length": 256,
            "x-generated": false,
            "x-primary-key": false,
            "type": "string",
            "nullable": true
          },
          "vorname": {
            "x-length": 256,
            "x-generated": false,
            "x-primary-key": false,
            "type": "string",
            "nullable": false
          },
          "email": {
            "x-length": 255,
            "x-generated": false,
            "x-primary-key": false,
            "type": "string",
            "nullable": true
          },
          "aktiv": {
            "x-precision": 3,
            "x-scale": 0,
            "x-generated": false,
            "x-primary-key": false,
            "type": "number",
            "nullable": true
          },
          "token": {
            "x-length": 256,
            "x-generated": 1,
            "x-primary-key": false,
            "type": "string",
            "nullable": true
          },
          "color": {
            "x-length": 45,
            "x-generated": false,
            "x-primary-key": false,
            "type": "string",
            "nullable": true
          },
          "colorFont": {
            "x-length": 45,
            "x-generated": false,
            "x-primary-key": false,
            "type": "string",
            "nullable": true
          },
          "notizen": {
            "x-length": 256,
            "x-generated": false,
            "x-primary-key": false,
            "type": "string",
            "nullable": true
          },
          "SummerRateBeforeId": {
            "x-precision": 10,
            "x-scale": 0,
            "x-generated": false,
            "x-primary-key": false,
            "type": "number",
            "nullable": true
          },
          "SummerRateAfterId": {
            "x-primary-key": false,
            "type": "number"
          },
          "WinterRateBeforeId": {
            "x-primary-key": false,
            "type": "number"
          },
          "WinterRateAfterId": {
            "x-primary-key": false,
            "type": "number"
          },
          "ClubRateId": {
            "x-primary-key": false,
            "type": "number"
          },
          "SummerRateBefore": {
            "$ref": "#/components/schemas/Product"
          },
          "SummerRateAfter": {
            "$ref": "#/components/schemas/Product"
          },
          "WinterRateBefore": {
            "$ref": "#/components/schemas/Product"
          },
          "WinterRateAfter": {
            "$ref": "#/components/schemas/Product"
          },
          "ClubRate": {
            "$ref": "#/components/schemas/Product"
          }
        },
        "required": [
          "vorname"
        ],
        "additionalProperties": true,
        "x-typescript-type": "Omit<TrainerWithRelations, >"
      },
      "NewTrainer": {
        "title": "NewTrainer",
        "type": "object",
        "description": "(tsType: Omit<Trainer, 'id'>, schemaOptions: { title: 'NewTrainer', exclude: [ 'id' ] })",
        "properties": {
          "name": {
            "x-length": 256,
            "x-generated": false,
            "x-primary-key": false,
            "type": "string",
            "nullable": true
          },
          "vorname": {
            "x-length": 256,
            "x-generated": false,
            "x-primary-key": false,
            "type": "string",
            "nullable": false
          },
          "email": {
            "x-length": 255,
            "x-generated": false,
            "x-primary-key": false,
            "type": "string",
            "nullable": true
          },
          "aktiv": {
            "x-precision": 3,
            "x-scale": 0,
            "x-generated": false,
            "x-primary-key": false,
            "type": "number",
            "nullable": true
          },
          "token": {
            "x-length": 256,
            "x-generated": 1,
            "x-primary-key": false,
            "type": "string",
            "nullable": true
          },
          "color": {
            "x-length": 45,
            "x-generated": false,
            "x-primary-key": false,
            "type": "string",
            "nullable": true
          },
          "colorFont": {
            "x-length": 45,
            "x-generated": false,
            "x-primary-key": false,
            "type": "string",
            "nullable": true
          },
          "notizen": {
            "x-length": 256,
            "x-generated": false,
            "x-primary-key": false,
            "type": "string",
            "nullable": true
          },
          "SummerRateBeforeId": {
            "x-precision": 10,
            "x-scale": 0,
            "x-generated": false,
            "x-primary-key": false,
            "type": "number",
            "nullable": true
          },
          "SummerRateAfterId": {
            "x-primary-key": false,
            "type": "number"
          },
          "WinterRateBeforeId": {
            "x-primary-key": false,
            "type": "number"
          },
          "WinterRateAfterId": {
            "x-primary-key": false,
            "type": "number"
          },
          "ClubRateId": {
            "x-primary-key": false,
            "type": "number"
          }
        },
        "required": [
          "vorname"
        ],
        "additionalProperties": true,
        "x-typescript-type": "Omit<Trainer, 'id'>"
      },
      "TrainerPartial": {
        "title": "TrainerPartial",
        "type": "object",
        "description": "(tsType: Partial<Trainer>, schemaOptions: { partial: true })",
        "properties": {
          "id": {
            "x-precision": 10,
            "x-scale": 0,
            "x-generated": 1,
            "x-primary-key": true,
            "type": "number",
            "nullable": false
          },
          "name": {
            "x-length": 256,
            "x-generated": false,
            "x-primary-key": false,
            "type": "string",
            "nullable": true
          },
          "vorname": {
            "x-length": 256,
            "x-generated": false,
            "x-primary-key": false,
            "type": "string",
            "nullable": false
          },
          "email": {
            "x-length": 255,
            "x-generated": false,
            "x-primary-key": false,
            "type": "string",
            "nullable": true
          },
          "aktiv": {
            "x-precision": 3,
            "x-scale": 0,
            "x-generated": false,
            "x-primary-key": false,
            "type": "number",
            "nullable": true
          },
          "token": {
            "x-length": 256,
            "x-generated": 1,
            "x-primary-key": false,
            "type": "string",
            "nullable": true
          },
          "color": {
            "x-length": 45,
            "x-generated": false,
            "x-primary-key": false,
            "type": "string",
            "nullable": true
          },
          "colorFont": {
            "x-length": 45,
            "x-generated": false,
            "x-primary-key": false,
            "type": "string",
            "nullable": true
          },
          "notizen": {
            "x-length": 256,
            "x-generated": false,
            "x-primary-key": false,
            "type": "string",
            "nullable": true
          },
          "SummerRateBeforeId": {
            "x-precision": 10,
            "x-scale": 0,
            "x-generated": false,
            "x-primary-key": false,
            "type": "number",
            "nullable": true
          },
          "SummerRateAfterId": {
            "x-primary-key": false,
            "type": "number"
          },
          "WinterRateBeforeId": {
            "x-primary-key": false,
            "type": "number"
          },
          "WinterRateAfterId": {
            "x-primary-key": false,
            "type": "number"
          },
          "ClubRateId": {
            "x-primary-key": false,
            "type": "number"
          }
        },
        "additionalProperties": true,
        "x-typescript-type": "Partial<Trainer>"
      },
      "RapportWithRelations": {
        "title": "RapportWithRelations",
        "type": "object",
        "description": "(tsType: Omit<RapportWithRelations, >, schemaOptions: { includeRelations: true, exclude: [] }), ${JSON.stringify({ relationships })}",
        "properties": {
          "id": {
            "x-precision": 10,
            "x-scale": 0,
            "x-generated": 1,
            "x-primary-key": true,
            "type": "number",
            "nullable": false
          },
          "datum": {
            "x-generated": false,
            "x-primary-key": false,
            "type": "string",
            "format": "date-time",
            "nullable": false
          },
          "startzeit": {
            "x-generated": false,
            "x-primary-key": false,
            "type": "string",
            "nullable": false
          },
          "trainingsdauer": {
            "x-generated": false,
            "x-primary-key": false,
            "type": "string",
            "nullable": true
          },
          "effectiveKundeIds": {
            "x-length": 255,
            "x-generated": false,
            "x-primary-key": false,
            "type": "string",
            "nullable": true
          },
          "nachholtermin": {
            "x-precision": 3,
            "x-scale": 0,
            "x-generated": false,
            "x-primary-key": false,
            "type": "number",
            "nullable": true
          },
          "probetraining": {
            "x-precision": 3,
            "x-scale": 0,
            "x-generated": false,
            "x-primary-key": false,
            "type": "number",
            "nullable": true
          },
          "notizen": {
            "x-length": 256,
            "x-generated": false,
            "x-primary-key": false,
            "type": "string",
            "nullable": true
          },
          "trainingType": {
            "x-length": 256,
            "x-generated": false,
            "x-primary-key": false,
            "type": "string",
            "nullable": false
          },
          "invoicedIn": {
            "x-length": 4096,
            "x-generated": false,
            "x-primary-key": false,
            "type": "string",
            "nullable": true
          },
          "invoiceJson": {
            "x-generated": false,
            "x-primary-key": false,
            "type": "object",
            "nullable": true
          },
          "archived": {
            "x-precision": 3,
            "x-scale": 0,
            "x-generated": false,
            "x-primary-key": false,
            "type": "number",
            "nullable": true
          },
          "excludeFromInvoicing": {
            "x-precision": 3,
            "x-scale": 0,
            "x-generated": false,
            "x-primary-key": false,
            "type": "number",
            "nullable": true
          },
          "attendanceReported": {
            "x-precision": 3,
            "x-scale": 0,
            "x-generated": false,
            "x-primary-key": false,
            "type": "number",
            "nullable": true
          },
          "trainerId": {
            "x-precision": 10,
            "x-scale": 0,
            "x-generated": false,
            "x-primary-key": false,
            "type": "number",
            "nullable": true
          },
          "platzId": {
            "x-precision": 10,
            "x-scale": 0,
            "x-generated": false,
            "x-primary-key": false,
            "type": "number",
            "nullable": true
          },
          "kundeIds": {
            "type": "array",
            "items": {
              "x-primary-key": false,
              "type": "number"
            }
          },
          "gruppeId": {
            "x-precision": 10,
            "x-scale": 0,
            "x-generated": false,
            "x-primary-key": false,
            "type": "number",
            "nullable": true
          },
          "courtId": {
            "x-precision": 10,
            "x-scale": 0,
            "x-generated": false,
            "x-primary-key": false,
            "type": "number",
            "nullable": true
          },
          "templateId": {
            "x-precision": 10,
            "x-scale": 0,
            "x-generated": false,
            "x-primary-key": false,
            "type": "number",
            "nullable": true
          },
          "trainer": {
            "$ref": "#/components/schemas/Trainer"
          },
          "platz": {
            "$ref": "#/components/schemas/Platz"
          },
          "kundes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Kunde"
            }
          },
          "gruppe": {
            "$ref": "#/components/schemas/Gruppe"
          },
          "court": {
            "$ref": "#/components/schemas/Court"
          },
          "template": {
            "$ref": "#/components/schemas/WeeklyTrainingPlan"
          },
          "invoice": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Invoices"
            }
          }
        },
        "required": [
          "datum",
          "startzeit",
          "trainingType"
        ],
        "additionalProperties": true,
        "x-typescript-type": "Omit<RapportWithRelations, >"
      },
      "NewRapport": {
        "title": "NewRapport",
        "type": "object",
        "description": "(tsType: Omit<Rapport, 'id'>, schemaOptions: { title: 'NewRapport', exclude: [ 'id' ] })",
        "properties": {
          "datum": {
            "x-generated": false,
            "x-primary-key": false,
            "type": "string",
            "format": "date-time",
            "nullable": false
          },
          "startzeit": {
            "x-generated": false,
            "x-primary-key": false,
            "type": "string",
            "nullable": false
          },
          "trainingsdauer": {
            "x-generated": false,
            "x-primary-key": false,
            "type": "string",
            "nullable": true
          },
          "effectiveKundeIds": {
            "x-length": 255,
            "x-generated": false,
            "x-primary-key": false,
            "type": "string",
            "nullable": true
          },
          "nachholtermin": {
            "x-precision": 3,
            "x-scale": 0,
            "x-generated": false,
            "x-primary-key": false,
            "type": "number",
            "nullable": true
          },
          "probetraining": {
            "x-precision": 3,
            "x-scale": 0,
            "x-generated": false,
            "x-primary-key": false,
            "type": "number",
            "nullable": true
          },
          "notizen": {
            "x-length": 256,
            "x-generated": false,
            "x-primary-key": false,
            "type": "string",
            "nullable": true
          },
          "trainingType": {
            "x-length": 256,
            "x-generated": false,
            "x-primary-key": false,
            "type": "string",
            "nullable": false
          },
          "invoicedIn": {
            "x-length": 4096,
            "x-generated": false,
            "x-primary-key": false,
            "type": "string",
            "nullable": true
          },
          "invoiceJson": {
            "x-generated": false,
            "x-primary-key": false,
            "type": "object",
            "nullable": true
          },
          "archived": {
            "x-precision": 3,
            "x-scale": 0,
            "x-generated": false,
            "x-primary-key": false,
            "type": "number",
            "nullable": true
          },
          "excludeFromInvoicing": {
            "x-precision": 3,
            "x-scale": 0,
            "x-generated": false,
            "x-primary-key": false,
            "type": "number",
            "nullable": true
          },
          "attendanceReported": {
            "x-precision": 3,
            "x-scale": 0,
            "x-generated": false,
            "x-primary-key": false,
            "type": "number",
            "nullable": true
          },
          "trainerId": {
            "x-precision": 10,
            "x-scale": 0,
            "x-generated": false,
            "x-primary-key": false,
            "type": "number",
            "nullable": true
          },
          "platzId": {
            "x-precision": 10,
            "x-scale": 0,
            "x-generated": false,
            "x-primary-key": false,
            "type": "number",
            "nullable": true
          },
          "kundeIds": {
            "type": "array",
            "items": {
              "x-primary-key": false,
              "type": "number"
            }
          },
          "gruppeId": {
            "x-precision": 10,
            "x-scale": 0,
            "x-generated": false,
            "x-primary-key": false,
            "type": "number",
            "nullable": true
          },
          "courtId": {
            "x-precision": 10,
            "x-scale": 0,
            "x-generated": false,
            "x-primary-key": false,
            "type": "number",
            "nullable": true
          },
          "templateId": {
            "x-precision": 10,
            "x-scale": 0,
            "x-generated": false,
            "x-primary-key": false,
            "type": "number",
            "nullable": true
          }
        },
        "required": [
          "datum",
          "startzeit",
          "trainingType"
        ],
        "additionalProperties": true,
        "x-typescript-type": "Omit<Rapport, 'id'>"
      },
      "RapportPartial": {
        "title": "RapportPartial",
        "type": "object",
        "description": "(tsType: Partial<Rapport>, schemaOptions: { partial: true })",
        "properties": {
          "id": {
            "x-precision": 10,
            "x-scale": 0,
            "x-generated": 1,
            "x-primary-key": true,
            "type": "number",
            "nullable": false
          },
          "datum": {
            "x-generated": false,
            "x-primary-key": false,
            "type": "string",
            "format": "date-time",
            "nullable": false
          },
          "startzeit": {
            "x-generated": false,
            "x-primary-key": false,
            "type": "string",
            "nullable": false
          },
          "trainingsdauer": {
            "x-generated": false,
            "x-primary-key": false,
            "type": "string",
            "nullable": true
          },
          "effectiveKundeIds": {
            "x-length": 255,
            "x-generated": false,
            "x-primary-key": false,
            "type": "string",
            "nullable": true
          },
          "nachholtermin": {
            "x-precision": 3,
            "x-scale": 0,
            "x-generated": false,
            "x-primary-key": false,
            "type": "number",
            "nullable": true
          },
          "probetraining": {
            "x-precision": 3,
            "x-scale": 0,
            "x-generated": false,
            "x-primary-key": false,
            "type": "number",
            "nullable": true
          },
          "notizen": {
            "x-length": 256,
            "x-generated": false,
            "x-primary-key": false,
            "type": "string",
            "nullable": true
          },
          "trainingType": {
            "x-length": 256,
            "x-generated": false,
            "x-primary-key": false,
            "type": "string",
            "nullable": false
          },
          "invoicedIn": {
            "x-length": 4096,
            "x-generated": false,
            "x-primary-key": false,
            "type": "string",
            "nullable": true
          },
          "invoiceJson": {
            "x-generated": false,
            "x-primary-key": false,
            "type": "object",
            "nullable": true
          },
          "archived": {
            "x-precision": 3,
            "x-scale": 0,
            "x-generated": false,
            "x-primary-key": false,
            "type": "number",
            "nullable": true
          },
          "excludeFromInvoicing": {
            "x-precision": 3,
            "x-scale": 0,
            "x-generated": false,
            "x-primary-key": false,
            "type": "number",
            "nullable": true
          },
          "attendanceReported": {
            "x-precision": 3,
            "x-scale": 0,
            "x-generated": false,
            "x-primary-key": false,
            "type": "number",
            "nullable": true
          },
          "trainerId": {
            "x-precision": 10,
            "x-scale": 0,
            "x-generated": false,
            "x-primary-key": false,
            "type": "number",
            "nullable": true
          },
          "platzId": {
            "x-precision": 10,
            "x-scale": 0,
            "x-generated": false,
            "x-primary-key": false,
            "type": "number",
            "nullable": true
          },
          "kundeIds": {
            "type": "array",
            "items": {
              "x-primary-key": false,
              "type": "number"
            }
          },
          "gruppeId": {
            "x-precision": 10,
            "x-scale": 0,
            "x-generated": false,
            "x-primary-key": false,
            "type": "number",
            "nullable": true
          },
          "courtId": {
            "x-precision": 10,
            "x-scale": 0,
            "x-generated": false,
            "x-primary-key": false,
            "type": "number",
            "nullable": true
          },
          "templateId": {
            "x-precision": 10,
            "x-scale": 0,
            "x-generated": false,
            "x-primary-key": false,
            "type": "number",
            "nullable": true
          }
        },
        "additionalProperties": true,
        "x-typescript-type": "Partial<Rapport>"
      },
      "ProductWithRelations": {
        "title": "ProductWithRelations",
        "type": "object",
        "description": "(tsType: Omit<ProductWithRelations, >, schemaOptions: { includeRelations: true, exclude: [] })",
        "properties": {
          "id": {
            "x-precision": 10,
            "x-scale": 0,
            "x-generated": 1,
            "x-primary-key": true,
            "type": "number",
            "nullable": false
          },
          "bexioId": {
            "x-length": 45,
            "x-generated": false,
            "x-primary-key": false,
            "type": "string",
            "nullable": true
          },
          "interncode": {
            "x-length": 45,
            "x-generated": false,
            "x-primary-key": false,
            "type": "string",
            "nullable": true
          },
          "internname": {
            "x-length": 256,
            "x-generated": false,
            "x-primary-key": false,
            "type": "string",
            "nullable": true
          },
          "interndescription": {
            "x-length": 500,
            "x-generated": false,
            "x-primary-key": false,
            "type": "string",
            "nullable": true
          },
          "saleprice": {
            "x-precision": 6,
            "x-scale": 2,
            "x-generated": false,
            "x-primary-key": false,
            "type": "number",
            "nullable": true
          },
          "taxid": {
            "x-length": 45,
            "x-generated": false,
            "x-primary-key": false,
            "type": "string",
            "nullable": true
          },
          "articlegroupid": {
            "x-length": 45,
            "x-generated": false,
            "x-primary-key": false,
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": true,
        "x-typescript-type": "Omit<ProductWithRelations, >"
      },
      "NewProduct": {
        "title": "NewProduct",
        "type": "object",
        "description": "(tsType: Omit<Product, 'id'>, schemaOptions: { title: 'NewProduct', exclude: [ 'id' ] })",
        "properties": {
          "bexioId": {
            "x-length": 45,
            "x-generated": false,
            "x-primary-key": false,
            "type": "string",
            "nullable": true
          },
          "interncode": {
            "x-length": 45,
            "x-generated": false,
            "x-primary-key": false,
            "type": "string",
            "nullable": true
          },
          "internname": {
            "x-length": 256,
            "x-generated": false,
            "x-primary-key": false,
            "type": "string",
            "nullable": true
          },
          "interndescription": {
            "x-length": 500,
            "x-generated": false,
            "x-primary-key": false,
            "type": "string",
            "nullable": true
          },
          "saleprice": {
            "x-precision": 6,
            "x-scale": 2,
            "x-generated": false,
            "x-primary-key": false,
            "type": "number",
            "nullable": true
          },
          "taxid": {
            "x-length": 45,
            "x-generated": false,
            "x-primary-key": false,
            "type": "string",
            "nullable": true
          },
          "articlegroupid": {
            "x-length": 45,
            "x-generated": false,
            "x-primary-key": false,
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": true,
        "x-typescript-type": "Omit<Product, 'id'>"
      },
      "ProductPartial": {
        "title": "ProductPartial",
        "type": "object",
        "description": "(tsType: Partial<Product>, schemaOptions: { partial: true })",
        "properties": {
          "id": {
            "x-precision": 10,
            "x-scale": 0,
            "x-generated": 1,
            "x-primary-key": true,
            "type": "number",
            "nullable": false
          },
          "bexioId": {
            "x-length": 45,
            "x-generated": false,
            "x-primary-key": false,
            "type": "string",
            "nullable": true
          },
          "interncode": {
            "x-length": 45,
            "x-generated": false,
            "x-primary-key": false,
            "type": "string",
            "nullable": true
          },
          "internname": {
            "x-length": 256,
            "x-generated": false,
            "x-primary-key": false,
            "type": "string",
            "nullable": true
          },
          "interndescription": {
            "x-length": 500,
            "x-generated": false,
            "x-primary-key": false,
            "type": "string",
            "nullable": true
          },
          "saleprice": {
            "x-precision": 6,
            "x-scale": 2,
            "x-generated": false,
            "x-primary-key": false,
            "type": "number",
            "nullable": true
          },
          "taxid": {
            "x-length": 45,
            "x-generated": false,
            "x-primary-key": false,
            "type": "string",
            "nullable": true
          },
          "articlegroupid": {
            "x-length": 45,
            "x-generated": false,
            "x-primary-key": false,
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": true,
        "x-typescript-type": "Partial<Product>"
      },
      "PlatzWithRelations": {
        "title": "PlatzWithRelations",
        "type": "object",
        "description": "(tsType: Omit<PlatzWithRelations, >, schemaOptions: { includeRelations: true, exclude: [] })",
        "properties": {
          "id": {
            "x-precision": 10,
            "x-scale": 0,
            "x-generated": 1,
            "x-primary-key": true,
            "type": "number",
            "nullable": false
          },
          "tenniscourt": {
            "x-length": 256,
            "x-generated": false,
            "x-primary-key": false,
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": true,
        "x-typescript-type": "Omit<PlatzWithRelations, >"
      },
      "NewPlatz": {
        "title": "NewPlatz",
        "type": "object",
        "description": "(tsType: Omit<Platz, 'id'>, schemaOptions: { title: 'NewPlatz', exclude: [ 'id' ] })",
        "properties": {
          "tenniscourt": {
            "x-length": 256,
            "x-generated": false,
            "x-primary-key": false,
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": true,
        "x-typescript-type": "Omit<Platz, 'id'>"
      },
      "PlatzPartial": {
        "title": "PlatzPartial",
        "type": "object",
        "description": "(tsType: Partial<Platz>, schemaOptions: { partial: true })",
        "properties": {
          "id": {
            "x-precision": 10,
            "x-scale": 0,
            "x-generated": 1,
            "x-primary-key": true,
            "type": "number",
            "nullable": false
          },
          "tenniscourt": {
            "x-length": 256,
            "x-generated": false,
            "x-primary-key": false,
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": true,
        "x-typescript-type": "Partial<Platz>"
      },
      "NewKunde": {
        "title": "NewKunde",
        "type": "object",
        "description": "(tsType: Omit<Kunde, 'id'>, schemaOptions: { title: 'NewKunde', exclude: [ 'id' ] })",
        "properties": {
          "bexioId": {
            "x-length": 45,
            "x-generated": false,
            "x-primary-key": false,
            "type": "string",
            "nullable": true
          },
          "name": {
            "x-length": 256,
            "x-generated": false,
            "x-primary-key": false,
            "type": "string",
            "nullable": true
          },
          "vorname": {
            "x-length": 256,
            "x-generated": false,
            "x-primary-key": false,
            "type": "string",
            "nullable": true
          },
          "strasse": {
            "x-length": 256,
            "x-generated": false,
            "x-primary-key": false,
            "type": "string",
            "nullable": true
          },
          "plz": {
            "x-length": 45,
            "x-generated": false,
            "x-primary-key": false,
            "type": "string",
            "nullable": true
          },
          "ort": {
            "x-length": 256,
            "x-generated": false,
            "x-primary-key": false,
            "type": "string",
            "nullable": true
          },
          "land": {
            "x-length": 256,
            "x-generated": false,
            "x-primary-key": false,
            "type": "string",
            "nullable": true
          },
          "mail": {
            "x-length": 256,
            "x-generated": false,
            "x-primary-key": false,
            "type": "string",
            "nullable": true
          },
          "mail2": {
            "x-length": 256,
            "x-generated": false,
            "x-primary-key": false,
            "type": "string",
            "nullable": true
          },
          "phone": {
            "x-length": 45,
            "x-generated": false,
            "x-primary-key": false,
            "type": "string",
            "nullable": true
          },
          "phone2": {
            "x-length": 45,
            "x-generated": false,
            "x-primary-key": false,
            "type": "string",
            "nullable": true
          },
          "phoneMobile": {
            "x-length": 45,
            "x-generated": false,
            "x-primary-key": false,
            "type": "string",
            "nullable": true
          },
          "geburtstag": {
            "x-generated": false,
            "x-primary-key": false,
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "notizen": {
            "x-length": 5000,
            "x-generated": false,
            "x-primary-key": false,
            "type": "string",
            "nullable": true
          },
          "active": {
            "x-precision": 3,
            "x-scale": 0,
            "x-generated": false,
            "x-primary-key": false,
            "type": "number",
            "nullable": true
          }
        },
        "additionalProperties": true,
        "x-typescript-type": "Omit<Kunde, 'id'>"
      },
      "KundeThrough": {
        "title": "KundeThrough",
        "type": "object",
        "properties": {
          "id": {
            "x-precision": 10,
            "x-scale": 0,
            "x-generated": 1,
            "x-primary-key": true,
            "type": "number",
            "nullable": false
          },
          "bexioId": {
            "x-length": 45,
            "x-generated": false,
            "x-primary-key": false,
            "type": "string",
            "nullable": true
          },
          "contactId": {
            "x-length": 45,
            "x-generated": false,
            "x-primary-key": false,
            "type": "string",
            "nullable": true
          },
          "contactSubId": {
            "x-length": 45,
            "x-generated": false,
            "x-primary-key": false,
            "type": "string",
            "nullable": true
          },
          "description": {
            "x-length": 255,
            "x-generated": false,
            "x-primary-key": false,
            "type": "string",
            "nullable": true
          },
          "updatedAt": {
            "x-length": 255,
            "x-generated": false,
            "x-primary-key": false,
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": true
      },
      "KundeThroughWithRelations": {
        "title": "KundeThroughWithRelations",
        "type": "object",
        "description": "(tsType: Omit<KundeThroughWithRelations, >, schemaOptions: { includeRelations: true, exclude: [] })",
        "properties": {
          "id": {
            "x-precision": 10,
            "x-scale": 0,
            "x-generated": 1,
            "x-primary-key": true,
            "type": "number",
            "nullable": false
          },
          "bexioId": {
            "x-length": 45,
            "x-generated": false,
            "x-primary-key": false,
            "type": "string",
            "nullable": true
          },
          "contactId": {
            "x-length": 45,
            "x-generated": false,
            "x-primary-key": false,
            "type": "string",
            "nullable": true
          },
          "contactSubId": {
            "x-length": 45,
            "x-generated": false,
            "x-primary-key": false,
            "type": "string",
            "nullable": true
          },
          "description": {
            "x-length": 255,
            "x-generated": false,
            "x-primary-key": false,
            "type": "string",
            "nullable": true
          },
          "updatedAt": {
            "x-length": 255,
            "x-generated": false,
            "x-primary-key": false,
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": true,
        "x-typescript-type": "Omit<KundeThroughWithRelations, >"
      },
      "NewKundeThrough": {
        "title": "NewKundeThrough",
        "type": "object",
        "description": "(tsType: Omit<KundeThrough, 'id'>, schemaOptions: { title: 'NewKundeThrough', exclude: [ 'id' ] })",
        "properties": {
          "bexioId": {
            "x-length": 45,
            "x-generated": false,
            "x-primary-key": false,
            "type": "string",
            "nullable": true
          },
          "contactId": {
            "x-length": 45,
            "x-generated": false,
            "x-primary-key": false,
            "type": "string",
            "nullable": true
          },
          "contactSubId": {
            "x-length": 45,
            "x-generated": false,
            "x-primary-key": false,
            "type": "string",
            "nullable": true
          },
          "description": {
            "x-length": 255,
            "x-generated": false,
            "x-primary-key": false,
            "type": "string",
            "nullable": true
          },
          "updatedAt": {
            "x-length": 255,
            "x-generated": false,
            "x-primary-key": false,
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": true,
        "x-typescript-type": "Omit<KundeThrough, 'id'>"
      },
      "KundeThroughPartial": {
        "title": "KundeThroughPartial",
        "type": "object",
        "description": "(tsType: Partial<KundeThrough>, schemaOptions: { partial: true })",
        "properties": {
          "id": {
            "x-precision": 10,
            "x-scale": 0,
            "x-generated": 1,
            "x-primary-key": true,
            "type": "number",
            "nullable": false
          },
          "bexioId": {
            "x-length": 45,
            "x-generated": false,
            "x-primary-key": false,
            "type": "string",
            "nullable": true
          },
          "contactId": {
            "x-length": 45,
            "x-generated": false,
            "x-primary-key": false,
            "type": "string",
            "nullable": true
          },
          "contactSubId": {
            "x-length": 45,
            "x-generated": false,
            "x-primary-key": false,
            "type": "string",
            "nullable": true
          },
          "description": {
            "x-length": 255,
            "x-generated": false,
            "x-primary-key": false,
            "type": "string",
            "nullable": true
          },
          "updatedAt": {
            "x-length": 255,
            "x-generated": false,
            "x-primary-key": false,
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": true,
        "x-typescript-type": "Partial<KundeThrough>"
      },
      "InvoicesWithRelations": {
        "title": "InvoicesWithRelations",
        "type": "object",
        "description": "(tsType: Omit<InvoicesWithRelations, >, schemaOptions: { includeRelations: true, exclude: [] }), ${JSON.stringify({ relationships })}",
        "properties": {
          "id": {
            "x-precision": 10,
            "x-scale": 0,
            "x-generated": 1,
            "x-primary-key": true,
            "type": "number",
            "nullable": false
          },
          "rapportId": {
            "x-precision": 10,
            "x-scale": 0,
            "x-generated": false,
            "x-primary-key": false,
            "type": "number",
            "nullable": true
          },
          "relatedRapportId": {
            "x-precision": 10,
            "x-scale": 0,
            "x-generated": false,
            "x-primary-key": false,
            "type": "number",
            "nullable": true
          },
          "rapport": {
            "$ref": "#/components/schemas/Rapport"
          }
        },
        "additionalProperties": true,
        "x-typescript-type": "Omit<InvoicesWithRelations, >"
      },
      "NewInvoices": {
        "title": "NewInvoices",
        "type": "object",
        "description": "(tsType: Omit<Invoices, 'id'>, schemaOptions: { title: 'NewInvoices', exclude: [ 'id' ] })",
        "properties": {
          "rapportId": {
            "x-precision": 10,
            "x-scale": 0,
            "x-generated": false,
            "x-primary-key": false,
            "type": "number",
            "nullable": true
          },
          "relatedRapportId": {
            "x-precision": 10,
            "x-scale": 0,
            "x-generated": false,
            "x-primary-key": false,
            "type": "number",
            "nullable": true
          }
        },
        "additionalProperties": true,
        "x-typescript-type": "Omit<Invoices, 'id'>"
      },
      "InvoiceGenerationConfig": {
        "title": "InvoiceGenerationConfig",
        "type": "object",
        "properties": {
          "id": {
            "x-precision": 10,
            "x-scale": 0,
            "x-generated": 1,
            "x-primary-key": true,
            "type": "number",
            "nullable": false
          },
          "configName": {
            "x-length": 65535,
            "x-generated": false,
            "x-primary-key": false,
            "type": "string",
            "nullable": true
          },
          "configValue": {
            "x-length": 65535,
            "x-generated": false,
            "x-primary-key": false,
            "type": "string",
            "nullable": true
          },
          "configInformation": {
            "x-length": 65535,
            "x-generated": false,
            "x-primary-key": false,
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": true
      },
      "InvoiceGenerationConfigWithRelations": {
        "title": "InvoiceGenerationConfigWithRelations",
        "type": "object",
        "description": "(tsType: Omit<InvoiceGenerationConfigWithRelations, >, schemaOptions: { includeRelations: true, exclude: [] })",
        "properties": {
          "id": {
            "x-precision": 10,
            "x-scale": 0,
            "x-generated": 1,
            "x-primary-key": true,
            "type": "number",
            "nullable": false
          },
          "configName": {
            "x-length": 65535,
            "x-generated": false,
            "x-primary-key": false,
            "type": "string",
            "nullable": true
          },
          "configValue": {
            "x-length": 65535,
            "x-generated": false,
            "x-primary-key": false,
            "type": "string",
            "nullable": true
          },
          "configInformation": {
            "x-length": 65535,
            "x-generated": false,
            "x-primary-key": false,
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": true,
        "x-typescript-type": "Omit<InvoiceGenerationConfigWithRelations, >"
      },
      "NewInvoiceGenerationConfig": {
        "title": "NewInvoiceGenerationConfig",
        "type": "object",
        "description": "(tsType: Omit<InvoiceGenerationConfig, 'id'>, schemaOptions: { title: 'NewInvoiceGenerationConfig', exclude: [ 'id' ] })",
        "properties": {
          "configName": {
            "x-length": 65535,
            "x-generated": false,
            "x-primary-key": false,
            "type": "string",
            "nullable": true
          },
          "configValue": {
            "x-length": 65535,
            "x-generated": false,
            "x-primary-key": false,
            "type": "string",
            "nullable": true
          },
          "configInformation": {
            "x-length": 65535,
            "x-generated": false,
            "x-primary-key": false,
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": true,
        "x-typescript-type": "Omit<InvoiceGenerationConfig, 'id'>"
      },
      "InvoiceGenerationConfigPartial": {
        "title": "InvoiceGenerationConfigPartial",
        "type": "object",
        "description": "(tsType: Partial<InvoiceGenerationConfig>, schemaOptions: { partial: true })",
        "properties": {
          "id": {
            "x-precision": 10,
            "x-scale": 0,
            "x-generated": 1,
            "x-primary-key": true,
            "type": "number",
            "nullable": false
          },
          "configName": {
            "x-length": 65535,
            "x-generated": false,
            "x-primary-key": false,
            "type": "string",
            "nullable": true
          },
          "configValue": {
            "x-length": 65535,
            "x-generated": false,
            "x-primary-key": false,
            "type": "string",
            "nullable": true
          },
          "configInformation": {
            "x-length": 65535,
            "x-generated": false,
            "x-primary-key": false,
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": true,
        "x-typescript-type": "Partial<InvoiceGenerationConfig>"
      },
      "GruppeWithRelations": {
        "title": "GruppeWithRelations",
        "type": "object",
        "description": "(tsType: Omit<GruppeWithRelations, >, schemaOptions: { includeRelations: true, exclude: [] })",
        "properties": {
          "id": {
            "x-precision": 10,
            "x-scale": 0,
            "x-generated": 1,
            "x-primary-key": true,
            "type": "number",
            "nullable": false
          },
          "gruppentyp": {
            "x-length": 256,
            "x-generated": false,
            "x-primary-key": false,
            "type": "string",
            "nullable": true
          },
          "gruppenname": {
            "x-length": 256,
            "x-generated": false,
            "x-primary-key": false,
            "type": "string",
            "nullable": false
          },
          "beschreibung": {
            "x-length": 256,
            "x-generated": false,
            "x-primary-key": false,
            "type": "string",
            "nullable": true
          },
          "notizen": {
            "x-length": 256,
            "x-generated": false,
            "x-primary-key": false,
            "type": "string",
            "nullable": true
          },
          "farbe": {
            "x-length": 32,
            "x-generated": false,
            "x-primary-key": false,
            "type": "string",
            "nullable": true
          },
          "tennisballe": {
            "x-length": 16,
            "x-generated": false,
            "x-primary-key": false,
            "type": "string",
            "nullable": true
          }
        },
        "required": [
          "gruppenname"
        ],
        "additionalProperties": true,
        "x-typescript-type": "Omit<GruppeWithRelations, >"
      },
      "NewGruppe": {
        "title": "NewGruppe",
        "type": "object",
        "description": "(tsType: Omit<Gruppe, 'id'>, schemaOptions: { title: 'NewGruppe', exclude: [ 'id' ] })",
        "properties": {
          "gruppentyp": {
            "x-length": 256,
            "x-generated": false,
            "x-primary-key": false,
            "type": "string",
            "nullable": true
          },
          "gruppenname": {
            "x-length": 256,
            "x-generated": false,
            "x-primary-key": false,
            "type": "string",
            "nullable": false
          },
          "beschreibung": {
            "x-length": 256,
            "x-generated": false,
            "x-primary-key": false,
            "type": "string",
            "nullable": true
          },
          "notizen": {
            "x-length": 256,
            "x-generated": false,
            "x-primary-key": false,
            "type": "string",
            "nullable": true
          },
          "farbe": {
            "x-length": 32,
            "x-generated": false,
            "x-primary-key": false,
            "type": "string",
            "nullable": true
          },
          "tennisballe": {
            "x-length": 16,
            "x-generated": false,
            "x-primary-key": false,
            "type": "string",
            "nullable": true
          }
        },
        "required": [
          "gruppenname"
        ],
        "additionalProperties": true,
        "x-typescript-type": "Omit<Gruppe, 'id'>"
      },
      "GruppePartial": {
        "title": "GruppePartial",
        "type": "object",
        "description": "(tsType: Partial<Gruppe>, schemaOptions: { partial: true })",
        "properties": {
          "id": {
            "x-precision": 10,
            "x-scale": 0,
            "x-generated": 1,
            "x-primary-key": true,
            "type": "number",
            "nullable": false
          },
          "gruppentyp": {
            "x-length": 256,
            "x-generated": false,
            "x-primary-key": false,
            "type": "string",
            "nullable": true
          },
          "gruppenname": {
            "x-length": 256,
            "x-generated": false,
            "x-primary-key": false,
            "type": "string",
            "nullable": false
          },
          "beschreibung": {
            "x-length": 256,
            "x-generated": false,
            "x-primary-key": false,
            "type": "string",
            "nullable": true
          },
          "notizen": {
            "x-length": 256,
            "x-generated": false,
            "x-primary-key": false,
            "type": "string",
            "nullable": true
          },
          "farbe": {
            "x-length": 32,
            "x-generated": false,
            "x-primary-key": false,
            "type": "string",
            "nullable": true
          },
          "tennisballe": {
            "x-length": 16,
            "x-generated": false,
            "x-primary-key": false,
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": true,
        "x-typescript-type": "Partial<Gruppe>"
      },
      "DayNote": {
        "title": "DayNote",
        "type": "object",
        "properties": {
          "id": {
            "x-precision": 10,
            "x-scale": 0,
            "x-generated": 1,
            "x-primary-key": true,
            "type": "number",
            "nullable": false
          },
          "date": {
            "x-generated": false,
            "x-index": {
              "unique": true
            },
            "x-primary-key": false,
            "type": "string",
            "format": "date-time",
            "nullable": false
          },
          "note": {
            "x-length": 65535,
            "x-generated": false,
            "x-primary-key": false,
            "type": "string",
            "nullable": true
          }
        },
        "description": "{\"indexInfo\":{\"date\":{\"unique\":true}}}",
        "required": [
          "date"
        ],
        "additionalProperties": true
      },
      "DayNoteWithRelations": {
        "title": "DayNoteWithRelations",
        "type": "object",
        "description": "(tsType: Omit<DayNoteWithRelations, >, schemaOptions: { includeRelations: true, exclude: [] }), {\"indexInfo\":{\"date\":{\"unique\":true}}}",
        "properties": {
          "id": {
            "x-precision": 10,
            "x-scale": 0,
            "x-generated": 1,
            "x-primary-key": true,
            "type": "number",
            "nullable": false
          },
          "date": {
            "x-generated": false,
            "x-index": {
              "unique": true
            },
            "x-primary-key": false,
            "type": "string",
            "format": "date-time",
            "nullable": false
          },
          "note": {
            "x-length": 65535,
            "x-generated": false,
            "x-primary-key": false,
            "type": "string",
            "nullable": true
          }
        },
        "required": [
          "date"
        ],
        "additionalProperties": true,
        "x-typescript-type": "Omit<DayNoteWithRelations, >"
      },
      "NewDayNote": {
        "title": "NewDayNote",
        "type": "object",
        "description": "(tsType: Omit<DayNote, 'id'>, schemaOptions: { title: 'NewDayNote', exclude: [ 'id' ] }), {\"indexInfo\":{\"date\":{\"unique\":true}}}",
        "properties": {
          "date": {
            "x-generated": false,
            "x-index": {
              "unique": true
            },
            "x-primary-key": false,
            "type": "string",
            "format": "date-time",
            "nullable": false
          },
          "note": {
            "x-length": 65535,
            "x-generated": false,
            "x-primary-key": false,
            "type": "string",
            "nullable": true
          }
        },
        "required": [
          "date"
        ],
        "additionalProperties": true,
        "x-typescript-type": "Omit<DayNote, 'id'>"
      },
      "DayNotePartial": {
        "title": "DayNotePartial",
        "type": "object",
        "description": "(tsType: Partial<DayNote>, schemaOptions: { partial: true }), {\"indexInfo\":{\"date\":{\"unique\":true}}}",
        "properties": {
          "id": {
            "x-precision": 10,
            "x-scale": 0,
            "x-generated": 1,
            "x-primary-key": true,
            "type": "number",
            "nullable": false
          },
          "date": {
            "x-generated": false,
            "x-index": {
              "unique": true
            },
            "x-primary-key": false,
            "type": "string",
            "format": "date-time",
            "nullable": false
          },
          "note": {
            "x-length": 65535,
            "x-generated": false,
            "x-primary-key": false,
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": true,
        "x-typescript-type": "Partial<DayNote>"
      },
      "CourtWithRelations": {
        "title": "CourtWithRelations",
        "type": "object",
        "description": "(tsType: Omit<CourtWithRelations, >, schemaOptions: { includeRelations: true, exclude: [] })",
        "properties": {
          "id": {
            "x-precision": 10,
            "x-scale": 0,
            "x-generated": 1,
            "x-primary-key": true,
            "type": "number",
            "nullable": false
          },
          "name": {
            "x-length": 255,
            "x-generated": false,
            "x-primary-key": false,
            "type": "string",
            "nullable": false
          },
          "active": {
            "x-precision": 3,
            "x-scale": 0,
            "x-generated": false,
            "x-primary-key": false,
            "type": "number",
            "nullable": false
          }
        },
        "required": [
          "name",
          "active"
        ],
        "additionalProperties": true,
        "x-typescript-type": "Omit<CourtWithRelations, >"
      },
      "NewCourt": {
        "title": "NewCourt",
        "type": "object",
        "description": "(tsType: Omit<Court, 'id'>, schemaOptions: { title: 'NewCourt', exclude: [ 'id' ] })",
        "properties": {
          "name": {
            "x-length": 255,
            "x-generated": false,
            "x-primary-key": false,
            "type": "string",
            "nullable": false
          },
          "active": {
            "x-precision": 3,
            "x-scale": 0,
            "x-generated": false,
            "x-primary-key": false,
            "type": "number",
            "nullable": false
          }
        },
        "required": [
          "name",
          "active"
        ],
        "additionalProperties": true,
        "x-typescript-type": "Omit<Court, 'id'>"
      },
      "CourtPartial": {
        "title": "CourtPartial",
        "type": "object",
        "description": "(tsType: Partial<Court>, schemaOptions: { partial: true })",
        "properties": {
          "id": {
            "x-precision": 10,
            "x-scale": 0,
            "x-generated": 1,
            "x-primary-key": true,
            "type": "number",
            "nullable": false
          },
          "name": {
            "x-length": 255,
            "x-generated": false,
            "x-primary-key": false,
            "type": "string",
            "nullable": false
          },
          "active": {
            "x-precision": 3,
            "x-scale": 0,
            "x-generated": false,
            "x-primary-key": false,
            "type": "number",
            "nullable": false
          }
        },
        "additionalProperties": true,
        "x-typescript-type": "Partial<Court>"
      },
      "ArchivedRapport": {
        "title": "ArchivedRapport",
        "type": "object",
        "properties": {
          "id": {
            "x-precision": 10,
            "x-scale": 0,
            "x-generated": 1,
            "x-primary-key": true,
            "type": "number",
            "nullable": false
          },
          "datum": {
            "x-generated": false,
            "x-primary-key": false,
            "type": "string",
            "format": "date-time",
            "nullable": false
          },
          "startzeit": {
            "x-generated": false,
            "x-primary-key": false,
            "type": "string",
            "nullable": false
          },
          "trainingsdauer": {
            "x-generated": false,
            "x-primary-key": false,
            "type": "string",
            "nullable": true
          },
          "effectiveKundeIds": {
            "x-length": 255,
            "x-generated": false,
            "x-primary-key": false,
            "type": "string",
            "nullable": true
          },
          "nachholtermin": {
            "x-precision": 3,
            "x-scale": 0,
            "x-generated": false,
            "x-primary-key": false,
            "type": "number",
            "nullable": true
          },
          "probetraining": {
            "x-precision": 3,
            "x-scale": 0,
            "x-generated": false,
            "x-primary-key": false,
            "type": "number",
            "nullable": true
          },
          "notizen": {
            "x-length": 256,
            "x-generated": false,
            "x-primary-key": false,
            "type": "string",
            "nullable": true
          },
          "trainingType": {
            "x-length": 256,
            "x-generated": false,
            "x-primary-key": false,
            "type": "string",
            "nullable": false
          },
          "invoicedIn": {
            "x-length": 4096,
            "x-generated": false,
            "x-primary-key": false,
            "type": "string",
            "nullable": true
          },
          "invoiceJson": {
            "x-generated": false,
            "x-primary-key": false,
            "type": "object",
            "nullable": true
          },
          "archived": {
            "x-precision": 3,
            "x-scale": 0,
            "x-generated": false,
            "x-primary-key": false,
            "type": "number",
            "nullable": true
          },
          "primaryId": {
            "x-precision": 10,
            "x-scale": 0,
            "x-generated": false,
            "x-primary-key": false,
            "type": "number",
            "nullable": false
          },
          "archivedRapportId": {
            "x-precision": 10,
            "x-scale": 0,
            "x-generated": false,
            "x-primary-key": false,
            "type": "number",
            "nullable": true
          },
          "excludeFromInvoicing": {
            "x-precision": 3,
            "x-scale": 0,
            "x-generated": false,
            "x-primary-key": false,
            "type": "number",
            "nullable": true
          },
          "attendanceReported": {
            "x-precision": 3,
            "x-scale": 0,
            "x-generated": false,
            "x-primary-key": false,
            "type": "number",
            "nullable": true
          },
          "trainerId": {
            "x-precision": 10,
            "x-scale": 0,
            "x-generated": false,
            "x-primary-key": false,
            "type": "number",
            "nullable": true
          },
          "platzId": {
            "x-precision": 10,
            "x-scale": 0,
            "x-generated": false,
            "x-primary-key": false,
            "type": "number",
            "nullable": true
          },
          "kundeIds": {
            "type": "array",
            "items": {
              "x-primary-key": false,
              "type": "number"
            }
          },
          "gruppeId": {
            "x-precision": 10,
            "x-scale": 0,
            "x-generated": false,
            "x-primary-key": false,
            "type": "number",
            "nullable": true
          },
          "courtId": {
            "x-precision": 10,
            "x-scale": 0,
            "x-generated": false,
            "x-primary-key": false,
            "type": "number",
            "nullable": true
          },
          "templateId": {
            "x-precision": 10,
            "x-scale": 0,
            "x-generated": false,
            "x-primary-key": false,
            "type": "number",
            "nullable": true
          }
        },
        "required": [
          "datum",
          "startzeit",
          "trainingType",
          "primaryId"
        ],
        "additionalProperties": true
      },
      "ArchivedRapportWithRelations": {
        "title": "ArchivedRapportWithRelations",
        "type": "object",
        "description": "(tsType: Omit<ArchivedRapportWithRelations, >, schemaOptions: { includeRelations: true, exclude: [] }), ${JSON.stringify({ relationships })}",
        "properties": {
          "id": {
            "x-precision": 10,
            "x-scale": 0,
            "x-generated": 1,
            "x-primary-key": true,
            "type": "number",
            "nullable": false
          },
          "datum": {
            "x-generated": false,
            "x-primary-key": false,
            "type": "string",
            "format": "date-time",
            "nullable": false
          },
          "startzeit": {
            "x-generated": false,
            "x-primary-key": false,
            "type": "string",
            "nullable": false
          },
          "trainingsdauer": {
            "x-generated": false,
            "x-primary-key": false,
            "type": "string",
            "nullable": true
          },
          "effectiveKundeIds": {
            "x-length": 255,
            "x-generated": false,
            "x-primary-key": false,
            "type": "string",
            "nullable": true
          },
          "nachholtermin": {
            "x-precision": 3,
            "x-scale": 0,
            "x-generated": false,
            "x-primary-key": false,
            "type": "number",
            "nullable": true
          },
          "probetraining": {
            "x-precision": 3,
            "x-scale": 0,
            "x-generated": false,
            "x-primary-key": false,
            "type": "number",
            "nullable": true
          },
          "notizen": {
            "x-length": 256,
            "x-generated": false,
            "x-primary-key": false,
            "type": "string",
            "nullable": true
          },
          "trainingType": {
            "x-length": 256,
            "x-generated": false,
            "x-primary-key": false,
            "type": "string",
            "nullable": false
          },
          "invoicedIn": {
            "x-length": 4096,
            "x-generated": false,
            "x-primary-key": false,
            "type": "string",
            "nullable": true
          },
          "invoiceJson": {
            "x-generated": false,
            "x-primary-key": false,
            "type": "object",
            "nullable": true
          },
          "archived": {
            "x-precision": 3,
            "x-scale": 0,
            "x-generated": false,
            "x-primary-key": false,
            "type": "number",
            "nullable": true
          },
          "primaryId": {
            "x-precision": 10,
            "x-scale": 0,
            "x-generated": false,
            "x-primary-key": false,
            "type": "number",
            "nullable": false
          },
          "archivedRapportId": {
            "x-precision": 10,
            "x-scale": 0,
            "x-generated": false,
            "x-primary-key": false,
            "type": "number",
            "nullable": true
          },
          "excludeFromInvoicing": {
            "x-precision": 3,
            "x-scale": 0,
            "x-generated": false,
            "x-primary-key": false,
            "type": "number",
            "nullable": true
          },
          "attendanceReported": {
            "x-precision": 3,
            "x-scale": 0,
            "x-generated": false,
            "x-primary-key": false,
            "type": "number",
            "nullable": true
          },
          "trainerId": {
            "x-precision": 10,
            "x-scale": 0,
            "x-generated": false,
            "x-primary-key": false,
            "type": "number",
            "nullable": true
          },
          "platzId": {
            "x-precision": 10,
            "x-scale": 0,
            "x-generated": false,
            "x-primary-key": false,
            "type": "number",
            "nullable": true
          },
          "kundeIds": {
            "type": "array",
            "items": {
              "x-primary-key": false,
              "type": "number"
            }
          },
          "gruppeId": {
            "x-precision": 10,
            "x-scale": 0,
            "x-generated": false,
            "x-primary-key": false,
            "type": "number",
            "nullable": true
          },
          "courtId": {
            "x-precision": 10,
            "x-scale": 0,
            "x-generated": false,
            "x-primary-key": false,
            "type": "number",
            "nullable": true
          },
          "templateId": {
            "x-precision": 10,
            "x-scale": 0,
            "x-generated": false,
            "x-primary-key": false,
            "type": "number",
            "nullable": true
          },
          "trainer": {
            "$ref": "#/components/schemas/Trainer"
          },
          "platz": {
            "$ref": "#/components/schemas/Platz"
          },
          "kundes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Kunde"
            }
          },
          "gruppearchived": {
            "$ref": "#/components/schemas/Gruppe"
          },
          "court": {
            "$ref": "#/components/schemas/Court"
          },
          "template": {
            "$ref": "#/components/schemas/WeeklyTrainingPlan"
          },
          "invoicearchived": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Invoices"
            }
          }
        },
        "required": [
          "datum",
          "startzeit",
          "trainingType",
          "primaryId"
        ],
        "additionalProperties": true,
        "x-typescript-type": "Omit<ArchivedRapportWithRelations, >"
      },
      "NewArchivedRapport": {
        "title": "NewArchivedRapport",
        "type": "object",
        "description": "(tsType: Omit<ArchivedRapport, 'id'>, schemaOptions: { title: 'NewArchivedRapport', exclude: [ 'id' ] })",
        "properties": {
          "datum": {
            "x-generated": false,
            "x-primary-key": false,
            "type": "string",
            "format": "date-time",
            "nullable": false
          },
          "startzeit": {
            "x-generated": false,
            "x-primary-key": false,
            "type": "string",
            "nullable": false
          },
          "trainingsdauer": {
            "x-generated": false,
            "x-primary-key": false,
            "type": "string",
            "nullable": true
          },
          "effectiveKundeIds": {
            "x-length": 255,
            "x-generated": false,
            "x-primary-key": false,
            "type": "string",
            "nullable": true
          },
          "nachholtermin": {
            "x-precision": 3,
            "x-scale": 0,
            "x-generated": false,
            "x-primary-key": false,
            "type": "number",
            "nullable": true
          },
          "probetraining": {
            "x-precision": 3,
            "x-scale": 0,
            "x-generated": false,
            "x-primary-key": false,
            "type": "number",
            "nullable": true
          },
          "notizen": {
            "x-length": 256,
            "x-generated": false,
            "x-primary-key": false,
            "type": "string",
            "nullable": true
          },
          "trainingType": {
            "x-length": 256,
            "x-generated": false,
            "x-primary-key": false,
            "type": "string",
            "nullable": false
          },
          "invoicedIn": {
            "x-length": 4096,
            "x-generated": false,
            "x-primary-key": false,
            "type": "string",
            "nullable": true
          },
          "invoiceJson": {
            "x-generated": false,
            "x-primary-key": false,
            "type": "object",
            "nullable": true
          },
          "archived": {
            "x-precision": 3,
            "x-scale": 0,
            "x-generated": false,
            "x-primary-key": false,
            "type": "number",
            "nullable": true
          },
          "primaryId": {
            "x-precision": 10,
            "x-scale": 0,
            "x-generated": false,
            "x-primary-key": false,
            "type": "number",
            "nullable": false
          },
          "archivedRapportId": {
            "x-precision": 10,
            "x-scale": 0,
            "x-generated": false,
            "x-primary-key": false,
            "type": "number",
            "nullable": true
          },
          "excludeFromInvoicing": {
            "x-precision": 3,
            "x-scale": 0,
            "x-generated": false,
            "x-primary-key": false,
            "type": "number",
            "nullable": true
          },
          "attendanceReported": {
            "x-precision": 3,
            "x-scale": 0,
            "x-generated": false,
            "x-primary-key": false,
            "type": "number",
            "nullable": true
          },
          "trainerId": {
            "x-precision": 10,
            "x-scale": 0,
            "x-generated": false,
            "x-primary-key": false,
            "type": "number",
            "nullable": true
          },
          "platzId": {
            "x-precision": 10,
            "x-scale": 0,
            "x-generated": false,
            "x-primary-key": false,
            "type": "number",
            "nullable": true
          },
          "kundeIds": {
            "type": "array",
            "items": {
              "x-primary-key": false,
              "type": "number"
            }
          },
          "gruppeId": {
            "x-precision": 10,
            "x-scale": 0,
            "x-generated": false,
            "x-primary-key": false,
            "type": "number",
            "nullable": true
          },
          "courtId": {
            "x-precision": 10,
            "x-scale": 0,
            "x-generated": false,
            "x-primary-key": false,
            "type": "number",
            "nullable": true
          },
          "templateId": {
            "x-precision": 10,
            "x-scale": 0,
            "x-generated": false,
            "x-primary-key": false,
            "type": "number",
            "nullable": true
          }
        },
        "required": [
          "datum",
          "startzeit",
          "trainingType",
          "primaryId"
        ],
        "additionalProperties": true,
        "x-typescript-type": "Omit<ArchivedRapport, 'id'>"
      },
      "ArchivedRapportPartial": {
        "title": "ArchivedRapportPartial",
        "type": "object",
        "description": "(tsType: Partial<ArchivedRapport>, schemaOptions: { partial: true })",
        "properties": {
          "id": {
            "x-precision": 10,
            "x-scale": 0,
            "x-generated": 1,
            "x-primary-key": true,
            "type": "number",
            "nullable": false
          },
          "datum": {
            "x-generated": false,
            "x-primary-key": false,
            "type": "string",
            "format": "date-time",
            "nullable": false
          },
          "startzeit": {
            "x-generated": false,
            "x-primary-key": false,
            "type": "string",
            "nullable": false
          },
          "trainingsdauer": {
            "x-generated": false,
            "x-primary-key": false,
            "type": "string",
            "nullable": true
          },
          "effectiveKundeIds": {
            "x-length": 255,
            "x-generated": false,
            "x-primary-key": false,
            "type": "string",
            "nullable": true
          },
          "nachholtermin": {
            "x-precision": 3,
            "x-scale": 0,
            "x-generated": false,
            "x-primary-key": false,
            "type": "number",
            "nullable": true
          },
          "probetraining": {
            "x-precision": 3,
            "x-scale": 0,
            "x-generated": false,
            "x-primary-key": false,
            "type": "number",
            "nullable": true
          },
          "notizen": {
            "x-length": 256,
            "x-generated": false,
            "x-primary-key": false,
            "type": "string",
            "nullable": true
          },
          "trainingType": {
            "x-length": 256,
            "x-generated": false,
            "x-primary-key": false,
            "type": "string",
            "nullable": false
          },
          "invoicedIn": {
            "x-length": 4096,
            "x-generated": false,
            "x-primary-key": false,
            "type": "string",
            "nullable": true
          },
          "invoiceJson": {
            "x-generated": false,
            "x-primary-key": false,
            "type": "object",
            "nullable": true
          },
          "archived": {
            "x-precision": 3,
            "x-scale": 0,
            "x-generated": false,
            "x-primary-key": false,
            "type": "number",
            "nullable": true
          },
          "primaryId": {
            "x-precision": 10,
            "x-scale": 0,
            "x-generated": false,
            "x-primary-key": false,
            "type": "number",
            "nullable": false
          },
          "archivedRapportId": {
            "x-precision": 10,
            "x-scale": 0,
            "x-generated": false,
            "x-primary-key": false,
            "type": "number",
            "nullable": true
          },
          "excludeFromInvoicing": {
            "x-precision": 3,
            "x-scale": 0,
            "x-generated": false,
            "x-primary-key": false,
            "type": "number",
            "nullable": true
          },
          "attendanceReported": {
            "x-precision": 3,
            "x-scale": 0,
            "x-generated": false,
            "x-primary-key": false,
            "type": "number",
            "nullable": true
          },
          "trainerId": {
            "x-precision": 10,
            "x-scale": 0,
            "x-generated": false,
            "x-primary-key": false,
            "type": "number",
            "nullable": true
          },
          "platzId": {
            "x-precision": 10,
            "x-scale": 0,
            "x-generated": false,
            "x-primary-key": false,
            "type": "number",
            "nullable": true
          },
          "kundeIds": {
            "type": "array",
            "items": {
              "x-primary-key": false,
              "type": "number"
            }
          },
          "gruppeId": {
            "x-precision": 10,
            "x-scale": 0,
            "x-generated": false,
            "x-primary-key": false,
            "type": "number",
            "nullable": true
          },
          "courtId": {
            "x-precision": 10,
            "x-scale": 0,
            "x-generated": false,
            "x-primary-key": false,
            "type": "number",
            "nullable": true
          },
          "templateId": {
            "x-precision": 10,
            "x-scale": 0,
            "x-generated": false,
            "x-primary-key": false,
            "type": "number",
            "nullable": true
          }
        },
        "additionalProperties": true,
        "x-typescript-type": "Partial<ArchivedRapport>"
      },
      "loopback.Count": {
        "type": "object",
        "title": "loopback.Count",
        "x-typescript-type": "@loopback/repository#Count",
        "properties": {
          "count": {
            "type": "number"
          }
        }
      },
      "ArchivedRapport.Filter": {
        "type": "object",
        "title": "ArchivedRapport.Filter",
        "properties": {
          "where": {
            "title": "ArchivedRapport.WhereFilter",
            "type": "object",
            "additionalProperties": true
          }
        },
        "additionalProperties": false,
        "x-typescript-type": "@loopback/repository#Filter<ArchivedRapport>"
      },
      "ArchivedRapport.ScopeFilter": {
        "type": "object",
        "properties": {
          "offset": {
            "type": "integer",
            "minimum": 0
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "example": 100
          },
          "skip": {
            "type": "integer",
            "minimum": 0
          },
          "order": {
            "oneOf": [
              {
                "type": "string"
              },
              {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            ]
          },
          "where": {
            "type": "object",
            "additionalProperties": true
          },
          "fields": {
            "oneOf": [
              {
                "type": "object",
                "properties": {},
                "additionalProperties": true
              },
              {
                "type": "array",
                "items": {
                  "type": "string"
                },
                "uniqueItems": true
              }
            ]
          },
          "include": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {},
              "additionalProperties": true
            }
          }
        },
        "additionalProperties": false,
        "title": "ArchivedRapport.ScopeFilter"
      },
      "ArchivedRapport.IncludeFilter.Items": {
        "title": "ArchivedRapport.IncludeFilter.Items",
        "type": "object",
        "properties": {
          "relation": {
            "type": "string",
            "enum": [
              "trainer",
              "platz",
              "kundes",
              "gruppearchived",
              "court",
              "template",
              "invoicearchived"
            ]
          },
          "scope": {
            "$ref": "#/components/schemas/ArchivedRapport.ScopeFilter"
          }
        }
      },
      "ArchivedRapport.Filter1": {
        "type": "object",
        "title": "ArchivedRapport.Filter",
        "properties": {
          "offset": {
            "type": "integer",
            "minimum": 0
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "example": 100
          },
          "skip": {
            "type": "integer",
            "minimum": 0
          },
          "order": {
            "oneOf": [
              {
                "type": "string"
              },
              {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            ]
          },
          "fields": {
            "oneOf": [
              {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "boolean"
                  },
                  "datum": {
                    "type": "boolean"
                  },
                  "startzeit": {
                    "type": "boolean"
                  },
                  "trainingsdauer": {
                    "type": "boolean"
                  },
                  "effectiveKundeIds": {
                    "type": "boolean"
                  },
                  "nachholtermin": {
                    "type": "boolean"
                  },
                  "probetraining": {
                    "type": "boolean"
                  },
                  "notizen": {
                    "type": "boolean"
                  },
                  "trainingType": {
                    "type": "boolean"
                  },
                  "invoicedIn": {
                    "type": "boolean"
                  },
                  "invoiceJson": {
                    "type": "boolean"
                  },
                  "archived": {
                    "type": "boolean"
                  },
                  "primaryId": {
                    "type": "boolean"
                  },
                  "archivedRapportId": {
                    "type": "boolean"
                  },
                  "excludeFromInvoicing": {
                    "type": "boolean"
                  },
                  "attendanceReported": {
                    "type": "boolean"
                  },
                  "trainerId": {
                    "type": "boolean"
                  },
                  "platzId": {
                    "type": "boolean"
                  },
                  "kundeIds": {
                    "type": "boolean"
                  },
                  "gruppeId": {
                    "type": "boolean"
                  },
                  "courtId": {
                    "type": "boolean"
                  },
                  "templateId": {
                    "type": "boolean"
                  }
                },
                "additionalProperties": true
              },
              {
                "type": "array",
                "items": {
                  "type": "string",
                  "example": "id"
                },
                "uniqueItems": true
              }
            ],
            "title": "ArchivedRapport.Fields"
          },
          "include": {
            "title": "ArchivedRapport.IncludeFilter",
            "type": "array",
            "items": {
              "anyOf": [
                {
                  "$ref": "#/components/schemas/ArchivedRapport.IncludeFilter.Items"
                },
                {
                  "type": "string"
                }
              ]
            }
          }
        },
        "additionalProperties": false,
        "x-typescript-type": "@loopback/repository#Filter<ArchivedRapport>"
      },
      "ArchivedRapport.Filter2": {
        "type": "object",
        "title": "ArchivedRapport.Filter",
        "properties": {
          "offset": {
            "type": "integer",
            "minimum": 0
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "example": 100
          },
          "skip": {
            "type": "integer",
            "minimum": 0
          },
          "order": {
            "oneOf": [
              {
                "type": "string"
              },
              {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            ]
          },
          "where": {
            "title": "ArchivedRapport.WhereFilter",
            "type": "object",
            "additionalProperties": true
          },
          "fields": {
            "oneOf": [
              {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "boolean"
                  },
                  "datum": {
                    "type": "boolean"
                  },
                  "startzeit": {
                    "type": "boolean"
                  },
                  "trainingsdauer": {
                    "type": "boolean"
                  },
                  "effectiveKundeIds": {
                    "type": "boolean"
                  },
                  "nachholtermin": {
                    "type": "boolean"
                  },
                  "probetraining": {
                    "type": "boolean"
                  },
                  "notizen": {
                    "type": "boolean"
                  },
                  "trainingType": {
                    "type": "boolean"
                  },
                  "invoicedIn": {
                    "type": "boolean"
                  },
                  "invoiceJson": {
                    "type": "boolean"
                  },
                  "archived": {
                    "type": "boolean"
                  },
                  "primaryId": {
                    "type": "boolean"
                  },
                  "archivedRapportId": {
                    "type": "boolean"
                  },
                  "excludeFromInvoicing": {
                    "type": "boolean"
                  },
                  "attendanceReported": {
                    "type": "boolean"
                  },
                  "trainerId": {
                    "type": "boolean"
                  },
                  "platzId": {
                    "type": "boolean"
                  },
                  "kundeIds": {
                    "type": "boolean"
                  },
                  "gruppeId": {
                    "type": "boolean"
                  },
                  "courtId": {
                    "type": "boolean"
                  },
                  "templateId": {
                    "type": "boolean"
                  }
                },
                "additionalProperties": true
              },
              {
                "type": "array",
                "items": {
                  "type": "string",
                  "example": "id"
                },
                "uniqueItems": true
              }
            ],
            "title": "ArchivedRapport.Fields"
          },
          "include": {
            "title": "ArchivedRapport.IncludeFilter",
            "type": "array",
            "items": {
              "anyOf": [
                {
                  "$ref": "#/components/schemas/ArchivedRapport.IncludeFilter.Items"
                },
                {
                  "type": "string"
                }
              ]
            }
          }
        },
        "additionalProperties": false,
        "x-typescript-type": "@loopback/repository#Filter<ArchivedRapport>"
      },
      "Court.Filter": {
        "type": "object",
        "title": "Court.Filter",
        "properties": {
          "where": {
            "title": "Court.WhereFilter",
            "type": "object",
            "additionalProperties": true
          }
        },
        "additionalProperties": false,
        "x-typescript-type": "@loopback/repository#Filter<Court>"
      },
      "Court.Filter1": {
        "type": "object",
        "title": "Court.Filter",
        "properties": {
          "offset": {
            "type": "integer",
            "minimum": 0
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "example": 100
          },
          "skip": {
            "type": "integer",
            "minimum": 0
          },
          "order": {
            "oneOf": [
              {
                "type": "string"
              },
              {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            ]
          },
          "fields": {
            "oneOf": [
              {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "boolean"
                  },
                  "name": {
                    "type": "boolean"
                  },
                  "active": {
                    "type": "boolean"
                  }
                },
                "additionalProperties": true
              },
              {
                "type": "array",
                "items": {
                  "type": "string",
                  "example": "id"
                },
                "uniqueItems": true
              }
            ],
            "title": "Court.Fields"
          }
        },
        "additionalProperties": false,
        "x-typescript-type": "@loopback/repository#Filter<Court>"
      },
      "Court.Filter2": {
        "type": "object",
        "title": "Court.Filter",
        "properties": {
          "offset": {
            "type": "integer",
            "minimum": 0
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "example": 100
          },
          "skip": {
            "type": "integer",
            "minimum": 0
          },
          "order": {
            "oneOf": [
              {
                "type": "string"
              },
              {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            ]
          },
          "where": {
            "title": "Court.WhereFilter",
            "type": "object",
            "additionalProperties": true
          },
          "fields": {
            "oneOf": [
              {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "boolean"
                  },
                  "name": {
                    "type": "boolean"
                  },
                  "active": {
                    "type": "boolean"
                  }
                },
                "additionalProperties": true
              },
              {
                "type": "array",
                "items": {
                  "type": "string",
                  "example": "id"
                },
                "uniqueItems": true
              }
            ],
            "title": "Court.Fields"
          }
        },
        "additionalProperties": false,
        "x-typescript-type": "@loopback/repository#Filter<Court>"
      },
      "DayNote.Filter": {
        "type": "object",
        "title": "DayNote.Filter",
        "properties": {
          "where": {
            "title": "DayNote.WhereFilter",
            "type": "object",
            "additionalProperties": true
          }
        },
        "additionalProperties": false,
        "x-typescript-type": "@loopback/repository#Filter<DayNote>"
      },
      "DayNote.Filter1": {
        "type": "object",
        "title": "DayNote.Filter",
        "properties": {
          "offset": {
            "type": "integer",
            "minimum": 0
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "example": 100
          },
          "skip": {
            "type": "integer",
            "minimum": 0
          },
          "order": {
            "oneOf": [
              {
                "type": "string"
              },
              {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            ]
          },
          "fields": {
            "oneOf": [
              {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "boolean"
                  },
                  "date": {
                    "type": "boolean"
                  },
                  "note": {
                    "type": "boolean"
                  }
                },
                "additionalProperties": true
              },
              {
                "type": "array",
                "items": {
                  "type": "string",
                  "example": "id"
                },
                "uniqueItems": true
              }
            ],
            "title": "DayNote.Fields"
          }
        },
        "additionalProperties": false,
        "x-typescript-type": "@loopback/repository#Filter<DayNote>"
      },
      "DayNote.Filter2": {
        "type": "object",
        "title": "DayNote.Filter",
        "properties": {
          "offset": {
            "type": "integer",
            "minimum": 0
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "example": 100
          },
          "skip": {
            "type": "integer",
            "minimum": 0
          },
          "order": {
            "oneOf": [
              {
                "type": "string"
              },
              {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            ]
          },
          "where": {
            "title": "DayNote.WhereFilter",
            "type": "object",
            "additionalProperties": true
          },
          "fields": {
            "oneOf": [
              {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "boolean"
                  },
                  "date": {
                    "type": "boolean"
                  },
                  "note": {
                    "type": "boolean"
                  }
                },
                "additionalProperties": true
              },
              {
                "type": "array",
                "items": {
                  "type": "string",
                  "example": "id"
                },
                "uniqueItems": true
              }
            ],
            "title": "DayNote.Fields"
          }
        },
        "additionalProperties": false,
        "x-typescript-type": "@loopback/repository#Filter<DayNote>"
      },
      "Gruppe.Filter": {
        "type": "object",
        "title": "Gruppe.Filter",
        "properties": {
          "where": {
            "title": "Gruppe.WhereFilter",
            "type": "object",
            "additionalProperties": true
          }
        },
        "additionalProperties": false,
        "x-typescript-type": "@loopback/repository#Filter<Gruppe>"
      },
      "Gruppe.Filter1": {
        "type": "object",
        "title": "Gruppe.Filter",
        "properties": {
          "offset": {
            "type": "integer",
            "minimum": 0
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "example": 100
          },
          "skip": {
            "type": "integer",
            "minimum": 0
          },
          "order": {
            "oneOf": [
              {
                "type": "string"
              },
              {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            ]
          },
          "fields": {
            "oneOf": [
              {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "boolean"
                  },
                  "gruppentyp": {
                    "type": "boolean"
                  },
                  "gruppenname": {
                    "type": "boolean"
                  },
                  "beschreibung": {
                    "type": "boolean"
                  },
                  "notizen": {
                    "type": "boolean"
                  },
                  "farbe": {
                    "type": "boolean"
                  },
                  "tennisballe": {
                    "type": "boolean"
                  }
                },
                "additionalProperties": true
              },
              {
                "type": "array",
                "items": {
                  "type": "string",
                  "example": "id"
                },
                "uniqueItems": true
              }
            ],
            "title": "Gruppe.Fields"
          }
        },
        "additionalProperties": false,
        "x-typescript-type": "@loopback/repository#Filter<Gruppe>"
      },
      "Gruppe.Filter2": {
        "type": "object",
        "title": "Gruppe.Filter",
        "properties": {
          "offset": {
            "type": "integer",
            "minimum": 0
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "example": 100
          },
          "skip": {
            "type": "integer",
            "minimum": 0
          },
          "order": {
            "oneOf": [
              {
                "type": "string"
              },
              {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            ]
          },
          "where": {
            "title": "Gruppe.WhereFilter",
            "type": "object",
            "additionalProperties": true
          },
          "fields": {
            "oneOf": [
              {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "boolean"
                  },
                  "gruppentyp": {
                    "type": "boolean"
                  },
                  "gruppenname": {
                    "type": "boolean"
                  },
                  "beschreibung": {
                    "type": "boolean"
                  },
                  "notizen": {
                    "type": "boolean"
                  },
                  "farbe": {
                    "type": "boolean"
                  },
                  "tennisballe": {
                    "type": "boolean"
                  }
                },
                "additionalProperties": true
              },
              {
                "type": "array",
                "items": {
                  "type": "string",
                  "example": "id"
                },
                "uniqueItems": true
              }
            ],
            "title": "Gruppe.Fields"
          }
        },
        "additionalProperties": false,
        "x-typescript-type": "@loopback/repository#Filter<Gruppe>"
      },
      "InvoiceGenerationConfig.Filter": {
        "type": "object",
        "title": "InvoiceGenerationConfig.Filter",
        "properties": {
          "where": {
            "title": "InvoiceGenerationConfig.WhereFilter",
            "type": "object",
            "additionalProperties": true
          }
        },
        "additionalProperties": false,
        "x-typescript-type": "@loopback/repository#Filter<InvoiceGenerationConfig>"
      },
      "InvoiceGenerationConfig.Filter1": {
        "type": "object",
        "title": "InvoiceGenerationConfig.Filter",
        "properties": {
          "offset": {
            "type": "integer",
            "minimum": 0
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "example": 100
          },
          "skip": {
            "type": "integer",
            "minimum": 0
          },
          "order": {
            "oneOf": [
              {
                "type": "string"
              },
              {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            ]
          },
          "fields": {
            "oneOf": [
              {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "boolean"
                  },
                  "configName": {
                    "type": "boolean"
                  },
                  "configValue": {
                    "type": "boolean"
                  },
                  "configInformation": {
                    "type": "boolean"
                  }
                },
                "additionalProperties": true
              },
              {
                "type": "array",
                "items": {
                  "type": "string",
                  "example": "id"
                },
                "uniqueItems": true
              }
            ],
            "title": "InvoiceGenerationConfig.Fields"
          }
        },
        "additionalProperties": false,
        "x-typescript-type": "@loopback/repository#Filter<InvoiceGenerationConfig>"
      },
      "InvoiceGenerationConfig.Filter2": {
        "type": "object",
        "title": "InvoiceGenerationConfig.Filter",
        "properties": {
          "offset": {
            "type": "integer",
            "minimum": 0
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "example": 100
          },
          "skip": {
            "type": "integer",
            "minimum": 0
          },
          "order": {
            "oneOf": [
              {
                "type": "string"
              },
              {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            ]
          },
          "where": {
            "title": "InvoiceGenerationConfig.WhereFilter",
            "type": "object",
            "additionalProperties": true
          },
          "fields": {
            "oneOf": [
              {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "boolean"
                  },
                  "configName": {
                    "type": "boolean"
                  },
                  "configValue": {
                    "type": "boolean"
                  },
                  "configInformation": {
                    "type": "boolean"
                  }
                },
                "additionalProperties": true
              },
              {
                "type": "array",
                "items": {
                  "type": "string",
                  "example": "id"
                },
                "uniqueItems": true
              }
            ],
            "title": "InvoiceGenerationConfig.Fields"
          }
        },
        "additionalProperties": false,
        "x-typescript-type": "@loopback/repository#Filter<InvoiceGenerationConfig>"
      },
      "Invoices.Filter": {
        "type": "object",
        "title": "Invoices.Filter",
        "properties": {
          "where": {
            "title": "Invoices.WhereFilter",
            "type": "object",
            "additionalProperties": true
          }
        },
        "additionalProperties": false,
        "x-typescript-type": "@loopback/repository#Filter<Invoices>"
      },
      "Invoices.ScopeFilter": {
        "type": "object",
        "properties": {
          "offset": {
            "type": "integer",
            "minimum": 0
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "example": 100
          },
          "skip": {
            "type": "integer",
            "minimum": 0
          },
          "order": {
            "oneOf": [
              {
                "type": "string"
              },
              {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            ]
          },
          "where": {
            "type": "object",
            "additionalProperties": true
          },
          "fields": {
            "oneOf": [
              {
                "type": "object",
                "properties": {},
                "additionalProperties": true
              },
              {
                "type": "array",
                "items": {
                  "type": "string"
                },
                "uniqueItems": true
              }
            ]
          },
          "include": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {},
              "additionalProperties": true
            }
          }
        },
        "additionalProperties": false,
        "title": "Invoices.ScopeFilter"
      },
      "Invoices.IncludeFilter.Items": {
        "title": "Invoices.IncludeFilter.Items",
        "type": "object",
        "properties": {
          "relation": {
            "type": "string",
            "enum": [
              "rapport"
            ]
          },
          "scope": {
            "$ref": "#/components/schemas/Invoices.ScopeFilter"
          }
        }
      },
      "Invoices.Filter1": {
        "type": "object",
        "title": "Invoices.Filter",
        "properties": {
          "offset": {
            "type": "integer",
            "minimum": 0
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "example": 100
          },
          "skip": {
            "type": "integer",
            "minimum": 0
          },
          "order": {
            "oneOf": [
              {
                "type": "string"
              },
              {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            ]
          },
          "fields": {
            "oneOf": [
              {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "boolean"
                  },
                  "rapportId": {
                    "type": "boolean"
                  },
                  "relatedRapportId": {
                    "type": "boolean"
                  }
                },
                "additionalProperties": true
              },
              {
                "type": "array",
                "items": {
                  "type": "string",
                  "example": "id"
                },
                "uniqueItems": true
              }
            ],
            "title": "Invoices.Fields"
          },
          "include": {
            "title": "Invoices.IncludeFilter",
            "type": "array",
            "items": {
              "anyOf": [
                {
                  "$ref": "#/components/schemas/Invoices.IncludeFilter.Items"
                },
                {
                  "type": "string"
                }
              ]
            }
          }
        },
        "additionalProperties": false,
        "x-typescript-type": "@loopback/repository#Filter<Invoices>"
      },
      "Invoices.Filter2": {
        "type": "object",
        "title": "Invoices.Filter",
        "properties": {
          "offset": {
            "type": "integer",
            "minimum": 0
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "example": 100
          },
          "skip": {
            "type": "integer",
            "minimum": 0
          },
          "order": {
            "oneOf": [
              {
                "type": "string"
              },
              {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            ]
          },
          "where": {
            "title": "Invoices.WhereFilter",
            "type": "object",
            "additionalProperties": true
          },
          "fields": {
            "oneOf": [
              {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "boolean"
                  },
                  "rapportId": {
                    "type": "boolean"
                  },
                  "relatedRapportId": {
                    "type": "boolean"
                  }
                },
                "additionalProperties": true
              },
              {
                "type": "array",
                "items": {
                  "type": "string",
                  "example": "id"
                },
                "uniqueItems": true
              }
            ],
            "title": "Invoices.Fields"
          },
          "include": {
            "title": "Invoices.IncludeFilter",
            "type": "array",
            "items": {
              "anyOf": [
                {
                  "$ref": "#/components/schemas/Invoices.IncludeFilter.Items"
                },
                {
                  "type": "string"
                }
              ]
            }
          }
        },
        "additionalProperties": false,
        "x-typescript-type": "@loopback/repository#Filter<Invoices>"
      },
      "KundeThrough.Filter": {
        "type": "object",
        "title": "KundeThrough.Filter",
        "properties": {
          "where": {
            "title": "KundeThrough.WhereFilter",
            "type": "object",
            "additionalProperties": true
          }
        },
        "additionalProperties": false,
        "x-typescript-type": "@loopback/repository#Filter<KundeThrough>"
      },
      "KundeThrough.Filter1": {
        "type": "object",
        "title": "KundeThrough.Filter",
        "properties": {
          "offset": {
            "type": "integer",
            "minimum": 0
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "example": 100
          },
          "skip": {
            "type": "integer",
            "minimum": 0
          },
          "order": {
            "oneOf": [
              {
                "type": "string"
              },
              {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            ]
          },
          "fields": {
            "oneOf": [
              {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "boolean"
                  },
                  "bexioId": {
                    "type": "boolean"
                  },
                  "contactId": {
                    "type": "boolean"
                  },
                  "contactSubId": {
                    "type": "boolean"
                  },
                  "description": {
                    "type": "boolean"
                  },
                  "updatedAt": {
                    "type": "boolean"
                  }
                },
                "additionalProperties": true
              },
              {
                "type": "array",
                "items": {
                  "type": "string",
                  "example": "id"
                },
                "uniqueItems": true
              }
            ],
            "title": "KundeThrough.Fields"
          }
        },
        "additionalProperties": false,
        "x-typescript-type": "@loopback/repository#Filter<KundeThrough>"
      },
      "KundeThrough.Filter2": {
        "type": "object",
        "title": "KundeThrough.Filter",
        "properties": {
          "offset": {
            "type": "integer",
            "minimum": 0
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "example": 100
          },
          "skip": {
            "type": "integer",
            "minimum": 0
          },
          "order": {
            "oneOf": [
              {
                "type": "string"
              },
              {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            ]
          },
          "where": {
            "title": "KundeThrough.WhereFilter",
            "type": "object",
            "additionalProperties": true
          },
          "fields": {
            "oneOf": [
              {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "boolean"
                  },
                  "bexioId": {
                    "type": "boolean"
                  },
                  "contactId": {
                    "type": "boolean"
                  },
                  "contactSubId": {
                    "type": "boolean"
                  },
                  "description": {
                    "type": "boolean"
                  },
                  "updatedAt": {
                    "type": "boolean"
                  }
                },
                "additionalProperties": true
              },
              {
                "type": "array",
                "items": {
                  "type": "string",
                  "example": "id"
                },
                "uniqueItems": true
              }
            ],
            "title": "KundeThrough.Fields"
          }
        },
        "additionalProperties": false,
        "x-typescript-type": "@loopback/repository#Filter<KundeThrough>"
      },
      "Kunde.Filter": {
        "type": "object",
        "title": "Kunde.Filter",
        "properties": {
          "where": {
            "title": "Kunde.WhereFilter",
            "type": "object",
            "additionalProperties": true
          }
        },
        "additionalProperties": false,
        "x-typescript-type": "@loopback/repository#Filter<Kunde>"
      },
      "Kunde.ScopeFilter": {
        "type": "object",
        "properties": {
          "offset": {
            "type": "integer",
            "minimum": 0
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "example": 100
          },
          "skip": {
            "type": "integer",
            "minimum": 0
          },
          "order": {
            "oneOf": [
              {
                "type": "string"
              },
              {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            ]
          },
          "where": {
            "type": "object",
            "additionalProperties": true
          },
          "fields": {
            "oneOf": [
              {
                "type": "object",
                "properties": {},
                "additionalProperties": true
              },
              {
                "type": "array",
                "items": {
                  "type": "string"
                },
                "uniqueItems": true
              }
            ]
          },
          "include": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {},
              "additionalProperties": true
            }
          }
        },
        "additionalProperties": false,
        "title": "Kunde.ScopeFilter"
      },
      "Kunde.IncludeFilter.Items": {
        "title": "Kunde.IncludeFilter.Items",
        "type": "object",
        "properties": {
          "relation": {
            "type": "string",
            "enum": [
              "KUNDE"
            ]
          },
          "scope": {
            "$ref": "#/components/schemas/Kunde.ScopeFilter"
          }
        }
      },
      "Kunde.Filter1": {
        "type": "object",
        "title": "Kunde.Filter",
        "properties": {
          "offset": {
            "type": "integer",
            "minimum": 0
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "example": 100
          },
          "skip": {
            "type": "integer",
            "minimum": 0
          },
          "order": {
            "oneOf": [
              {
                "type": "string"
              },
              {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            ]
          },
          "fields": {
            "oneOf": [
              {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "boolean"
                  },
                  "bexioId": {
                    "type": "boolean"
                  },
                  "name": {
                    "type": "boolean"
                  },
                  "vorname": {
                    "type": "boolean"
                  },
                  "strasse": {
                    "type": "boolean"
                  },
                  "plz": {
                    "type": "boolean"
                  },
                  "ort": {
                    "type": "boolean"
                  },
                  "land": {
                    "type": "boolean"
                  },
                  "mail": {
                    "type": "boolean"
                  },
                  "mail2": {
                    "type": "boolean"
                  },
                  "phone": {
                    "type": "boolean"
                  },
                  "phone2": {
                    "type": "boolean"
                  },
                  "phoneMobile": {
                    "type": "boolean"
                  },
                  "geburtstag": {
                    "type": "boolean"
                  },
                  "notizen": {
                    "type": "boolean"
                  },
                  "active": {
                    "type": "boolean"
                  }
                },
                "additionalProperties": true
              },
              {
                "type": "array",
                "items": {
                  "type": "string",
                  "example": "id"
                },
                "uniqueItems": true
              }
            ],
            "title": "Kunde.Fields"
          },
          "include": {
            "title": "Kunde.IncludeFilter",
            "type": "array",
            "items": {
              "anyOf": [
                {
                  "$ref": "#/components/schemas/Kunde.IncludeFilter.Items"
                },
                {
                  "type": "string"
                }
              ]
            }
          }
        },
        "additionalProperties": false,
        "x-typescript-type": "@loopback/repository#Filter<Kunde>"
      },
      "Kunde.Filter2": {
        "type": "object",
        "title": "Kunde.Filter",
        "properties": {
          "offset": {
            "type": "integer",
            "minimum": 0
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "example": 100
          },
          "skip": {
            "type": "integer",
            "minimum": 0
          },
          "order": {
            "oneOf": [
              {
                "type": "string"
              },
              {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            ]
          },
          "where": {
            "title": "Kunde.WhereFilter",
            "type": "object",
            "additionalProperties": true
          },
          "fields": {
            "oneOf": [
              {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "boolean"
                  },
                  "bexioId": {
                    "type": "boolean"
                  },
                  "name": {
                    "type": "boolean"
                  },
                  "vorname": {
                    "type": "boolean"
                  },
                  "strasse": {
                    "type": "boolean"
                  },
                  "plz": {
                    "type": "boolean"
                  },
                  "ort": {
                    "type": "boolean"
                  },
                  "land": {
                    "type": "boolean"
                  },
                  "mail": {
                    "type": "boolean"
                  },
                  "mail2": {
                    "type": "boolean"
                  },
                  "phone": {
                    "type": "boolean"
                  },
                  "phone2": {
                    "type": "boolean"
                  },
                  "phoneMobile": {
                    "type": "boolean"
                  },
                  "geburtstag": {
                    "type": "boolean"
                  },
                  "notizen": {
                    "type": "boolean"
                  },
                  "active": {
                    "type": "boolean"
                  }
                },
                "additionalProperties": true
              },
              {
                "type": "array",
                "items": {
                  "type": "string",
                  "example": "id"
                },
                "uniqueItems": true
              }
            ],
            "title": "Kunde.Fields"
          },
          "include": {
            "title": "Kunde.IncludeFilter",
            "type": "array",
            "items": {
              "anyOf": [
                {
                  "$ref": "#/components/schemas/Kunde.IncludeFilter.Items"
                },
                {
                  "type": "string"
                }
              ]
            }
          }
        },
        "additionalProperties": false,
        "x-typescript-type": "@loopback/repository#Filter<Kunde>"
      },
      "PingResponse": {
        "type": "object",
        "title": "PingResponse",
        "properties": {
          "greeting": {
            "type": "string"
          },
          "date": {
            "type": "string"
          },
          "url": {
            "type": "string"
          },
          "headers": {
            "type": "object",
            "properties": {
              "Content-Type": {
                "type": "string"
              }
            },
            "additionalProperties": true
          }
        }
      },
      "Ping2Response": {
        "type": "object",
        "title": "Ping2Response",
        "properties": {
          "greeting": {
            "type": "string"
          },
          "date": {
            "type": "string"
          },
          "url": {
            "type": "string"
          },
          "headers": {
            "type": "object",
            "properties": {
              "Content-Type": {
                "type": "string"
              }
            },
            "additionalProperties": true
          }
        }
      },
      "Platz.Filter": {
        "type": "object",
        "title": "Platz.Filter",
        "properties": {
          "where": {
            "title": "Platz.WhereFilter",
            "type": "object",
            "additionalProperties": true
          }
        },
        "additionalProperties": false,
        "x-typescript-type": "@loopback/repository#Filter<Platz>"
      },
      "Platz.Filter1": {
        "type": "object",
        "title": "Platz.Filter",
        "properties": {
          "offset": {
            "type": "integer",
            "minimum": 0
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "example": 100
          },
          "skip": {
            "type": "integer",
            "minimum": 0
          },
          "order": {
            "oneOf": [
              {
                "type": "string"
              },
              {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            ]
          },
          "fields": {
            "oneOf": [
              {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "boolean"
                  },
                  "tenniscourt": {
                    "type": "boolean"
                  }
                },
                "additionalProperties": true
              },
              {
                "type": "array",
                "items": {
                  "type": "string",
                  "example": "id"
                },
                "uniqueItems": true
              }
            ],
            "title": "Platz.Fields"
          }
        },
        "additionalProperties": false,
        "x-typescript-type": "@loopback/repository#Filter<Platz>"
      },
      "Platz.Filter2": {
        "type": "object",
        "title": "Platz.Filter",
        "properties": {
          "offset": {
            "type": "integer",
            "minimum": 0
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "example": 100
          },
          "skip": {
            "type": "integer",
            "minimum": 0
          },
          "order": {
            "oneOf": [
              {
                "type": "string"
              },
              {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            ]
          },
          "where": {
            "title": "Platz.WhereFilter",
            "type": "object",
            "additionalProperties": true
          },
          "fields": {
            "oneOf": [
              {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "boolean"
                  },
                  "tenniscourt": {
                    "type": "boolean"
                  }
                },
                "additionalProperties": true
              },
              {
                "type": "array",
                "items": {
                  "type": "string",
                  "example": "id"
                },
                "uniqueItems": true
              }
            ],
            "title": "Platz.Fields"
          }
        },
        "additionalProperties": false,
        "x-typescript-type": "@loopback/repository#Filter<Platz>"
      },
      "Product.Filter": {
        "type": "object",
        "title": "Product.Filter",
        "properties": {
          "where": {
            "title": "Product.WhereFilter",
            "type": "object",
            "additionalProperties": true
          }
        },
        "additionalProperties": false,
        "x-typescript-type": "@loopback/repository#Filter<Product>"
      },
      "Product.Filter1": {
        "type": "object",
        "title": "Product.Filter",
        "properties": {
          "offset": {
            "type": "integer",
            "minimum": 0
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "example": 100
          },
          "skip": {
            "type": "integer",
            "minimum": 0
          },
          "order": {
            "oneOf": [
              {
                "type": "string"
              },
              {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            ]
          },
          "fields": {
            "oneOf": [
              {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "boolean"
                  },
                  "bexioId": {
                    "type": "boolean"
                  },
                  "interncode": {
                    "type": "boolean"
                  },
                  "internname": {
                    "type": "boolean"
                  },
                  "interndescription": {
                    "type": "boolean"
                  },
                  "saleprice": {
                    "type": "boolean"
                  },
                  "taxid": {
                    "type": "boolean"
                  },
                  "articlegroupid": {
                    "type": "boolean"
                  }
                },
                "additionalProperties": true
              },
              {
                "type": "array",
                "items": {
                  "type": "string",
                  "example": "id"
                },
                "uniqueItems": true
              }
            ],
            "title": "Product.Fields"
          }
        },
        "additionalProperties": false,
        "x-typescript-type": "@loopback/repository#Filter<Product>"
      },
      "Product.Filter2": {
        "type": "object",
        "title": "Product.Filter",
        "properties": {
          "offset": {
            "type": "integer",
            "minimum": 0
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "example": 100
          },
          "skip": {
            "type": "integer",
            "minimum": 0
          },
          "order": {
            "oneOf": [
              {
                "type": "string"
              },
              {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            ]
          },
          "where": {
            "title": "Product.WhereFilter",
            "type": "object",
            "additionalProperties": true
          },
          "fields": {
            "oneOf": [
              {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "boolean"
                  },
                  "bexioId": {
                    "type": "boolean"
                  },
                  "interncode": {
                    "type": "boolean"
                  },
                  "internname": {
                    "type": "boolean"
                  },
                  "interndescription": {
                    "type": "boolean"
                  },
                  "saleprice": {
                    "type": "boolean"
                  },
                  "taxid": {
                    "type": "boolean"
                  },
                  "articlegroupid": {
                    "type": "boolean"
                  }
                },
                "additionalProperties": true
              },
              {
                "type": "array",
                "items": {
                  "type": "string",
                  "example": "id"
                },
                "uniqueItems": true
              }
            ],
            "title": "Product.Fields"
          }
        },
        "additionalProperties": false,
        "x-typescript-type": "@loopback/repository#Filter<Product>"
      },
      "Rapport.Filter": {
        "type": "object",
        "title": "Rapport.Filter",
        "properties": {
          "where": {
            "title": "Rapport.WhereFilter",
            "type": "object",
            "additionalProperties": true
          }
        },
        "additionalProperties": false,
        "x-typescript-type": "@loopback/repository#Filter<Rapport>"
      },
      "Rapport.ScopeFilter": {
        "type": "object",
        "properties": {
          "offset": {
            "type": "integer",
            "minimum": 0
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "example": 100
          },
          "skip": {
            "type": "integer",
            "minimum": 0
          },
          "order": {
            "oneOf": [
              {
                "type": "string"
              },
              {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            ]
          },
          "where": {
            "type": "object",
            "additionalProperties": true
          },
          "fields": {
            "oneOf": [
              {
                "type": "object",
                "properties": {},
                "additionalProperties": true
              },
              {
                "type": "array",
                "items": {
                  "type": "string"
                },
                "uniqueItems": true
              }
            ]
          },
          "include": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {},
              "additionalProperties": true
            }
          }
        },
        "additionalProperties": false,
        "title": "Rapport.ScopeFilter"
      },
      "Rapport.IncludeFilter.Items": {
        "title": "Rapport.IncludeFilter.Items",
        "type": "object",
        "properties": {
          "relation": {
            "type": "string",
            "enum": [
              "trainer",
              "platz",
              "kundes",
              "gruppe",
              "court",
              "template",
              "invoice"
            ]
          },
          "scope": {
            "$ref": "#/components/schemas/Rapport.ScopeFilter"
          }
        }
      },
      "Rapport.Filter1": {
        "type": "object",
        "title": "Rapport.Filter",
        "properties": {
          "offset": {
            "type": "integer",
            "minimum": 0
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "example": 100
          },
          "skip": {
            "type": "integer",
            "minimum": 0
          },
          "order": {
            "oneOf": [
              {
                "type": "string"
              },
              {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            ]
          },
          "fields": {
            "oneOf": [
              {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "boolean"
                  },
                  "datum": {
                    "type": "boolean"
                  },
                  "startzeit": {
                    "type": "boolean"
                  },
                  "trainingsdauer": {
                    "type": "boolean"
                  },
                  "effectiveKundeIds": {
                    "type": "boolean"
                  },
                  "nachholtermin": {
                    "type": "boolean"
                  },
                  "probetraining": {
                    "type": "boolean"
                  },
                  "notizen": {
                    "type": "boolean"
                  },
                  "trainingType": {
                    "type": "boolean"
                  },
                  "invoicedIn": {
                    "type": "boolean"
                  },
                  "invoiceJson": {
                    "type": "boolean"
                  },
                  "archived": {
                    "type": "boolean"
                  },
                  "excludeFromInvoicing": {
                    "type": "boolean"
                  },
                  "attendanceReported": {
                    "type": "boolean"
                  },
                  "trainerId": {
                    "type": "boolean"
                  },
                  "platzId": {
                    "type": "boolean"
                  },
                  "kundeIds": {
                    "type": "boolean"
                  },
                  "gruppeId": {
                    "type": "boolean"
                  },
                  "courtId": {
                    "type": "boolean"
                  },
                  "templateId": {
                    "type": "boolean"
                  }
                },
                "additionalProperties": true
              },
              {
                "type": "array",
                "items": {
                  "type": "string",
                  "example": "id"
                },
                "uniqueItems": true
              }
            ],
            "title": "Rapport.Fields"
          },
          "include": {
            "title": "Rapport.IncludeFilter",
            "type": "array",
            "items": {
              "anyOf": [
                {
                  "$ref": "#/components/schemas/Rapport.IncludeFilter.Items"
                },
                {
                  "type": "string"
                }
              ]
            }
          }
        },
        "additionalProperties": false,
        "x-typescript-type": "@loopback/repository#Filter<Rapport>"
      },
      "Rapport.Filter2": {
        "type": "object",
        "title": "Rapport.Filter",
        "properties": {
          "offset": {
            "type": "integer",
            "minimum": 0
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "example": 100
          },
          "skip": {
            "type": "integer",
            "minimum": 0
          },
          "order": {
            "oneOf": [
              {
                "type": "string"
              },
              {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            ]
          },
          "where": {
            "title": "Rapport.WhereFilter",
            "type": "object",
            "additionalProperties": true
          },
          "fields": {
            "oneOf": [
              {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "boolean"
                  },
                  "datum": {
                    "type": "boolean"
                  },
                  "startzeit": {
                    "type": "boolean"
                  },
                  "trainingsdauer": {
                    "type": "boolean"
                  },
                  "effectiveKundeIds": {
                    "type": "boolean"
                  },
                  "nachholtermin": {
                    "type": "boolean"
                  },
                  "probetraining": {
                    "type": "boolean"
                  },
                  "notizen": {
                    "type": "boolean"
                  },
                  "trainingType": {
                    "type": "boolean"
                  },
                  "invoicedIn": {
                    "type": "boolean"
                  },
                  "invoiceJson": {
                    "type": "boolean"
                  },
                  "archived": {
                    "type": "boolean"
                  },
                  "excludeFromInvoicing": {
                    "type": "boolean"
                  },
                  "attendanceReported": {
                    "type": "boolean"
                  },
                  "trainerId": {
                    "type": "boolean"
                  },
                  "platzId": {
                    "type": "boolean"
                  },
                  "kundeIds": {
                    "type": "boolean"
                  },
                  "gruppeId": {
                    "type": "boolean"
                  },
                  "courtId": {
                    "type": "boolean"
                  },
                  "templateId": {
                    "type": "boolean"
                  }
                },
                "additionalProperties": true
              },
              {
                "type": "array",
                "items": {
                  "type": "string",
                  "example": "id"
                },
                "uniqueItems": true
              }
            ],
            "title": "Rapport.Fields"
          },
          "include": {
            "title": "Rapport.IncludeFilter",
            "type": "array",
            "items": {
              "anyOf": [
                {
                  "$ref": "#/components/schemas/Rapport.IncludeFilter.Items"
                },
                {
                  "type": "string"
                }
              ]
            }
          }
        },
        "additionalProperties": false,
        "x-typescript-type": "@loopback/repository#Filter<Rapport>"
      },
      "Trainer.Filter": {
        "type": "object",
        "title": "Trainer.Filter",
        "properties": {
          "where": {
            "title": "Trainer.WhereFilter",
            "type": "object",
            "additionalProperties": true
          }
        },
        "additionalProperties": false,
        "x-typescript-type": "@loopback/repository#Filter<Trainer>"
      },
      "Trainer.ScopeFilter": {
        "type": "object",
        "properties": {
          "offset": {
            "type": "integer",
            "minimum": 0
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "example": 100
          },
          "skip": {
            "type": "integer",
            "minimum": 0
          },
          "order": {
            "oneOf": [
              {
                "type": "string"
              },
              {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            ]
          },
          "where": {
            "type": "object",
            "additionalProperties": true
          },
          "fields": {
            "oneOf": [
              {
                "type": "object",
                "properties": {},
                "additionalProperties": true
              },
              {
                "type": "array",
                "items": {
                  "type": "string"
                },
                "uniqueItems": true
              }
            ]
          },
          "include": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {},
              "additionalProperties": true
            }
          }
        },
        "additionalProperties": false,
        "title": "Trainer.ScopeFilter"
      },
      "Trainer.IncludeFilter.Items": {
        "title": "Trainer.IncludeFilter.Items",
        "type": "object",
        "properties": {
          "relation": {
            "type": "string",
            "enum": [
              "SummerRateBefore",
              "SummerRateAfter",
              "WinterRateBefore",
              "WinterRateAfter",
              "ClubRate"
            ]
          },
          "scope": {
            "$ref": "#/components/schemas/Trainer.ScopeFilter"
          }
        }
      },
      "Trainer.Filter1": {
        "type": "object",
        "title": "Trainer.Filter",
        "properties": {
          "offset": {
            "type": "integer",
            "minimum": 0
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "example": 100
          },
          "skip": {
            "type": "integer",
            "minimum": 0
          },
          "order": {
            "oneOf": [
              {
                "type": "string"
              },
              {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            ]
          },
          "fields": {
            "oneOf": [
              {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "boolean"
                  },
                  "name": {
                    "type": "boolean"
                  },
                  "vorname": {
                    "type": "boolean"
                  },
                  "email": {
                    "type": "boolean"
                  },
                  "aktiv": {
                    "type": "boolean"
                  },
                  "token": {
                    "type": "boolean"
                  },
                  "color": {
                    "type": "boolean"
                  },
                  "colorFont": {
                    "type": "boolean"
                  },
                  "notizen": {
                    "type": "boolean"
                  },
                  "SummerRateBeforeId": {
                    "type": "boolean"
                  },
                  "SummerRateAfterId": {
                    "type": "boolean"
                  },
                  "WinterRateBeforeId": {
                    "type": "boolean"
                  },
                  "WinterRateAfterId": {
                    "type": "boolean"
                  },
                  "ClubRateId": {
                    "type": "boolean"
                  }
                },
                "additionalProperties": true
              },
              {
                "type": "array",
                "items": {
                  "type": "string",
                  "example": "id"
                },
                "uniqueItems": true
              }
            ],
            "title": "Trainer.Fields"
          },
          "include": {
            "title": "Trainer.IncludeFilter",
            "type": "array",
            "items": {
              "anyOf": [
                {
                  "$ref": "#/components/schemas/Trainer.IncludeFilter.Items"
                },
                {
                  "type": "string"
                }
              ]
            }
          }
        },
        "additionalProperties": false,
        "x-typescript-type": "@loopback/repository#Filter<Trainer>"
      },
      "Trainer.Filter2": {
        "type": "object",
        "title": "Trainer.Filter",
        "properties": {
          "offset": {
            "type": "integer",
            "minimum": 0
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "example": 100
          },
          "skip": {
            "type": "integer",
            "minimum": 0
          },
          "order": {
            "oneOf": [
              {
                "type": "string"
              },
              {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            ]
          },
          "where": {
            "title": "Trainer.WhereFilter",
            "type": "object",
            "additionalProperties": true
          },
          "fields": {
            "oneOf": [
              {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "boolean"
                  },
                  "name": {
                    "type": "boolean"
                  },
                  "vorname": {
                    "type": "boolean"
                  },
                  "email": {
                    "type": "boolean"
                  },
                  "aktiv": {
                    "type": "boolean"
                  },
                  "token": {
                    "type": "boolean"
                  },
                  "color": {
                    "type": "boolean"
                  },
                  "colorFont": {
                    "type": "boolean"
                  },
                  "notizen": {
                    "type": "boolean"
                  },
                  "SummerRateBeforeId": {
                    "type": "boolean"
                  },
                  "SummerRateAfterId": {
                    "type": "boolean"
                  },
                  "WinterRateBeforeId": {
                    "type": "boolean"
                  },
                  "WinterRateAfterId": {
                    "type": "boolean"
                  },
                  "ClubRateId": {
                    "type": "boolean"
                  }
                },
                "additionalProperties": true
              },
              {
                "type": "array",
                "items": {
                  "type": "string",
                  "example": "id"
                },
                "uniqueItems": true
              }
            ],
            "title": "Trainer.Fields"
          },
          "include": {
            "title": "Trainer.IncludeFilter",
            "type": "array",
            "items": {
              "anyOf": [
                {
                  "$ref": "#/components/schemas/Trainer.IncludeFilter.Items"
                },
                {
                  "type": "string"
                }
              ]
            }
          }
        },
        "additionalProperties": false,
        "x-typescript-type": "@loopback/repository#Filter<Trainer>"
      },
      "WeeklyTrainingPlan.Filter": {
        "type": "object",
        "title": "WeeklyTrainingPlan.Filter",
        "properties": {
          "where": {
            "title": "WeeklyTrainingPlan.WhereFilter",
            "type": "object",
            "additionalProperties": true
          }
        },
        "additionalProperties": false,
        "x-typescript-type": "@loopback/repository#Filter<WeeklyTrainingPlan>"
      },
      "WeeklyTrainingPlan.ScopeFilter": {
        "type": "object",
        "properties": {
          "offset": {
            "type": "integer",
            "minimum": 0
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "example": 100
          },
          "skip": {
            "type": "integer",
            "minimum": 0
          },
          "order": {
            "oneOf": [
              {
                "type": "string"
              },
              {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            ]
          },
          "where": {
            "type": "object",
            "additionalProperties": true
          },
          "fields": {
            "oneOf": [
              {
                "type": "object",
                "properties": {},
                "additionalProperties": true
              },
              {
                "type": "array",
                "items": {
                  "type": "string"
                },
                "uniqueItems": true
              }
            ]
          },
          "include": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {},
              "additionalProperties": true
            }
          }
        },
        "additionalProperties": false,
        "title": "WeeklyTrainingPlan.ScopeFilter"
      },
      "WeeklyTrainingPlan.IncludeFilter.Items": {
        "title": "WeeklyTrainingPlan.IncludeFilter.Items",
        "type": "object",
        "properties": {
          "relation": {
            "type": "string",
            "enum": [
              "trainer",
              "court",
              "platz",
              "gruppe",
              "kundes"
            ]
          },
          "scope": {
            "$ref": "#/components/schemas/WeeklyTrainingPlan.ScopeFilter"
          }
        }
      },
      "WeeklyTrainingPlan.Filter1": {
        "type": "object",
        "title": "WeeklyTrainingPlan.Filter",
        "properties": {
          "offset": {
            "type": "integer",
            "minimum": 0
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "example": 100
          },
          "skip": {
            "type": "integer",
            "minimum": 0
          },
          "order": {
            "oneOf": [
              {
                "type": "string"
              },
              {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            ]
          },
          "fields": {
            "oneOf": [
              {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "boolean"
                  },
                  "dayOfWeek": {
                    "type": "boolean"
                  },
                  "startDate": {
                    "type": "boolean"
                  },
                  "endDate": {
                    "type": "boolean"
                  },
                  "startzeit": {
                    "type": "boolean"
                  },
                  "trainingsdauer": {
                    "type": "boolean"
                  },
                  "notizen": {
                    "type": "boolean"
                  },
                  "trainingType": {
                    "type": "boolean"
                  },
                  "confirmed": {
                    "type": "boolean"
                  },
                  "archived": {
                    "type": "boolean"
                  },
                  "invoicedIn": {
                    "type": "boolean"
                  },
                  "excludeFromInvoicing": {
                    "type": "boolean"
                  },
                  "trainerId": {
                    "type": "boolean"
                  },
                  "courtId": {
                    "type": "boolean"
                  },
                  "platzId": {
                    "type": "boolean"
                  },
                  "gruppeId": {
                    "type": "boolean"
                  },
                  "kundeIds": {
                    "type": "boolean"
                  }
                },
                "additionalProperties": true
              },
              {
                "type": "array",
                "items": {
                  "type": "string",
                  "example": "id"
                },
                "uniqueItems": true
              }
            ],
            "title": "WeeklyTrainingPlan.Fields"
          },
          "include": {
            "title": "WeeklyTrainingPlan.IncludeFilter",
            "type": "array",
            "items": {
              "anyOf": [
                {
                  "$ref": "#/components/schemas/WeeklyTrainingPlan.IncludeFilter.Items"
                },
                {
                  "type": "string"
                }
              ]
            }
          }
        },
        "additionalProperties": false,
        "x-typescript-type": "@loopback/repository#Filter<WeeklyTrainingPlan>"
      },
      "WeeklyTrainingPlan.Filter2": {
        "type": "object",
        "title": "WeeklyTrainingPlan.Filter",
        "properties": {
          "offset": {
            "type": "integer",
            "minimum": 0
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "example": 100
          },
          "skip": {
            "type": "integer",
            "minimum": 0
          },
          "order": {
            "oneOf": [
              {
                "type": "string"
              },
              {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            ]
          },
          "where": {
            "title": "WeeklyTrainingPlan.WhereFilter",
            "type": "object",
            "additionalProperties": true
          },
          "fields": {
            "oneOf": [
              {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "boolean"
                  },
                  "dayOfWeek": {
                    "type": "boolean"
                  },
                  "startDate": {
                    "type": "boolean"
                  },
                  "endDate": {
                    "type": "boolean"
                  },
                  "startzeit": {
                    "type": "boolean"
                  },
                  "trainingsdauer": {
                    "type": "boolean"
                  },
                  "notizen": {
                    "type": "boolean"
                  },
                  "trainingType": {
                    "type": "boolean"
                  },
                  "confirmed": {
                    "type": "boolean"
                  },
                  "archived": {
                    "type": "boolean"
                  },
                  "invoicedIn": {
                    "type": "boolean"
                  },
                  "excludeFromInvoicing": {
                    "type": "boolean"
                  },
                  "trainerId": {
                    "type": "boolean"
                  },
                  "courtId": {
                    "type": "boolean"
                  },
                  "platzId": {
                    "type": "boolean"
                  },
                  "gruppeId": {
                    "type": "boolean"
                  },
                  "kundeIds": {
                    "type": "boolean"
                  }
                },
                "additionalProperties": true
              },
              {
                "type": "array",
                "items": {
                  "type": "string",
                  "example": "id"
                },
                "uniqueItems": true
              }
            ],
            "title": "WeeklyTrainingPlan.Fields"
          },
          "include": {
            "title": "WeeklyTrainingPlan.IncludeFilter",
            "type": "array",
            "items": {
              "anyOf": [
                {
                  "$ref": "#/components/schemas/WeeklyTrainingPlan.IncludeFilter.Items"
                },
                {
                  "type": "string"
                }
              ]
            }
          }
        },
        "additionalProperties": false,
        "x-typescript-type": "@loopback/repository#Filter<WeeklyTrainingPlan>"
      }
    }
  },
  "x-fuzzy-search-endpoints": [
    "/jcs/kundes/fuzzy/{searchTerm}"
  ]
}