{
  "openapi": "3.1.0",
  "info": {
    "title": "BooksyAudit API",
    "version": "1.0.0",
    "description": "API konta BooksyAudit: wszystko, co możesz zrobić w panelu, możesz też zrobić programem — w obrębie swojego konta i pakietu. Klucz tworzysz w panelu (Panel → API) i wysyłasz w nagłówku `Authorization: Bearer <klucz>`. Odpowiedź: `{ \"data\": ... }`, błąd: `{ \"error\": { \"code\", \"message\" } }`. Limit: 60 zapytań na minutę na klucz."
  },
  "servers": [
    {
      "url": "https://booksyaudit.pl/api/v1"
    }
  ],
  "security": [
    {
      "klucz": []
    }
  ],
  "tags": [
    {
      "name": "Konto i dane salonu"
    },
    {
      "name": "Pakiet, kredyty i płatności"
    },
    {
      "name": "Audyty cennika"
    },
    {
      "name": "Raporty konkurencji i wybór konkurentów"
    },
    {
      "name": "Wyszukiwanie salonów"
    },
    {
      "name": "Monitoring konkurencji"
    },
    {
      "name": "Analiza rynku"
    },
    {
      "name": "Cenniki"
    },
    {
      "name": "Strategia salonu"
    },
    {
      "name": "Kampanie reklamowe"
    },
    {
      "name": "Powiadomienia"
    },
    {
      "name": "Mapowanie usług Versum"
    }
  ],
  "components": {
    "securitySchemes": {
      "klucz": {
        "type": "http",
        "scheme": "bearer",
        "description": "Klucz API z panelu (ba_live_…)"
      }
    },
    "responses": {
      "Blad": {
        "description": "Błąd",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "error": {
                  "type": "object",
                  "properties": {
                    "code": {
                      "type": "string"
                    },
                    "message": {
                      "type": "string"
                    }
                  }
                }
              }
            }
          }
        }
      }
    }
  },
  "paths": {
    "/me": {
      "get": {
        "tags": [
          "Konto i dane salonu"
        ],
        "summary": "Dane konta: e-mail, salon, firma.",
        "operationId": "users_getCurrentUser",
        "responses": {
          "200": {
            "description": "Wynik",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "properties": {
                            "_creationTime": {
                              "type": "number"
                            },
                            "_id": {
                              "type": "string",
                              "description": "Identyfikator (users)"
                            },
                            "avatarUrl": {
                              "type": "string"
                            },
                            "billingDetails": {
                              "type": "object",
                              "properties": {
                                "addressLine": {
                                  "type": "string"
                                },
                                "city": {
                                  "type": "string"
                                },
                                "companyName": {
                                  "type": "string"
                                },
                                "nip": {
                                  "type": "string"
                                },
                                "postalCode": {
                                  "type": "string"
                                }
                              }
                            },
                            "booksyProfileUrl": {
                              "type": "string"
                            },
                            "clerkId": {
                              "type": "string"
                            },
                            "companyAddress": {
                              "type": "string"
                            },
                            "companyCity": {
                              "type": "string"
                            },
                            "companyName": {
                              "type": "string"
                            },
                            "companyNip": {
                              "type": "string"
                            },
                            "companyPostalCode": {
                              "type": "string"
                            },
                            "correspondenceAddress": {
                              "type": "string"
                            },
                            "correspondenceCity": {
                              "type": "string"
                            },
                            "correspondenceName": {
                              "type": "string"
                            },
                            "correspondencePostalCode": {
                              "type": "string"
                            },
                            "createdAt": {
                              "type": "number"
                            },
                            "credits": {
                              "type": "number"
                            },
                            "email": {
                              "type": "string"
                            },
                            "name": {
                              "type": "string"
                            },
                            "role": {
                              "anyOf": [
                                {
                                  "const": "user"
                                },
                                {
                                  "const": "admin"
                                }
                              ]
                            },
                            "salonAddress": {
                              "type": "string"
                            },
                            "salonCity": {
                              "type": "string"
                            },
                            "salonLogoUrl": {
                              "type": "string"
                            },
                            "salonName": {
                              "type": "string"
                            },
                            "salonPhone": {
                              "type": "string"
                            },
                            "stripeCustomerId": {
                              "type": "string"
                            },
                            "welcomeSentAt": {
                              "type": "number"
                            }
                          },
                          "required": [
                            "_creationTime",
                            "_id",
                            "clerkId",
                            "createdAt",
                            "credits",
                            "email"
                          ]
                        },
                        {
                          "type": "null"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Blad"
          },
          "401": {
            "$ref": "#/components/responses/Blad"
          },
          "403": {
            "$ref": "#/components/responses/Blad"
          },
          "429": {
            "$ref": "#/components/responses/Blad"
          }
        }
      }
    },
    "/me/salon": {
      "patch": {
        "tags": [
          "Konto i dane salonu"
        ],
        "summary": "Zmiana danych salonu (nazwa, adres, telefon, profil Booksy, logo).",
        "operationId": "users_updateSalonData",
        "requestBody": {
          "required": false,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "booksyProfileUrl": {
                    "type": "string"
                  },
                  "salonAddress": {
                    "type": "string"
                  },
                  "salonCity": {
                    "type": "string"
                  },
                  "salonLogoUrl": {
                    "type": "string"
                  },
                  "salonName": {
                    "type": "string"
                  },
                  "salonPhone": {
                    "type": "string"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Wynik",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "null"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Blad"
          },
          "401": {
            "$ref": "#/components/responses/Blad"
          },
          "403": {
            "$ref": "#/components/responses/Blad"
          },
          "429": {
            "$ref": "#/components/responses/Blad"
          }
        }
      }
    },
    "/me/company": {
      "patch": {
        "tags": [
          "Konto i dane salonu"
        ],
        "summary": "Zmiana danych firmy do faktur.",
        "operationId": "users_updateCompanyData",
        "requestBody": {
          "required": false,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "companyAddress": {
                    "type": "string"
                  },
                  "companyCity": {
                    "type": "string"
                  },
                  "companyName": {
                    "type": "string"
                  },
                  "companyNip": {
                    "type": "string"
                  },
                  "companyPostalCode": {
                    "type": "string"
                  },
                  "correspondenceAddress": {
                    "type": "string"
                  },
                  "correspondenceCity": {
                    "type": "string"
                  },
                  "correspondenceName": {
                    "type": "string"
                  },
                  "correspondencePostalCode": {
                    "type": "string"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Wynik",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "null"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Blad"
          },
          "401": {
            "$ref": "#/components/responses/Blad"
          },
          "403": {
            "$ref": "#/components/responses/Blad"
          },
          "429": {
            "$ref": "#/components/responses/Blad"
          }
        }
      }
    },
    "/me/billing": {
      "get": {
        "tags": [
          "Konto i dane salonu"
        ],
        "summary": "Dane rozliczeniowe konta.",
        "operationId": "billing_getMyBillingDetails",
        "responses": {
          "200": {
            "description": "Wynik",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "properties": {
                            "addressLine": {
                              "type": "string"
                            },
                            "city": {
                              "type": "string"
                            },
                            "companyName": {
                              "type": "string"
                            },
                            "nip": {
                              "type": "string"
                            },
                            "postalCode": {
                              "type": "string"
                            }
                          }
                        },
                        {
                          "type": "null"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Blad"
          },
          "401": {
            "$ref": "#/components/responses/Blad"
          },
          "403": {
            "$ref": "#/components/responses/Blad"
          },
          "429": {
            "$ref": "#/components/responses/Blad"
          }
        }
      }
    },
    "/me/email-preferences": {
      "get": {
        "tags": [
          "Konto i dane salonu"
        ],
        "summary": "Ustawienia wiadomości e-mail.",
        "operationId": "emailPreferences_getUserPreferences",
        "responses": {
          "200": {
            "description": "Wynik",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "properties": {
                            "_creationTime": {
                              "type": "number"
                            },
                            "_id": {
                              "type": "string",
                              "description": "Identyfikator (emailPreferences)"
                            },
                            "createdAt": {
                              "type": "number"
                            },
                            "globalUnsubscribedAt": {
                              "type": "number"
                            },
                            "preferences": {
                              "type": "object",
                              "properties": {
                                "accountDeletionWarning": {
                                  "type": "boolean"
                                },
                                "auditCompleted": {
                                  "type": "boolean"
                                },
                                "auditFailed": {
                                  "type": "boolean"
                                },
                                "auditStarted": {
                                  "type": "boolean"
                                },
                                "competitorAlertInstant": {
                                  "type": "boolean"
                                },
                                "competitorMonitoringDigest": {
                                  "type": "boolean"
                                },
                                "competitorReportReady": {
                                  "type": "boolean"
                                },
                                "emailChanged": {
                                  "type": "boolean"
                                },
                                "emailVerification": {
                                  "type": "boolean"
                                },
                                "followUpMarketing": {
                                  "type": "boolean"
                                },
                                "magicLink": {
                                  "type": "boolean"
                                },
                                "monitoringSalonAdded": {
                                  "type": "boolean"
                                },
                                "monitoringSilenceAlert": {
                                  "type": "boolean"
                                },
                                "monitoringTrialEnding": {
                                  "type": "boolean"
                                },
                                "monitoringTrialStarted": {
                                  "type": "boolean"
                                },
                                "monitoringWeeklyReport": {
                                  "type": "boolean"
                                },
                                "newLoginAlert": {
                                  "type": "boolean"
                                },
                                "optimizationCompleted": {
                                  "type": "boolean"
                                },
                                "optimizationFailed": {
                                  "type": "boolean"
                                },
                                "passwordChanged": {
                                  "type": "boolean"
                                },
                                "passwordReset": {
                                  "type": "boolean"
                                },
                                "paymentConfirmed": {
                                  "type": "boolean"
                                },
                                "subscriptionCanceled": {
                                  "type": "boolean"
                                },
                                "subscriptionPaymentFailed": {
                                  "type": "boolean"
                                },
                                "subscriptionRenewed": {
                                  "type": "boolean"
                                },
                                "systemNotifications": {
                                  "type": "boolean"
                                },
                                "welcome": {
                                  "type": "boolean"
                                }
                              },
                              "required": [
                                "auditCompleted",
                                "followUpMarketing",
                                "optimizationCompleted",
                                "optimizationFailed",
                                "paymentConfirmed",
                                "systemNotifications"
                              ]
                            },
                            "unsubscribeToken": {
                              "type": "string"
                            },
                            "updatedAt": {
                              "type": "number"
                            },
                            "userId": {
                              "type": "string",
                              "description": "Identyfikator (users)"
                            }
                          },
                          "required": [
                            "_creationTime",
                            "_id",
                            "createdAt",
                            "preferences",
                            "unsubscribeToken",
                            "updatedAt",
                            "userId"
                          ]
                        },
                        {
                          "type": "null"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Blad"
          },
          "401": {
            "$ref": "#/components/responses/Blad"
          },
          "403": {
            "$ref": "#/components/responses/Blad"
          },
          "429": {
            "$ref": "#/components/responses/Blad"
          }
        }
      },
      "patch": {
        "tags": [
          "Konto i dane salonu"
        ],
        "summary": "Zmiana ustawień wiadomości e-mail.",
        "operationId": "emailPreferences_updatePreferences",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "preferences": {
                    "type": "object",
                    "properties": {
                      "accountDeletionWarning": {
                        "type": "boolean"
                      },
                      "auditCompleted": {
                        "type": "boolean"
                      },
                      "auditFailed": {
                        "type": "boolean"
                      },
                      "auditStarted": {
                        "type": "boolean"
                      },
                      "competitorAlertInstant": {
                        "type": "boolean"
                      },
                      "competitorMonitoringDigest": {
                        "type": "boolean"
                      },
                      "competitorReportReady": {
                        "type": "boolean"
                      },
                      "emailChanged": {
                        "type": "boolean"
                      },
                      "emailVerification": {
                        "type": "boolean"
                      },
                      "followUpMarketing": {
                        "type": "boolean"
                      },
                      "magicLink": {
                        "type": "boolean"
                      },
                      "monitoringSalonAdded": {
                        "type": "boolean"
                      },
                      "monitoringSilenceAlert": {
                        "type": "boolean"
                      },
                      "monitoringTrialEnding": {
                        "type": "boolean"
                      },
                      "monitoringTrialStarted": {
                        "type": "boolean"
                      },
                      "monitoringWeeklyReport": {
                        "type": "boolean"
                      },
                      "newLoginAlert": {
                        "type": "boolean"
                      },
                      "optimizationCompleted": {
                        "type": "boolean"
                      },
                      "optimizationFailed": {
                        "type": "boolean"
                      },
                      "passwordChanged": {
                        "type": "boolean"
                      },
                      "passwordReset": {
                        "type": "boolean"
                      },
                      "paymentConfirmed": {
                        "type": "boolean"
                      },
                      "subscriptionCanceled": {
                        "type": "boolean"
                      },
                      "subscriptionPaymentFailed": {
                        "type": "boolean"
                      },
                      "subscriptionRenewed": {
                        "type": "boolean"
                      },
                      "systemNotifications": {
                        "type": "boolean"
                      },
                      "welcome": {
                        "type": "boolean"
                      }
                    }
                  }
                },
                "required": [
                  "preferences"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Wynik",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "string",
                      "description": "Identyfikator (emailPreferences)"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Blad"
          },
          "401": {
            "$ref": "#/components/responses/Blad"
          },
          "403": {
            "$ref": "#/components/responses/Blad"
          },
          "429": {
            "$ref": "#/components/responses/Blad"
          }
        }
      }
    },
    "/me/export": {
      "post": {
        "tags": [
          "Konto i dane salonu"
        ],
        "summary": "Eksport wszystkich danych konta (RODO).",
        "operationId": "audit_mutations_exportUserData",
        "responses": {
          "200": {
            "description": "Wynik",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "properties": {
                        "audits": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "completedAt": {
                                "anyOf": [
                                  {
                                    "type": "number"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "createdAt": {
                                "type": "number"
                              },
                              "id": {
                                "type": "string"
                              },
                              "overallScore": {
                                "anyOf": [
                                  {
                                    "type": "number"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "salonAddress": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "salonName": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "scrapedCategoriesCount": {
                                "anyOf": [
                                  {
                                    "type": "number"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "scrapedServicesCount": {
                                "anyOf": [
                                  {
                                    "type": "number"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "sourceType": {
                                "type": "string"
                              },
                              "sourceUrl": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "status": {
                                "type": "string"
                              }
                            },
                            "required": [
                              "completedAt",
                              "createdAt",
                              "id",
                              "overallScore",
                              "salonAddress",
                              "salonName",
                              "scrapedCategoriesCount",
                              "scrapedServicesCount",
                              "sourceType",
                              "sourceUrl",
                              "status"
                            ]
                          }
                        },
                        "exportVersion": {
                          "type": "string"
                        },
                        "exportedAt": {
                          "type": "number"
                        },
                        "pricelists": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "categoriesCount": {
                                "anyOf": [
                                  {
                                    "type": "number"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "createdAt": {
                                "type": "number"
                              },
                              "id": {
                                "type": "string"
                              },
                              "isOptimized": {
                                "anyOf": [
                                  {
                                    "type": "boolean"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "name": {
                                "type": "string"
                              },
                              "pricingData": {},
                              "servicesCount": {
                                "anyOf": [
                                  {
                                    "type": "number"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "source": {
                                "type": "string"
                              },
                              "updatedAt": {
                                "anyOf": [
                                  {
                                    "type": "number"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              }
                            },
                            "required": [
                              "categoriesCount",
                              "createdAt",
                              "id",
                              "isOptimized",
                              "name",
                              "pricingData",
                              "servicesCount",
                              "source",
                              "updatedAt"
                            ]
                          }
                        },
                        "statistics": {
                          "type": "object",
                          "properties": {
                            "averageScore": {
                              "anyOf": [
                                {
                                  "type": "number"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "completedAudits": {
                              "type": "number"
                            },
                            "totalAudits": {
                              "type": "number"
                            },
                            "totalPricelists": {
                              "type": "number"
                            }
                          },
                          "required": [
                            "averageScore",
                            "completedAudits",
                            "totalAudits",
                            "totalPricelists"
                          ]
                        },
                        "user": {
                          "type": "object",
                          "properties": {
                            "email": {
                              "anyOf": [
                                {
                                  "type": "string"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "memberSince": {
                              "type": "number"
                            },
                            "name": {
                              "anyOf": [
                                {
                                  "type": "string"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            }
                          },
                          "required": [
                            "email",
                            "memberSince",
                            "name"
                          ]
                        }
                      },
                      "required": [
                        "audits",
                        "exportVersion",
                        "exportedAt",
                        "pricelists",
                        "statistics",
                        "user"
                      ]
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Blad"
          },
          "401": {
            "$ref": "#/components/responses/Blad"
          },
          "403": {
            "$ref": "#/components/responses/Blad"
          },
          "429": {
            "$ref": "#/components/responses/Blad"
          }
        }
      }
    },
    "/me/partner-tools": {
      "get": {
        "tags": [
          "Konto i dane salonu"
        ],
        "summary": "Stan narzędzi partnerskich.",
        "operationId": "partnerTools_myStatus",
        "responses": {
          "200": {
            "description": "Wynik",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "properties": {
                        "eligible": {
                          "type": "boolean"
                        },
                        "enabled": {
                          "type": "boolean"
                        },
                        "partners": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "discountUntil": {
                                "type": "string"
                              },
                              "partner": {
                                "anyOf": [
                                  {
                                    "const": "convs"
                                  },
                                  {
                                    "const": "smsportal"
                                  }
                                ]
                              },
                              "status": {
                                "anyOf": [
                                  {
                                    "const": "none"
                                  },
                                  {
                                    "const": "pending"
                                  },
                                  {
                                    "const": "created"
                                  },
                                  {
                                    "const": "linked"
                                  },
                                  {
                                    "const": "failed"
                                  }
                                ]
                              }
                            },
                            "required": [
                              "partner",
                              "status"
                            ]
                          }
                        }
                      },
                      "required": [
                        "eligible",
                        "enabled",
                        "partners"
                      ]
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Blad"
          },
          "401": {
            "$ref": "#/components/responses/Blad"
          },
          "403": {
            "$ref": "#/components/responses/Blad"
          },
          "429": {
            "$ref": "#/components/responses/Blad"
          }
        }
      }
    },
    "/me/partner-tools/{partner}": {
      "post": {
        "tags": [
          "Konto i dane salonu"
        ],
        "summary": "Włączenie narzędzia partnerskiego.",
        "operationId": "partnerTools_activate",
        "parameters": [
          {
            "name": "partner",
            "in": "path",
            "required": true,
            "schema": {
              "anyOf": [
                {
                  "const": "convs"
                },
                {
                  "const": "smsportal"
                }
              ]
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Wynik",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "anyOf": [
                        {
                          "const": "queued"
                        },
                        {
                          "const": "already"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Blad"
          },
          "401": {
            "$ref": "#/components/responses/Blad"
          },
          "403": {
            "$ref": "#/components/responses/Blad"
          },
          "429": {
            "$ref": "#/components/responses/Blad"
          }
        }
      }
    },
    "/entitlements": {
      "get": {
        "tags": [
          "Pakiet, kredyty i płatności"
        ],
        "summary": "Pozostałe kredyty i uprawnienia pakietu.",
        "operationId": "entitlements_queries_getMyEntitlements",
        "responses": {
          "200": {
            "description": "Wynik",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "anyOf": [
                        {
                          "type": "null"
                        },
                        {
                          "type": "object",
                          "properties": {
                            "consumables": {
                              "type": "array",
                              "items": {
                                "type": "object",
                                "properties": {
                                  "label": {
                                    "type": "string"
                                  },
                                  "periodLimit": {
                                    "type": "number"
                                  },
                                  "remaining": {
                                    "type": "number"
                                  },
                                  "resource": {
                                    "anyOf": [
                                      {
                                        "const": "audit"
                                      },
                                      {
                                        "const": "competitor_report"
                                      },
                                      {
                                        "const": "optimization"
                                      },
                                      {
                                        "const": "market_snapshot"
                                      }
                                    ]
                                  },
                                  "topUp": {
                                    "type": "number"
                                  }
                                },
                                "required": [
                                  "label",
                                  "periodLimit",
                                  "remaining",
                                  "resource",
                                  "topUp"
                                ]
                              }
                            },
                            "limits": {
                              "type": "object",
                              "properties": {
                                "competitorPickCap": {
                                  "type": "number"
                                },
                                "refreshIntervalHours": {
                                  "type": "number"
                                }
                              },
                              "required": [
                                "competitorPickCap",
                                "refreshIntervalHours"
                              ]
                            },
                            "periodEnd": {
                              "type": "number"
                            },
                            "planName": {
                              "type": "string"
                            }
                          },
                          "required": [
                            "consumables",
                            "limits",
                            "periodEnd",
                            "planName"
                          ]
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Blad"
          },
          "401": {
            "$ref": "#/components/responses/Blad"
          },
          "403": {
            "$ref": "#/components/responses/Blad"
          },
          "429": {
            "$ref": "#/components/responses/Blad"
          }
        }
      }
    },
    "/package": {
      "get": {
        "tags": [
          "Pakiet, kredyty i płatności"
        ],
        "summary": "Aktywny pakiet konta.",
        "operationId": "packages_getUserPackage",
        "responses": {
          "200": {
            "description": "Wynik",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "properties": {
                            "_creationTime": {
                              "type": "number"
                            },
                            "_id": {
                              "type": "string",
                              "description": "Identyfikator (packages)"
                            },
                            "active": {
                              "type": "boolean"
                            },
                            "auditsPerPeriod": {
                              "type": "number"
                            },
                            "competitorPickCap": {
                              "type": "number"
                            },
                            "competitorReportsPerPeriod": {
                              "type": "number"
                            },
                            "contains": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              }
                            },
                            "description": {
                              "type": "string"
                            },
                            "displayName": {
                              "type": "string"
                            },
                            "features": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              }
                            },
                            "grantResets": {
                              "type": "boolean"
                            },
                            "highlightLabel": {
                              "type": "string"
                            },
                            "name": {
                              "type": "string"
                            },
                            "optimizationsPerPeriod": {
                              "type": "number"
                            },
                            "priceGrosze": {
                              "type": "number"
                            },
                            "refreshIntervalHours": {
                              "type": "number"
                            },
                            "slug": {
                              "type": "string"
                            },
                            "sortOrder": {
                              "type": "number"
                            },
                            "stripePriceId": {
                              "type": "string"
                            },
                            "tier": {
                              "type": "number"
                            },
                            "trialDays": {
                              "type": "number"
                            }
                          },
                          "required": [
                            "_creationTime",
                            "_id",
                            "active",
                            "description",
                            "displayName",
                            "features",
                            "name",
                            "priceGrosze",
                            "slug",
                            "stripePriceId",
                            "tier"
                          ]
                        },
                        {
                          "type": "null"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Blad"
          },
          "401": {
            "$ref": "#/components/responses/Blad"
          },
          "403": {
            "$ref": "#/components/responses/Blad"
          },
          "429": {
            "$ref": "#/components/responses/Blad"
          }
        }
      }
    },
    "/me/product-status": {
      "get": {
        "tags": [
          "Pakiet, kredyty i płatności"
        ],
        "summary": "Które produkty konto ma, a których nie.",
        "operationId": "upsell_getProductStatus",
        "responses": {
          "200": {
            "description": "Wynik",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "properties": {
                        "hasAudit": {
                          "type": "boolean"
                        },
                        "hasCampaigns": {
                          "type": "boolean"
                        },
                        "hasConsultation": {
                          "type": "boolean"
                        },
                        "hasMonitoring": {
                          "type": "boolean"
                        },
                        "hasReport": {
                          "type": "boolean"
                        }
                      },
                      "required": [
                        "hasAudit",
                        "hasCampaigns",
                        "hasConsultation",
                        "hasMonitoring",
                        "hasReport"
                      ]
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Blad"
          },
          "401": {
            "$ref": "#/components/responses/Blad"
          },
          "403": {
            "$ref": "#/components/responses/Blad"
          },
          "429": {
            "$ref": "#/components/responses/Blad"
          }
        }
      }
    },
    "/packages": {
      "get": {
        "tags": [
          "Pakiet, kredyty i płatności"
        ],
        "summary": "Pakiety w ofercie.",
        "operationId": "packages_listActivePackages",
        "responses": {
          "200": {
            "description": "Wynik",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "_creationTime": {
                            "type": "number"
                          },
                          "_id": {
                            "type": "string",
                            "description": "Identyfikator (packages)"
                          },
                          "active": {
                            "type": "boolean"
                          },
                          "auditsPerPeriod": {
                            "type": "number"
                          },
                          "competitorPickCap": {
                            "type": "number"
                          },
                          "competitorReportsPerPeriod": {
                            "type": "number"
                          },
                          "contains": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            }
                          },
                          "description": {
                            "type": "string"
                          },
                          "displayName": {
                            "type": "string"
                          },
                          "features": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            }
                          },
                          "grantResets": {
                            "type": "boolean"
                          },
                          "highlightLabel": {
                            "type": "string"
                          },
                          "name": {
                            "type": "string"
                          },
                          "optimizationsPerPeriod": {
                            "type": "number"
                          },
                          "priceGrosze": {
                            "type": "number"
                          },
                          "refreshIntervalHours": {
                            "type": "number"
                          },
                          "slug": {
                            "type": "string"
                          },
                          "sortOrder": {
                            "type": "number"
                          },
                          "stripePriceId": {
                            "type": "string"
                          },
                          "tier": {
                            "type": "number"
                          },
                          "trialDays": {
                            "type": "number"
                          }
                        },
                        "required": [
                          "_creationTime",
                          "_id",
                          "active",
                          "description",
                          "displayName",
                          "features",
                          "name",
                          "priceGrosze",
                          "slug",
                          "stripePriceId",
                          "tier"
                        ]
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Blad"
          },
          "401": {
            "$ref": "#/components/responses/Blad"
          },
          "403": {
            "$ref": "#/components/responses/Blad"
          },
          "429": {
            "$ref": "#/components/responses/Blad"
          }
        }
      }
    },
    "/products": {
      "get": {
        "tags": [
          "Pakiet, kredyty i płatności"
        ],
        "summary": "Produkty w ofercie z cenami.",
        "operationId": "products_listActiveProducts",
        "responses": {
          "200": {
            "description": "Wynik",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "_creationTime": {
                            "type": "number"
                          },
                          "_id": {
                            "type": "string",
                            "description": "Identyfikator (products)"
                          },
                          "active": {
                            "type": "boolean"
                          },
                          "billing": {
                            "anyOf": [
                              {
                                "const": "one_off"
                              },
                              {
                                "const": "subscription"
                              }
                            ]
                          },
                          "description": {
                            "type": "string"
                          },
                          "grants": {
                            "type": "object",
                            "properties": {
                              "api": {
                                "type": "boolean"
                              },
                              "audit": {
                                "type": "number"
                              },
                              "competitorPickCap": {
                                "type": "number"
                              },
                              "competitor_report": {
                                "type": "number"
                              },
                              "market_snapshot": {
                                "type": "number"
                              },
                              "monitoring": {
                                "type": "boolean"
                              },
                              "optimization": {
                                "type": "number"
                              },
                              "refreshIntervalHours": {
                                "type": "number"
                              }
                            }
                          },
                          "kind": {
                            "anyOf": [
                              {
                                "const": "base"
                              },
                              {
                                "const": "extra"
                              }
                            ]
                          },
                          "name": {
                            "type": "string"
                          },
                          "priceGrosze": {
                            "type": "number"
                          },
                          "slug": {
                            "type": "string"
                          },
                          "sortOrder": {
                            "type": "number"
                          },
                          "stripePriceId": {
                            "type": "string"
                          },
                          "trialDays": {
                            "type": "number"
                          }
                        },
                        "required": [
                          "_creationTime",
                          "_id",
                          "active",
                          "billing",
                          "description",
                          "grants",
                          "kind",
                          "name",
                          "priceGrosze",
                          "slug",
                          "stripePriceId"
                        ]
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Blad"
          },
          "401": {
            "$ref": "#/components/responses/Blad"
          },
          "403": {
            "$ref": "#/components/responses/Blad"
          },
          "429": {
            "$ref": "#/components/responses/Blad"
          }
        }
      }
    },
    "/products/{slug}": {
      "get": {
        "tags": [
          "Pakiet, kredyty i płatności"
        ],
        "summary": "Jeden produkt z oferty.",
        "operationId": "products_getProductBySlug",
        "parameters": [
          {
            "name": "slug",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Wynik",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "anyOf": [
                        {
                          "type": "null"
                        },
                        {
                          "type": "object",
                          "properties": {
                            "_creationTime": {
                              "type": "number"
                            },
                            "_id": {
                              "type": "string",
                              "description": "Identyfikator (products)"
                            },
                            "active": {
                              "type": "boolean"
                            },
                            "billing": {
                              "anyOf": [
                                {
                                  "const": "one_off"
                                },
                                {
                                  "const": "subscription"
                                }
                              ]
                            },
                            "description": {
                              "type": "string"
                            },
                            "grants": {
                              "type": "object",
                              "properties": {
                                "api": {
                                  "type": "boolean"
                                },
                                "audit": {
                                  "type": "number"
                                },
                                "competitorPickCap": {
                                  "type": "number"
                                },
                                "competitor_report": {
                                  "type": "number"
                                },
                                "market_snapshot": {
                                  "type": "number"
                                },
                                "monitoring": {
                                  "type": "boolean"
                                },
                                "optimization": {
                                  "type": "number"
                                },
                                "refreshIntervalHours": {
                                  "type": "number"
                                }
                              }
                            },
                            "kind": {
                              "anyOf": [
                                {
                                  "const": "base"
                                },
                                {
                                  "const": "extra"
                                }
                              ]
                            },
                            "name": {
                              "type": "string"
                            },
                            "priceGrosze": {
                              "type": "number"
                            },
                            "slug": {
                              "type": "string"
                            },
                            "sortOrder": {
                              "type": "number"
                            },
                            "stripePriceId": {
                              "type": "string"
                            },
                            "trialDays": {
                              "type": "number"
                            }
                          },
                          "required": [
                            "_creationTime",
                            "_id",
                            "active",
                            "billing",
                            "description",
                            "grants",
                            "kind",
                            "name",
                            "priceGrosze",
                            "slug",
                            "stripePriceId"
                          ]
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Blad"
          },
          "401": {
            "$ref": "#/components/responses/Blad"
          },
          "403": {
            "$ref": "#/components/responses/Blad"
          },
          "429": {
            "$ref": "#/components/responses/Blad"
          }
        }
      }
    },
    "/purchases": {
      "get": {
        "tags": [
          "Pakiet, kredyty i płatności"
        ],
        "summary": "Historia zakupów.",
        "operationId": "purchases_getUserPurchases",
        "responses": {
          "200": {
            "description": "Wynik",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "_creationTime": {
                            "type": "number"
                          },
                          "_id": {
                            "type": "string",
                            "description": "Identyfikator (purchases)"
                          },
                          "amount": {
                            "type": "number"
                          },
                          "catalogSlug": {
                            "type": "string"
                          },
                          "completedAt": {
                            "type": "number"
                          },
                          "createdAt": {
                            "type": "number"
                          },
                          "currency": {
                            "type": "string"
                          },
                          "grantedByAdminId": {
                            "type": "string",
                            "description": "Identyfikator (users)"
                          },
                          "packageSlug": {
                            "type": "string"
                          },
                          "product": {
                            "anyOf": [
                              {
                                "const": "audit"
                              },
                              {
                                "const": "audit_consultation"
                              },
                              {
                                "const": "pricelist_optimization"
                              },
                              {
                                "const": "competitor_audit"
                              },
                              {
                                "const": "competitor_monitoring"
                              },
                              {
                                "const": "monitoring_cadence_24h"
                              },
                              {
                                "const": "monitoring_cadence_6h"
                              },
                              {
                                "const": "market_snapshot"
                              },
                              {
                                "const": "package"
                              }
                            ]
                          },
                          "status": {
                            "anyOf": [
                              {
                                "const": "pending"
                              },
                              {
                                "const": "completed"
                              },
                              {
                                "const": "failed"
                              },
                              {
                                "const": "refunded"
                              }
                            ]
                          },
                          "stripePaymentIntentId": {
                            "type": "string"
                          },
                          "stripeSessionId": {
                            "type": "string"
                          },
                          "stripeSubscriptionId": {
                            "type": "string"
                          },
                          "trialDays": {
                            "type": "number"
                          },
                          "userId": {
                            "type": "string",
                            "description": "Identyfikator (users)"
                          }
                        },
                        "required": [
                          "_creationTime",
                          "_id",
                          "amount",
                          "createdAt",
                          "currency",
                          "product",
                          "status",
                          "stripePaymentIntentId",
                          "userId"
                        ]
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Blad"
          },
          "401": {
            "$ref": "#/components/responses/Blad"
          },
          "403": {
            "$ref": "#/components/responses/Blad"
          },
          "429": {
            "$ref": "#/components/responses/Blad"
          }
        }
      }
    },
    "/invoices": {
      "get": {
        "tags": [
          "Pakiet, kredyty i płatności"
        ],
        "summary": "Faktury.",
        "operationId": "stripe_getInvoices",
        "responses": {
          "200": {
            "description": "Wynik",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "amount": {
                            "type": "number"
                          },
                          "created": {
                            "type": "number"
                          },
                          "currency": {
                            "type": "string"
                          },
                          "description": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ]
                          },
                          "hostedUrl": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ]
                          },
                          "id": {
                            "type": "string"
                          },
                          "number": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ]
                          },
                          "pdfUrl": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ]
                          },
                          "status": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "amount",
                          "created",
                          "currency",
                          "description",
                          "hostedUrl",
                          "id",
                          "number",
                          "pdfUrl",
                          "status"
                        ]
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Blad"
          },
          "401": {
            "$ref": "#/components/responses/Blad"
          },
          "403": {
            "$ref": "#/components/responses/Blad"
          },
          "429": {
            "$ref": "#/components/responses/Blad"
          }
        }
      }
    },
    "/checkout": {
      "post": {
        "tags": [
          "Pakiet, kredyty i płatności"
        ],
        "summary": "Link do płatności za produkt lub pakiet z oferty. Płatność kończy człowiek w przeglądarce.",
        "description": "Zwraca link — płatność kończy człowiek w przeglądarce.",
        "operationId": "stripe_createCatalogCheckout",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "cancelUrl": {
                    "type": "string"
                  },
                  "slug": {
                    "type": "string"
                  },
                  "successUrl": {
                    "type": "string"
                  }
                },
                "required": [
                  "slug"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Wynik",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "properties": {
                        "url": {
                          "anyOf": [
                            {
                              "type": "string"
                            },
                            {
                              "type": "null"
                            }
                          ]
                        }
                      },
                      "required": [
                        "url"
                      ]
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Blad"
          },
          "401": {
            "$ref": "#/components/responses/Blad"
          },
          "403": {
            "$ref": "#/components/responses/Blad"
          },
          "429": {
            "$ref": "#/components/responses/Blad"
          }
        }
      }
    },
    "/billing-portal": {
      "post": {
        "tags": [
          "Pakiet, kredyty i płatności"
        ],
        "summary": "Link do panelu płatności (karta, subskrypcja, faktury).",
        "description": "Zwraca link — płatność kończy człowiek w przeglądarce.",
        "operationId": "stripe_createCustomerPortalSession",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "returnUrl": {
                    "type": "string"
                  }
                },
                "required": [
                  "returnUrl"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Wynik",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "properties": {
                        "url": {
                          "anyOf": [
                            {
                              "type": "string"
                            },
                            {
                              "type": "null"
                            }
                          ]
                        }
                      },
                      "required": [
                        "url"
                      ]
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Blad"
          },
          "401": {
            "$ref": "#/components/responses/Blad"
          },
          "403": {
            "$ref": "#/components/responses/Blad"
          },
          "429": {
            "$ref": "#/components/responses/Blad"
          }
        }
      }
    },
    "/audits": {
      "get": {
        "tags": [
          "Audyty cennika"
        ],
        "summary": "Lista audytów konta.",
        "operationId": "audit_queries_getUserAudits",
        "parameters": [
          {
            "name": "excludeCompetitorOnly",
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Wynik",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "_creationTime": {
                            "type": "number"
                          },
                          "_id": {
                            "type": "string",
                            "description": "Identyfikator (audits)"
                          },
                          "additionalAnalysisWarnings": {
                            "type": "string"
                          },
                          "basePricelistId": {
                            "type": "string",
                            "description": "Identyfikator (pricelists)"
                          },
                          "categoryProposalId": {
                            "type": "string",
                            "description": "Identyfikator (categoryProposals)"
                          },
                          "cennikErrorNumber": {
                            "type": "number"
                          },
                          "cennikStatus": {
                            "anyOf": [
                              {
                                "const": "pending"
                              },
                              {
                                "const": "ready"
                              },
                              {
                                "const": "failed"
                              }
                            ]
                          },
                          "competitorOnly": {
                            "type": "boolean"
                          },
                          "competitorReportError": {
                            "type": "string"
                          },
                          "competitorReportFailedAt": {
                            "type": "number"
                          },
                          "competitorReportPurchaseId": {
                            "type": "string",
                            "description": "Identyfikator (purchases)"
                          },
                          "competitorReportReadyAt": {
                            "type": "number"
                          },
                          "competitorReportRequestedAt": {
                            "type": "number"
                          },
                          "completedAt": {
                            "type": "number"
                          },
                          "createdAt": {
                            "type": "number"
                          },
                          "errorMessage": {
                            "type": "string"
                          },
                          "lastProgressAt": {
                            "type": "number"
                          },
                          "lastRetryAt": {
                            "type": "number"
                          },
                          "optimizationConsumed": {
                            "type": "boolean"
                          },
                          "optimizationOptionsId": {
                            "type": "string",
                            "description": "Identyfikator (optimizationOptions)"
                          },
                          "overallScore": {
                            "type": "number"
                          },
                          "proPricelistId": {
                            "type": "string",
                            "description": "Identyfikator (pricelists)"
                          },
                          "progress": {
                            "type": "number"
                          },
                          "progressMessage": {
                            "type": "string"
                          },
                          "purchaseId": {
                            "type": "string",
                            "description": "Identyfikator (purchases)"
                          },
                          "rawData": {
                            "type": "string"
                          },
                          "reportJson": {
                            "type": "string"
                          },
                          "reportPdfUrl": {
                            "type": "string"
                          },
                          "retryCount": {
                            "type": "number"
                          },
                          "salonAddress": {
                            "type": "string"
                          },
                          "salonCoverUrl": {
                            "type": "string"
                          },
                          "salonLogoUrl": {
                            "type": "string"
                          },
                          "salonName": {
                            "type": "string"
                          },
                          "scrapedCategoriesCount": {
                            "type": "number"
                          },
                          "scrapedDataJson": {
                            "type": "string"
                          },
                          "scrapedServicesCount": {
                            "type": "number"
                          },
                          "scrapingCompletedAt": {
                            "type": "number"
                          },
                          "sourceType": {
                            "anyOf": [
                              {
                                "const": "booksy"
                              },
                              {
                                "const": "manual"
                              }
                            ]
                          },
                          "sourceUrl": {
                            "type": "string"
                          },
                          "startedAt": {
                            "type": "number"
                          },
                          "status": {
                            "anyOf": [
                              {
                                "const": "pending"
                              },
                              {
                                "const": "processing"
                              },
                              {
                                "const": "scraping"
                              },
                              {
                                "const": "scraping_retry"
                              },
                              {
                                "const": "analyzing"
                              },
                              {
                                "const": "completed"
                              },
                              {
                                "const": "failed"
                              }
                            ]
                          },
                          "summaryErrorNumber": {
                            "type": "number"
                          },
                          "summaryStatus": {
                            "anyOf": [
                              {
                                "const": "pending"
                              },
                              {
                                "const": "ready"
                              },
                              {
                                "const": "failed"
                              }
                            ]
                          },
                          "userId": {
                            "type": "string",
                            "description": "Identyfikator (users)"
                          }
                        },
                        "required": [
                          "_creationTime",
                          "_id",
                          "createdAt",
                          "sourceType",
                          "status",
                          "userId"
                        ]
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Blad"
          },
          "401": {
            "$ref": "#/components/responses/Blad"
          },
          "403": {
            "$ref": "#/components/responses/Blad"
          },
          "429": {
            "$ref": "#/components/responses/Blad"
          }
        }
      },
      "post": {
        "tags": [
          "Audyty cennika"
        ],
        "summary": "Nowy audyt profilu Booksy (adres profilu w sourceUrl).",
        "description": "Może zużyć kredyt z pakietu.",
        "operationId": "audit_mutations_startNewAudit",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "sourceUrl": {
                    "type": "string"
                  }
                },
                "required": [
                  "sourceUrl"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Wynik",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "anyOf": [
                        {
                          "type": "string",
                          "description": "Identyfikator (audits)"
                        },
                        {
                          "type": "null"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Blad"
          },
          "401": {
            "$ref": "#/components/responses/Blad"
          },
          "403": {
            "$ref": "#/components/responses/Blad"
          },
          "429": {
            "$ref": "#/components/responses/Blad"
          }
        }
      }
    },
    "/audits/active": {
      "get": {
        "tags": [
          "Audyty cennika"
        ],
        "summary": "Audyt w toku, jeśli jest.",
        "operationId": "audit_queries_getActiveAudit",
        "responses": {
          "200": {
            "description": "Wynik",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "properties": {
                            "_creationTime": {
                              "type": "number"
                            },
                            "_id": {
                              "type": "string",
                              "description": "Identyfikator (audits)"
                            },
                            "additionalAnalysisWarnings": {
                              "type": "string"
                            },
                            "basePricelistId": {
                              "type": "string",
                              "description": "Identyfikator (pricelists)"
                            },
                            "categoryProposalId": {
                              "type": "string",
                              "description": "Identyfikator (categoryProposals)"
                            },
                            "cennikErrorNumber": {
                              "type": "number"
                            },
                            "cennikStatus": {
                              "anyOf": [
                                {
                                  "const": "pending"
                                },
                                {
                                  "const": "ready"
                                },
                                {
                                  "const": "failed"
                                }
                              ]
                            },
                            "competitorOnly": {
                              "type": "boolean"
                            },
                            "competitorReportError": {
                              "type": "string"
                            },
                            "competitorReportFailedAt": {
                              "type": "number"
                            },
                            "competitorReportPurchaseId": {
                              "type": "string",
                              "description": "Identyfikator (purchases)"
                            },
                            "competitorReportReadyAt": {
                              "type": "number"
                            },
                            "competitorReportRequestedAt": {
                              "type": "number"
                            },
                            "completedAt": {
                              "type": "number"
                            },
                            "createdAt": {
                              "type": "number"
                            },
                            "errorMessage": {
                              "type": "string"
                            },
                            "lastProgressAt": {
                              "type": "number"
                            },
                            "lastRetryAt": {
                              "type": "number"
                            },
                            "optimizationConsumed": {
                              "type": "boolean"
                            },
                            "optimizationOptionsId": {
                              "type": "string",
                              "description": "Identyfikator (optimizationOptions)"
                            },
                            "overallScore": {
                              "type": "number"
                            },
                            "proPricelistId": {
                              "type": "string",
                              "description": "Identyfikator (pricelists)"
                            },
                            "progress": {
                              "type": "number"
                            },
                            "progressMessage": {
                              "type": "string"
                            },
                            "purchaseId": {
                              "type": "string",
                              "description": "Identyfikator (purchases)"
                            },
                            "rawData": {
                              "type": "string"
                            },
                            "reportJson": {
                              "type": "string"
                            },
                            "reportPdfUrl": {
                              "type": "string"
                            },
                            "retryCount": {
                              "type": "number"
                            },
                            "salonAddress": {
                              "type": "string"
                            },
                            "salonCoverUrl": {
                              "type": "string"
                            },
                            "salonLogoUrl": {
                              "type": "string"
                            },
                            "salonName": {
                              "type": "string"
                            },
                            "scrapedCategoriesCount": {
                              "type": "number"
                            },
                            "scrapedDataJson": {
                              "type": "string"
                            },
                            "scrapedServicesCount": {
                              "type": "number"
                            },
                            "scrapingCompletedAt": {
                              "type": "number"
                            },
                            "sourceType": {
                              "anyOf": [
                                {
                                  "const": "booksy"
                                },
                                {
                                  "const": "manual"
                                }
                              ]
                            },
                            "sourceUrl": {
                              "type": "string"
                            },
                            "startedAt": {
                              "type": "number"
                            },
                            "status": {
                              "anyOf": [
                                {
                                  "const": "pending"
                                },
                                {
                                  "const": "processing"
                                },
                                {
                                  "const": "scraping"
                                },
                                {
                                  "const": "scraping_retry"
                                },
                                {
                                  "const": "analyzing"
                                },
                                {
                                  "const": "completed"
                                },
                                {
                                  "const": "failed"
                                }
                              ]
                            },
                            "summaryErrorNumber": {
                              "type": "number"
                            },
                            "summaryStatus": {
                              "anyOf": [
                                {
                                  "const": "pending"
                                },
                                {
                                  "const": "ready"
                                },
                                {
                                  "const": "failed"
                                }
                              ]
                            },
                            "userId": {
                              "type": "string",
                              "description": "Identyfikator (users)"
                            }
                          },
                          "required": [
                            "_creationTime",
                            "_id",
                            "createdAt",
                            "sourceType",
                            "status",
                            "userId"
                          ]
                        },
                        {
                          "type": "null"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Blad"
          },
          "401": {
            "$ref": "#/components/responses/Blad"
          },
          "403": {
            "$ref": "#/components/responses/Blad"
          },
          "429": {
            "$ref": "#/components/responses/Blad"
          }
        }
      }
    },
    "/audits/statistics": {
      "get": {
        "tags": [
          "Audyty cennika"
        ],
        "summary": "Statystyki audytów konta.",
        "operationId": "audit_queries_getAuditStatistics",
        "responses": {
          "200": {
            "description": "Wynik",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "properties": {
                        "averageScore": {
                          "anyOf": [
                            {
                              "type": "number"
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "completedAudits": {
                          "type": "number"
                        },
                        "firstAuditDate": {
                          "anyOf": [
                            {
                              "type": "number"
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "highestScore": {
                          "anyOf": [
                            {
                              "type": "number"
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "improvementRate": {
                          "anyOf": [
                            {
                              "type": "number"
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "lastAuditDate": {
                          "anyOf": [
                            {
                              "type": "number"
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "lowestScore": {
                          "anyOf": [
                            {
                              "type": "number"
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "totalAudits": {
                          "type": "number"
                        },
                        "trend": {
                          "anyOf": [
                            {
                              "const": "improving"
                            },
                            {
                              "const": "declining"
                            },
                            {
                              "const": "stable"
                            },
                            {
                              "const": "insufficient_data"
                            }
                          ]
                        }
                      },
                      "required": [
                        "averageScore",
                        "completedAudits",
                        "firstAuditDate",
                        "highestScore",
                        "improvementRate",
                        "lastAuditDate",
                        "lowestScore",
                        "totalAudits",
                        "trend"
                      ]
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Blad"
          },
          "401": {
            "$ref": "#/components/responses/Blad"
          },
          "403": {
            "$ref": "#/components/responses/Blad"
          },
          "429": {
            "$ref": "#/components/responses/Blad"
          }
        }
      }
    },
    "/audits/progress-trend": {
      "get": {
        "tags": [
          "Audyty cennika"
        ],
        "summary": "Zmiana wyniku między kolejnymi audytami.",
        "operationId": "audit_queries_getAuditProgressTrend",
        "responses": {
          "200": {
            "description": "Wynik",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "properties": {
                        "dataPoints": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "auditId": {
                                "type": "string",
                                "description": "Identyfikator (audits)"
                              },
                              "date": {
                                "type": "string"
                              },
                              "salonName": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "score": {
                                "type": "number"
                              },
                              "timestamp": {
                                "type": "number"
                              }
                            },
                            "required": [
                              "auditId",
                              "date",
                              "salonName",
                              "score",
                              "timestamp"
                            ]
                          }
                        },
                        "hasData": {
                          "type": "boolean"
                        },
                        "periodDays": {
                          "anyOf": [
                            {
                              "type": "number"
                            },
                            {
                              "type": "null"
                            }
                          ]
                        }
                      },
                      "required": [
                        "dataPoints",
                        "hasData",
                        "periodDays"
                      ]
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Blad"
          },
          "401": {
            "$ref": "#/components/responses/Blad"
          },
          "403": {
            "$ref": "#/components/responses/Blad"
          },
          "429": {
            "$ref": "#/components/responses/Blad"
          }
        }
      }
    },
    "/audits/{auditId}": {
      "get": {
        "tags": [
          "Audyty cennika"
        ],
        "summary": "Stan i wynik jednego audytu.",
        "operationId": "audit_queries_getAudit",
        "parameters": [
          {
            "name": "auditId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Identyfikator (audits)"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Wynik",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "properties": {
                            "_creationTime": {
                              "type": "number"
                            },
                            "_id": {
                              "type": "string",
                              "description": "Identyfikator (audits)"
                            },
                            "additionalAnalysisWarnings": {
                              "type": "string"
                            },
                            "basePricelistId": {
                              "type": "string",
                              "description": "Identyfikator (pricelists)"
                            },
                            "categoryProposalId": {
                              "type": "string",
                              "description": "Identyfikator (categoryProposals)"
                            },
                            "cennikErrorNumber": {
                              "type": "number"
                            },
                            "cennikStatus": {
                              "anyOf": [
                                {
                                  "const": "pending"
                                },
                                {
                                  "const": "ready"
                                },
                                {
                                  "const": "failed"
                                }
                              ]
                            },
                            "competitorOnly": {
                              "type": "boolean"
                            },
                            "competitorReportError": {
                              "type": "string"
                            },
                            "competitorReportFailedAt": {
                              "type": "number"
                            },
                            "competitorReportPurchaseId": {
                              "type": "string",
                              "description": "Identyfikator (purchases)"
                            },
                            "competitorReportReadyAt": {
                              "type": "number"
                            },
                            "competitorReportRequestedAt": {
                              "type": "number"
                            },
                            "completedAt": {
                              "type": "number"
                            },
                            "createdAt": {
                              "type": "number"
                            },
                            "errorMessage": {
                              "type": "string"
                            },
                            "lastProgressAt": {
                              "type": "number"
                            },
                            "lastRetryAt": {
                              "type": "number"
                            },
                            "optimizationConsumed": {
                              "type": "boolean"
                            },
                            "optimizationOptionsId": {
                              "type": "string",
                              "description": "Identyfikator (optimizationOptions)"
                            },
                            "overallScore": {
                              "type": "number"
                            },
                            "proPricelistId": {
                              "type": "string",
                              "description": "Identyfikator (pricelists)"
                            },
                            "progress": {
                              "type": "number"
                            },
                            "progressMessage": {
                              "type": "string"
                            },
                            "purchaseId": {
                              "type": "string",
                              "description": "Identyfikator (purchases)"
                            },
                            "rawData": {
                              "type": "string"
                            },
                            "reportJson": {
                              "type": "string"
                            },
                            "reportPdfUrl": {
                              "type": "string"
                            },
                            "retryCount": {
                              "type": "number"
                            },
                            "salonAddress": {
                              "type": "string"
                            },
                            "salonCoverUrl": {
                              "type": "string"
                            },
                            "salonLogoUrl": {
                              "type": "string"
                            },
                            "salonName": {
                              "type": "string"
                            },
                            "scrapedCategoriesCount": {
                              "type": "number"
                            },
                            "scrapedDataJson": {
                              "type": "string"
                            },
                            "scrapedServicesCount": {
                              "type": "number"
                            },
                            "scrapingCompletedAt": {
                              "type": "number"
                            },
                            "sourceType": {
                              "anyOf": [
                                {
                                  "const": "booksy"
                                },
                                {
                                  "const": "manual"
                                }
                              ]
                            },
                            "sourceUrl": {
                              "type": "string"
                            },
                            "startedAt": {
                              "type": "number"
                            },
                            "status": {
                              "anyOf": [
                                {
                                  "const": "pending"
                                },
                                {
                                  "const": "processing"
                                },
                                {
                                  "const": "scraping"
                                },
                                {
                                  "const": "scraping_retry"
                                },
                                {
                                  "const": "analyzing"
                                },
                                {
                                  "const": "completed"
                                },
                                {
                                  "const": "failed"
                                }
                              ]
                            },
                            "summaryErrorNumber": {
                              "type": "number"
                            },
                            "summaryStatus": {
                              "anyOf": [
                                {
                                  "const": "pending"
                                },
                                {
                                  "const": "ready"
                                },
                                {
                                  "const": "failed"
                                }
                              ]
                            },
                            "userId": {
                              "type": "string",
                              "description": "Identyfikator (users)"
                            }
                          },
                          "required": [
                            "_creationTime",
                            "_id",
                            "createdAt",
                            "sourceType",
                            "status",
                            "userId"
                          ]
                        },
                        {
                          "type": "null"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Blad"
          },
          "401": {
            "$ref": "#/components/responses/Blad"
          },
          "403": {
            "$ref": "#/components/responses/Blad"
          },
          "429": {
            "$ref": "#/components/responses/Blad"
          }
        }
      }
    },
    "/audits/{auditId}/start": {
      "post": {
        "tags": [
          "Audyty cennika"
        ],
        "summary": "Uruchomienie przygotowanego audytu.",
        "description": "Może zużyć kredyt z pakietu.",
        "operationId": "audit_mutations_startAudit",
        "parameters": [
          {
            "name": "auditId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Identyfikator (audits)"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "sourceUrl": {
                    "type": "string"
                  }
                },
                "required": [
                  "sourceUrl"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Wynik",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "boolean"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Blad"
          },
          "401": {
            "$ref": "#/components/responses/Blad"
          },
          "403": {
            "$ref": "#/components/responses/Blad"
          },
          "429": {
            "$ref": "#/components/responses/Blad"
          }
        }
      }
    },
    "/audits/{auditId}/retry": {
      "post": {
        "tags": [
          "Audyty cennika"
        ],
        "summary": "Ponowienie etapu audytu, który się nie udał.",
        "operationId": "audit_mutations_retryFailedBagent",
        "parameters": [
          {
            "name": "auditId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Identyfikator (audits)"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "pipeline": {
                    "anyOf": [
                      {
                        "const": "report"
                      },
                      {
                        "const": "cennik"
                      },
                      {
                        "const": "summary"
                      }
                    ]
                  },
                  "selectedCompetitorIds": {
                    "type": "array",
                    "items": {
                      "type": "number"
                    }
                  }
                },
                "required": [
                  "pipeline"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Wynik",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "properties": {
                        "status": {
                          "const": "retriggered"
                        }
                      },
                      "required": [
                        "status"
                      ]
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Blad"
          },
          "401": {
            "$ref": "#/components/responses/Blad"
          },
          "403": {
            "$ref": "#/components/responses/Blad"
          },
          "429": {
            "$ref": "#/components/responses/Blad"
          }
        }
      }
    },
    "/audits/{auditId}/report": {
      "get": {
        "tags": [
          "Audyty cennika"
        ],
        "summary": "Pełny raport audytu.",
        "operationId": "auditReportStorage_getAuditReport",
        "parameters": [
          {
            "name": "auditId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Identyfikator (audits)"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Wynik",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {}
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Blad"
          },
          "401": {
            "$ref": "#/components/responses/Blad"
          },
          "403": {
            "$ref": "#/components/responses/Blad"
          },
          "429": {
            "$ref": "#/components/responses/Blad"
          }
        }
      }
    },
    "/audits/{auditId}/summary": {
      "get": {
        "tags": [
          "Audyty cennika"
        ],
        "summary": "Podsumowanie audytu.",
        "operationId": "audit_summary_getAuditSummary",
        "parameters": [
          {
            "name": "auditId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Identyfikator (audits)"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Wynik",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "anyOf": [
                        {
                          "type": "null"
                        },
                        {
                          "type": "object",
                          "properties": {
                            "auditId": {
                              "type": "string"
                            },
                            "basicCompetitorData": {
                              "type": "array",
                              "items": {}
                            },
                            "ctaText": {
                              "type": "string"
                            },
                            "generatedAt": {
                              "type": "string"
                            },
                            "keyWins": {
                              "type": "array",
                              "items": {}
                            },
                            "scoreDelta": {},
                            "seoCoveragePercent": {
                              "type": "number"
                            },
                            "summaryText": {
                              "type": "string"
                            },
                            "transformationsCount": {
                              "type": "number"
                            },
                            "version": {
                              "type": "string"
                            }
                          },
                          "required": [
                            "auditId",
                            "basicCompetitorData",
                            "ctaText",
                            "generatedAt",
                            "keyWins",
                            "scoreDelta",
                            "seoCoveragePercent",
                            "summaryText",
                            "transformationsCount",
                            "version"
                          ]
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Blad"
          },
          "401": {
            "$ref": "#/components/responses/Blad"
          },
          "403": {
            "$ref": "#/components/responses/Blad"
          },
          "429": {
            "$ref": "#/components/responses/Blad"
          }
        }
      }
    },
    "/audits/{auditId}/optimized-pricelist": {
      "get": {
        "tags": [
          "Audyty cennika"
        ],
        "summary": "Cennik po poprawkach z audytu.",
        "operationId": "auditReportStorage_getOptimizedPricelist",
        "parameters": [
          {
            "name": "auditId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Identyfikator (audits)"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Wynik",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {}
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Blad"
          },
          "401": {
            "$ref": "#/components/responses/Blad"
          },
          "403": {
            "$ref": "#/components/responses/Blad"
          },
          "429": {
            "$ref": "#/components/responses/Blad"
          }
        }
      }
    },
    "/audits/{auditId}/changes": {
      "get": {
        "tags": [
          "Audyty cennika"
        ],
        "summary": "Lista zmian w cenniku zaproponowanych przez audyt.",
        "operationId": "audit_changes_getChangesFromSupabase",
        "parameters": [
          {
            "name": "auditId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Wynik",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "after": {
                            "type": "string"
                          },
                          "before": {
                            "type": "string"
                          },
                          "category": {
                            "type": "string"
                          },
                          "reason": {
                            "type": "string"
                          },
                          "service": {
                            "type": "string"
                          },
                          "type": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "type"
                        ]
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Blad"
          },
          "401": {
            "$ref": "#/components/responses/Blad"
          },
          "403": {
            "$ref": "#/components/responses/Blad"
          },
          "429": {
            "$ref": "#/components/responses/Blad"
          }
        }
      }
    },
    "/audits/{auditId}/category-proposal": {
      "get": {
        "tags": [
          "Audyty cennika"
        ],
        "summary": "Proponowany nowy układ kategorii.",
        "operationId": "audit_analysisQueries_getCategoryProposalForAudit",
        "parameters": [
          {
            "name": "auditId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Identyfikator (audits)"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Wynik",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "properties": {
                            "_id": {
                              "type": "string",
                              "description": "Identyfikator (categoryProposals)"
                            },
                            "acceptedAt": {
                              "type": "number"
                            },
                            "auditId": {
                              "type": "string",
                              "description": "Identyfikator (audits)"
                            },
                            "changes": {
                              "type": "array",
                              "items": {
                                "type": "object",
                                "properties": {
                                  "description": {
                                    "type": "string"
                                  },
                                  "fromCategory": {
                                    "type": "string"
                                  },
                                  "reason": {
                                    "type": "string"
                                  },
                                  "services": {
                                    "type": "array",
                                    "items": {
                                      "type": "string"
                                    }
                                  },
                                  "toCategory": {
                                    "type": "string"
                                  },
                                  "type": {
                                    "anyOf": [
                                      {
                                        "const": "move_service"
                                      },
                                      {
                                        "const": "merge_categories"
                                      },
                                      {
                                        "const": "split_category"
                                      },
                                      {
                                        "const": "rename_category"
                                      },
                                      {
                                        "const": "reorder_categories"
                                      },
                                      {
                                        "const": "create_category"
                                      }
                                    ]
                                  }
                                },
                                "required": [
                                  "description",
                                  "reason",
                                  "type"
                                ]
                              }
                            },
                            "createdAt": {
                              "type": "number"
                            },
                            "originalStructureJson": {
                              "type": "string"
                            },
                            "proposedStructureJson": {
                              "type": "string"
                            },
                            "status": {
                              "anyOf": [
                                {
                                  "const": "pending"
                                },
                                {
                                  "const": "accepted"
                                },
                                {
                                  "const": "modified"
                                },
                                {
                                  "const": "rejected"
                                }
                              ]
                            },
                            "userModificationsJson": {
                              "type": "string"
                            },
                            "verificationReportJson": {
                              "type": "string"
                            }
                          },
                          "required": [
                            "_id",
                            "auditId",
                            "changes",
                            "createdAt",
                            "originalStructureJson",
                            "proposedStructureJson",
                            "status"
                          ]
                        },
                        {
                          "type": "null"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Blad"
          },
          "401": {
            "$ref": "#/components/responses/Blad"
          },
          "403": {
            "$ref": "#/components/responses/Blad"
          },
          "429": {
            "$ref": "#/components/responses/Blad"
          }
        }
      },
      "patch": {
        "tags": [
          "Audyty cennika"
        ],
        "summary": "Przyjęcie albo odrzucenie układu kategorii.",
        "operationId": "audit_mutations_updateCategoryProposalStatus",
        "parameters": [
          {
            "name": "auditId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Identyfikator (audits)"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "status": {
                    "anyOf": [
                      {
                        "const": "accepted"
                      },
                      {
                        "const": "modified"
                      },
                      {
                        "const": "rejected"
                      }
                    ]
                  },
                  "userModificationsJson": {
                    "type": "string"
                  }
                },
                "required": [
                  "status"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Wynik",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "boolean"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Blad"
          },
          "401": {
            "$ref": "#/components/responses/Blad"
          },
          "403": {
            "$ref": "#/components/responses/Blad"
          },
          "429": {
            "$ref": "#/components/responses/Blad"
          }
        }
      }
    },
    "/audits/{auditId}/category-proposal/retry": {
      "post": {
        "tags": [
          "Audyty cennika"
        ],
        "summary": "Ponowne przygotowanie układu kategorii.",
        "operationId": "audit_mutations_retryCategoryProposal",
        "parameters": [
          {
            "name": "auditId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Identyfikator (audits)"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Wynik",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "boolean"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Blad"
          },
          "401": {
            "$ref": "#/components/responses/Blad"
          },
          "403": {
            "$ref": "#/components/responses/Blad"
          },
          "429": {
            "$ref": "#/components/responses/Blad"
          }
        }
      }
    },
    "/audits/{auditId}/team": {
      "get": {
        "tags": [
          "Audyty cennika"
        ],
        "summary": "Zespół salonu z profilu Booksy.",
        "operationId": "staff_getSalonTeamSummary",
        "parameters": [
          {
            "name": "auditId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Identyfikator (audits)"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Wynik",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {}
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Blad"
          },
          "401": {
            "$ref": "#/components/responses/Blad"
          },
          "403": {
            "$ref": "#/components/responses/Blad"
          },
          "429": {
            "$ref": "#/components/responses/Blad"
          }
        }
      }
    },
    "/certificates/{certificateId}": {
      "get": {
        "tags": [
          "Audyty cennika"
        ],
        "summary": "Sprawdzenie certyfikatu audytu.",
        "operationId": "certificates_verify",
        "parameters": [
          {
            "name": "certificateId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Wynik",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "anyOf": [
                        {
                          "type": "null"
                        },
                        {
                          "type": "object",
                          "properties": {
                            "certificateId": {
                              "type": "string"
                            },
                            "issuedAt": {
                              "type": "number"
                            },
                            "reviews": {
                              "anyOf": [
                                {
                                  "type": "null"
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "count": {
                                      "anyOf": [
                                        {
                                          "type": "number"
                                        },
                                        {
                                          "type": "null"
                                        }
                                      ]
                                    },
                                    "rating": {
                                      "anyOf": [
                                        {
                                          "type": "number"
                                        },
                                        {
                                          "type": "null"
                                        }
                                      ]
                                    },
                                    "repliedShare": {
                                      "anyOf": [
                                        {
                                          "type": "number"
                                        },
                                        {
                                          "type": "null"
                                        }
                                      ]
                                    },
                                    "sampleSize": {
                                      "type": "number"
                                    }
                                  },
                                  "required": [
                                    "count",
                                    "rating",
                                    "repliedShare",
                                    "sampleSize"
                                  ]
                                }
                              ]
                            },
                            "salonName": {
                              "type": "string"
                            },
                            "score": {
                              "type": "number"
                            },
                            "subtitle": {
                              "type": "string"
                            },
                            "tier": {
                              "anyOf": [
                                {
                                  "const": "elite"
                                },
                                {
                                  "const": "solid"
                                },
                                {
                                  "const": "developing"
                                },
                                {
                                  "const": "diagnosis"
                                }
                              ]
                            }
                          },
                          "required": [
                            "certificateId",
                            "issuedAt",
                            "reviews",
                            "salonName",
                            "score",
                            "subtitle",
                            "tier"
                          ]
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Blad"
          },
          "401": {
            "$ref": "#/components/responses/Blad"
          },
          "403": {
            "$ref": "#/components/responses/Blad"
          },
          "429": {
            "$ref": "#/components/responses/Blad"
          }
        }
      }
    },
    "/competitor-reports": {
      "get": {
        "tags": [
          "Raporty konkurencji i wybór konkurentów"
        ],
        "summary": "Raporty konkurencji konta.",
        "operationId": "upsell_getUserCompetitorReports",
        "responses": {
          "200": {
            "description": "Wynik",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "amount": {
                            "type": "number"
                          },
                          "auditId": {
                            "type": "string",
                            "description": "Identyfikator (audits)"
                          },
                          "competitorCount": {
                            "type": "number"
                          },
                          "completedAt": {
                            "type": "number"
                          },
                          "createdAt": {
                            "type": "number"
                          },
                          "isStandalone": {
                            "type": "boolean"
                          },
                          "logoUrl": {
                            "type": "string"
                          },
                          "progress": {
                            "type": "number"
                          },
                          "progressMessage": {
                            "type": "string"
                          },
                          "purchaseId": {
                            "type": "string",
                            "description": "Identyfikator (purchases)"
                          },
                          "salonAddress": {
                            "type": "string"
                          },
                          "salonName": {
                            "type": "string"
                          },
                          "servicesCount": {
                            "type": "number"
                          },
                          "status": {
                            "anyOf": [
                              {
                                "const": "ready"
                              },
                              {
                                "const": "awaiting_picks"
                              },
                              {
                                "const": "generating"
                              },
                              {
                                "const": "pending"
                              },
                              {
                                "const": "failed"
                              }
                            ]
                          }
                        },
                        "required": [
                          "amount",
                          "auditId",
                          "createdAt",
                          "isStandalone",
                          "status"
                        ]
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Blad"
          },
          "401": {
            "$ref": "#/components/responses/Blad"
          },
          "403": {
            "$ref": "#/components/responses/Blad"
          },
          "429": {
            "$ref": "#/components/responses/Blad"
          }
        }
      }
    },
    "/audits/{auditId}/competitor-report": {
      "get": {
        "tags": [
          "Raporty konkurencji i wybór konkurentów"
        ],
        "summary": "Raport konkurencji dla audytu.",
        "operationId": "competitor_reportQueries_getCompetitorReport",
        "parameters": [
          {
            "name": "auditId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Wynik",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {}
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Blad"
          },
          "401": {
            "$ref": "#/components/responses/Blad"
          },
          "403": {
            "$ref": "#/components/responses/Blad"
          },
          "429": {
            "$ref": "#/components/responses/Blad"
          }
        }
      }
    },
    "/audits/{auditId}/competitor-report/meta": {
      "get": {
        "tags": [
          "Raporty konkurencji i wybór konkurentów"
        ],
        "summary": "Numer raportu konkurencji (reportId do pobierania części raportu) i jego stan, bez treści raportu.",
        "operationId": "audit_raportMeta_getCompetitorReportMeta",
        "parameters": [
          {
            "name": "auditId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Wynik",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "anyOf": [
                        {
                          "type": "null"
                        },
                        {
                          "type": "object",
                          "properties": {
                            "competitorCount": {
                              "anyOf": [
                                {
                                  "type": "number"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "createdAt": {
                              "type": "string"
                            },
                            "reportId": {
                              "type": "number"
                            },
                            "status": {
                              "type": "string"
                            },
                            "updatedAt": {
                              "anyOf": [
                                {
                                  "type": "string"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            }
                          },
                          "required": [
                            "competitorCount",
                            "createdAt",
                            "reportId",
                            "status",
                            "updatedAt"
                          ]
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Blad"
          },
          "401": {
            "$ref": "#/components/responses/Blad"
          },
          "403": {
            "$ref": "#/components/responses/Blad"
          },
          "429": {
            "$ref": "#/components/responses/Blad"
          }
        }
      }
    },
    "/audits/{auditId}/competitors": {
      "get": {
        "tags": [
          "Raporty konkurencji i wybór konkurentów"
        ],
        "summary": "Konkurenci dobrani do audytu.",
        "operationId": "competitor_queries_getCompetitorMatches",
        "parameters": [
          {
            "name": "auditId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Identyfikator (audits)"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Wynik",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "properties": {
                            "matches": {
                              "type": "array",
                              "items": {
                                "type": "object",
                                "properties": {
                                  "booksyId": {
                                    "type": "number"
                                  },
                                  "bucket": {
                                    "anyOf": [
                                      {
                                        "const": "direct"
                                      },
                                      {
                                        "const": "cluster"
                                      },
                                      {
                                        "const": "aspirational"
                                      }
                                    ]
                                  },
                                  "city": {
                                    "anyOf": [
                                      {
                                        "type": "string"
                                      },
                                      {
                                        "type": "null"
                                      }
                                    ]
                                  },
                                  "compositeScore": {
                                    "type": "number"
                                  },
                                  "distanceKm": {
                                    "type": "number"
                                  },
                                  "embeddingSimilarity": {
                                    "anyOf": [
                                      {
                                        "type": "number"
                                      },
                                      {
                                        "type": "null"
                                      }
                                    ]
                                  },
                                  "freshness": {
                                    "type": "object",
                                    "properties": {
                                      "color": {
                                        "type": "string"
                                      },
                                      "label": {
                                        "type": "string"
                                      },
                                      "level": {
                                        "anyOf": [
                                          {
                                            "const": "fresh"
                                          },
                                          {
                                            "const": "moderate"
                                          },
                                          {
                                            "const": "stale"
                                          }
                                        ]
                                      }
                                    },
                                    "required": [
                                      "color",
                                      "label",
                                      "level"
                                    ]
                                  },
                                  "lastScrapedAt": {
                                    "anyOf": [
                                      {
                                        "type": "string"
                                      },
                                      {
                                        "type": "null"
                                      }
                                    ]
                                  },
                                  "name": {
                                    "type": "string"
                                  },
                                  "reviewsCount": {
                                    "type": "number"
                                  },
                                  "reviewsRank": {
                                    "anyOf": [
                                      {
                                        "type": "number"
                                      },
                                      {
                                        "type": "null"
                                      }
                                    ]
                                  },
                                  "salonId": {
                                    "type": "number"
                                  },
                                  "serviceCount": {
                                    "type": "number"
                                  },
                                  "thumbnailPhoto": {
                                    "anyOf": [
                                      {
                                        "type": "string"
                                      },
                                      {
                                        "type": "null"
                                      }
                                    ]
                                  }
                                },
                                "required": [
                                  "booksyId",
                                  "bucket",
                                  "city",
                                  "compositeScore",
                                  "distanceKm",
                                  "embeddingSimilarity",
                                  "freshness",
                                  "lastScrapedAt",
                                  "name",
                                  "reviewsCount",
                                  "reviewsRank",
                                  "salonId",
                                  "serviceCount",
                                  "thumbnailPhoto"
                                ]
                              }
                            },
                            "salonId": {
                              "anyOf": [
                                {
                                  "type": "number"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "selectedIds": {
                              "type": "array",
                              "items": {
                                "type": "number"
                              }
                            },
                            "status": {
                              "anyOf": [
                                {
                                  "const": "pending"
                                },
                                {
                                  "const": "confirmed"
                                }
                              ]
                            }
                          },
                          "required": [
                            "matches",
                            "salonId",
                            "selectedIds",
                            "status"
                          ]
                        },
                        {
                          "type": "null"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Blad"
          },
          "401": {
            "$ref": "#/components/responses/Blad"
          },
          "403": {
            "$ref": "#/components/responses/Blad"
          },
          "429": {
            "$ref": "#/components/responses/Blad"
          }
        }
      }
    },
    "/audits/{auditId}/competitors/{competitorSalonId}/toggle": {
      "post": {
        "tags": [
          "Raporty konkurencji i wybór konkurentów"
        ],
        "summary": "Dodanie albo zdjęcie konkurenta z wyboru.",
        "operationId": "competitor_mutations_toggleCompetitor",
        "parameters": [
          {
            "name": "auditId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Identyfikator (audits)"
            }
          },
          {
            "name": "competitorSalonId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "number"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Wynik",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "null"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Blad"
          },
          "401": {
            "$ref": "#/components/responses/Blad"
          },
          "403": {
            "$ref": "#/components/responses/Blad"
          },
          "429": {
            "$ref": "#/components/responses/Blad"
          }
        }
      }
    },
    "/audits/{auditId}/competitors/confirm": {
      "post": {
        "tags": [
          "Raporty konkurencji i wybór konkurentów"
        ],
        "summary": "Zatwierdzenie wyboru konkurentów.",
        "operationId": "competitor_mutations_confirmCompetitorSelection",
        "parameters": [
          {
            "name": "auditId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Identyfikator (audits)"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Wynik",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "null"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Blad"
          },
          "401": {
            "$ref": "#/components/responses/Blad"
          },
          "403": {
            "$ref": "#/components/responses/Blad"
          },
          "429": {
            "$ref": "#/components/responses/Blad"
          }
        }
      }
    },
    "/competitor-reports/{reportId}/matches": {
      "get": {
        "tags": [
          "Raporty konkurencji i wybór konkurentów"
        ],
        "summary": "Dopasowania usług do konkurentów.",
        "operationId": "audit_competitorReport_getCompetitorMatches",
        "parameters": [
          {
            "name": "auditId",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "reportId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "number"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Wynik",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {}
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Blad"
          },
          "401": {
            "$ref": "#/components/responses/Blad"
          },
          "403": {
            "$ref": "#/components/responses/Blad"
          },
          "429": {
            "$ref": "#/components/responses/Blad"
          }
        }
      }
    },
    "/competitor-reports/{reportId}/pricing": {
      "get": {
        "tags": [
          "Raporty konkurencji i wybór konkurentów"
        ],
        "summary": "Porównanie cen usługa po usłudze.",
        "operationId": "audit_competitorReport_getCompetitorPricingComparisons",
        "parameters": [
          {
            "name": "auditId",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "reportId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "number"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Wynik",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {}
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Blad"
          },
          "401": {
            "$ref": "#/components/responses/Blad"
          },
          "403": {
            "$ref": "#/components/responses/Blad"
          },
          "429": {
            "$ref": "#/components/responses/Blad"
          }
        }
      }
    },
    "/competitor-reports/{reportId}/gaps": {
      "get": {
        "tags": [
          "Raporty konkurencji i wybór konkurentów"
        ],
        "summary": "Usługi, których salon nie ma, a konkurencja ma.",
        "operationId": "audit_competitorReport_getCompetitorServiceGaps",
        "parameters": [
          {
            "name": "auditId",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "reportId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "number"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Wynik",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {}
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Blad"
          },
          "401": {
            "$ref": "#/components/responses/Blad"
          },
          "403": {
            "$ref": "#/components/responses/Blad"
          },
          "429": {
            "$ref": "#/components/responses/Blad"
          }
        }
      }
    },
    "/competitor-reports/{reportId}/recommendations": {
      "get": {
        "tags": [
          "Raporty konkurencji i wybór konkurentów"
        ],
        "summary": "Rekomendacje z raportu.",
        "operationId": "audit_competitorReport_getCompetitorRecommendations",
        "parameters": [
          {
            "name": "auditId",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "reportId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "number"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Wynik",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {}
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Blad"
          },
          "401": {
            "$ref": "#/components/responses/Blad"
          },
          "403": {
            "$ref": "#/components/responses/Blad"
          },
          "429": {
            "$ref": "#/components/responses/Blad"
          }
        }
      }
    },
    "/competitor-reports/{reportId}/scores": {
      "get": {
        "tags": [
          "Raporty konkurencji i wybór konkurentów"
        ],
        "summary": "Wynik w obszarach na tle okolicy.",
        "operationId": "audit_competitorReport_getCompetitorDimensionalScores",
        "parameters": [
          {
            "name": "auditId",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "reportId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "number"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Wynik",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {}
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Blad"
          },
          "401": {
            "$ref": "#/components/responses/Blad"
          },
          "403": {
            "$ref": "#/components/responses/Blad"
          },
          "429": {
            "$ref": "#/components/responses/Blad"
          }
        }
      }
    },
    "/competitor-reports/{reportId}/subject": {
      "get": {
        "tags": [
          "Raporty konkurencji i wybór konkurentów"
        ],
        "summary": "Dane salonu, którego dotyczy raport.",
        "operationId": "audit_competitorReport_getSubjectSalonInfo",
        "parameters": [
          {
            "name": "auditId",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "reportId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "number"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Wynik",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "anyOf": [
                        {
                          "type": "null"
                        },
                        {
                          "type": "object",
                          "properties": {
                            "categoryName": {
                              "anyOf": [
                                {
                                  "type": "string"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "city": {
                              "anyOf": [
                                {
                                  "type": "string"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "lat": {
                              "anyOf": [
                                {
                                  "type": "number"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "lng": {
                              "anyOf": [
                                {
                                  "type": "number"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "name": {
                              "type": "string"
                            },
                            "reviewsCount": {
                              "anyOf": [
                                {
                                  "type": "number"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "reviewsRank": {
                              "anyOf": [
                                {
                                  "type": "number"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "salonId": {
                              "type": "number"
                            },
                            "serviceCount": {
                              "type": "number"
                            }
                          },
                          "required": [
                            "categoryName",
                            "city",
                            "lat",
                            "lng",
                            "name",
                            "reviewsCount",
                            "reviewsRank",
                            "salonId",
                            "serviceCount"
                          ]
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Blad"
          },
          "401": {
            "$ref": "#/components/responses/Blad"
          },
          "403": {
            "$ref": "#/components/responses/Blad"
          },
          "429": {
            "$ref": "#/components/responses/Blad"
          }
        }
      }
    },
    "/competitor-reports/{reportId}/subject-services": {
      "get": {
        "tags": [
          "Raporty konkurencji i wybór konkurentów"
        ],
        "summary": "Usługi salonu przypisane do zabiegów.",
        "operationId": "audit_competitorReport_getSubjectServiceClassifications",
        "parameters": [
          {
            "name": "auditId",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "reportId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "number"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Wynik",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {}
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Blad"
          },
          "401": {
            "$ref": "#/components/responses/Blad"
          },
          "403": {
            "$ref": "#/components/responses/Blad"
          },
          "429": {
            "$ref": "#/components/responses/Blad"
          }
        }
      }
    },
    "/competitor-picks": {
      "get": {
        "tags": [
          "Raporty konkurencji i wybór konkurentów"
        ],
        "summary": "Wybrani konkurenci konta.",
        "operationId": "competitor_picks_getUserPicks",
        "responses": {
          "200": {
            "description": "Wynik",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "properties": {
                        "anchorSalonId": {
                          "anyOf": [
                            {
                              "type": "number"
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "cap": {
                          "type": "number"
                        },
                        "hasAnchor": {
                          "type": "boolean"
                        },
                        "picks": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "addedAt": {
                                "type": "number"
                              },
                              "booksyUrl": {
                                "type": "string"
                              },
                              "city": {
                                "type": "string"
                              },
                              "salonId": {
                                "type": "number"
                              },
                              "salonName": {
                                "type": "string"
                              },
                              "source": {
                                "anyOf": [
                                  {
                                    "const": "suggested"
                                  },
                                  {
                                    "const": "search"
                                  },
                                  {
                                    "const": "map"
                                  }
                                ]
                              }
                            },
                            "required": [
                              "addedAt",
                              "salonId",
                              "salonName",
                              "source"
                            ]
                          }
                        },
                        "tierLabel": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "anchorSalonId",
                        "cap",
                        "hasAnchor",
                        "picks",
                        "tierLabel"
                      ]
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Blad"
          },
          "401": {
            "$ref": "#/components/responses/Blad"
          },
          "403": {
            "$ref": "#/components/responses/Blad"
          },
          "429": {
            "$ref": "#/components/responses/Blad"
          }
        }
      },
      "delete": {
        "tags": [
          "Raporty konkurencji i wybór konkurentów"
        ],
        "summary": "Wyczyszczenie wyboru.",
        "operationId": "competitor_picks_clearPicks",
        "responses": {
          "200": {
            "description": "Wynik",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "null"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Blad"
          },
          "401": {
            "$ref": "#/components/responses/Blad"
          },
          "403": {
            "$ref": "#/components/responses/Blad"
          },
          "429": {
            "$ref": "#/components/responses/Blad"
          }
        }
      }
    },
    "/competitor-picks/toggle": {
      "post": {
        "tags": [
          "Raporty konkurencji i wybór konkurentów"
        ],
        "summary": "Dodanie albo zdjęcie salonu z wybranych.",
        "operationId": "competitor_picks_togglePick",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "booksyUrl": {
                    "type": "string"
                  },
                  "city": {
                    "type": "string"
                  },
                  "salonId": {
                    "type": "number"
                  },
                  "salonName": {
                    "type": "string"
                  },
                  "source": {
                    "anyOf": [
                      {
                        "const": "suggested"
                      },
                      {
                        "const": "search"
                      },
                      {
                        "const": "map"
                      }
                    ]
                  }
                },
                "required": [
                  "salonId",
                  "salonName",
                  "source"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Wynik",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "null"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Blad"
          },
          "401": {
            "$ref": "#/components/responses/Blad"
          },
          "403": {
            "$ref": "#/components/responses/Blad"
          },
          "429": {
            "$ref": "#/components/responses/Blad"
          }
        }
      }
    },
    "/competitor-picks/confirm": {
      "post": {
        "tags": [
          "Raporty konkurencji i wybór konkurentów"
        ],
        "summary": "Zatwierdzenie wybranych konkurentów (raport albo monitoring).",
        "operationId": "competitor_picks_confirmPicks",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "auditId": {
                    "type": "string",
                    "description": "Identyfikator (audits)"
                  },
                  "context": {
                    "anyOf": [
                      {
                        "const": "monitoring"
                      },
                      {
                        "const": "report"
                      }
                    ]
                  },
                  "picks": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "booksyUrl": {
                          "type": "string"
                        },
                        "city": {
                          "type": "string"
                        },
                        "salonId": {
                          "type": "number"
                        },
                        "salonName": {
                          "type": "string"
                        },
                        "source": {
                          "anyOf": [
                            {
                              "const": "suggested"
                            },
                            {
                              "const": "search"
                            },
                            {
                              "const": "map"
                            }
                          ]
                        }
                      },
                      "required": [
                        "salonId",
                        "salonName",
                        "source"
                      ]
                    }
                  }
                },
                "required": [
                  "context",
                  "picks"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Wynik",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "null"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Blad"
          },
          "401": {
            "$ref": "#/components/responses/Blad"
          },
          "403": {
            "$ref": "#/components/responses/Blad"
          },
          "429": {
            "$ref": "#/components/responses/Blad"
          }
        }
      }
    },
    "/competitor-picks/suggestions": {
      "get": {
        "tags": [
          "Raporty konkurencji i wybór konkurentów"
        ],
        "summary": "Proponowani konkurenci z okolicy.",
        "operationId": "competitor_pickSuggestions_getSuggestedCompetitors",
        "responses": {
          "200": {
            "description": "Wynik",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "properties": {
                        "pending": {
                          "type": "boolean"
                        },
                        "reason": {
                          "anyOf": [
                            {
                              "const": "no_anchor"
                            },
                            {
                              "const": "match_failed"
                            }
                          ]
                        },
                        "suggestions": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "city": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "coverPhotoUrl": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "distanceMeters": {
                                "anyOf": [
                                  {
                                    "type": "number"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "logoUrl": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "matchScore": {
                                "anyOf": [
                                  {
                                    "type": "number"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "opisDopasowania": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "pokrycieOferty": {
                                "anyOf": [
                                  {
                                    "type": "number"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "reviewsCount": {
                                "anyOf": [
                                  {
                                    "type": "number"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "reviewsRank": {
                                "anyOf": [
                                  {
                                    "type": "number"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "salonId": {
                                "type": "number"
                              },
                              "salonName": {
                                "type": "string"
                              },
                              "serviceCount": {
                                "anyOf": [
                                  {
                                    "type": "number"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "zrodloPokrycia": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              }
                            },
                            "required": [
                              "city",
                              "coverPhotoUrl",
                              "distanceMeters",
                              "logoUrl",
                              "matchScore",
                              "reviewsCount",
                              "reviewsRank",
                              "salonId",
                              "salonName",
                              "serviceCount"
                            ]
                          }
                        },
                        "zrodlo": {
                          "const": "bmatch"
                        }
                      },
                      "required": [
                        "suggestions"
                      ]
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Blad"
          },
          "401": {
            "$ref": "#/components/responses/Blad"
          },
          "403": {
            "$ref": "#/components/responses/Blad"
          },
          "429": {
            "$ref": "#/components/responses/Blad"
          }
        }
      }
    },
    "/competitor-picks/anchors": {
      "get": {
        "tags": [
          "Raporty konkurencji i wybór konkurentów"
        ],
        "summary": "Salony konta, wokół których można szukać konkurencji.",
        "operationId": "competitor_picks_getAnchorCandidates",
        "responses": {
          "200": {
            "description": "Wynik",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "properties": {
                        "current": {
                          "anyOf": [
                            {
                              "type": "object",
                              "properties": {
                                "booksyUrl": {
                                  "type": "string"
                                },
                                "salonAddress": {
                                  "anyOf": [
                                    {
                                      "type": "string"
                                    },
                                    {
                                      "type": "null"
                                    }
                                  ]
                                },
                                "salonCity": {
                                  "anyOf": [
                                    {
                                      "type": "string"
                                    },
                                    {
                                      "type": "null"
                                    }
                                  ]
                                },
                                "salonLogoUrl": {
                                  "anyOf": [
                                    {
                                      "type": "string"
                                    },
                                    {
                                      "type": "null"
                                    }
                                  ]
                                },
                                "salonName": {
                                  "anyOf": [
                                    {
                                      "type": "string"
                                    },
                                    {
                                      "type": "null"
                                    }
                                  ]
                                }
                              },
                              "required": [
                                "booksyUrl",
                                "salonAddress",
                                "salonCity",
                                "salonLogoUrl",
                                "salonName"
                              ]
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "history": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "auditId": {
                                "type": "string",
                                "description": "Identyfikator (audits)"
                              },
                              "booksyUrl": {
                                "type": "string"
                              },
                              "createdAt": {
                                "type": "number"
                              },
                              "salonAddress": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "salonLogoUrl": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "salonName": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "status": {
                                "type": "string"
                              }
                            },
                            "required": [
                              "auditId",
                              "booksyUrl",
                              "createdAt",
                              "salonAddress",
                              "salonLogoUrl",
                              "salonName",
                              "status"
                            ]
                          }
                        }
                      },
                      "required": [
                        "current",
                        "history"
                      ]
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Blad"
          },
          "401": {
            "$ref": "#/components/responses/Blad"
          },
          "403": {
            "$ref": "#/components/responses/Blad"
          },
          "429": {
            "$ref": "#/components/responses/Blad"
          }
        }
      }
    },
    "/competitor-picks/subject-status": {
      "get": {
        "tags": [
          "Raporty konkurencji i wybór konkurentów"
        ],
        "summary": "Czy profil salonu jest gotowy do raportu.",
        "operationId": "competitor_picks_getReportSubjectStatus",
        "responses": {
          "200": {
            "description": "Wynik",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "properties": {
                        "auditId": {
                          "anyOf": [
                            {
                              "type": "string",
                              "description": "Identyfikator (audits)"
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "competitorOnly": {
                          "type": "boolean"
                        },
                        "ready": {
                          "type": "boolean"
                        },
                        "status": {
                          "anyOf": [
                            {
                              "type": "string"
                            },
                            {
                              "type": "null"
                            }
                          ]
                        }
                      },
                      "required": [
                        "auditId",
                        "competitorOnly",
                        "ready",
                        "status"
                      ]
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Blad"
          },
          "401": {
            "$ref": "#/components/responses/Blad"
          },
          "403": {
            "$ref": "#/components/responses/Blad"
          },
          "429": {
            "$ref": "#/components/responses/Blad"
          }
        }
      }
    },
    "/competitor-picks/subject-scrape": {
      "post": {
        "tags": [
          "Raporty konkurencji i wybór konkurentów"
        ],
        "summary": "Pobranie profilu salonu z Booksy przed raportem.",
        "operationId": "competitor_picks_startSubjectScrapeForReport",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "booksyUrl": {
                    "type": "string"
                  }
                },
                "required": [
                  "booksyUrl"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Wynik",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "properties": {
                        "auditId": {
                          "anyOf": [
                            {
                              "type": "string",
                              "description": "Identyfikator (audits)"
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "status": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "auditId",
                        "status"
                      ]
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Blad"
          },
          "401": {
            "$ref": "#/components/responses/Blad"
          },
          "403": {
            "$ref": "#/components/responses/Blad"
          },
          "429": {
            "$ref": "#/components/responses/Blad"
          }
        }
      }
    },
    "/salons/search": {
      "get": {
        "tags": [
          "Wyszukiwanie salonów"
        ],
        "summary": "Szukanie salonu po nazwie.",
        "operationId": "competitor_actions_searchSalonGlobal",
        "parameters": [
          {
            "name": "anchorBooksyId",
            "in": "query",
            "required": false,
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "query",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Wynik",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "city": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ]
                          },
                          "distance_m": {
                            "anyOf": [
                              {
                                "type": "number"
                              },
                              {
                                "type": "null"
                              }
                            ]
                          },
                          "id": {
                            "type": "number"
                          },
                          "lat": {
                            "anyOf": [
                              {
                                "type": "number"
                              },
                              {
                                "type": "null"
                              }
                            ]
                          },
                          "lng": {
                            "anyOf": [
                              {
                                "type": "number"
                              },
                              {
                                "type": "null"
                              }
                            ]
                          },
                          "logo_url": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ]
                          },
                          "match_opis": {
                            "type": "string"
                          },
                          "match_score": {
                            "anyOf": [
                              {
                                "type": "number"
                              },
                              {
                                "type": "null"
                              }
                            ]
                          },
                          "match_szacunek": {
                            "type": "boolean"
                          },
                          "name": {
                            "type": "string"
                          },
                          "reviews_count": {
                            "anyOf": [
                              {
                                "type": "number"
                              },
                              {
                                "type": "null"
                              }
                            ]
                          },
                          "reviews_rank": {
                            "anyOf": [
                              {
                                "type": "number"
                              },
                              {
                                "type": "null"
                              }
                            ]
                          },
                          "service_count": {
                            "type": "number"
                          }
                        },
                        "required": [
                          "city",
                          "distance_m",
                          "id",
                          "lat",
                          "lng",
                          "logo_url",
                          "match_score",
                          "name",
                          "reviews_count",
                          "reviews_rank",
                          "service_count"
                        ]
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Blad"
          },
          "401": {
            "$ref": "#/components/responses/Blad"
          },
          "403": {
            "$ref": "#/components/responses/Blad"
          },
          "429": {
            "$ref": "#/components/responses/Blad"
          }
        }
      }
    },
    "/salons/search-nearby": {
      "get": {
        "tags": [
          "Wyszukiwanie salonów"
        ],
        "summary": "Szukanie salonu po nazwie w pobliżu salonu konta.",
        "operationId": "competitor_actions_searchSalonByName",
        "parameters": [
          {
            "name": "query",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "radiusM",
            "in": "query",
            "required": false,
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "subjectSalonId",
            "in": "query",
            "required": true,
            "schema": {
              "type": "number"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Wynik",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "city": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ]
                          },
                          "distance_m": {
                            "anyOf": [
                              {
                                "type": "number"
                              },
                              {
                                "type": "null"
                              }
                            ]
                          },
                          "id": {
                            "type": "number"
                          },
                          "lat": {
                            "anyOf": [
                              {
                                "type": "number"
                              },
                              {
                                "type": "null"
                              }
                            ]
                          },
                          "lng": {
                            "anyOf": [
                              {
                                "type": "number"
                              },
                              {
                                "type": "null"
                              }
                            ]
                          },
                          "name": {
                            "type": "string"
                          },
                          "reviews_rank": {
                            "anyOf": [
                              {
                                "type": "number"
                              },
                              {
                                "type": "null"
                              }
                            ]
                          },
                          "service_count": {
                            "type": "number"
                          }
                        },
                        "required": [
                          "city",
                          "distance_m",
                          "id",
                          "lat",
                          "lng",
                          "name",
                          "reviews_rank",
                          "service_count"
                        ]
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Blad"
          },
          "401": {
            "$ref": "#/components/responses/Blad"
          },
          "403": {
            "$ref": "#/components/responses/Blad"
          },
          "429": {
            "$ref": "#/components/responses/Blad"
          }
        }
      }
    },
    "/salons/search-by-service": {
      "get": {
        "tags": [
          "Wyszukiwanie salonów"
        ],
        "summary": "Salony oferujące usługę w promieniu.",
        "operationId": "audit_competitorReport_searchSalonsByService",
        "parameters": [
          {
            "name": "lat",
            "in": "query",
            "required": false,
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "lng",
            "in": "query",
            "required": false,
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "query",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "radiusKm",
            "in": "query",
            "required": false,
            "schema": {
              "type": "number"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Wynik",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {}
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Blad"
          },
          "401": {
            "$ref": "#/components/responses/Blad"
          },
          "403": {
            "$ref": "#/components/responses/Blad"
          },
          "429": {
            "$ref": "#/components/responses/Blad"
          }
        }
      }
    },
    "/salons/nearby": {
      "get": {
        "tags": [
          "Wyszukiwanie salonów"
        ],
        "summary": "Salony w pobliżu salonu konta.",
        "operationId": "competitor_actions_getNearbySalonsForPicker",
        "parameters": [
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "radiusDeg",
            "in": "query",
            "required": false,
            "schema": {
              "type": "number"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Wynik",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "properties": {
                        "salons": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "city": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "distance_m": {
                                "anyOf": [
                                  {
                                    "type": "number"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "id": {
                                "type": "number"
                              },
                              "lat": {
                                "anyOf": [
                                  {
                                    "type": "number"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "lng": {
                                "anyOf": [
                                  {
                                    "type": "number"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "logo_url": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "name": {
                                "type": "string"
                              },
                              "primary_category_id": {
                                "anyOf": [
                                  {
                                    "type": "number"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "primary_category_name": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "reviews_count": {
                                "anyOf": [
                                  {
                                    "type": "number"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "reviews_rank": {
                                "anyOf": [
                                  {
                                    "type": "number"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "service_count": {
                                "type": "number"
                              }
                            },
                            "required": [
                              "city",
                              "distance_m",
                              "id",
                              "lat",
                              "lng",
                              "logo_url",
                              "name",
                              "primary_category_id",
                              "primary_category_name",
                              "reviews_count",
                              "reviews_rank",
                              "service_count"
                            ]
                          }
                        },
                        "subject": {
                          "anyOf": [
                            {
                              "type": "object",
                              "properties": {
                                "lat": {
                                  "type": "number"
                                },
                                "lng": {
                                  "type": "number"
                                },
                                "name": {
                                  "type": "string"
                                }
                              },
                              "required": [
                                "lat",
                                "lng",
                                "name"
                              ]
                            },
                            {
                              "type": "null"
                            }
                          ]
                        }
                      },
                      "required": [
                        "salons",
                        "subject"
                      ]
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Blad"
          },
          "401": {
            "$ref": "#/components/responses/Blad"
          },
          "403": {
            "$ref": "#/components/responses/Blad"
          },
          "429": {
            "$ref": "#/components/responses/Blad"
          }
        }
      }
    },
    "/salons/{salonRefId}": {
      "get": {
        "tags": [
          "Wyszukiwanie salonów"
        ],
        "summary": "Profil salonu: cennik, opinie, zespół, promocje.",
        "operationId": "competitor_actions_getCompetitorProfile",
        "parameters": [
          {
            "name": "salonRefId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "number"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Wynik",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "properties": {
                            "promotions": {
                              "type": "array",
                              "items": {
                                "type": "object",
                                "properties": {
                                  "booksyServiceId": {
                                    "anyOf": [
                                      {
                                        "type": "number"
                                      },
                                      {
                                        "type": "null"
                                      }
                                    ]
                                  },
                                  "category": {
                                    "anyOf": [
                                      {
                                        "type": "string"
                                      },
                                      {
                                        "type": "null"
                                      }
                                    ]
                                  },
                                  "discountRate": {
                                    "anyOf": [
                                      {
                                        "type": "number"
                                      },
                                      {
                                        "type": "null"
                                      }
                                    ]
                                  },
                                  "discountType": {
                                    "anyOf": [
                                      {
                                        "type": "string"
                                      },
                                      {
                                        "type": "null"
                                      }
                                    ]
                                  },
                                  "durationMinutes": {
                                    "anyOf": [
                                      {
                                        "type": "number"
                                      },
                                      {
                                        "type": "null"
                                      }
                                    ]
                                  },
                                  "name": {
                                    "anyOf": [
                                      {
                                        "type": "string"
                                      },
                                      {
                                        "type": "null"
                                      }
                                    ]
                                  },
                                  "promoPriceGrosze": {
                                    "anyOf": [
                                      {
                                        "type": "number"
                                      },
                                      {
                                        "type": "null"
                                      }
                                    ]
                                  },
                                  "regularPriceGrosze": {
                                    "anyOf": [
                                      {
                                        "type": "number"
                                      },
                                      {
                                        "type": "null"
                                      }
                                    ]
                                  }
                                },
                                "required": [
                                  "booksyServiceId",
                                  "category",
                                  "discountRate",
                                  "discountType",
                                  "durationMinutes",
                                  "name",
                                  "promoPriceGrosze",
                                  "regularPriceGrosze"
                                ]
                              }
                            },
                            "reviewCount": {
                              "type": "number"
                            },
                            "reviewVelocity": {
                              "type": "object",
                              "properties": {
                                "avgPerMonth12m": {
                                  "anyOf": [
                                    {
                                      "type": "number"
                                    },
                                    {
                                      "type": "null"
                                    }
                                  ]
                                },
                                "last30d": {
                                  "type": "number"
                                },
                                "last365d": {
                                  "type": "number"
                                },
                                "last90d": {
                                  "type": "number"
                                },
                                "momentumPct": {
                                  "anyOf": [
                                    {
                                      "type": "number"
                                    },
                                    {
                                      "type": "null"
                                    }
                                  ]
                                },
                                "monthlyBuckets": {
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "properties": {
                                      "count": {
                                        "type": "number"
                                      },
                                      "ym": {
                                        "type": "string"
                                      }
                                    },
                                    "required": [
                                      "count",
                                      "ym"
                                    ]
                                  }
                                },
                                "prev30d": {
                                  "type": "number"
                                }
                              },
                              "required": [
                                "avgPerMonth12m",
                                "last30d",
                                "last365d",
                                "last90d",
                                "momentumPct",
                                "monthlyBuckets",
                                "prev30d"
                              ]
                            },
                            "reviews": {
                              "type": "array",
                              "items": {
                                "type": "object",
                                "properties": {
                                  "createdAt": {
                                    "anyOf": [
                                      {
                                        "type": "string"
                                      },
                                      {
                                        "type": "null"
                                      }
                                    ]
                                  },
                                  "id": {
                                    "anyOf": [
                                      {
                                        "type": "number"
                                      },
                                      {
                                        "type": "null"
                                      }
                                    ]
                                  },
                                  "rank": {
                                    "anyOf": [
                                      {
                                        "type": "number"
                                      },
                                      {
                                        "type": "null"
                                      }
                                    ]
                                  },
                                  "replyContent": {
                                    "anyOf": [
                                      {
                                        "type": "string"
                                      },
                                      {
                                        "type": "null"
                                      }
                                    ]
                                  },
                                  "services": {
                                    "type": "array",
                                    "items": {
                                      "type": "object",
                                      "properties": {
                                        "id": {
                                          "anyOf": [
                                            {
                                              "type": "number"
                                            },
                                            {
                                              "type": "null"
                                            }
                                          ]
                                        },
                                        "name": {
                                          "anyOf": [
                                            {
                                              "type": "string"
                                            },
                                            {
                                              "type": "null"
                                            }
                                          ]
                                        },
                                        "treatmentId": {
                                          "anyOf": [
                                            {
                                              "type": "number"
                                            },
                                            {
                                              "type": "null"
                                            }
                                          ]
                                        }
                                      },
                                      "required": [
                                        "id",
                                        "name",
                                        "treatmentId"
                                      ]
                                    }
                                  },
                                  "staff": {
                                    "type": "array",
                                    "items": {
                                      "type": "object",
                                      "properties": {
                                        "id": {
                                          "anyOf": [
                                            {
                                              "type": "number"
                                            },
                                            {
                                              "type": "null"
                                            }
                                          ]
                                        },
                                        "name": {
                                          "anyOf": [
                                            {
                                              "type": "string"
                                            },
                                            {
                                              "type": "null"
                                            }
                                          ]
                                        }
                                      },
                                      "required": [
                                        "id",
                                        "name"
                                      ]
                                    }
                                  },
                                  "text": {
                                    "anyOf": [
                                      {
                                        "type": "string"
                                      },
                                      {
                                        "type": "null"
                                      }
                                    ]
                                  },
                                  "title": {
                                    "anyOf": [
                                      {
                                        "type": "string"
                                      },
                                      {
                                        "type": "null"
                                      }
                                    ]
                                  },
                                  "userAvatarUrl": {
                                    "anyOf": [
                                      {
                                        "type": "string"
                                      },
                                      {
                                        "type": "null"
                                      }
                                    ]
                                  },
                                  "userFirstName": {
                                    "anyOf": [
                                      {
                                        "type": "string"
                                      },
                                      {
                                        "type": "null"
                                      }
                                    ]
                                  },
                                  "userLastInitial": {
                                    "anyOf": [
                                      {
                                        "type": "string"
                                      },
                                      {
                                        "type": "null"
                                      }
                                    ]
                                  }
                                },
                                "required": [
                                  "createdAt",
                                  "id",
                                  "rank",
                                  "replyContent",
                                  "services",
                                  "staff",
                                  "text",
                                  "title",
                                  "userAvatarUrl",
                                  "userFirstName",
                                  "userLastInitial"
                                ]
                              }
                            },
                            "salon": {
                              "type": "object",
                              "properties": {
                                "activeServicesCount": {
                                  "anyOf": [
                                    {
                                      "type": "number"
                                    },
                                    {
                                      "type": "null"
                                    }
                                  ]
                                },
                                "address": {
                                  "anyOf": [
                                    {
                                      "type": "string"
                                    },
                                    {
                                      "type": "null"
                                    }
                                  ]
                                },
                                "booksyId": {
                                  "anyOf": [
                                    {
                                      "type": "number"
                                    },
                                    {
                                      "type": "null"
                                    }
                                  ]
                                },
                                "booksyUrl": {
                                  "anyOf": [
                                    {
                                      "type": "string"
                                    },
                                    {
                                      "type": "null"
                                    }
                                  ]
                                },
                                "businessCategories": {
                                  "type": "array",
                                  "items": {}
                                },
                                "city": {
                                  "anyOf": [
                                    {
                                      "type": "string"
                                    },
                                    {
                                      "type": "null"
                                    }
                                  ]
                                },
                                "coverPhotoUrl": {
                                  "anyOf": [
                                    {
                                      "type": "string"
                                    },
                                    {
                                      "type": "null"
                                    }
                                  ]
                                },
                                "email": {
                                  "anyOf": [
                                    {
                                      "type": "string"
                                    },
                                    {
                                      "type": "null"
                                    }
                                  ]
                                },
                                "facebookUrl": {
                                  "anyOf": [
                                    {
                                      "type": "string"
                                    },
                                    {
                                      "type": "null"
                                    }
                                  ]
                                },
                                "hasOnlineServices": {
                                  "anyOf": [
                                    {
                                      "type": "boolean"
                                    },
                                    {
                                      "type": "null"
                                    }
                                  ]
                                },
                                "hasOnlineVouchers": {
                                  "anyOf": [
                                    {
                                      "type": "boolean"
                                    },
                                    {
                                      "type": "null"
                                    }
                                  ]
                                },
                                "hasSafetyRules": {
                                  "anyOf": [
                                    {
                                      "type": "boolean"
                                    },
                                    {
                                      "type": "null"
                                    }
                                  ]
                                },
                                "id": {
                                  "type": "number"
                                },
                                "instagramUrl": {
                                  "anyOf": [
                                    {
                                      "type": "string"
                                    },
                                    {
                                      "type": "null"
                                    }
                                  ]
                                },
                                "lat": {
                                  "anyOf": [
                                    {
                                      "type": "number"
                                    },
                                    {
                                      "type": "null"
                                    }
                                  ]
                                },
                                "lng": {
                                  "anyOf": [
                                    {
                                      "type": "number"
                                    },
                                    {
                                      "type": "null"
                                    }
                                  ]
                                },
                                "logoPhotoUrl": {
                                  "anyOf": [
                                    {
                                      "type": "string"
                                    },
                                    {
                                      "type": "null"
                                    }
                                  ]
                                },
                                "name": {
                                  "anyOf": [
                                    {
                                      "type": "string"
                                    },
                                    {
                                      "type": "null"
                                    }
                                  ]
                                },
                                "parkingInfo": {
                                  "anyOf": [
                                    {
                                      "type": "string"
                                    },
                                    {
                                      "type": "null"
                                    }
                                  ]
                                },
                                "phone": {
                                  "anyOf": [
                                    {
                                      "type": "string"
                                    },
                                    {
                                      "type": "null"
                                    }
                                  ]
                                },
                                "posMarketPay": {
                                  "anyOf": [
                                    {
                                      "type": "boolean"
                                    },
                                    {
                                      "type": "null"
                                    }
                                  ]
                                },
                                "posPayByApp": {
                                  "anyOf": [
                                    {
                                      "type": "boolean"
                                    },
                                    {
                                      "type": "null"
                                    }
                                  ]
                                },
                                "pricingLevel": {
                                  "anyOf": [
                                    {
                                      "type": "number"
                                    },
                                    {
                                      "type": "null"
                                    }
                                  ]
                                },
                                "promoted": {
                                  "anyOf": [
                                    {
                                      "type": "boolean"
                                    },
                                    {
                                      "type": "null"
                                    }
                                  ]
                                },
                                "reviewsCount": {
                                  "anyOf": [
                                    {
                                      "type": "number"
                                    },
                                    {
                                      "type": "null"
                                    }
                                  ]
                                },
                                "reviewsDelta30d": {
                                  "anyOf": [
                                    {
                                      "type": "number"
                                    },
                                    {
                                      "type": "null"
                                    }
                                  ]
                                },
                                "reviewsDelta30dDays": {
                                  "anyOf": [
                                    {
                                      "type": "number"
                                    },
                                    {
                                      "type": "null"
                                    }
                                  ]
                                },
                                "reviewsRank": {
                                  "anyOf": [
                                    {
                                      "type": "number"
                                    },
                                    {
                                      "type": "null"
                                    }
                                  ]
                                },
                                "salonDescription": {
                                  "anyOf": [
                                    {
                                      "type": "string"
                                    },
                                    {
                                      "type": "null"
                                    }
                                  ]
                                },
                                "salonNetwork": {
                                  "anyOf": [
                                    {
                                      "type": "string"
                                    },
                                    {
                                      "type": "null"
                                    }
                                  ]
                                },
                                "scrapedAt": {
                                  "anyOf": [
                                    {
                                      "type": "string"
                                    },
                                    {
                                      "type": "null"
                                    }
                                  ]
                                },
                                "serviceFee": {
                                  "anyOf": [
                                    {
                                      "type": "number"
                                    },
                                    {
                                      "type": "null"
                                    }
                                  ]
                                },
                                "staffCount": {
                                  "anyOf": [
                                    {
                                      "type": "number"
                                    },
                                    {
                                      "type": "null"
                                    }
                                  ]
                                },
                                "thumbnailPhotoUrl": {
                                  "anyOf": [
                                    {
                                      "type": "string"
                                    },
                                    {
                                      "type": "null"
                                    }
                                  ]
                                },
                                "totalServices": {
                                  "anyOf": [
                                    {
                                      "type": "number"
                                    },
                                    {
                                      "type": "null"
                                    }
                                  ]
                                },
                                "website": {
                                  "anyOf": [
                                    {
                                      "type": "string"
                                    },
                                    {
                                      "type": "null"
                                    }
                                  ]
                                },
                                "wheelchairAccess": {
                                  "anyOf": [
                                    {
                                      "type": "string"
                                    },
                                    {
                                      "type": "null"
                                    }
                                  ]
                                }
                              },
                              "required": [
                                "activeServicesCount",
                                "address",
                                "booksyId",
                                "booksyUrl",
                                "businessCategories",
                                "city",
                                "coverPhotoUrl",
                                "email",
                                "facebookUrl",
                                "hasOnlineServices",
                                "hasOnlineVouchers",
                                "hasSafetyRules",
                                "id",
                                "instagramUrl",
                                "lat",
                                "lng",
                                "logoPhotoUrl",
                                "name",
                                "parkingInfo",
                                "phone",
                                "posMarketPay",
                                "posPayByApp",
                                "pricingLevel",
                                "promoted",
                                "reviewsCount",
                                "reviewsDelta30d",
                                "reviewsDelta30dDays",
                                "reviewsRank",
                                "salonDescription",
                                "salonNetwork",
                                "scrapedAt",
                                "serviceFee",
                                "staffCount",
                                "thumbnailPhotoUrl",
                                "totalServices",
                                "website",
                                "wheelchairAccess"
                              ]
                            },
                            "serviceCount": {
                              "type": "number"
                            },
                            "services": {
                              "type": "array",
                              "items": {
                                "type": "object",
                                "properties": {
                                  "booksyServiceId": {
                                    "anyOf": [
                                      {
                                        "type": "number"
                                      },
                                      {
                                        "type": "null"
                                      }
                                    ]
                                  },
                                  "category": {
                                    "anyOf": [
                                      {
                                        "type": "string"
                                      },
                                      {
                                        "type": "null"
                                      }
                                    ]
                                  },
                                  "currency": {
                                    "anyOf": [
                                      {
                                        "type": "string"
                                      },
                                      {
                                        "type": "null"
                                      }
                                    ]
                                  },
                                  "durationMinutes": {
                                    "anyOf": [
                                      {
                                        "type": "number"
                                      },
                                      {
                                        "type": "null"
                                      }
                                    ]
                                  },
                                  "name": {
                                    "anyOf": [
                                      {
                                        "type": "string"
                                      },
                                      {
                                        "type": "null"
                                      }
                                    ]
                                  },
                                  "priceGrosze": {
                                    "anyOf": [
                                      {
                                        "type": "number"
                                      },
                                      {
                                        "type": "null"
                                      }
                                    ]
                                  }
                                },
                                "required": [
                                  "booksyServiceId",
                                  "category",
                                  "currency",
                                  "durationMinutes",
                                  "name",
                                  "priceGrosze"
                                ]
                              }
                            },
                            "staff": {
                              "type": "array",
                              "items": {
                                "type": "object",
                                "properties": {
                                  "active": {
                                    "anyOf": [
                                      {
                                        "type": "boolean"
                                      },
                                      {
                                        "type": "null"
                                      }
                                    ]
                                  },
                                  "id": {
                                    "anyOf": [
                                      {
                                        "type": "number"
                                      },
                                      {
                                        "type": "null"
                                      }
                                    ]
                                  },
                                  "name": {
                                    "anyOf": [
                                      {
                                        "type": "string"
                                      },
                                      {
                                        "type": "null"
                                      }
                                    ]
                                  },
                                  "photoUrl": {
                                    "anyOf": [
                                      {
                                        "type": "string"
                                      },
                                      {
                                        "type": "null"
                                      }
                                    ]
                                  },
                                  "position": {
                                    "anyOf": [
                                      {
                                        "type": "string"
                                      },
                                      {
                                        "type": "null"
                                      }
                                    ]
                                  },
                                  "reviewsRankScore": {
                                    "anyOf": [
                                      {
                                        "type": "number"
                                      },
                                      {
                                        "type": "null"
                                      }
                                    ]
                                  },
                                  "visible": {
                                    "anyOf": [
                                      {
                                        "type": "boolean"
                                      },
                                      {
                                        "type": "null"
                                      }
                                    ]
                                  }
                                },
                                "required": [
                                  "active",
                                  "id",
                                  "name",
                                  "photoUrl",
                                  "position",
                                  "reviewsRankScore",
                                  "visible"
                                ]
                              }
                            },
                            "staffEvents": {
                              "type": "array",
                              "items": {
                                "type": "object",
                                "properties": {
                                  "at": {
                                    "anyOf": [
                                      {
                                        "type": "string"
                                      },
                                      {
                                        "type": "null"
                                      }
                                    ]
                                  },
                                  "currName": {
                                    "anyOf": [
                                      {
                                        "type": "string"
                                      },
                                      {
                                        "type": "null"
                                      }
                                    ]
                                  },
                                  "currPosition": {
                                    "anyOf": [
                                      {
                                        "type": "string"
                                      },
                                      {
                                        "type": "null"
                                      }
                                    ]
                                  },
                                  "event": {
                                    "anyOf": [
                                      {
                                        "type": "string"
                                      },
                                      {
                                        "type": "null"
                                      }
                                    ]
                                  },
                                  "prevName": {
                                    "anyOf": [
                                      {
                                        "type": "string"
                                      },
                                      {
                                        "type": "null"
                                      }
                                    ]
                                  },
                                  "prevPosition": {
                                    "anyOf": [
                                      {
                                        "type": "string"
                                      },
                                      {
                                        "type": "null"
                                      }
                                    ]
                                  },
                                  "scoreDelta": {
                                    "anyOf": [
                                      {
                                        "type": "number"
                                      },
                                      {
                                        "type": "null"
                                      }
                                    ]
                                  }
                                },
                                "required": [
                                  "at",
                                  "currName",
                                  "currPosition",
                                  "event",
                                  "prevName",
                                  "prevPosition",
                                  "scoreDelta"
                                ]
                              }
                            }
                          },
                          "required": [
                            "promotions",
                            "reviewCount",
                            "reviewVelocity",
                            "reviews",
                            "salon",
                            "serviceCount",
                            "services",
                            "staff",
                            "staffEvents"
                          ]
                        },
                        {
                          "type": "null"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Blad"
          },
          "401": {
            "$ref": "#/components/responses/Blad"
          },
          "403": {
            "$ref": "#/components/responses/Blad"
          },
          "429": {
            "$ref": "#/components/responses/Blad"
          }
        }
      }
    },
    "/salons/{booksyId}/changes": {
      "get": {
        "tags": [
          "Wyszukiwanie salonów"
        ],
        "summary": "Zmiany w ofercie salonu w ostatnich dniach.",
        "operationId": "competitor_actions_getCompetitorServiceChangesDetail",
        "parameters": [
          {
            "name": "booksyId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "days",
            "in": "query",
            "required": false,
            "schema": {
              "type": "number"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Wynik",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "changeType": {
                            "type": "string"
                          },
                          "currDurationMin": {
                            "anyOf": [
                              {
                                "type": "number"
                              },
                              {
                                "type": "null"
                              }
                            ]
                          },
                          "currIsPromo": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ]
                          },
                          "currPriceZl": {
                            "anyOf": [
                              {
                                "type": "number"
                              },
                              {
                                "type": "null"
                              }
                            ]
                          },
                          "pairObservedAt": {
                            "type": "string"
                          },
                          "prevDurationMin": {
                            "anyOf": [
                              {
                                "type": "number"
                              },
                              {
                                "type": "null"
                              }
                            ]
                          },
                          "prevIsPromo": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ]
                          },
                          "prevPriceZl": {
                            "anyOf": [
                              {
                                "type": "number"
                              },
                              {
                                "type": "null"
                              }
                            ]
                          },
                          "serviceName": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "changeType",
                          "currDurationMin",
                          "currIsPromo",
                          "currPriceZl",
                          "pairObservedAt",
                          "prevDurationMin",
                          "prevIsPromo",
                          "prevPriceZl",
                          "serviceName"
                        ]
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Blad"
          },
          "401": {
            "$ref": "#/components/responses/Blad"
          },
          "403": {
            "$ref": "#/components/responses/Blad"
          },
          "429": {
            "$ref": "#/components/responses/Blad"
          }
        }
      }
    },
    "/salons/connect": {
      "post": {
        "tags": [
          "Wyszukiwanie salonów"
        ],
        "summary": "Połączenie konta z profilem Booksy (adres profilu w url).",
        "operationId": "competitor_actions_connectBooksyProfile",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "url": {
                    "type": "string"
                  }
                },
                "required": [
                  "url"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Wynik",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "properties": {
                        "error": {
                          "anyOf": [
                            {
                              "type": "string"
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "ok": {
                          "type": "boolean"
                        },
                        "salonName": {
                          "anyOf": [
                            {
                              "type": "string"
                            },
                            {
                              "type": "null"
                            }
                          ]
                        }
                      },
                      "required": [
                        "error",
                        "ok",
                        "salonName"
                      ]
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Blad"
          },
          "401": {
            "$ref": "#/components/responses/Blad"
          },
          "403": {
            "$ref": "#/components/responses/Blad"
          },
          "429": {
            "$ref": "#/components/responses/Blad"
          }
        }
      }
    },
    "/salons/{salonId}/adopt": {
      "post": {
        "tags": [
          "Wyszukiwanie salonów"
        ],
        "summary": "Ustawienie salonu jako salonu konta.",
        "operationId": "salon_adoptBaseSalon",
        "parameters": [
          {
            "name": "salonId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "number"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Wynik",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "properties": {
                        "booksyProfileUrl": {
                          "type": "string"
                        },
                        "salonAddress": {
                          "anyOf": [
                            {
                              "type": "string"
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "salonCity": {
                          "anyOf": [
                            {
                              "type": "string"
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "salonLogoUrl": {
                          "anyOf": [
                            {
                              "type": "string"
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "salonName": {
                          "type": "string"
                        },
                        "salonPhone": {
                          "anyOf": [
                            {
                              "type": "string"
                            },
                            {
                              "type": "null"
                            }
                          ]
                        }
                      },
                      "required": [
                        "booksyProfileUrl",
                        "salonAddress",
                        "salonCity",
                        "salonLogoUrl",
                        "salonName",
                        "salonPhone"
                      ]
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Blad"
          },
          "401": {
            "$ref": "#/components/responses/Blad"
          },
          "403": {
            "$ref": "#/components/responses/Blad"
          },
          "429": {
            "$ref": "#/components/responses/Blad"
          }
        }
      }
    },
    "/monitoring/watchlist": {
      "get": {
        "tags": [
          "Monitoring konkurencji"
        ],
        "summary": "Monitorowane salony.",
        "operationId": "monitoring_getMyWatchlist",
        "responses": {
          "200": {
            "description": "Wynik",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "properties": {
                        "config": {
                          "anyOf": [
                            {
                              "type": "object",
                              "properties": {
                                "alertOnNewServices": {
                                  "type": "boolean"
                                },
                                "alertOnPriceChanges": {
                                  "type": "boolean"
                                },
                                "alertOnReviewSignals": {
                                  "type": "boolean"
                                }
                              },
                              "required": [
                                "alertOnNewServices",
                                "alertOnPriceChanges",
                                "alertOnReviewSignals"
                              ]
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "entitledCadenceHours": {
                          "type": "number"
                        },
                        "lastScanAt": {
                          "anyOf": [
                            {
                              "type": "number"
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "maxSalons": {
                          "type": "number"
                        },
                        "nextScanAt": {
                          "anyOf": [
                            {
                              "type": "number"
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "notificationPrefs": {
                          "type": "object",
                          "properties": {
                            "newServices": {
                              "anyOf": [
                                {
                                  "const": "instant"
                                },
                                {
                                  "const": "daily"
                                },
                                {
                                  "const": "weekly"
                                },
                                {
                                  "const": "off"
                                }
                              ]
                            },
                            "priceChanges": {
                              "anyOf": [
                                {
                                  "const": "instant"
                                },
                                {
                                  "const": "daily"
                                },
                                {
                                  "const": "weekly"
                                },
                                {
                                  "const": "off"
                                }
                              ]
                            },
                            "promotions": {
                              "anyOf": [
                                {
                                  "const": "instant"
                                },
                                {
                                  "const": "daily"
                                },
                                {
                                  "const": "weekly"
                                },
                                {
                                  "const": "off"
                                }
                              ]
                            },
                            "reviews": {
                              "anyOf": [
                                {
                                  "const": "instant"
                                },
                                {
                                  "const": "daily"
                                },
                                {
                                  "const": "weekly"
                                },
                                {
                                  "const": "off"
                                }
                              ]
                            }
                          },
                          "required": [
                            "newServices",
                            "priceChanges",
                            "promotions",
                            "reviews"
                          ]
                        },
                        "salons": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "addedAt": {
                                "type": "number"
                              },
                              "booksyUrl": {
                                "type": "string"
                              },
                              "city": {
                                "type": "string"
                              },
                              "goneAt": {
                                "type": "number"
                              },
                              "salonId": {
                                "type": "number"
                              },
                              "salonName": {
                                "type": "string"
                              }
                            },
                            "required": [
                              "addedAt",
                              "salonId",
                              "salonName"
                            ]
                          }
                        },
                        "scanCadenceHours": {
                          "type": "number"
                        },
                        "status": {
                          "anyOf": [
                            {
                              "const": "active"
                            },
                            {
                              "const": "pending"
                            },
                            {
                              "const": "inactive"
                            }
                          ]
                        },
                        "watchlistId": {
                          "anyOf": [
                            {
                              "type": "string",
                              "description": "Identyfikator (competitorMonitoringWatchlists)"
                            },
                            {
                              "type": "null"
                            }
                          ]
                        }
                      },
                      "required": [
                        "config",
                        "entitledCadenceHours",
                        "lastScanAt",
                        "maxSalons",
                        "nextScanAt",
                        "notificationPrefs",
                        "salons",
                        "scanCadenceHours",
                        "status",
                        "watchlistId"
                      ]
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Blad"
          },
          "401": {
            "$ref": "#/components/responses/Blad"
          },
          "403": {
            "$ref": "#/components/responses/Blad"
          },
          "429": {
            "$ref": "#/components/responses/Blad"
          }
        }
      },
      "post": {
        "tags": [
          "Monitoring konkurencji"
        ],
        "summary": "Dodanie salonu do monitoringu.",
        "operationId": "monitoring_addSalonToWatchlist",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "booksyUrl": {
                    "type": "string"
                  },
                  "city": {
                    "type": "string"
                  },
                  "salonId": {
                    "type": "number"
                  },
                  "salonName": {
                    "type": "string"
                  }
                },
                "required": [
                  "salonId",
                  "salonName"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Wynik",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "string",
                      "description": "Identyfikator (competitorMonitoringWatchlists)"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Blad"
          },
          "401": {
            "$ref": "#/components/responses/Blad"
          },
          "403": {
            "$ref": "#/components/responses/Blad"
          },
          "429": {
            "$ref": "#/components/responses/Blad"
          }
        }
      }
    },
    "/monitoring/watchlist/{salonId}": {
      "delete": {
        "tags": [
          "Monitoring konkurencji"
        ],
        "summary": "Usunięcie salonu z monitoringu.",
        "operationId": "monitoring_removeSalonFromWatchlist",
        "parameters": [
          {
            "name": "salonId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "number"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Wynik",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "null"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Blad"
          },
          "401": {
            "$ref": "#/components/responses/Blad"
          },
          "403": {
            "$ref": "#/components/responses/Blad"
          },
          "429": {
            "$ref": "#/components/responses/Blad"
          }
        }
      }
    },
    "/monitoring/alerts": {
      "get": {
        "tags": [
          "Monitoring konkurencji"
        ],
        "summary": "Alerty o zmianach u konkurencji.",
        "operationId": "monitoring_getMyAlerts",
        "parameters": [
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "number"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Wynik",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "_creationTime": {
                            "type": "number"
                          },
                          "_id": {
                            "type": "string",
                            "description": "Identyfikator (competitorMonitoringAlerts)"
                          },
                          "aiAction": {
                            "type": "string"
                          },
                          "aiMeaning": {
                            "type": "string"
                          },
                          "aiPriority": {
                            "anyOf": [
                              {
                                "const": "act"
                              },
                              {
                                "const": "watch"
                              },
                              {
                                "const": "ignore"
                              }
                            ]
                          },
                          "body": {
                            "type": "string"
                          },
                          "detectedAt": {
                            "type": "number"
                          },
                          "metadataJson": {
                            "type": "string"
                          },
                          "read": {
                            "type": "boolean"
                          },
                          "salonId": {
                            "type": "number"
                          },
                          "salonName": {
                            "type": "string"
                          },
                          "severity": {
                            "anyOf": [
                              {
                                "const": "info"
                              },
                              {
                                "const": "warning"
                              },
                              {
                                "const": "critical"
                              }
                            ]
                          },
                          "title": {
                            "type": "string"
                          },
                          "type": {
                            "anyOf": [
                              {
                                "const": "price_increase"
                              },
                              {
                                "const": "price_decrease"
                              },
                              {
                                "const": "service_added"
                              },
                              {
                                "const": "service_removed"
                              },
                              {
                                "const": "review_spike"
                              },
                              {
                                "const": "review_drop"
                              },
                              {
                                "const": "promotion_started"
                              },
                              {
                                "const": "promotion_ended"
                              },
                              {
                                "const": "ad_started"
                              },
                              {
                                "const": "ad_stopped"
                              }
                            ]
                          }
                        },
                        "required": [
                          "_creationTime",
                          "_id",
                          "body",
                          "detectedAt",
                          "read",
                          "salonId",
                          "salonName",
                          "severity",
                          "title",
                          "type"
                        ]
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Blad"
          },
          "401": {
            "$ref": "#/components/responses/Blad"
          },
          "403": {
            "$ref": "#/components/responses/Blad"
          },
          "429": {
            "$ref": "#/components/responses/Blad"
          }
        }
      }
    },
    "/monitoring/alerts/{alertId}/read": {
      "post": {
        "tags": [
          "Monitoring konkurencji"
        ],
        "summary": "Oznaczenie alertu jako przeczytanego.",
        "operationId": "monitoring_markAlertRead",
        "parameters": [
          {
            "name": "alertId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Identyfikator (competitorMonitoringAlerts)"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Wynik",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "null"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Blad"
          },
          "401": {
            "$ref": "#/components/responses/Blad"
          },
          "403": {
            "$ref": "#/components/responses/Blad"
          },
          "429": {
            "$ref": "#/components/responses/Blad"
          }
        }
      }
    },
    "/monitoring/snapshots": {
      "get": {
        "tags": [
          "Monitoring konkurencji"
        ],
        "summary": "Ostatni stan monitorowanych salonów.",
        "operationId": "monitoring_snapshots_getWatchlistSnapshots",
        "responses": {
          "200": {
            "description": "Wynik",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "properties": {
                        "generatedAt": {
                          "type": "number"
                        },
                        "snapshots": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "avgServicePriceGrosze": {
                                "anyOf": [
                                  {
                                    "type": "number"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "booksyUrl": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "city": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "coverPhotoUrl": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "endedPromotions": {
                                "type": "array",
                                "items": {
                                  "type": "object",
                                  "properties": {
                                    "category": {
                                      "anyOf": [
                                        {
                                          "type": "string"
                                        },
                                        {
                                          "type": "null"
                                        }
                                      ]
                                    },
                                    "discountRate": {
                                      "anyOf": [
                                        {
                                          "type": "number"
                                        },
                                        {
                                          "type": "null"
                                        }
                                      ]
                                    },
                                    "endedAt": {
                                      "type": "number"
                                    },
                                    "name": {
                                      "anyOf": [
                                        {
                                          "type": "string"
                                        },
                                        {
                                          "type": "null"
                                        }
                                      ]
                                    },
                                    "promoPriceGrosze": {
                                      "anyOf": [
                                        {
                                          "type": "number"
                                        },
                                        {
                                          "type": "null"
                                        }
                                      ]
                                    },
                                    "regularPriceGrosze": {
                                      "anyOf": [
                                        {
                                          "type": "number"
                                        },
                                        {
                                          "type": "null"
                                        }
                                      ]
                                    },
                                    "startedAt": {
                                      "anyOf": [
                                        {
                                          "type": "number"
                                        },
                                        {
                                          "type": "null"
                                        }
                                      ]
                                    }
                                  },
                                  "required": [
                                    "category",
                                    "discountRate",
                                    "endedAt",
                                    "name",
                                    "promoPriceGrosze",
                                    "regularPriceGrosze",
                                    "startedAt"
                                  ]
                                }
                              },
                              "logoUrl": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "maxServicePriceGrosze": {
                                "anyOf": [
                                  {
                                    "type": "number"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "minServicePriceGrosze": {
                                "anyOf": [
                                  {
                                    "type": "number"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "promotions": {
                                "type": "array",
                                "items": {
                                  "type": "object",
                                  "properties": {
                                    "category": {
                                      "anyOf": [
                                        {
                                          "type": "string"
                                        },
                                        {
                                          "type": "null"
                                        }
                                      ]
                                    },
                                    "discountRate": {
                                      "anyOf": [
                                        {
                                          "type": "number"
                                        },
                                        {
                                          "type": "null"
                                        }
                                      ]
                                    },
                                    "discountType": {
                                      "anyOf": [
                                        {
                                          "type": "string"
                                        },
                                        {
                                          "type": "null"
                                        }
                                      ]
                                    },
                                    "name": {
                                      "anyOf": [
                                        {
                                          "type": "string"
                                        },
                                        {
                                          "type": "null"
                                        }
                                      ]
                                    },
                                    "promoPriceGrosze": {
                                      "anyOf": [
                                        {
                                          "type": "number"
                                        },
                                        {
                                          "type": "null"
                                        }
                                      ]
                                    },
                                    "regularPriceGrosze": {
                                      "anyOf": [
                                        {
                                          "type": "number"
                                        },
                                        {
                                          "type": "null"
                                        }
                                      ]
                                    },
                                    "startedAt": {
                                      "anyOf": [
                                        {
                                          "type": "number"
                                        },
                                        {
                                          "type": "null"
                                        }
                                      ]
                                    }
                                  },
                                  "required": [
                                    "category",
                                    "discountRate",
                                    "discountType",
                                    "name",
                                    "promoPriceGrosze",
                                    "regularPriceGrosze",
                                    "startedAt"
                                  ]
                                }
                              },
                              "promotionsCount": {
                                "type": "number"
                              },
                              "recentReviews": {
                                "type": "array",
                                "items": {
                                  "type": "object",
                                  "properties": {
                                    "createdAt": {
                                      "anyOf": [
                                        {
                                          "type": "string"
                                        },
                                        {
                                          "type": "null"
                                        }
                                      ]
                                    },
                                    "id": {
                                      "anyOf": [
                                        {
                                          "type": "number"
                                        },
                                        {
                                          "type": "null"
                                        }
                                      ]
                                    },
                                    "rank": {
                                      "anyOf": [
                                        {
                                          "type": "number"
                                        },
                                        {
                                          "type": "null"
                                        }
                                      ]
                                    },
                                    "text": {
                                      "anyOf": [
                                        {
                                          "type": "string"
                                        },
                                        {
                                          "type": "null"
                                        }
                                      ]
                                    },
                                    "title": {
                                      "anyOf": [
                                        {
                                          "type": "string"
                                        },
                                        {
                                          "type": "null"
                                        }
                                      ]
                                    },
                                    "userFirstName": {
                                      "anyOf": [
                                        {
                                          "type": "string"
                                        },
                                        {
                                          "type": "null"
                                        }
                                      ]
                                    }
                                  },
                                  "required": [
                                    "createdAt",
                                    "id",
                                    "rank",
                                    "text",
                                    "title",
                                    "userFirstName"
                                  ]
                                }
                              },
                              "reviewCount": {
                                "type": "number"
                              },
                              "reviewVelocity": {
                                "type": "object",
                                "properties": {
                                  "avgPerMonth12m": {
                                    "anyOf": [
                                      {
                                        "type": "number"
                                      },
                                      {
                                        "type": "null"
                                      }
                                    ]
                                  },
                                  "last30d": {
                                    "type": "number"
                                  },
                                  "last90d": {
                                    "type": "number"
                                  },
                                  "momentumPct": {
                                    "anyOf": [
                                      {
                                        "type": "number"
                                      },
                                      {
                                        "type": "null"
                                      }
                                    ]
                                  },
                                  "monthlyBuckets": {
                                    "type": "array",
                                    "items": {
                                      "type": "object",
                                      "properties": {
                                        "count": {
                                          "type": "number"
                                        },
                                        "ym": {
                                          "type": "string"
                                        }
                                      },
                                      "required": [
                                        "count",
                                        "ym"
                                      ]
                                    }
                                  },
                                  "prev30d": {
                                    "type": "number"
                                  }
                                },
                                "required": [
                                  "avgPerMonth12m",
                                  "last30d",
                                  "last90d",
                                  "momentumPct",
                                  "monthlyBuckets",
                                  "prev30d"
                                ]
                              },
                              "reviewsRank": {
                                "anyOf": [
                                  {
                                    "type": "number"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "salonName": {
                                "type": "string"
                              },
                              "salonRefId": {
                                "type": "number"
                              },
                              "scrapedAt": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "serviceCount": {
                                "type": "number"
                              },
                              "staff": {
                                "type": "array",
                                "items": {
                                  "type": "object",
                                  "properties": {
                                    "id": {
                                      "anyOf": [
                                        {
                                          "type": "number"
                                        },
                                        {
                                          "type": "null"
                                        }
                                      ]
                                    },
                                    "name": {
                                      "anyOf": [
                                        {
                                          "type": "string"
                                        },
                                        {
                                          "type": "null"
                                        }
                                      ]
                                    },
                                    "photoUrl": {
                                      "anyOf": [
                                        {
                                          "type": "string"
                                        },
                                        {
                                          "type": "null"
                                        }
                                      ]
                                    },
                                    "position": {
                                      "anyOf": [
                                        {
                                          "type": "string"
                                        },
                                        {
                                          "type": "null"
                                        }
                                      ]
                                    },
                                    "reviewsRankScore": {
                                      "anyOf": [
                                        {
                                          "type": "number"
                                        },
                                        {
                                          "type": "null"
                                        }
                                      ]
                                    }
                                  },
                                  "required": [
                                    "id",
                                    "name",
                                    "photoUrl",
                                    "position",
                                    "reviewsRankScore"
                                  ]
                                }
                              },
                              "staffCount": {
                                "type": "number"
                              },
                              "staffEvents": {
                                "type": "array",
                                "items": {
                                  "type": "object",
                                  "properties": {
                                    "at": {
                                      "anyOf": [
                                        {
                                          "type": "string"
                                        },
                                        {
                                          "type": "null"
                                        }
                                      ]
                                    },
                                    "currName": {
                                      "anyOf": [
                                        {
                                          "type": "string"
                                        },
                                        {
                                          "type": "null"
                                        }
                                      ]
                                    },
                                    "currPosition": {
                                      "anyOf": [
                                        {
                                          "type": "string"
                                        },
                                        {
                                          "type": "null"
                                        }
                                      ]
                                    },
                                    "event": {
                                      "anyOf": [
                                        {
                                          "type": "string"
                                        },
                                        {
                                          "type": "null"
                                        }
                                      ]
                                    },
                                    "prevName": {
                                      "anyOf": [
                                        {
                                          "type": "string"
                                        },
                                        {
                                          "type": "null"
                                        }
                                      ]
                                    },
                                    "prevPosition": {
                                      "anyOf": [
                                        {
                                          "type": "string"
                                        },
                                        {
                                          "type": "null"
                                        }
                                      ]
                                    },
                                    "scoreDelta": {
                                      "anyOf": [
                                        {
                                          "type": "number"
                                        },
                                        {
                                          "type": "null"
                                        }
                                      ]
                                    }
                                  },
                                  "required": [
                                    "at",
                                    "currName",
                                    "currPosition",
                                    "event",
                                    "prevName",
                                    "prevPosition",
                                    "scoreDelta"
                                  ]
                                }
                              },
                              "thumbnailUrl": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "topCategories": {
                                "type": "array",
                                "items": {
                                  "type": "object",
                                  "properties": {
                                    "category": {
                                      "type": "string"
                                    },
                                    "count": {
                                      "type": "number"
                                    }
                                  },
                                  "required": [
                                    "category",
                                    "count"
                                  ]
                                }
                              }
                            },
                            "required": [
                              "avgServicePriceGrosze",
                              "booksyUrl",
                              "city",
                              "coverPhotoUrl",
                              "endedPromotions",
                              "logoUrl",
                              "maxServicePriceGrosze",
                              "minServicePriceGrosze",
                              "promotions",
                              "promotionsCount",
                              "recentReviews",
                              "reviewCount",
                              "reviewVelocity",
                              "reviewsRank",
                              "salonName",
                              "salonRefId",
                              "scrapedAt",
                              "serviceCount",
                              "staff",
                              "staffCount",
                              "staffEvents",
                              "thumbnailUrl",
                              "topCategories"
                            ]
                          }
                        }
                      },
                      "required": [
                        "generatedAt",
                        "snapshots"
                      ]
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Blad"
          },
          "401": {
            "$ref": "#/components/responses/Blad"
          },
          "403": {
            "$ref": "#/components/responses/Blad"
          },
          "429": {
            "$ref": "#/components/responses/Blad"
          }
        }
      }
    },
    "/monitoring/reviews": {
      "get": {
        "tags": [
          "Monitoring konkurencji"
        ],
        "summary": "Nowe opinie u monitorowanych salonów.",
        "operationId": "monitoring_reviews_getWatchlistReviewFeed",
        "parameters": [
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "offset",
            "in": "query",
            "required": false,
            "schema": {
              "type": "number"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Wynik",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "properties": {
                        "hasMore": {
                          "type": "boolean"
                        },
                        "items": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "author": {
                                "type": "string"
                              },
                              "createdAt": {
                                "anyOf": [
                                  {
                                    "type": "number"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "hasReply": {
                                "type": "boolean"
                              },
                              "id": {
                                "type": "number"
                              },
                              "rank": {
                                "anyOf": [
                                  {
                                    "type": "number"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "salonId": {
                                "type": "number"
                              },
                              "text": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "title": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "treatment": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              }
                            },
                            "required": [
                              "author",
                              "createdAt",
                              "hasReply",
                              "id",
                              "rank",
                              "salonId",
                              "text",
                              "title",
                              "treatment"
                            ]
                          }
                        }
                      },
                      "required": [
                        "hasMore",
                        "items"
                      ]
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Blad"
          },
          "401": {
            "$ref": "#/components/responses/Blad"
          },
          "403": {
            "$ref": "#/components/responses/Blad"
          },
          "429": {
            "$ref": "#/components/responses/Blad"
          }
        }
      }
    },
    "/monitoring/salons/{salonId}/reviews": {
      "get": {
        "tags": [
          "Monitoring konkurencji"
        ],
        "summary": "Ostatnie opinie jednego salonu.",
        "operationId": "monitoring_reviews_getRecentReviews",
        "parameters": [
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "salonId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "number"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Wynik",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "author": {
                            "type": "string"
                          },
                          "createdAt": {
                            "anyOf": [
                              {
                                "type": "number"
                              },
                              {
                                "type": "null"
                              }
                            ]
                          },
                          "hasReply": {
                            "type": "boolean"
                          },
                          "rank": {
                            "anyOf": [
                              {
                                "type": "number"
                              },
                              {
                                "type": "null"
                              }
                            ]
                          },
                          "text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ]
                          },
                          "title": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ]
                          },
                          "treatment": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ]
                          }
                        },
                        "required": [
                          "author",
                          "createdAt",
                          "hasReply",
                          "rank",
                          "text",
                          "title",
                          "treatment"
                        ]
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Blad"
          },
          "401": {
            "$ref": "#/components/responses/Blad"
          },
          "403": {
            "$ref": "#/components/responses/Blad"
          },
          "429": {
            "$ref": "#/components/responses/Blad"
          }
        }
      }
    },
    "/monitoring/salons/{salonRefId}/analysis": {
      "get": {
        "tags": [
          "Monitoring konkurencji"
        ],
        "summary": "Analiza monitorowanego salonu.",
        "operationId": "competitor_monitoringAnalysis_getMonitoredSalonAnalysis",
        "parameters": [
          {
            "name": "salonRefId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "number"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Wynik",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "anyOf": [
                        {
                          "type": "null"
                        },
                        {
                          "type": "object",
                          "properties": {
                            "competitor": {},
                            "subject": {
                              "type": "object",
                              "properties": {
                                "city": {
                                  "anyOf": [
                                    {
                                      "type": "string"
                                    },
                                    {
                                      "type": "null"
                                    }
                                  ]
                                },
                                "lat": {
                                  "anyOf": [
                                    {
                                      "type": "number"
                                    },
                                    {
                                      "type": "null"
                                    }
                                  ]
                                },
                                "lng": {
                                  "anyOf": [
                                    {
                                      "type": "number"
                                    },
                                    {
                                      "type": "null"
                                    }
                                  ]
                                },
                                "name": {
                                  "anyOf": [
                                    {
                                      "type": "string"
                                    },
                                    {
                                      "type": "null"
                                    }
                                  ]
                                },
                                "salonId": {
                                  "anyOf": [
                                    {
                                      "type": "number"
                                    },
                                    {
                                      "type": "null"
                                    }
                                  ]
                                }
                              },
                              "required": [
                                "city",
                                "lat",
                                "lng",
                                "name",
                                "salonId"
                              ]
                            }
                          },
                          "required": [
                            "competitor",
                            "subject"
                          ]
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Blad"
          },
          "401": {
            "$ref": "#/components/responses/Blad"
          },
          "403": {
            "$ref": "#/components/responses/Blad"
          },
          "429": {
            "$ref": "#/components/responses/Blad"
          }
        }
      }
    },
    "/monitoring/ads": {
      "get": {
        "tags": [
          "Monitoring konkurencji"
        ],
        "summary": "Reklamy monitorowanych salonów (Meta).",
        "operationId": "monitoring_metaAds_getWatchlistMetaAds",
        "responses": {
          "200": {
            "description": "Wynik",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "properties": {
                        "ads": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "adArchiveId": {
                                "type": "string"
                              },
                              "creativeImageUrl": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "creativeText": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "creativeTitle": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "ctaText": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "ctaType": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "endedSeenAt": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "euTotalReach": {
                                "anyOf": [
                                  {
                                    "type": "number"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "firstSeenAt": {
                                "type": "string"
                              },
                              "formFields": {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              "isActive": {
                                "type": "boolean"
                              },
                              "isLeadForm": {
                                "type": "boolean"
                              },
                              "isVideo": {
                                "type": "boolean"
                              },
                              "pageName": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "platforms": {
                                "anyOf": [
                                  {
                                    "type": "array",
                                    "items": {
                                      "type": "string"
                                    }
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "salonName": {
                                "type": "string"
                              },
                              "salonRefId": {
                                "type": "number"
                              },
                              "startedRunningOn": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "variants": {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              "videoUrl": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              }
                            },
                            "required": [
                              "adArchiveId",
                              "creativeImageUrl",
                              "creativeText",
                              "creativeTitle",
                              "ctaText",
                              "ctaType",
                              "endedSeenAt",
                              "euTotalReach",
                              "firstSeenAt",
                              "formFields",
                              "isActive",
                              "isLeadForm",
                              "isVideo",
                              "pageName",
                              "platforms",
                              "salonName",
                              "salonRefId",
                              "startedRunningOn",
                              "variants",
                              "videoUrl"
                            ]
                          }
                        },
                        "coveredSalonIds": {
                          "type": "array",
                          "items": {
                            "type": "number"
                          }
                        },
                        "insights": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "communicationStyle": {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              "creatives": {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              "cta": {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              "forms": {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              "generatedAt": {
                                "type": "string"
                              },
                              "hooks": {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              "moves": {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              "narrative": {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              "salonRefId": {
                                "type": "number"
                              },
                              "summary": {
                                "type": "string"
                              },
                              "treatments": {
                                "type": "array",
                                "items": {
                                  "type": "object",
                                  "properties": {
                                    "adCount": {
                                      "type": "number"
                                    },
                                    "name": {
                                      "type": "string"
                                    }
                                  },
                                  "required": [
                                    "adCount",
                                    "name"
                                  ]
                                }
                              },
                              "winners": {
                                "type": "array",
                                "items": {
                                  "type": "object",
                                  "properties": {
                                    "adArchiveId": {
                                      "type": "string"
                                    },
                                    "whyItWorks": {
                                      "type": "string"
                                    }
                                  },
                                  "required": [
                                    "adArchiveId",
                                    "whyItWorks"
                                  ]
                                }
                              }
                            },
                            "required": [
                              "communicationStyle",
                              "creatives",
                              "cta",
                              "forms",
                              "generatedAt",
                              "hooks",
                              "moves",
                              "narrative",
                              "salonRefId",
                              "summary",
                              "treatments",
                              "winners"
                            ]
                          }
                        }
                      },
                      "required": [
                        "ads",
                        "coveredSalonIds",
                        "insights"
                      ]
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Blad"
          },
          "401": {
            "$ref": "#/components/responses/Blad"
          },
          "403": {
            "$ref": "#/components/responses/Blad"
          },
          "429": {
            "$ref": "#/components/responses/Blad"
          }
        }
      }
    },
    "/monitoring/ads/search": {
      "post": {
        "tags": [
          "Monitoring konkurencji"
        ],
        "summary": "Reklamy wskazanych salonów (Meta).",
        "operationId": "audit_metaAds_fetchCompetitorMetaAds",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "competitorNames": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  "limit": {
                    "type": "number"
                  }
                },
                "required": [
                  "competitorNames"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Wynik",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "properties": {
                        "ads": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "adText": {
                                "type": "string"
                              },
                              "linkTitle": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "pageId": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "pageName": {
                                "type": "string"
                              },
                              "snapshotUrl": {
                                "type": "string"
                              },
                              "startDate": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              }
                            },
                            "required": [
                              "adText",
                              "linkTitle",
                              "pageId",
                              "pageName",
                              "snapshotUrl",
                              "startDate"
                            ]
                          }
                        },
                        "status": {
                          "anyOf": [
                            {
                              "const": "ok"
                            },
                            {
                              "const": "no_token"
                            },
                            {
                              "const": "no_results"
                            }
                          ]
                        },
                        "totalFound": {
                          "type": "number"
                        }
                      },
                      "required": [
                        "ads",
                        "status",
                        "totalFound"
                      ]
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Blad"
          },
          "401": {
            "$ref": "#/components/responses/Blad"
          },
          "403": {
            "$ref": "#/components/responses/Blad"
          },
          "429": {
            "$ref": "#/components/responses/Blad"
          }
        }
      }
    },
    "/monitoring/schedule": {
      "get": {
        "tags": [
          "Monitoring konkurencji"
        ],
        "summary": "Kiedy było i będzie następne sprawdzenie.",
        "operationId": "monitoring_scheduleStatus_getMyScheduleStatus",
        "responses": {
          "200": {
            "description": "Wynik",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "properties": {
                        "goneSalonIds": {
                          "type": "array",
                          "items": {
                            "type": "number"
                          }
                        },
                        "lastScannedAt": {
                          "anyOf": [
                            {
                              "type": "number"
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "nextDueAt": {
                          "anyOf": [
                            {
                              "type": "number"
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "perSalon": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "lastScannedAt": {
                                "anyOf": [
                                  {
                                    "type": "number"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "salonId": {
                                "type": "number"
                              }
                            },
                            "required": [
                              "lastScannedAt",
                              "salonId"
                            ]
                          }
                        },
                        "scannedCount": {
                          "type": "number"
                        },
                        "totalScheduled": {
                          "type": "number"
                        }
                      },
                      "required": [
                        "goneSalonIds",
                        "lastScannedAt",
                        "nextDueAt",
                        "perSalon",
                        "scannedCount",
                        "totalScheduled"
                      ]
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Blad"
          },
          "401": {
            "$ref": "#/components/responses/Blad"
          },
          "403": {
            "$ref": "#/components/responses/Blad"
          },
          "429": {
            "$ref": "#/components/responses/Blad"
          }
        }
      }
    },
    "/monitoring/scan-now": {
      "post": {
        "tags": [
          "Monitoring konkurencji"
        ],
        "summary": "Sprawdzenie monitorowanych salonów teraz.",
        "operationId": "monitoring_scheduleStatus_forceScrapeNow",
        "responses": {
          "200": {
            "description": "Wynik",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "properties": {
                        "message": {
                          "type": "string"
                        },
                        "ok": {
                          "type": "boolean"
                        },
                        "scheduled": {
                          "type": "number"
                        }
                      },
                      "required": [
                        "message",
                        "ok",
                        "scheduled"
                      ]
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Blad"
          },
          "401": {
            "$ref": "#/components/responses/Blad"
          },
          "403": {
            "$ref": "#/components/responses/Blad"
          },
          "429": {
            "$ref": "#/components/responses/Blad"
          }
        }
      }
    },
    "/monitoring/cadence": {
      "patch": {
        "tags": [
          "Monitoring konkurencji"
        ],
        "summary": "Jak często sprawdzać salony (w godzinach).",
        "operationId": "monitoring_updateScanCadence",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "cadenceHours": {
                    "type": "number"
                  }
                },
                "required": [
                  "cadenceHours"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Wynik",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "null"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Blad"
          },
          "401": {
            "$ref": "#/components/responses/Blad"
          },
          "403": {
            "$ref": "#/components/responses/Blad"
          },
          "429": {
            "$ref": "#/components/responses/Blad"
          }
        }
      }
    },
    "/monitoring/notification-preferences": {
      "patch": {
        "tags": [
          "Monitoring konkurencji"
        ],
        "summary": "Powiadomienia z monitoringu.",
        "operationId": "monitoring_updateNotificationPrefs",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "newServices": {
                    "anyOf": [
                      {
                        "const": "instant"
                      },
                      {
                        "const": "daily"
                      },
                      {
                        "const": "weekly"
                      },
                      {
                        "const": "off"
                      }
                    ]
                  },
                  "priceChanges": {
                    "anyOf": [
                      {
                        "const": "instant"
                      },
                      {
                        "const": "daily"
                      },
                      {
                        "const": "weekly"
                      },
                      {
                        "const": "off"
                      }
                    ]
                  },
                  "promotions": {
                    "anyOf": [
                      {
                        "const": "instant"
                      },
                      {
                        "const": "daily"
                      },
                      {
                        "const": "weekly"
                      },
                      {
                        "const": "off"
                      }
                    ]
                  },
                  "reviews": {
                    "anyOf": [
                      {
                        "const": "instant"
                      },
                      {
                        "const": "daily"
                      },
                      {
                        "const": "weekly"
                      },
                      {
                        "const": "off"
                      }
                    ]
                  }
                },
                "required": [
                  "newServices",
                  "priceChanges",
                  "promotions",
                  "reviews"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Wynik",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "null"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Blad"
          },
          "401": {
            "$ref": "#/components/responses/Blad"
          },
          "403": {
            "$ref": "#/components/responses/Blad"
          },
          "429": {
            "$ref": "#/components/responses/Blad"
          }
        }
      }
    },
    "/monitoring/market-pulse": {
      "post": {
        "tags": [
          "Monitoring konkurencji"
        ],
        "summary": "Puls rynku dla wskazanych salonów.",
        "operationId": "competitor_actions_getMarketPulseMetrics",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "booksyIds": {
                    "type": "array",
                    "items": {
                      "type": "number"
                    }
                  },
                  "days": {
                    "type": "number"
                  }
                },
                "required": [
                  "booksyIds"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Wynik",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "booksyId": {
                            "type": "number"
                          },
                          "durationChanges": {
                            "type": "number"
                          },
                          "identityChanges": {
                            "type": "number"
                          },
                          "pairCount": {
                            "type": "number"
                          },
                          "priceChanges": {
                            "type": "number"
                          },
                          "promoAdded": {
                            "type": "number"
                          },
                          "promoRemoved": {
                            "type": "number"
                          },
                          "reviewsAdded": {
                            "type": "number"
                          },
                          "salonName": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ]
                          },
                          "servicesAdded": {
                            "type": "number"
                          },
                          "servicesRemoved": {
                            "type": "number"
                          },
                          "staffAdded": {
                            "type": "number"
                          },
                          "staffRemoved": {
                            "type": "number"
                          },
                          "totalChanges": {
                            "type": "number"
                          }
                        },
                        "required": [
                          "booksyId",
                          "durationChanges",
                          "identityChanges",
                          "pairCount",
                          "priceChanges",
                          "promoAdded",
                          "promoRemoved",
                          "reviewsAdded",
                          "salonName",
                          "servicesAdded",
                          "servicesRemoved",
                          "staffAdded",
                          "staffRemoved",
                          "totalChanges"
                        ]
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Blad"
          },
          "401": {
            "$ref": "#/components/responses/Blad"
          },
          "403": {
            "$ref": "#/components/responses/Blad"
          },
          "429": {
            "$ref": "#/components/responses/Blad"
          }
        }
      }
    },
    "/monitoring/top-services": {
      "post": {
        "tags": [
          "Monitoring konkurencji"
        ],
        "summary": "Najczęściej oferowane usługi wśród wskazanych salonów.",
        "operationId": "competitor_actions_getMarketTopServices",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "booksyIds": {
                    "type": "array",
                    "items": {
                      "type": "number"
                    }
                  },
                  "limit": {
                    "type": "number"
                  }
                },
                "required": [
                  "booksyIds"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Wynik",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "brandCount": {
                            "type": "number"
                          },
                          "sampleBrands": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            }
                          },
                          "serviceName": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "brandCount",
                          "sampleBrands",
                          "serviceName"
                        ]
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Blad"
          },
          "401": {
            "$ref": "#/components/responses/Blad"
          },
          "403": {
            "$ref": "#/components/responses/Blad"
          },
          "429": {
            "$ref": "#/components/responses/Blad"
          }
        }
      }
    },
    "/monitoring/service-detail": {
      "post": {
        "tags": [
          "Monitoring konkurencji"
        ],
        "summary": "Ceny jednej usługi u wskazanych salonów.",
        "operationId": "competitor_actions_getMarketServiceDetail",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "booksyIds": {
                    "type": "array",
                    "items": {
                      "type": "number"
                    }
                  },
                  "serviceName": {
                    "type": "string"
                  }
                },
                "required": [
                  "booksyIds",
                  "serviceName"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Wynik",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "booksyId": {
                            "type": "number"
                          },
                          "categoryName": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ]
                          },
                          "durationMin": {
                            "anyOf": [
                              {
                                "type": "number"
                              },
                              {
                                "type": "null"
                              }
                            ]
                          },
                          "isPromo": {
                            "type": "boolean"
                          },
                          "priceZl": {
                            "anyOf": [
                              {
                                "type": "number"
                              },
                              {
                                "type": "null"
                              }
                            ]
                          },
                          "promoPriceZl": {
                            "anyOf": [
                              {
                                "type": "number"
                              },
                              {
                                "type": "null"
                              }
                            ]
                          },
                          "salonName": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ]
                          },
                          "serviceName": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "booksyId",
                          "categoryName",
                          "durationMin",
                          "isPromo",
                          "priceZl",
                          "promoPriceZl",
                          "salonName",
                          "serviceName"
                        ]
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Blad"
          },
          "401": {
            "$ref": "#/components/responses/Blad"
          },
          "403": {
            "$ref": "#/components/responses/Blad"
          },
          "429": {
            "$ref": "#/components/responses/Blad"
          }
        }
      }
    },
    "/market/cities": {
      "get": {
        "tags": [
          "Analiza rynku"
        ],
        "summary": "Miasta dostępne w analizie rynku.",
        "operationId": "market_snapshot_getMarketCities",
        "responses": {
          "200": {
            "description": "Wynik",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "city": {
                            "type": "string"
                          },
                          "salonCount": {
                            "type": "number"
                          }
                        },
                        "required": [
                          "city",
                          "salonCount"
                        ]
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Blad"
          },
          "401": {
            "$ref": "#/components/responses/Blad"
          },
          "403": {
            "$ref": "#/components/responses/Blad"
          },
          "429": {
            "$ref": "#/components/responses/Blad"
          }
        }
      }
    },
    "/market/snapshot": {
      "post": {
        "tags": [
          "Analiza rynku"
        ],
        "summary": "Analiza rynku dla usługi i obszaru.",
        "description": "Może zużyć kredyt z pakietu.",
        "operationId": "market_snapshot_getMarketSnapshot",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "area": {
                    "anyOf": [
                      {
                        "type": "object",
                        "properties": {
                          "kind": {
                            "const": "point"
                          },
                          "lat": {
                            "type": "number"
                          },
                          "lng": {
                            "type": "number"
                          },
                          "radiusKm": {
                            "type": "number"
                          }
                        },
                        "required": [
                          "kind",
                          "lat",
                          "lng",
                          "radiusKm"
                        ]
                      },
                      {
                        "type": "object",
                        "properties": {
                          "city": {
                            "type": "string"
                          },
                          "kind": {
                            "const": "city"
                          }
                        },
                        "required": [
                          "city",
                          "kind"
                        ]
                      }
                    ]
                  },
                  "query": {
                    "type": "string"
                  }
                },
                "required": [
                  "area",
                  "query"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Wynik",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "properties": {
                        "engine": {
                          "type": "string"
                        },
                        "engineNote": {
                          "type": "string"
                        },
                        "groups": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "avgDurationMinutes": {
                                "anyOf": [
                                  {
                                    "type": "number"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "avgSimilarity": {
                                "type": "number"
                              },
                              "label": {
                                "type": "string"
                              },
                              "maxGrosze": {
                                "anyOf": [
                                  {
                                    "type": "number"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "medianGrosze": {
                                "type": "number"
                              },
                              "minGrosze": {
                                "anyOf": [
                                  {
                                    "type": "number"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "nDroppedByEngine": {
                                "type": "number"
                              },
                              "nOffers": {
                                "type": "number"
                              },
                              "nSalons": {
                                "type": "number"
                              },
                              "p25Grosze": {
                                "anyOf": [
                                  {
                                    "type": "number"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "p75Grosze": {
                                "anyOf": [
                                  {
                                    "type": "number"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "relation": {
                                "type": "string"
                              },
                              "reviewGrowth30d": {
                                "anyOf": [
                                  {
                                    "type": "number"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "reviewGrowthN": {
                                "type": "number"
                              },
                              "samples": {
                                "type": "array",
                                "items": {
                                  "type": "object",
                                  "properties": {
                                    "city": {
                                      "anyOf": [
                                        {
                                          "type": "string"
                                        },
                                        {
                                          "type": "null"
                                        }
                                      ]
                                    },
                                    "description": {
                                      "anyOf": [
                                        {
                                          "type": "string"
                                        },
                                        {
                                          "type": "null"
                                        }
                                      ]
                                    },
                                    "distanceM": {
                                      "anyOf": [
                                        {
                                          "type": "number"
                                        },
                                        {
                                          "type": "null"
                                        }
                                      ]
                                    },
                                    "durationMinutes": {
                                      "anyOf": [
                                        {
                                          "type": "number"
                                        },
                                        {
                                          "type": "null"
                                        }
                                      ]
                                    },
                                    "isFromPrice": {
                                      "type": "boolean"
                                    },
                                    "lat": {
                                      "anyOf": [
                                        {
                                          "type": "number"
                                        },
                                        {
                                          "type": "null"
                                        }
                                      ]
                                    },
                                    "lng": {
                                      "anyOf": [
                                        {
                                          "type": "number"
                                        },
                                        {
                                          "type": "null"
                                        }
                                      ]
                                    },
                                    "priceGrosze": {
                                      "type": "number"
                                    },
                                    "primaryCategoryId": {
                                      "anyOf": [
                                        {
                                          "type": "number"
                                        },
                                        {
                                          "type": "null"
                                        }
                                      ]
                                    },
                                    "primaryCategoryName": {
                                      "anyOf": [
                                        {
                                          "type": "string"
                                        },
                                        {
                                          "type": "null"
                                        }
                                      ]
                                    },
                                    "salonAddress": {
                                      "anyOf": [
                                        {
                                          "type": "string"
                                        },
                                        {
                                          "type": "null"
                                        }
                                      ]
                                    },
                                    "salonName": {
                                      "anyOf": [
                                        {
                                          "type": "string"
                                        },
                                        {
                                          "type": "null"
                                        }
                                      ]
                                    },
                                    "salonRefId": {
                                      "anyOf": [
                                        {
                                          "type": "number"
                                        },
                                        {
                                          "type": "null"
                                        }
                                      ]
                                    },
                                    "serviceId": {
                                      "anyOf": [
                                        {
                                          "type": "number"
                                        },
                                        {
                                          "type": "null"
                                        }
                                      ]
                                    },
                                    "serviceName": {
                                      "type": "string"
                                    },
                                    "similarity": {
                                      "type": "number"
                                    }
                                  },
                                  "required": [
                                    "city",
                                    "description",
                                    "distanceM",
                                    "durationMinutes",
                                    "isFromPrice",
                                    "lat",
                                    "lng",
                                    "priceGrosze",
                                    "primaryCategoryId",
                                    "primaryCategoryName",
                                    "salonAddress",
                                    "salonName",
                                    "salonRefId",
                                    "serviceId",
                                    "serviceName",
                                    "similarity"
                                  ]
                                }
                              },
                              "status": {
                                "type": "string"
                              }
                            },
                            "required": [
                              "avgDurationMinutes",
                              "avgSimilarity",
                              "label",
                              "maxGrosze",
                              "medianGrosze",
                              "minGrosze",
                              "nDroppedByEngine",
                              "nOffers",
                              "nSalons",
                              "p25Grosze",
                              "p75Grosze",
                              "reviewGrowth30d",
                              "reviewGrowthN",
                              "samples",
                              "status"
                            ]
                          }
                        },
                        "kartaFrazy": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          }
                        },
                        "nGroupsTotal": {
                          "type": "number"
                        },
                        "otherSamples": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "city": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "description": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "distanceM": {
                                "anyOf": [
                                  {
                                    "type": "number"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "durationMinutes": {
                                "anyOf": [
                                  {
                                    "type": "number"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "isFromPrice": {
                                "type": "boolean"
                              },
                              "lat": {
                                "anyOf": [
                                  {
                                    "type": "number"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "lng": {
                                "anyOf": [
                                  {
                                    "type": "number"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "priceGrosze": {
                                "type": "number"
                              },
                              "primaryCategoryId": {
                                "anyOf": [
                                  {
                                    "type": "number"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "primaryCategoryName": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "salonAddress": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "salonName": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "salonRefId": {
                                "anyOf": [
                                  {
                                    "type": "number"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "serviceId": {
                                "anyOf": [
                                  {
                                    "type": "number"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "serviceName": {
                                "type": "string"
                              },
                              "similarity": {
                                "type": "number"
                              }
                            },
                            "required": [
                              "city",
                              "description",
                              "distanceM",
                              "durationMinutes",
                              "isFromPrice",
                              "lat",
                              "lng",
                              "priceGrosze",
                              "primaryCategoryId",
                              "primaryCategoryName",
                              "salonAddress",
                              "salonName",
                              "salonRefId",
                              "serviceId",
                              "serviceName",
                              "similarity"
                            ]
                          }
                        },
                        "quota": {
                          "type": "object",
                          "properties": {
                            "dailyLimit": {
                              "type": "number"
                            },
                            "dokupione": {
                              "type": "number"
                            },
                            "remainingToday": {
                              "type": "number"
                            },
                            "usedToday": {
                              "type": "number"
                            }
                          },
                          "required": [
                            "dailyLimit",
                            "remainingToday",
                            "usedToday"
                          ]
                        },
                        "totalOffers": {
                          "type": "number"
                        },
                        "totalSalons": {
                          "type": "number"
                        }
                      },
                      "required": [
                        "groups",
                        "nGroupsTotal",
                        "otherSamples",
                        "quota",
                        "totalOffers",
                        "totalSalons"
                      ]
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Blad"
          },
          "401": {
            "$ref": "#/components/responses/Blad"
          },
          "403": {
            "$ref": "#/components/responses/Blad"
          },
          "429": {
            "$ref": "#/components/responses/Blad"
          }
        }
      }
    },
    "/market/quota": {
      "get": {
        "tags": [
          "Analiza rynku"
        ],
        "summary": "Ile analiz rynku zostało dziś i w pakiecie.",
        "operationId": "market_quota_getMyMarketSnapshotStatus",
        "responses": {
          "200": {
            "description": "Wynik",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "properties": {
                        "dailyLimit": {
                          "type": "number"
                        },
                        "defaultCity": {
                          "anyOf": [
                            {
                              "type": "string"
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "dokupione": {
                          "type": "number"
                        },
                        "hasAccess": {
                          "type": "boolean"
                        },
                        "pakiety": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "liczba": {
                                "type": "number"
                              },
                              "name": {
                                "type": "string"
                              },
                              "priceGrosze": {
                                "type": "number"
                              },
                              "slug": {
                                "type": "string"
                              }
                            },
                            "required": [
                              "liczba",
                              "name",
                              "priceGrosze",
                              "slug"
                            ]
                          }
                        },
                        "remainingToday": {
                          "type": "number"
                        },
                        "signedIn": {
                          "type": "boolean"
                        },
                        "usedToday": {
                          "type": "number"
                        }
                      },
                      "required": [
                        "dailyLimit",
                        "defaultCity",
                        "dokupione",
                        "hasAccess",
                        "pakiety",
                        "remainingToday",
                        "signedIn",
                        "usedToday"
                      ]
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Blad"
          },
          "401": {
            "$ref": "#/components/responses/Blad"
          },
          "403": {
            "$ref": "#/components/responses/Blad"
          },
          "429": {
            "$ref": "#/components/responses/Blad"
          }
        }
      }
    },
    "/market/progress": {
      "get": {
        "tags": [
          "Analiza rynku"
        ],
        "summary": "Postęp liczonej analizy rynku.",
        "operationId": "market_przebiegi_mojPostep",
        "responses": {
          "200": {
            "description": "Wynik",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "anyOf": [
                        {
                          "type": "null"
                        },
                        {
                          "type": "object",
                          "properties": {
                            "createdAt": {
                              "type": "number"
                            },
                            "etap": {
                              "type": "string"
                            },
                            "opis": {
                              "type": "string"
                            },
                            "query": {
                              "type": "string"
                            },
                            "status": {
                              "type": "string"
                            }
                          },
                          "required": [
                            "createdAt",
                            "etap",
                            "opis",
                            "query",
                            "status"
                          ]
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Blad"
          },
          "401": {
            "$ref": "#/components/responses/Blad"
          },
          "403": {
            "$ref": "#/components/responses/Blad"
          },
          "429": {
            "$ref": "#/components/responses/Blad"
          }
        }
      }
    },
    "/market/local": {
      "get": {
        "tags": [
          "Analiza rynku"
        ],
        "summary": "Rynek wokół salonu (promień w metrach).",
        "operationId": "audit_competitorReport_getLocalMarketData",
        "parameters": [
          {
            "name": "radiusMeters",
            "in": "query",
            "required": false,
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "subjectSalonId",
            "in": "query",
            "required": true,
            "schema": {
              "type": "number"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Wynik",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {}
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Blad"
          },
          "401": {
            "$ref": "#/components/responses/Blad"
          },
          "403": {
            "$ref": "#/components/responses/Blad"
          },
          "429": {
            "$ref": "#/components/responses/Blad"
          }
        }
      }
    },
    "/pricelists": {
      "get": {
        "tags": [
          "Cenniki"
        ],
        "summary": "Cenniki konta.",
        "operationId": "pricelists_getUserPricelists",
        "responses": {
          "200": {
            "description": "Wynik",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "_creationTime": {
                            "type": "number"
                          },
                          "_id": {
                            "type": "string",
                            "description": "Identyfikator (pricelists)"
                          },
                          "auditId": {
                            "type": "string",
                            "description": "Identyfikator (audits)"
                          },
                          "categoriesCount": {
                            "type": "number"
                          },
                          "categoryConfigJson": {
                            "type": "string"
                          },
                          "createdAt": {
                            "type": "number"
                          },
                          "isOptimized": {
                            "type": "boolean"
                          },
                          "name": {
                            "type": "string"
                          },
                          "opisanychUslug": {
                            "type": "number"
                          },
                          "optimizationJobId": {
                            "type": "string"
                          },
                          "optimizationResultJson": {
                            "type": "string"
                          },
                          "optimizationStatus": {
                            "type": "string"
                          },
                          "optimizedAt": {
                            "type": "number"
                          },
                          "optimizedFromPricelistId": {
                            "type": "string",
                            "description": "Identyfikator (pricelists)"
                          },
                          "optimizedVersionId": {
                            "type": "string",
                            "description": "Identyfikator (pricelists)"
                          },
                          "originalPricingDataJson": {
                            "type": "string"
                          },
                          "pricingDataJson": {
                            "type": "string"
                          },
                          "purchaseId": {
                            "type": "string",
                            "description": "Identyfikator (purchases)"
                          },
                          "servicesCount": {
                            "type": "number"
                          },
                          "source": {
                            "anyOf": [
                              {
                                "const": "manual"
                              },
                              {
                                "const": "booksy"
                              },
                              {
                                "const": "audit"
                              }
                            ]
                          },
                          "templateId": {
                            "type": "string"
                          },
                          "themeConfigJson": {
                            "type": "string"
                          },
                          "updatedAt": {
                            "type": "number"
                          },
                          "userId": {
                            "type": "string",
                            "description": "Identyfikator (users)"
                          }
                        },
                        "required": [
                          "_creationTime",
                          "_id",
                          "createdAt",
                          "name",
                          "pricingDataJson",
                          "source",
                          "userId"
                        ]
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Blad"
          },
          "401": {
            "$ref": "#/components/responses/Blad"
          },
          "403": {
            "$ref": "#/components/responses/Blad"
          },
          "429": {
            "$ref": "#/components/responses/Blad"
          }
        }
      },
      "post": {
        "tags": [
          "Cenniki"
        ],
        "summary": "Nowy cennik.",
        "operationId": "pricelists_savePricelist",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "auditId": {
                    "type": "string",
                    "description": "Identyfikator (audits)"
                  },
                  "name": {
                    "type": "string"
                  },
                  "pricingDataJson": {
                    "type": "string"
                  },
                  "source": {
                    "anyOf": [
                      {
                        "const": "manual"
                      },
                      {
                        "const": "booksy"
                      },
                      {
                        "const": "audit"
                      }
                    ]
                  },
                  "templateId": {
                    "type": "string"
                  },
                  "themeConfigJson": {
                    "type": "string"
                  }
                },
                "required": [
                  "name",
                  "pricingDataJson",
                  "source"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Wynik",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "string",
                      "description": "Identyfikator (pricelists)"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Blad"
          },
          "401": {
            "$ref": "#/components/responses/Blad"
          },
          "403": {
            "$ref": "#/components/responses/Blad"
          },
          "429": {
            "$ref": "#/components/responses/Blad"
          }
        }
      }
    },
    "/pricelists/summary": {
      "get": {
        "tags": [
          "Cenniki"
        ],
        "summary": "Podsumowanie cenników konta.",
        "operationId": "cenniki_dane_podsumujMoje",
        "responses": {
          "200": {
            "description": "Wynik",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "number"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Blad"
          },
          "401": {
            "$ref": "#/components/responses/Blad"
          },
          "403": {
            "$ref": "#/components/responses/Blad"
          },
          "429": {
            "$ref": "#/components/responses/Blad"
          }
        }
      }
    },
    "/pricelists/{pricelistId}": {
      "get": {
        "tags": [
          "Cenniki"
        ],
        "summary": "Jeden cennik.",
        "operationId": "pricelists_getPricelist",
        "parameters": [
          {
            "name": "pricelistId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Identyfikator (pricelists)"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Wynik",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "properties": {
                            "_creationTime": {
                              "type": "number"
                            },
                            "_id": {
                              "type": "string",
                              "description": "Identyfikator (pricelists)"
                            },
                            "auditId": {
                              "type": "string",
                              "description": "Identyfikator (audits)"
                            },
                            "categoriesCount": {
                              "type": "number"
                            },
                            "categoryConfigJson": {
                              "type": "string"
                            },
                            "createdAt": {
                              "type": "number"
                            },
                            "isOptimized": {
                              "type": "boolean"
                            },
                            "name": {
                              "type": "string"
                            },
                            "opisanychUslug": {
                              "type": "number"
                            },
                            "optimizationJobId": {
                              "type": "string"
                            },
                            "optimizationResultJson": {
                              "type": "string"
                            },
                            "optimizationStatus": {
                              "type": "string"
                            },
                            "optimizedAt": {
                              "type": "number"
                            },
                            "optimizedFromPricelistId": {
                              "type": "string",
                              "description": "Identyfikator (pricelists)"
                            },
                            "optimizedVersionId": {
                              "type": "string",
                              "description": "Identyfikator (pricelists)"
                            },
                            "originalPricingDataJson": {
                              "type": "string"
                            },
                            "pricingDataJson": {
                              "type": "string"
                            },
                            "purchaseId": {
                              "type": "string",
                              "description": "Identyfikator (purchases)"
                            },
                            "servicesCount": {
                              "type": "number"
                            },
                            "source": {
                              "anyOf": [
                                {
                                  "const": "manual"
                                },
                                {
                                  "const": "booksy"
                                },
                                {
                                  "const": "audit"
                                }
                              ]
                            },
                            "templateId": {
                              "type": "string"
                            },
                            "themeConfigJson": {
                              "type": "string"
                            },
                            "updatedAt": {
                              "type": "number"
                            },
                            "userId": {
                              "type": "string",
                              "description": "Identyfikator (users)"
                            }
                          },
                          "required": [
                            "_creationTime",
                            "_id",
                            "createdAt",
                            "name",
                            "pricingDataJson",
                            "source",
                            "userId"
                          ]
                        },
                        {
                          "type": "null"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Blad"
          },
          "401": {
            "$ref": "#/components/responses/Blad"
          },
          "403": {
            "$ref": "#/components/responses/Blad"
          },
          "429": {
            "$ref": "#/components/responses/Blad"
          }
        }
      },
      "patch": {
        "tags": [
          "Cenniki"
        ],
        "summary": "Zmiana cennika.",
        "operationId": "pricelists_updatePricelist",
        "parameters": [
          {
            "name": "pricelistId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Identyfikator (pricelists)"
            }
          }
        ],
        "requestBody": {
          "required": false,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "categoryConfigJson": {
                    "type": "string"
                  },
                  "isOptimized": {
                    "type": "boolean"
                  },
                  "name": {
                    "type": "string"
                  },
                  "optimizationResultJson": {
                    "type": "string"
                  },
                  "originalPricingDataJson": {
                    "type": "string"
                  },
                  "pricingDataJson": {
                    "type": "string"
                  },
                  "purchaseId": {
                    "type": "string",
                    "description": "Identyfikator (purchases)"
                  },
                  "templateId": {
                    "type": "string"
                  },
                  "themeConfigJson": {
                    "type": "string"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Wynik",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "null"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Blad"
          },
          "401": {
            "$ref": "#/components/responses/Blad"
          },
          "403": {
            "$ref": "#/components/responses/Blad"
          },
          "429": {
            "$ref": "#/components/responses/Blad"
          }
        }
      },
      "delete": {
        "tags": [
          "Cenniki"
        ],
        "summary": "Usunięcie cennika.",
        "operationId": "pricelists_deletePricelist",
        "parameters": [
          {
            "name": "pricelistId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Identyfikator (pricelists)"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Wynik",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "null"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Blad"
          },
          "401": {
            "$ref": "#/components/responses/Blad"
          },
          "403": {
            "$ref": "#/components/responses/Blad"
          },
          "429": {
            "$ref": "#/components/responses/Blad"
          }
        }
      }
    },
    "/pricelists/{pricelistId}/theme": {
      "patch": {
        "tags": [
          "Cenniki"
        ],
        "summary": "Zmiana wyglądu cennika.",
        "operationId": "pricelists_updatePricelistTheme",
        "parameters": [
          {
            "name": "pricelistId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Identyfikator (pricelists)"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "templateId": {
                    "type": "string"
                  },
                  "themeConfigJson": {
                    "type": "string"
                  }
                },
                "required": [
                  "templateId",
                  "themeConfigJson"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Wynik",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "null"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Blad"
          },
          "401": {
            "$ref": "#/components/responses/Blad"
          },
          "403": {
            "$ref": "#/components/responses/Blad"
          },
          "429": {
            "$ref": "#/components/responses/Blad"
          }
        }
      }
    },
    "/pricelists/{pricelistId}/refetch": {
      "post": {
        "tags": [
          "Cenniki"
        ],
        "summary": "Ponowne pobranie cennika z Booksy.",
        "operationId": "pricelists_refetchFromBooksy",
        "parameters": [
          {
            "name": "pricelistId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Identyfikator (pricelists)"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Wynik",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "properties": {
                        "auditId": {
                          "type": "string",
                          "description": "Identyfikator (audits)"
                        },
                        "message": {
                          "type": "string"
                        },
                        "success": {
                          "type": "boolean"
                        }
                      },
                      "required": [
                        "message",
                        "success"
                      ]
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Blad"
          },
          "401": {
            "$ref": "#/components/responses/Blad"
          },
          "403": {
            "$ref": "#/components/responses/Blad"
          },
          "429": {
            "$ref": "#/components/responses/Blad"
          }
        }
      }
    },
    "/pricelists/{pricelistId}/data": {
      "get": {
        "tags": [
          "Cenniki"
        ],
        "summary": "Treść cennika (kategorie i usługi).",
        "operationId": "cenniki_dane_pobierz",
        "parameters": [
          {
            "name": "pricelistId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Identyfikator (pricelists)"
            }
          },
          {
            "name": "publiczna",
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Wynik",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {}
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Blad"
          },
          "401": {
            "$ref": "#/components/responses/Blad"
          },
          "403": {
            "$ref": "#/components/responses/Blad"
          },
          "429": {
            "$ref": "#/components/responses/Blad"
          }
        }
      }
    },
    "/pricelists/{pricelistId}/access": {
      "get": {
        "tags": [
          "Cenniki"
        ],
        "summary": "Czy konto ma dostęp do cennika.",
        "operationId": "pricelists_checkPricelistAccess",
        "parameters": [
          {
            "name": "pricelistId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Identyfikator (pricelists)"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Wynik",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "properties": {
                        "hasAccess": {
                          "type": "boolean"
                        },
                        "hasIdentity": {
                          "type": "boolean"
                        },
                        "identityEmail": {
                          "type": "string"
                        },
                        "ownerEmail": {
                          "type": "string"
                        },
                        "pricelistExists": {
                          "type": "boolean"
                        },
                        "pricelistOwnerId": {
                          "type": "string"
                        },
                        "userFound": {
                          "type": "boolean"
                        },
                        "userId": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "hasAccess",
                        "hasIdentity",
                        "pricelistExists",
                        "userFound"
                      ]
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Blad"
          },
          "401": {
            "$ref": "#/components/responses/Blad"
          },
          "403": {
            "$ref": "#/components/responses/Blad"
          },
          "429": {
            "$ref": "#/components/responses/Blad"
          }
        }
      }
    },
    "/pricelists/{pricelistId}/publication": {
      "get": {
        "tags": [
          "Cenniki"
        ],
        "summary": "Stan publikacji zmian.",
        "operationId": "cenniki_publikacja_stan",
        "parameters": [
          {
            "name": "pricelistId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Identyfikator (pricelists)"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Wynik",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "anyOf": [
                        {
                          "type": "null"
                        },
                        {
                          "type": "object",
                          "properties": {
                            "name": {
                              "type": "string"
                            },
                            "pricingDataJson": {
                              "type": "string"
                            },
                            "publishedAt": {
                              "type": "number"
                            },
                            "templateId": {
                              "type": "string"
                            },
                            "themeConfigJson": {
                              "type": "string"
                            }
                          },
                          "required": [
                            "name",
                            "pricingDataJson",
                            "publishedAt"
                          ]
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Blad"
          },
          "401": {
            "$ref": "#/components/responses/Blad"
          },
          "403": {
            "$ref": "#/components/responses/Blad"
          },
          "429": {
            "$ref": "#/components/responses/Blad"
          }
        }
      }
    },
    "/pricelists/{pricelistId}/publish": {
      "post": {
        "tags": [
          "Cenniki"
        ],
        "summary": "Publikacja zmian cennika.",
        "operationId": "cenniki_publikacja_opublikuj",
        "parameters": [
          {
            "name": "pricelistId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Identyfikator (pricelists)"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Wynik",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "number"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Blad"
          },
          "401": {
            "$ref": "#/components/responses/Blad"
          },
          "403": {
            "$ref": "#/components/responses/Blad"
          },
          "429": {
            "$ref": "#/components/responses/Blad"
          }
        }
      }
    },
    "/pricelists/{pricelistId}/discard-changes": {
      "post": {
        "tags": [
          "Cenniki"
        ],
        "summary": "Odrzucenie nieopublikowanych zmian.",
        "operationId": "cenniki_publikacja_odrzucZmiany",
        "parameters": [
          {
            "name": "pricelistId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Identyfikator (pricelists)"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Wynik",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "null"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Blad"
          },
          "401": {
            "$ref": "#/components/responses/Blad"
          },
          "403": {
            "$ref": "#/components/responses/Blad"
          },
          "429": {
            "$ref": "#/components/responses/Blad"
          }
        }
      }
    },
    "/strategy": {
      "get": {
        "tags": [
          "Strategia salonu"
        ],
        "summary": "Aktywna strategia salonu.",
        "operationId": "strategy_sessions_getActiveStrategy",
        "responses": {
          "200": {
            "description": "Wynik",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {}
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Blad"
          },
          "401": {
            "$ref": "#/components/responses/Blad"
          },
          "403": {
            "$ref": "#/components/responses/Blad"
          },
          "429": {
            "$ref": "#/components/responses/Blad"
          }
        }
      },
      "post": {
        "tags": [
          "Strategia salonu"
        ],
        "summary": "Przygotowanie nowej strategii.",
        "operationId": "strategy_generate_generateSalonStrategy",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "auditId": {
                    "type": "string",
                    "description": "Identyfikator (audits)"
                  },
                  "businessDescription": {
                    "type": "string"
                  },
                  "focusServices": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  "generatePromoIdeas": {
                    "type": "boolean"
                  },
                  "generateServiceMockups": {
                    "type": "boolean"
                  },
                  "goals": {
                    "type": "string"
                  },
                  "targetCustomer": {
                    "type": "string"
                  }
                },
                "required": [
                  "businessDescription",
                  "targetCustomer"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Wynik",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "properties": {
                        "error": {
                          "type": "string"
                        },
                        "sessionId": {
                          "type": "string"
                        },
                        "success": {
                          "type": "boolean"
                        }
                      },
                      "required": [
                        "success"
                      ]
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Blad"
          },
          "401": {
            "$ref": "#/components/responses/Blad"
          },
          "403": {
            "$ref": "#/components/responses/Blad"
          },
          "429": {
            "$ref": "#/components/responses/Blad"
          }
        }
      }
    },
    "/strategy/latest": {
      "get": {
        "tags": [
          "Strategia salonu"
        ],
        "summary": "Ostatnio przygotowana strategia.",
        "operationId": "strategy_sessions_getLatest",
        "responses": {
          "200": {
            "description": "Wynik",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {}
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Blad"
          },
          "401": {
            "$ref": "#/components/responses/Blad"
          },
          "403": {
            "$ref": "#/components/responses/Blad"
          },
          "429": {
            "$ref": "#/components/responses/Blad"
          }
        }
      }
    },
    "/strategy/history": {
      "get": {
        "tags": [
          "Strategia salonu"
        ],
        "summary": "Wszystkie strategie konta.",
        "operationId": "strategy_sessions_getHistory",
        "responses": {
          "200": {
            "description": "Wynik",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {}
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Blad"
          },
          "401": {
            "$ref": "#/components/responses/Blad"
          },
          "403": {
            "$ref": "#/components/responses/Blad"
          },
          "429": {
            "$ref": "#/components/responses/Blad"
          }
        }
      }
    },
    "/strategy/active": {
      "put": {
        "tags": [
          "Strategia salonu"
        ],
        "summary": "Wybór aktywnej strategii.",
        "operationId": "strategy_sessions_setActiveStrategy",
        "requestBody": {
          "required": false,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "sessionId": {
                    "type": "string",
                    "description": "Identyfikator (salonStrategySessions)"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Wynik",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "null"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Blad"
          },
          "401": {
            "$ref": "#/components/responses/Blad"
          },
          "403": {
            "$ref": "#/components/responses/Blad"
          },
          "429": {
            "$ref": "#/components/responses/Blad"
          }
        }
      }
    },
    "/strategy/{sessionId}": {
      "delete": {
        "tags": [
          "Strategia salonu"
        ],
        "summary": "Usunięcie strategii.",
        "operationId": "strategy_sessions_deleteSession",
        "parameters": [
          {
            "name": "sessionId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Identyfikator (salonStrategySessions)"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Wynik",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "null"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Blad"
          },
          "401": {
            "$ref": "#/components/responses/Blad"
          },
          "403": {
            "$ref": "#/components/responses/Blad"
          },
          "429": {
            "$ref": "#/components/responses/Blad"
          }
        }
      }
    },
    "/strategy/{sessionId}/drill-down": {
      "post": {
        "tags": [
          "Strategia salonu"
        ],
        "summary": "Rozwinięcie sekcji strategii.",
        "operationId": "strategy_generate_drillDownSection",
        "parameters": [
          {
            "name": "sessionId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Identyfikator (salonStrategySessions)"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "question": {
                    "type": "string"
                  },
                  "sectionKey": {
                    "type": "string"
                  }
                },
                "required": [
                  "sectionKey"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Wynik",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "properties": {
                        "error": {
                          "type": "string"
                        },
                        "response": {
                          "type": "string"
                        },
                        "success": {
                          "type": "boolean"
                        }
                      },
                      "required": [
                        "success"
                      ]
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Blad"
          },
          "401": {
            "$ref": "#/components/responses/Blad"
          },
          "403": {
            "$ref": "#/components/responses/Blad"
          },
          "429": {
            "$ref": "#/components/responses/Blad"
          }
        }
      }
    },
    "/strategy/{sessionId}/steps/{stepIndex}": {
      "patch": {
        "tags": [
          "Strategia salonu"
        ],
        "summary": "Oznaczenie kroku strategii.",
        "operationId": "strategy_sessions_updateStepStatus",
        "parameters": [
          {
            "name": "sessionId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Identyfikator (salonStrategySessions)"
            }
          },
          {
            "name": "stepIndex",
            "in": "path",
            "required": true,
            "schema": {
              "type": "number"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "completed": {
                    "type": "boolean"
                  }
                },
                "required": [
                  "completed"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Wynik",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "null"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Blad"
          },
          "401": {
            "$ref": "#/components/responses/Blad"
          },
          "403": {
            "$ref": "#/components/responses/Blad"
          },
          "429": {
            "$ref": "#/components/responses/Blad"
          }
        }
      }
    },
    "/strategy/{sessionId}/tasks/{taskIndex}": {
      "patch": {
        "tags": [
          "Strategia salonu"
        ],
        "summary": "Oznaczenie zadania strategii.",
        "operationId": "strategy_sessions_updateTaskStatus",
        "parameters": [
          {
            "name": "sessionId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Identyfikator (salonStrategySessions)"
            }
          },
          {
            "name": "taskIndex",
            "in": "path",
            "required": true,
            "schema": {
              "type": "number"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "completed": {
                    "type": "boolean"
                  }
                },
                "required": [
                  "completed"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Wynik",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "null"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Blad"
          },
          "401": {
            "$ref": "#/components/responses/Blad"
          },
          "403": {
            "$ref": "#/components/responses/Blad"
          },
          "429": {
            "$ref": "#/components/responses/Blad"
          }
        }
      }
    },
    "/strategy/prefill": {
      "get": {
        "tags": [
          "Strategia salonu"
        ],
        "summary": "Podpowiedzi do formularza strategii.",
        "operationId": "strategy_prefill_getStrategyPrefill",
        "parameters": [
          {
            "name": "auditId",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "description": "Identyfikator (audits)"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Wynik",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "properties": {
                        "auditCompletedAt": {
                          "anyOf": [
                            {
                              "type": "null"
                            },
                            {
                              "type": "number"
                            }
                          ]
                        },
                        "auditScore": {
                          "anyOf": [
                            {
                              "type": "null"
                            },
                            {
                              "type": "number"
                            }
                          ]
                        },
                        "categories": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          }
                        },
                        "facts": {
                          "type": "object",
                          "properties": {
                            "booksyDescription": {
                              "anyOf": [
                                {
                                  "type": "null"
                                },
                                {
                                  "type": "string"
                                }
                              ]
                            },
                            "businessCategories": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              }
                            },
                            "city": {
                              "anyOf": [
                                {
                                  "type": "null"
                                },
                                {
                                  "type": "string"
                                }
                              ]
                            },
                            "instagram": {
                              "anyOf": [
                                {
                                  "type": "null"
                                },
                                {
                                  "type": "string"
                                }
                              ]
                            },
                            "priceListScrapedAt": {
                              "anyOf": [
                                {
                                  "type": "null"
                                },
                                {
                                  "type": "string"
                                }
                              ]
                            },
                            "reviewsCount": {
                              "anyOf": [
                                {
                                  "type": "null"
                                },
                                {
                                  "type": "number"
                                }
                              ]
                            },
                            "reviewsRank": {
                              "anyOf": [
                                {
                                  "type": "null"
                                },
                                {
                                  "type": "number"
                                }
                              ]
                            },
                            "servicesCount": {
                              "anyOf": [
                                {
                                  "type": "null"
                                },
                                {
                                  "type": "number"
                                }
                              ]
                            },
                            "staffCount": {
                              "anyOf": [
                                {
                                  "type": "null"
                                },
                                {
                                  "type": "number"
                                }
                              ]
                            },
                            "website": {
                              "anyOf": [
                                {
                                  "type": "null"
                                },
                                {
                                  "type": "string"
                                }
                              ]
                            }
                          },
                          "required": [
                            "booksyDescription",
                            "businessCategories",
                            "city",
                            "instagram",
                            "priceListScrapedAt",
                            "reviewsCount",
                            "reviewsRank",
                            "servicesCount",
                            "staffCount",
                            "website"
                          ]
                        },
                        "hasAudit": {
                          "type": "boolean"
                        },
                        "hasCompetitorReport": {
                          "type": "boolean"
                        },
                        "salonAddress": {
                          "anyOf": [
                            {
                              "type": "null"
                            },
                            {
                              "type": "string"
                            }
                          ]
                        },
                        "salonName": {
                          "anyOf": [
                            {
                              "type": "null"
                            },
                            {
                              "type": "string"
                            }
                          ]
                        },
                        "services": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "category": {
                                "anyOf": [
                                  {
                                    "type": "null"
                                  },
                                  {
                                    "type": "string"
                                  }
                                ]
                              },
                              "name": {
                                "type": "string"
                              },
                              "price": {
                                "anyOf": [
                                  {
                                    "type": "null"
                                  },
                                  {
                                    "type": "string"
                                  }
                                ]
                              }
                            },
                            "required": [
                              "category",
                              "name",
                              "price"
                            ]
                          }
                        },
                        "suggestedBusinessDescription": {
                          "anyOf": [
                            {
                              "type": "null"
                            },
                            {
                              "type": "string"
                            }
                          ]
                        }
                      },
                      "required": [
                        "auditCompletedAt",
                        "auditScore",
                        "categories",
                        "facts",
                        "hasAudit",
                        "hasCompetitorReport",
                        "salonAddress",
                        "salonName",
                        "services",
                        "suggestedBusinessDescription"
                      ]
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Blad"
          },
          "401": {
            "$ref": "#/components/responses/Blad"
          },
          "403": {
            "$ref": "#/components/responses/Blad"
          },
          "429": {
            "$ref": "#/components/responses/Blad"
          }
        }
      }
    },
    "/strategy/salons": {
      "get": {
        "tags": [
          "Strategia salonu"
        ],
        "summary": "Salony, dla których można przygotować strategię.",
        "operationId": "strategy_prefill_listStrategySalons",
        "responses": {
          "200": {
            "description": "Wynik",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "auditId": {
                            "type": "string",
                            "description": "Identyfikator (audits)"
                          },
                          "competitorOnly": {
                            "type": "boolean"
                          },
                          "completedAt": {
                            "anyOf": [
                              {
                                "type": "null"
                              },
                              {
                                "type": "number"
                              }
                            ]
                          },
                          "hasCompetitorReport": {
                            "type": "boolean"
                          },
                          "isBase": {
                            "type": "boolean"
                          },
                          "overallScore": {
                            "anyOf": [
                              {
                                "type": "null"
                              },
                              {
                                "type": "number"
                              }
                            ]
                          },
                          "salonAddress": {
                            "anyOf": [
                              {
                                "type": "null"
                              },
                              {
                                "type": "string"
                              }
                            ]
                          },
                          "salonName": {
                            "type": "string"
                          },
                          "strategyAllowed": {
                            "type": "boolean"
                          }
                        },
                        "required": [
                          "auditId",
                          "competitorOnly",
                          "completedAt",
                          "hasCompetitorReport",
                          "isBase",
                          "overallScore",
                          "salonAddress",
                          "salonName",
                          "strategyAllowed"
                        ]
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Blad"
          },
          "401": {
            "$ref": "#/components/responses/Blad"
          },
          "403": {
            "$ref": "#/components/responses/Blad"
          },
          "429": {
            "$ref": "#/components/responses/Blad"
          }
        }
      }
    },
    "/strategy/salon-summary": {
      "post": {
        "tags": [
          "Strategia salonu"
        ],
        "summary": "Opis salonu na podstawie audytu.",
        "operationId": "strategy_podsumowanieSalonu_summarizeSalonForStrategy",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "auditId": {
                    "type": "string",
                    "description": "Identyfikator (audits)"
                  }
                },
                "required": [
                  "auditId"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Wynik",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "properties": {
                        "error": {
                          "type": "string"
                        },
                        "ok": {
                          "type": "boolean"
                        },
                        "summary": {
                          "type": "object",
                          "properties": {
                            "description": {
                              "type": "string"
                            },
                            "focusServices": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              }
                            },
                            "goals": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              }
                            },
                            "notOffered": {
                              "type": "string"
                            },
                            "reasoning": {
                              "type": "string"
                            },
                            "targetGroups": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              }
                            }
                          },
                          "required": [
                            "description",
                            "focusServices",
                            "goals",
                            "notOffered",
                            "reasoning",
                            "targetGroups"
                          ]
                        }
                      },
                      "required": [
                        "ok"
                      ]
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Blad"
          },
          "401": {
            "$ref": "#/components/responses/Blad"
          },
          "403": {
            "$ref": "#/components/responses/Blad"
          },
          "429": {
            "$ref": "#/components/responses/Blad"
          }
        }
      }
    },
    "/campaigns": {
      "get": {
        "tags": [
          "Kampanie reklamowe"
        ],
        "summary": "Kampanie reklamowe konta.",
        "operationId": "campaigns_listMyCampaigns",
        "responses": {
          "200": {
            "description": "Wynik",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "_creationTime": {
                            "type": "number"
                          },
                          "_id": {
                            "type": "string",
                            "description": "Identyfikator (campaigns)"
                          },
                          "auditId": {
                            "type": "string",
                            "description": "Identyfikator (audits)"
                          },
                          "createdAt": {
                            "type": "number"
                          },
                          "dailyBudgetPln": {
                            "type": "number"
                          },
                          "healthRegulated": {
                            "type": "boolean"
                          },
                          "name": {
                            "type": "string"
                          },
                          "objective": {
                            "type": "string"
                          },
                          "primaryCategory": {
                            "type": "string"
                          },
                          "status": {
                            "type": "string"
                          },
                          "tier": {
                            "type": "string"
                          },
                          "updatedAt": {
                            "type": "number"
                          }
                        },
                        "required": [
                          "_creationTime",
                          "_id",
                          "createdAt",
                          "dailyBudgetPln",
                          "healthRegulated",
                          "name",
                          "objective",
                          "primaryCategory",
                          "status",
                          "tier",
                          "updatedAt"
                        ]
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Blad"
          },
          "401": {
            "$ref": "#/components/responses/Blad"
          },
          "403": {
            "$ref": "#/components/responses/Blad"
          },
          "429": {
            "$ref": "#/components/responses/Blad"
          }
        }
      }
    },
    "/campaigns/{campaignId}/metrics": {
      "get": {
        "tags": [
          "Kampanie reklamowe"
        ],
        "summary": "Wyniki kampanii dzień po dniu.",
        "operationId": "campaigns_getCampaignDailyMetrics",
        "parameters": [
          {
            "name": "campaignId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Identyfikator (campaigns)"
            }
          },
          {
            "name": "daysBack",
            "in": "query",
            "required": false,
            "schema": {
              "type": "number"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Wynik",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "attributedBookings": {
                            "type": "number"
                          },
                          "clicks": {
                            "type": "number"
                          },
                          "cpbPln": {
                            "type": "number"
                          },
                          "cpcPln": {
                            "type": "number"
                          },
                          "cplPln": {
                            "type": "number"
                          },
                          "ctrPct": {
                            "type": "number"
                          },
                          "date": {
                            "type": "string"
                          },
                          "impressions": {
                            "type": "number"
                          },
                          "spendPln": {
                            "type": "number"
                          }
                        },
                        "required": [
                          "attributedBookings",
                          "clicks",
                          "cpcPln",
                          "ctrPct",
                          "date",
                          "impressions",
                          "spendPln"
                        ]
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Blad"
          },
          "401": {
            "$ref": "#/components/responses/Blad"
          },
          "403": {
            "$ref": "#/components/responses/Blad"
          },
          "429": {
            "$ref": "#/components/responses/Blad"
          }
        }
      }
    },
    "/campaigns/{campaignId}/approve": {
      "post": {
        "tags": [
          "Kampanie reklamowe"
        ],
        "summary": "Akceptacja projektu kampanii.",
        "operationId": "campaigns_approveCampaignDraft",
        "parameters": [
          {
            "name": "campaignId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Identyfikator (campaigns)"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Wynik",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "null"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Blad"
          },
          "401": {
            "$ref": "#/components/responses/Blad"
          },
          "403": {
            "$ref": "#/components/responses/Blad"
          },
          "429": {
            "$ref": "#/components/responses/Blad"
          }
        }
      }
    },
    "/campaigns/{campaignId}/status": {
      "patch": {
        "tags": [
          "Kampanie reklamowe"
        ],
        "summary": "Wstrzymanie albo wznowienie kampanii.",
        "operationId": "campaigns_setCampaignStatus",
        "parameters": [
          {
            "name": "campaignId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Identyfikator (campaigns)"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "status": {
                    "anyOf": [
                      {
                        "const": "paused"
                      },
                      {
                        "const": "active"
                      },
                      {
                        "const": "archived"
                      }
                    ]
                  }
                },
                "required": [
                  "status"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Wynik",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "null"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Blad"
          },
          "401": {
            "$ref": "#/components/responses/Blad"
          },
          "403": {
            "$ref": "#/components/responses/Blad"
          },
          "429": {
            "$ref": "#/components/responses/Blad"
          }
        }
      }
    },
    "/notifications": {
      "get": {
        "tags": [
          "Powiadomienia"
        ],
        "summary": "Powiadomienia konta.",
        "operationId": "notifications_getUserNotifications",
        "parameters": [
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "unreadOnly",
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Wynik",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "_creationTime": {
                            "type": "number"
                          },
                          "_id": {
                            "type": "string",
                            "description": "Identyfikator (notifications)"
                          },
                          "createdAt": {
                            "type": "number"
                          },
                          "link": {
                            "type": "string"
                          },
                          "message": {
                            "type": "string"
                          },
                          "read": {
                            "type": "boolean"
                          },
                          "relatedId": {
                            "type": "string"
                          },
                          "title": {
                            "type": "string"
                          },
                          "type": {
                            "anyOf": [
                              {
                                "const": "optimization_started"
                              },
                              {
                                "const": "optimization_completed"
                              },
                              {
                                "const": "optimization_failed"
                              },
                              {
                                "const": "audit_completed"
                              },
                              {
                                "const": "audit_failed"
                              },
                              {
                                "const": "payment_confirmed"
                              },
                              {
                                "const": "payment_verified"
                              },
                              {
                                "const": "competitor_report_ready"
                              },
                              {
                                "const": "competitor_report_failed"
                              },
                              {
                                "const": "monitoring_alert"
                              },
                              {
                                "const": "system"
                              }
                            ]
                          },
                          "userId": {
                            "type": "string",
                            "description": "Identyfikator (users)"
                          }
                        },
                        "required": [
                          "_creationTime",
                          "_id",
                          "createdAt",
                          "message",
                          "read",
                          "title",
                          "type",
                          "userId"
                        ]
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Blad"
          },
          "401": {
            "$ref": "#/components/responses/Blad"
          },
          "403": {
            "$ref": "#/components/responses/Blad"
          },
          "429": {
            "$ref": "#/components/responses/Blad"
          }
        }
      }
    },
    "/notifications/unread-count": {
      "get": {
        "tags": [
          "Powiadomienia"
        ],
        "summary": "Liczba nieprzeczytanych powiadomień.",
        "operationId": "notifications_getUnreadCount",
        "responses": {
          "200": {
            "description": "Wynik",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "number"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Blad"
          },
          "401": {
            "$ref": "#/components/responses/Blad"
          },
          "403": {
            "$ref": "#/components/responses/Blad"
          },
          "429": {
            "$ref": "#/components/responses/Blad"
          }
        }
      }
    },
    "/notifications/{notificationId}/read": {
      "post": {
        "tags": [
          "Powiadomienia"
        ],
        "summary": "Oznaczenie powiadomienia jako przeczytanego.",
        "operationId": "notifications_markAsRead",
        "parameters": [
          {
            "name": "notificationId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Identyfikator (notifications)"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Wynik",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "null"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Blad"
          },
          "401": {
            "$ref": "#/components/responses/Blad"
          },
          "403": {
            "$ref": "#/components/responses/Blad"
          },
          "429": {
            "$ref": "#/components/responses/Blad"
          }
        }
      }
    },
    "/notifications/read-all": {
      "post": {
        "tags": [
          "Powiadomienia"
        ],
        "summary": "Oznaczenie wszystkich jako przeczytanych.",
        "operationId": "notifications_markAllAsRead",
        "responses": {
          "200": {
            "description": "Wynik",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "null"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Blad"
          },
          "401": {
            "$ref": "#/components/responses/Blad"
          },
          "403": {
            "$ref": "#/components/responses/Blad"
          },
          "429": {
            "$ref": "#/components/responses/Blad"
          }
        }
      }
    },
    "/versum/salon": {
      "get": {
        "tags": [
          "Mapowanie usług Versum"
        ],
        "summary": "Salon Versum konta.",
        "operationId": "audit_versumMappings_getVersumSalonForCurrentUser",
        "responses": {
          "200": {
            "description": "Wynik",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "properties": {
                            "auditId": {
                              "type": "string",
                              "description": "Identyfikator (audits)"
                            },
                            "booksyId": {
                              "type": "number"
                            },
                            "partnerSystem": {
                              "type": "string"
                            },
                            "salonId": {
                              "type": "number"
                            },
                            "salonName": {
                              "type": "string"
                            }
                          },
                          "required": [
                            "auditId",
                            "booksyId",
                            "partnerSystem",
                            "salonId",
                            "salonName"
                          ]
                        },
                        {
                          "type": "null"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Blad"
          },
          "401": {
            "$ref": "#/components/responses/Blad"
          },
          "403": {
            "$ref": "#/components/responses/Blad"
          },
          "429": {
            "$ref": "#/components/responses/Blad"
          }
        }
      }
    },
    "/versum/taxonomy": {
      "get": {
        "tags": [
          "Mapowanie usług Versum"
        ],
        "summary": "Lista zabiegów Booksy do mapowania.",
        "operationId": "audit_versumMappings_getBooksyTreatmentTaxonomy",
        "responses": {
          "200": {
            "description": "Wynik",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "occurrenceCount": {
                            "type": "number"
                          },
                          "parentCategoryName": {
                            "type": "string"
                          },
                          "treatmentId": {
                            "type": "number"
                          },
                          "treatmentName": {
                            "type": "string"
                          },
                          "treatmentParentId": {
                            "type": "number"
                          }
                        },
                        "required": [
                          "occurrenceCount",
                          "treatmentId",
                          "treatmentName"
                        ]
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Blad"
          },
          "401": {
            "$ref": "#/components/responses/Blad"
          },
          "403": {
            "$ref": "#/components/responses/Blad"
          },
          "429": {
            "$ref": "#/components/responses/Blad"
          }
        }
      }
    },
    "/versum/salons/{salonId}/unmapped": {
      "get": {
        "tags": [
          "Mapowanie usług Versum"
        ],
        "summary": "Usługi Versum bez przypisanego zabiegu.",
        "operationId": "audit_versumMappings_getUnmappedVersumServices",
        "parameters": [
          {
            "name": "salonId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "number"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Wynik",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "booksyServiceId": {
                            "type": "number"
                          },
                          "categoryName": {
                            "type": "string"
                          },
                          "description": {
                            "type": "string"
                          },
                          "durationMinutes": {
                            "type": "number"
                          },
                          "existingMapping": {
                            "type": "object",
                            "properties": {
                              "confidence": {
                                "type": "string"
                              },
                              "mappedAt": {
                                "type": "number"
                              },
                              "mappedTreatmentId": {
                                "type": "number"
                              },
                              "mappedTreatmentParentId": {
                                "type": "number"
                              }
                            },
                            "required": [
                              "confidence",
                              "mappedAt",
                              "mappedTreatmentId"
                            ]
                          },
                          "name": {
                            "type": "string"
                          },
                          "priceGrosze": {
                            "type": "number"
                          },
                          "variants": {}
                        },
                        "required": [
                          "booksyServiceId",
                          "name"
                        ]
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Blad"
          },
          "401": {
            "$ref": "#/components/responses/Blad"
          },
          "403": {
            "$ref": "#/components/responses/Blad"
          },
          "429": {
            "$ref": "#/components/responses/Blad"
          }
        }
      }
    },
    "/versum/salons/{salonId}/progress": {
      "get": {
        "tags": [
          "Mapowanie usług Versum"
        ],
        "summary": "Postęp mapowania.",
        "operationId": "audit_versumMappings_getVersumMappingProgress",
        "parameters": [
          {
            "name": "salonId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "number"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Wynik",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "properties": {
                        "mappedServices": {
                          "type": "number"
                        },
                        "partnerSystem": {
                          "type": "string"
                        },
                        "progressPct": {
                          "type": "number"
                        },
                        "totalServices": {
                          "type": "number"
                        }
                      },
                      "required": [
                        "mappedServices",
                        "partnerSystem",
                        "progressPct",
                        "totalServices"
                      ]
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Blad"
          },
          "401": {
            "$ref": "#/components/responses/Blad"
          },
          "403": {
            "$ref": "#/components/responses/Blad"
          },
          "429": {
            "$ref": "#/components/responses/Blad"
          }
        }
      }
    },
    "/versum/suggest": {
      "post": {
        "tags": [
          "Mapowanie usług Versum"
        ],
        "summary": "Propozycje przypisań dla usług.",
        "operationId": "audit_versumMappings_suggestVersumMappings",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "services": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "categoryName": {
                          "type": "string"
                        },
                        "description": {
                          "type": "string"
                        },
                        "name": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "name"
                      ]
                    }
                  }
                },
                "required": [
                  "services"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Wynik",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "properties": {
                        "jobId": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "jobId"
                      ]
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Blad"
          },
          "401": {
            "$ref": "#/components/responses/Blad"
          },
          "403": {
            "$ref": "#/components/responses/Blad"
          },
          "429": {
            "$ref": "#/components/responses/Blad"
          }
        }
      }
    },
    "/versum/suggest/{jobId}": {
      "get": {
        "tags": [
          "Mapowanie usług Versum"
        ],
        "summary": "Wynik propozycji przypisań.",
        "operationId": "audit_versumMappings_getVersumSuggestResult",
        "parameters": [
          {
            "name": "jobId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Wynik",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "properties": {
                        "data": {
                          "type": "object",
                          "properties": {
                            "serviceCount": {
                              "type": "number"
                            },
                            "suggestionCount": {
                              "type": "number"
                            },
                            "suggestions": {
                              "type": "array",
                              "items": {
                                "type": "object",
                                "properties": {
                                  "confidence": {
                                    "type": "number"
                                  },
                                  "reason": {
                                    "type": "string"
                                  },
                                  "serviceIndex": {
                                    "type": "number"
                                  },
                                  "treatmentId": {
                                    "type": "number"
                                  },
                                  "treatmentName": {
                                    "type": "string"
                                  }
                                },
                                "required": [
                                  "confidence",
                                  "reason",
                                  "serviceIndex",
                                  "treatmentId",
                                  "treatmentName"
                                ]
                              }
                            }
                          },
                          "required": [
                            "serviceCount",
                            "suggestionCount",
                            "suggestions"
                          ]
                        },
                        "error": {
                          "type": "string"
                        },
                        "progress": {
                          "type": "number"
                        },
                        "progressMessage": {
                          "type": "string"
                        },
                        "status": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "status"
                      ]
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Blad"
          },
          "401": {
            "$ref": "#/components/responses/Blad"
          },
          "403": {
            "$ref": "#/components/responses/Blad"
          },
          "429": {
            "$ref": "#/components/responses/Blad"
          }
        }
      }
    }
  }
}
