{
  "openapi" : "3.1.0",
  "components" : {
    "schemas" : {
      "CardBookmarkDto" : {
        "type" : "object",
        "properties" : {
          "id" : {
            "type" : "integer",
            "format" : "int64"
          },
          "createdAt" : {
            "type" : "string"
          },
          "userId" : {
            "type" : "string"
          },
          "cardId" : {
            "type" : "integer",
            "format" : "int64"
          }
        }
      },
      "CardCreateDto" : {
        "type" : "object",
        "required" : [ "mainPatent", "secondaryPatents" ],
        "properties" : {
          "hasCoOwnersConsent" : {
            "type" : "boolean"
          },
          "acceptsResponsibilityStatement" : {
            "type" : "boolean"
          },
          "acceptsTermsAndConditions" : {
            "type" : "boolean"
          },
          "mainPatent" : {
            "$ref" : "#/components/schemas/PatentDto"
          },
          "secondaryPatents" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/PatentDto"
            }
          },
          "title" : {
            "type" : "string"
          },
          "knowledgeShare" : {
            "type" : "string"
          },
          "introduction" : {
            "type" : "string"
          },
          "thumbnailS3Key" : {
            "type" : "string"
          },
          "finalProduct" : {
            "type" : "array",
            "uniqueItems" : true,
            "items" : {
              "type" : "integer",
              "format" : "int64"
            }
          },
          "sector" : {
            "type" : "array",
            "uniqueItems" : true,
            "items" : {
              "type" : "integer",
              "format" : "int64"
            }
          },
          "trl" : {
            "type" : "integer",
            "format" : "int64"
          },
          "tag" : {
            "type" : "array",
            "uniqueItems" : true,
            "items" : {
              "type" : "integer",
              "format" : "int64"
            }
          },
          "relationshipType" : {
            "type" : "array",
            "uniqueItems" : true,
            "items" : {
              "type" : "integer",
              "format" : "int64"
            }
          },
          "publiclyFunded" : {
            "type" : "boolean"
          },
          "hasWonAwards" : {
            "type" : "boolean"
          },
          "publicFundsDetails" : {
            "type" : "string"
          },
          "awardsDetails" : {
            "type" : "string"
          },
          "technicalFeatures" : {
            "type" : "string"
          },
          "supportImageS3Keys" : {
            "type" : "array",
            "uniqueItems" : true,
            "items" : {
              "type" : "string"
            }
          },
          "supportVideoS3Keys" : {
            "type" : "array",
            "uniqueItems" : true,
            "items" : {
              "type" : "string"
            }
          },
          "presentationS3Key" : {
            "type" : "string"
          },
          "supportDocumentS3Keys" : {
            "type" : "array",
            "uniqueItems" : true,
            "items" : {
              "type" : "string"
            }
          },
          "possibleApplications" : {
            "type" : "string"
          },
          "benefits" : {
            "type" : "string"
          },
          "challenges" : {
            "type" : "string"
          },
          "cardsRelatedIds" : {
            "type" : "array",
            "items" : {
              "type" : "integer",
              "format" : "int64"
            }
          }
        }
      },
      "CardDetailDto" : {
        "type" : "object",
        "properties" : {
          "id" : {
            "type" : "integer",
            "format" : "int64"
          },
          "createdAt" : {
            "type" : "string"
          },
          "active" : {
            "type" : "boolean"
          },
          "hasCoOwnersConsent" : {
            "type" : "boolean"
          },
          "acceptsResponsibilityStatement" : {
            "type" : "boolean"
          },
          "acceptsTermsAndConditions" : {
            "type" : "boolean"
          },
          "mainPatent" : {
            "$ref" : "#/components/schemas/PatentDto"
          },
          "secondaryPatents" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/PatentDto"
            }
          },
          "title" : {
            "type" : "string"
          },
          "knowledgeShare" : {
            "type" : "string"
          },
          "introduction" : {
            "type" : "string"
          },
          "thumbnailS3Key" : {
            "type" : "string"
          },
          "finalProduct" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/LabelDto"
            }
          },
          "sector" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/LabelDto"
            }
          },
          "trl" : {
            "$ref" : "#/components/schemas/LabelDto"
          },
          "tag" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/LabelDto"
            }
          },
          "relationshipType" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/LabelDto"
            }
          },
          "publiclyFunded" : {
            "type" : "boolean"
          },
          "hasWonAwards" : {
            "type" : "boolean"
          },
          "publicFundsDetails" : {
            "type" : "string"
          },
          "awardsDetails" : {
            "type" : "string"
          },
          "technicalFeatures" : {
            "type" : "string"
          },
          "supportImageS3Keys" : {
            "type" : "array",
            "uniqueItems" : true,
            "items" : {
              "type" : "string"
            }
          },
          "supportVideoS3Keys" : {
            "type" : "array",
            "uniqueItems" : true,
            "items" : {
              "type" : "string"
            }
          },
          "presentationS3Key" : {
            "type" : "string"
          },
          "supportDocumentS3Keys" : {
            "type" : "array",
            "uniqueItems" : true,
            "items" : {
              "type" : "string"
            }
          },
          "possibleApplications" : {
            "type" : "string"
          },
          "benefits" : {
            "type" : "string"
          },
          "challenges" : {
            "type" : "string"
          },
          "cardsRelatedIds" : {
            "type" : "array",
            "items" : {
              "type" : "integer",
              "format" : "int64"
            }
          }
        }
      },
      "CardDraftDto" : {
        "type" : "object",
        "properties" : {
          "id" : {
            "type" : "integer",
            "format" : "int64"
          },
          "createdAt" : {
            "type" : "string"
          },
          "hasCoOwnersConsent" : {
            "type" : "boolean"
          },
          "acceptsResponsibilityStatement" : {
            "type" : "boolean"
          },
          "acceptsTermsAndConditions" : {
            "type" : "boolean"
          },
          "mainPatent" : {
            "$ref" : "#/components/schemas/PatentDto"
          },
          "secondaryPatents" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/PatentDto"
            }
          },
          "title" : {
            "type" : "string"
          },
          "knowledgeShare" : {
            "type" : "string"
          },
          "introduction" : {
            "type" : "string"
          },
          "thumbnailS3Key" : {
            "type" : "string"
          },
          "finalProduct" : {
            "type" : "array",
            "items" : {
              "type" : "integer",
              "format" : "int64"
            }
          },
          "sector" : {
            "type" : "array",
            "items" : {
              "type" : "integer",
              "format" : "int64"
            }
          },
          "trl" : {
            "type" : "integer",
            "format" : "int64"
          },
          "tag" : {
            "type" : "array",
            "items" : {
              "type" : "integer",
              "format" : "int64"
            }
          },
          "relationshipType" : {
            "type" : "array",
            "items" : {
              "type" : "integer",
              "format" : "int64"
            }
          },
          "publiclyFunded" : {
            "type" : "boolean"
          },
          "hasWonAwards" : {
            "type" : "boolean"
          },
          "publicFundsDetails" : {
            "type" : "string"
          },
          "awardsDetails" : {
            "type" : "string"
          },
          "technicalFeatures" : {
            "type" : "string"
          },
          "supportImageS3Keys" : {
            "type" : "array",
            "uniqueItems" : true,
            "items" : {
              "type" : "string"
            }
          },
          "supportVideoS3Keys" : {
            "type" : "array",
            "uniqueItems" : true,
            "items" : {
              "type" : "string"
            }
          },
          "presentationS3Key" : {
            "type" : "string"
          },
          "supportDocumentS3Keys" : {
            "type" : "array",
            "uniqueItems" : true,
            "items" : {
              "type" : "string"
            }
          },
          "possibleApplications" : {
            "type" : "string"
          },
          "benefits" : {
            "type" : "string"
          },
          "challenges" : {
            "type" : "string"
          },
          "cardsRelatedIds" : {
            "type" : "array",
            "items" : {
              "type" : "integer",
              "format" : "int64"
            }
          }
        }
      },
      "CardEmailSendDto" : {
        "type" : "object",
        "required" : [ "username", "subject", "body" ],
        "properties" : {
          "username" : {
            "type" : "string",
            "pattern" : "\\S"
          },
          "subject" : {
            "type" : "string",
            "pattern" : "\\S"
          },
          "body" : {
            "type" : "string",
            "pattern" : "\\S"
          }
        }
      },
      "CardFullDto" : {
        "type" : "object",
        "properties" : {
          "id" : {
            "type" : "integer",
            "format" : "int64"
          },
          "createdAt" : {
            "type" : "string"
          },
          "author" : {
            "type" : "string"
          },
          "hasCoOwnersConsent" : {
            "type" : "boolean"
          },
          "acceptsResponsibilityStatement" : {
            "type" : "boolean"
          },
          "acceptsTermsAndConditions" : {
            "type" : "boolean"
          },
          "mainPatent" : {
            "$ref" : "#/components/schemas/PatentDto"
          },
          "secondaryPatents" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/PatentDto"
            }
          },
          "title" : {
            "type" : "string"
          },
          "knowledgeShare" : {
            "type" : "string"
          },
          "introduction" : {
            "type" : "string"
          },
          "thumbnailS3Key" : {
            "type" : "string"
          },
          "finalProduct" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/LabelDto"
            }
          },
          "sector" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/LabelDto"
            }
          },
          "trl" : {
            "$ref" : "#/components/schemas/LabelDto"
          },
          "tag" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/LabelDto"
            }
          },
          "relationshipType" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/LabelDto"
            }
          },
          "publiclyFunded" : {
            "type" : "boolean"
          },
          "hasWonAwards" : {
            "type" : "boolean"
          },
          "publicFundsDetails" : {
            "type" : "string"
          },
          "awardsDetails" : {
            "type" : "string"
          },
          "technicalFeatures" : {
            "type" : "string"
          },
          "supportImageS3Keys" : {
            "type" : "array",
            "uniqueItems" : true,
            "items" : {
              "type" : "string"
            }
          },
          "supportVideoS3Keys" : {
            "type" : "array",
            "uniqueItems" : true,
            "items" : {
              "type" : "string"
            }
          },
          "presentationS3Key" : {
            "type" : "string"
          },
          "supportDocumentS3Keys" : {
            "type" : "array",
            "uniqueItems" : true,
            "items" : {
              "type" : "string"
            }
          },
          "possibleApplications" : {
            "type" : "string"
          },
          "benefits" : {
            "type" : "string"
          },
          "challenges" : {
            "type" : "string"
          },
          "cardsRelated" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/LabelDto"
            }
          }
        }
      },
      "CardLimitedDto" : {
        "type" : "object",
        "properties" : {
          "author" : {
            "type" : "string"
          },
          "title" : {
            "type" : "string"
          },
          "thumbnailS3Key" : {
            "type" : "string"
          },
          "createdAt" : {
            "type" : "string"
          },
          "finalProduct" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/LabelDto"
            }
          },
          "mainPatent" : {
            "$ref" : "#/components/schemas/PatentDto"
          },
          "secondaryPatents" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/PatentDto"
            }
          },
          "tags" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/LabelDto"
            }
          },
          "sector" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/LabelDto"
            }
          },
          "trl" : {
            "$ref" : "#/components/schemas/LabelDto"
          },
          "relationshipType" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/LabelDto"
            }
          },
          "publiclyFunded" : {
            "type" : "boolean"
          },
          "hasWonAwards" : {
            "type" : "boolean"
          },
          "introduction" : {
            "type" : "string"
          },
          "technicalFeatures" : {
            "type" : "string"
          }
        }
      },
      "CardUpdateDto" : {
        "type" : "object",
        "properties" : {
          "hasCoOwnersConsent" : {
            "type" : [ "boolean", "null" ]
          },
          "acceptsResponsibilityStatement" : {
            "type" : [ "boolean", "null" ]
          },
          "acceptsTermsAndConditions" : {
            "type" : [ "boolean", "null" ]
          },
          "mainPatent" : {
            "anyOf" : [ {
              "$ref" : "#/components/schemas/PatentDto"
            }, {
              "type" : "null"
            } ]
          },
          "secondaryPatents" : {
            "type" : [ "array", "null" ],
            "items" : {
              "$ref" : "#/components/schemas/PatentDto"
            }
          },
          "title" : {
            "type" : [ "string", "null" ]
          },
          "knowledgeShare" : {
            "type" : [ "string", "null" ]
          },
          "introduction" : {
            "type" : [ "string", "null" ]
          },
          "thumbnailS3Key" : {
            "type" : [ "string", "null" ]
          },
          "finalProduct" : {
            "type" : [ "array", "null" ],
            "uniqueItems" : true,
            "items" : {
              "type" : "integer",
              "format" : "int64"
            }
          },
          "sector" : {
            "type" : [ "array", "null" ],
            "uniqueItems" : true,
            "items" : {
              "type" : "integer",
              "format" : "int64"
            }
          },
          "trl" : {
            "type" : [ "integer", "null" ],
            "format" : "int64"
          },
          "tag" : {
            "type" : [ "array", "null" ],
            "uniqueItems" : true,
            "items" : {
              "type" : "integer",
              "format" : "int64"
            }
          },
          "relationshipType" : {
            "type" : [ "array", "null" ],
            "uniqueItems" : true,
            "items" : {
              "type" : "integer",
              "format" : "int64"
            }
          },
          "publiclyFunded" : {
            "type" : [ "boolean", "null" ]
          },
          "hasWonAwards" : {
            "type" : [ "boolean", "null" ]
          },
          "publicFundsDetails" : {
            "type" : [ "string", "null" ]
          },
          "awardsDetails" : {
            "type" : [ "string", "null" ]
          },
          "technicalFeatures" : {
            "type" : [ "string", "null" ]
          },
          "supportImageS3Keys" : {
            "type" : [ "array", "null" ],
            "uniqueItems" : true,
            "items" : {
              "type" : "string"
            }
          },
          "supportVideoS3Keys" : {
            "type" : [ "array", "null" ],
            "uniqueItems" : true,
            "items" : {
              "type" : "string"
            }
          },
          "presentationS3Key" : {
            "type" : [ "string", "null" ]
          },
          "supportDocumentS3Keys" : {
            "type" : [ "array", "null" ],
            "uniqueItems" : true,
            "items" : {
              "type" : "string"
            }
          },
          "possibleApplications" : {
            "type" : [ "string", "null" ]
          },
          "benefits" : {
            "type" : [ "string", "null" ]
          },
          "challenges" : {
            "type" : [ "string", "null" ]
          },
          "cardsRelatedIds" : {
            "type" : [ "array", "null" ],
            "items" : {
              "type" : "integer",
              "format" : "int64"
            }
          }
        }
      },
      "CardViewAddDto" : {
        "type" : "object",
        "properties" : {
          "fingerprint" : {
            "type" : "string"
          }
        }
      },
      "CardViewResponseDto" : {
        "type" : "object",
        "properties" : {
          "recorded" : {
            "type" : "boolean"
          }
        }
      },
      "EnclosedDocumentDto" : {
        "type" : "object",
        "properties" : {
          "id" : {
            "type" : "string"
          },
          "fileName" : {
            "type" : "string"
          },
          "creationDate" : {
            "type" : "string"
          },
          "note" : {
            "type" : "string"
          },
          "fileSize" : {
            "type" : "integer",
            "format" : "int64"
          },
          "s3Key" : {
            "type" : "string"
          }
        }
      },
      "LabelDto" : {
        "type" : "object",
        "properties" : {
          "id" : {
            "type" : "integer",
            "format" : "int64"
          },
          "label" : {
            "type" : "string"
          }
        }
      },
      "PaginationDto" : {
        "type" : "object",
        "required" : [ "items", "pagination" ],
        "description" : "Generic pagination wrapper for API responses",
        "properties" : {
          "items" : {
            "type" : "array",
            "items" : { },
            "description" : "List of items in the current page"
          },
          "pagination" : {
            "$ref" : "#/components/schemas/WPagination",
            "type" : "object",
            "description" : "Pagination metadata"
          }
        }
      },
      "PaginationDtoCardDetailDto" : {
        "type" : "object",
        "required" : [ "items", "pagination" ],
        "description" : "Generic pagination wrapper for API responses",
        "properties" : {
          "items" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/CardDetailDto"
            },
            "description" : "List of items in the current page"
          },
          "pagination" : {
            "$ref" : "#/components/schemas/WPagination",
            "type" : "object",
            "description" : "Pagination metadata"
          }
        }
      },
      "PaginationDtoCardDraftDto" : {
        "type" : "object",
        "required" : [ "items", "pagination" ],
        "description" : "Generic pagination wrapper for API responses",
        "properties" : {
          "items" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/CardDraftDto"
            },
            "description" : "List of items in the current page"
          },
          "pagination" : {
            "$ref" : "#/components/schemas/WPagination",
            "type" : "object",
            "description" : "Pagination metadata"
          }
        }
      },
      "PaginationDtoLabelDto" : {
        "type" : "object",
        "required" : [ "items", "pagination" ],
        "description" : "Generic pagination wrapper for API responses",
        "properties" : {
          "items" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/LabelDto"
            },
            "description" : "List of items in the current page"
          },
          "pagination" : {
            "$ref" : "#/components/schemas/WPagination",
            "type" : "object",
            "description" : "Pagination metadata"
          }
        }
      },
      "PaginationDtoSavedSearchDto" : {
        "type" : "object",
        "required" : [ "items", "pagination" ],
        "description" : "Generic pagination wrapper for API responses",
        "properties" : {
          "items" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/SavedSearchDto"
            },
            "description" : "List of items in the current page"
          },
          "pagination" : {
            "$ref" : "#/components/schemas/WPagination",
            "type" : "object",
            "description" : "Pagination metadata"
          }
        }
      },
      "PaginationDtoSearchHistoryDto" : {
        "type" : "object",
        "required" : [ "items", "pagination" ],
        "description" : "Generic pagination wrapper for API responses",
        "properties" : {
          "items" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/SearchHistoryDto"
            },
            "description" : "List of items in the current page"
          },
          "pagination" : {
            "$ref" : "#/components/schemas/WPagination",
            "type" : "object",
            "description" : "Pagination metadata"
          }
        }
      },
      "PatentCode" : {
        "type" : "string",
        "enum" : [ "BII", "DII", "BMU", "DMU" ]
      },
      "PatentDto" : {
        "type" : "object",
        "required" : [ "idPatent", "code" ],
        "properties" : {
          "idPatent" : {
            "type" : "string"
          },
          "code" : {
            "$ref" : "#/components/schemas/PatentCode"
          }
        }
      },
      "ProfileCreateDto" : {
        "type" : "object",
        "required" : [ "bearerOfInterestTypeId", "relationshipTypeIds", "sectorIds", "tagIds", "receiveEmailUpdates" ],
        "properties" : {
          "bearerOfInterestTypeId" : {
            "type" : "integer",
            "format" : "int64"
          },
          "relationshipTypeIds" : {
            "type" : "array",
            "uniqueItems" : true,
            "items" : {
              "type" : "integer",
              "format" : "int64"
            }
          },
          "sectorIds" : {
            "type" : "array",
            "uniqueItems" : true,
            "items" : {
              "type" : "integer",
              "format" : "int64"
            }
          },
          "tagIds" : {
            "type" : "array",
            "uniqueItems" : true,
            "items" : {
              "type" : "integer",
              "format" : "int64"
            }
          },
          "receiveEmailUpdates" : {
            "type" : "boolean"
          }
        }
      },
      "ProfileDetailDto" : {
        "type" : "object",
        "properties" : {
          "id" : {
            "type" : "integer",
            "format" : "int64"
          },
          "createdAt" : {
            "type" : "string"
          },
          "bearerOfInterestType" : {
            "$ref" : "#/components/schemas/LabelDto"
          },
          "relationshipTypes" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/LabelDto"
            }
          },
          "sectors" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/LabelDto"
            }
          },
          "tags" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/LabelDto"
            }
          },
          "receiveEmailUpdates" : {
            "type" : "boolean"
          }
        }
      },
      "ProfileUpdateDto" : {
        "type" : "object",
        "properties" : {
          "bearerOfInterestTypeId" : {
            "type" : [ "integer", "null" ],
            "format" : "int64"
          },
          "relationshipTypeIds" : {
            "type" : [ "array", "null" ],
            "uniqueItems" : true,
            "items" : {
              "type" : "integer",
              "format" : "int64"
            }
          },
          "sectorIds" : {
            "type" : [ "array", "null" ],
            "uniqueItems" : true,
            "items" : {
              "type" : "integer",
              "format" : "int64"
            }
          },
          "tagIds" : {
            "type" : [ "array", "null" ],
            "uniqueItems" : true,
            "items" : {
              "type" : "integer",
              "format" : "int64"
            }
          },
          "receiveEmailUpdates" : {
            "type" : [ "boolean", "null" ]
          }
        }
      },
      "SavedSearchCreateDto" : {
        "type" : "object",
        "required" : [ "query" ],
        "properties" : {
          "query" : {
            "type" : "string",
            "pattern" : "\\S"
          }
        }
      },
      "SavedSearchDto" : {
        "type" : "object",
        "properties" : {
          "id" : {
            "type" : "integer",
            "format" : "int64"
          },
          "query" : {
            "type" : "string"
          },
          "createdAt" : {
            "type" : "string"
          },
          "notification" : {
            "type" : "boolean"
          }
        }
      },
      "SearchHistoryDto" : {
        "type" : "object",
        "properties" : {
          "id" : {
            "type" : "integer",
            "format" : "int64"
          },
          "createdAt" : {
            "type" : "string"
          },
          "title" : {
            "type" : "string"
          },
          "idPatent" : {
            "type" : "string"
          },
          "code" : {
            "type" : "string"
          },
          "finalProductId" : {
            "type" : "integer",
            "format" : "int64"
          },
          "sectorId" : {
            "type" : "integer",
            "format" : "int64"
          },
          "trlId" : {
            "type" : "integer",
            "format" : "int64"
          },
          "tagId" : {
            "type" : "integer",
            "format" : "int64"
          },
          "relationshipTypeId" : {
            "type" : "integer",
            "format" : "int64"
          },
          "publiclyFunded" : {
            "type" : "boolean"
          },
          "hasWonAwards" : {
            "type" : "boolean"
          },
          "sortingField" : {
            "type" : "string"
          },
          "sortingDirection" : {
            "type" : "integer",
            "format" : "int32"
          },
          "index" : {
            "type" : "integer",
            "format" : "int32"
          },
          "size" : {
            "type" : "integer",
            "format" : "int32"
          }
        }
      },
      "StatDto" : {
        "type" : "object",
        "required" : [ "key", "value" ],
        "description" : "Stat key and numeric value",
        "properties" : {
          "key" : {
            "type" : "string",
            "description" : "Stat key"
          },
          "value" : {
            "type" : "number",
            "format" : "double",
            "description" : "Count or average"
          }
        }
      },
      "StatisticsDto" : {
        "type" : "object",
        "required" : [ "stats" ],
        "description" : "Statistics list",
        "properties" : {
          "stats" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/StatDto"
            },
            "description" : "Stats list"
          }
        }
      },
      "WPagination" : {
        "type" : "object",
        "required" : [ "totalSize", "index", "size", "hasNextPage", "hasPrevPage" ],
        "description" : "Pagination metadata for API responses",
        "properties" : {
          "totalSize" : {
            "type" : "integer",
            "format" : "int64",
            "examples" : [ 150 ],
            "description" : "Total number of items across all pages"
          },
          "index" : {
            "type" : "integer",
            "format" : "int32",
            "examples" : [ 0 ],
            "description" : "Current page index (0-based)"
          },
          "size" : {
            "type" : "integer",
            "format" : "int32",
            "examples" : [ 20 ],
            "description" : "Number of items in the current page"
          },
          "nextPageIndex" : {
            "type" : [ "integer", "null" ],
            "format" : "int32",
            "examples" : [ 1 ],
            "description" : "Index of the next page (null if there is no next page)"
          },
          "prevPageIndex" : {
            "type" : [ "integer", "null" ],
            "format" : "int32",
            "examples" : [ "null" ],
            "description" : "Index of the previous page (null if there is no previous page)"
          },
          "hasNextPage" : {
            "type" : "boolean",
            "examples" : [ true ],
            "description" : "Indicates if there is a next page available"
          },
          "hasPrevPage" : {
            "type" : "boolean",
            "examples" : [ false ],
            "description" : "Indicates if there is a previous page available"
          }
        }
      }
    },
    "securitySchemes" : {
      "SecurityScheme" : {
        "type" : "http",
        "scheme" : "bearer",
        "bearerFormat" : "JWT",
        "description" : "Authentication"
      }
    }
  },
  "tags" : [ {
    "name" : "Alive Controller",
    "description" : "Health related APIs"
  }, {
    "name" : "Card Controller",
    "description" : "API for Card management"
  }, {
    "name" : "Profile Controller",
    "description" : "API for user profile management"
  }, {
    "name" : "Statistics",
    "description" : "Dashboard statistics"
  } ],
  "paths" : {
    "/api/alive" : {
      "get" : {
        "tags" : [ "Alive Controller" ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : { }
              }
            }
          }
        },
        "summary" : "Alive"
      }
    },
    "/api/card" : {
      "post" : {
        "summary" : "Create card",
        "description" : "Creates a card",
        "tags" : [ "Card Controller" ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/CardCreateDto"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/CardDetailDto"
                }
              }
            }
          },
          "401" : {
            "description" : "Not Authorized"
          },
          "403" : {
            "description" : "Not Allowed"
          },
          "400" : {
            "description" : "Bad Request"
          }
        },
        "security" : [ {
          "SecurityScheme" : [ "USER", "ADMIN" ]
        } ]
      }
    },
    "/api/card/draft" : {
      "post" : {
        "summary" : "Create card draft",
        "description" : "Creates a new card draft",
        "tags" : [ "Card Controller" ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/CardDraftDto"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/CardDraftDto"
                }
              }
            }
          },
          "401" : {
            "description" : "Not Authorized"
          },
          "403" : {
            "description" : "Not Allowed"
          },
          "400" : {
            "description" : "Bad Request"
          }
        },
        "security" : [ {
          "SecurityScheme" : [ "USER", "ADMIN" ]
        } ]
      }
    },
    "/api/card/draft/{id}" : {
      "put" : {
        "summary" : "Update card draft",
        "description" : "Updates an existing card draft. All fields are optional - only provided fields will be updated.",
        "tags" : [ "Card Controller" ],
        "parameters" : [ {
          "name" : "id",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "integer",
            "format" : "int64"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/CardDraftDto"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/CardDraftDto"
                }
              }
            }
          },
          "401" : {
            "description" : "Not Authorized"
          },
          "403" : {
            "description" : "Not Allowed"
          },
          "400" : {
            "description" : "Bad Request"
          }
        },
        "security" : [ {
          "SecurityScheme" : [ "USER", "ADMIN" ]
        } ]
      },
      "get" : {
        "summary" : "Get card draft by ID",
        "description" : "Retrieves a draft representation of a card by its ID with relationship IDs",
        "tags" : [ "Card Controller" ],
        "parameters" : [ {
          "name" : "id",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "integer",
            "format" : "int64"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/CardDraftDto"
                }
              }
            }
          },
          "401" : {
            "description" : "Not Authorized"
          },
          "403" : {
            "description" : "Not Allowed"
          }
        },
        "security" : [ {
          "SecurityScheme" : [ "USER", "ADMIN" ]
        } ]
      },
      "delete" : {
        "summary" : "Delete card draft",
        "description" : "Deletes a card draft by its ID",
        "tags" : [ "Card Controller" ],
        "parameters" : [ {
          "name" : "id",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "integer",
            "format" : "int64"
          }
        } ],
        "responses" : {
          "204" : {
            "description" : "No Content"
          },
          "401" : {
            "description" : "Not Authorized"
          },
          "403" : {
            "description" : "Not Allowed"
          }
        },
        "security" : [ {
          "SecurityScheme" : [ "USER", "ADMIN" ]
        } ]
      }
    },
    "/api/card/export/pdf" : {
      "post" : {
        "summary" : "Export search results to PDF (Ricerche)",
        "description" : "Exports all cards matching the given filters as a single PDF, stores it, and returns the document metadata (including s3Key).",
        "tags" : [ "Card Controller" ],
        "parameters" : [ {
          "name" : "code",
          "in" : "query",
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "finalProductId",
          "in" : "query",
          "schema" : {
            "type" : "integer",
            "format" : "int64"
          }
        }, {
          "name" : "hasWonAwards",
          "in" : "query",
          "schema" : {
            "type" : "boolean"
          }
        }, {
          "name" : "idPatent",
          "in" : "query",
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "publiclyFunded",
          "in" : "query",
          "schema" : {
            "type" : "boolean"
          }
        }, {
          "name" : "relationshipTypeId",
          "in" : "query",
          "schema" : {
            "type" : "integer",
            "format" : "int64"
          }
        }, {
          "name" : "sectorId",
          "in" : "query",
          "schema" : {
            "type" : "integer",
            "format" : "int64"
          }
        }, {
          "name" : "sortingDirection",
          "in" : "query",
          "schema" : {
            "type" : "integer",
            "format" : "int32"
          }
        }, {
          "name" : "sortingField",
          "in" : "query",
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "tagId",
          "in" : "query",
          "schema" : {
            "type" : "integer",
            "format" : "int64"
          }
        }, {
          "name" : "title",
          "in" : "query",
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "trlId",
          "in" : "query",
          "schema" : {
            "type" : "integer",
            "format" : "int64"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/EnclosedDocumentDto"
                }
              }
            }
          },
          "401" : {
            "description" : "Not Authorized"
          },
          "403" : {
            "description" : "Not Allowed"
          }
        },
        "security" : [ {
          "SecurityScheme" : [ "USER", "ADMIN" ]
        } ]
      }
    },
    "/api/card/final-products" : {
      "get" : {
        "summary" : "Get all final products",
        "description" : "Retrieves all final products as label options",
        "tags" : [ "Card Controller" ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "type" : "array",
                  "items" : {
                    "$ref" : "#/components/schemas/LabelDto"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/card/index/{index}/size/{size}" : {
      "get" : {
        "summary" : "Get all cards with pagination",
        "description" : "Retrieves cards with pagination support. Supports filtering via query parameters.",
        "tags" : [ "Card Controller" ],
        "parameters" : [ {
          "name" : "index",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "integer",
            "format" : "int32"
          }
        }, {
          "name" : "size",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "integer",
            "format" : "int32"
          }
        }, {
          "name" : "code",
          "in" : "query",
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "finalProductId",
          "in" : "query",
          "schema" : {
            "type" : "integer",
            "format" : "int64"
          }
        }, {
          "name" : "hasWonAwards",
          "in" : "query",
          "schema" : {
            "type" : "boolean"
          }
        }, {
          "name" : "idPatent",
          "in" : "query",
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "publiclyFunded",
          "in" : "query",
          "schema" : {
            "type" : "boolean"
          }
        }, {
          "name" : "relationshipTypeId",
          "in" : "query",
          "schema" : {
            "type" : "integer",
            "format" : "int64"
          }
        }, {
          "name" : "sectorId",
          "in" : "query",
          "schema" : {
            "type" : "integer",
            "format" : "int64"
          }
        }, {
          "name" : "sortingDirection",
          "in" : "query",
          "schema" : {
            "type" : "integer",
            "format" : "int32"
          }
        }, {
          "name" : "sortingField",
          "in" : "query",
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "tagId",
          "in" : "query",
          "schema" : {
            "type" : "integer",
            "format" : "int64"
          }
        }, {
          "name" : "title",
          "in" : "query",
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "trlId",
          "in" : "query",
          "schema" : {
            "type" : "integer",
            "format" : "int64"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/PaginationDtoCardDetailDto"
                }
              }
            }
          }
        }
      }
    },
    "/api/card/profile/index/{index}/size/{size}" : {
      "get" : {
        "summary" : "Get cards matching user profile with pagination",
        "description" : "Retrieves cards matching the logged-in user's profile interests (sectors, tags, relationship types). Use profileFilter query param: 'all' (match any interest), 'sector', 'tag', or 'relationship'. Returns empty list if user has no profile or profileFilter is missing.",
        "tags" : [ "Card Controller" ],
        "parameters" : [ {
          "name" : "index",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "integer",
            "format" : "int32"
          }
        }, {
          "name" : "size",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "integer",
            "format" : "int32"
          }
        }, {
          "name" : "code",
          "in" : "query",
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "finalProductId",
          "in" : "query",
          "schema" : {
            "type" : "integer",
            "format" : "int64"
          }
        }, {
          "name" : "hasWonAwards",
          "in" : "query",
          "schema" : {
            "type" : "boolean"
          }
        }, {
          "name" : "idPatent",
          "in" : "query",
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "profileFilter",
          "in" : "query",
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "publiclyFunded",
          "in" : "query",
          "schema" : {
            "type" : "boolean"
          }
        }, {
          "name" : "relationshipTypeId",
          "in" : "query",
          "schema" : {
            "type" : "integer",
            "format" : "int64"
          }
        }, {
          "name" : "sectorId",
          "in" : "query",
          "schema" : {
            "type" : "integer",
            "format" : "int64"
          }
        }, {
          "name" : "sortingDirection",
          "in" : "query",
          "schema" : {
            "type" : "integer",
            "format" : "int32"
          }
        }, {
          "name" : "sortingField",
          "in" : "query",
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "tagId",
          "in" : "query",
          "schema" : {
            "type" : "integer",
            "format" : "int64"
          }
        }, {
          "name" : "title",
          "in" : "query",
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "trlId",
          "in" : "query",
          "schema" : {
            "type" : "integer",
            "format" : "int64"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/PaginationDtoCardDetailDto"
                }
              }
            }
          },
          "401" : {
            "description" : "Not Authorized"
          },
          "403" : {
            "description" : "Not Allowed"
          }
        },
        "security" : [ {
          "SecurityScheme" : [ "USER", "ADMIN" ]
        } ]
      }
    },
    "/api/card/relationships" : {
      "get" : {
        "summary" : "Get all relationships",
        "description" : "Retrieves all relationship types as label options",
        "tags" : [ "Card Controller" ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "type" : "array",
                  "items" : {
                    "$ref" : "#/components/schemas/LabelDto"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/card/search-history/index/{index}/size/{size}" : {
      "get" : {
        "summary" : "Get search history for logged-in user with pagination",
        "description" : "Retrieves search history for the logged-in user. Most recent first. Requires authentication.",
        "tags" : [ "Card Controller" ],
        "parameters" : [ {
          "name" : "index",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "integer",
            "format" : "int32"
          }
        }, {
          "name" : "size",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "integer",
            "format" : "int32"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/PaginationDtoSearchHistoryDto"
                }
              }
            }
          },
          "401" : {
            "description" : "Not Authorized"
          },
          "403" : {
            "description" : "Not Allowed"
          }
        },
        "security" : [ {
          "SecurityScheme" : [ "USER", "ADMIN" ]
        } ]
      }
    },
    "/api/card/searches" : {
      "post" : {
        "summary" : "Save search with filters",
        "description" : "Saves a search string with filters for the logged-in user",
        "tags" : [ "Card Controller" ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/SavedSearchCreateDto"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/SavedSearchDto"
                }
              }
            }
          },
          "401" : {
            "description" : "Not Authorized"
          },
          "403" : {
            "description" : "Not Allowed"
          },
          "400" : {
            "description" : "Bad Request"
          }
        },
        "security" : [ {
          "SecurityScheme" : [ "USER", "ADMIN" ]
        } ]
      }
    },
    "/api/card/searches/index/{index}/size/{size}" : {
      "get" : {
        "summary" : "Get all saved searches for logged-in user with pagination",
        "description" : "Retrieves saved searches belonging to the logged-in user with pagination support",
        "tags" : [ "Card Controller" ],
        "parameters" : [ {
          "name" : "index",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "integer",
            "format" : "int32"
          }
        }, {
          "name" : "size",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "integer",
            "format" : "int32"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/PaginationDtoSavedSearchDto"
                }
              }
            }
          },
          "401" : {
            "description" : "Not Authorized"
          },
          "403" : {
            "description" : "Not Allowed"
          }
        },
        "security" : [ {
          "SecurityScheme" : [ "USER", "ADMIN" ]
        } ]
      }
    },
    "/api/card/searches/{id}" : {
      "get" : {
        "summary" : "Get saved search by ID",
        "description" : "Retrieves a saved search by its ID",
        "tags" : [ "Card Controller" ],
        "parameters" : [ {
          "name" : "id",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "integer",
            "format" : "int64"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/SavedSearchDto"
                }
              }
            }
          },
          "401" : {
            "description" : "Not Authorized"
          },
          "403" : {
            "description" : "Not Allowed"
          }
        },
        "security" : [ {
          "SecurityScheme" : [ "USER", "ADMIN" ]
        } ]
      },
      "delete" : {
        "summary" : "Delete saved search",
        "description" : "Deletes a saved search by its ID",
        "tags" : [ "Card Controller" ],
        "parameters" : [ {
          "name" : "id",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "integer",
            "format" : "int64"
          }
        } ],
        "responses" : {
          "204" : {
            "description" : "No Content"
          },
          "401" : {
            "description" : "Not Authorized"
          },
          "403" : {
            "description" : "Not Allowed"
          }
        },
        "security" : [ {
          "SecurityScheme" : [ "USER", "ADMIN" ]
        } ]
      }
    },
    "/api/card/searches/{id}/notification" : {
      "patch" : {
        "summary" : "Toggle notification for saved search",
        "description" : "Toggles the notification flag for the saved search. Only the owner can toggle. Returns 404 if not found or not owned.",
        "tags" : [ "Card Controller" ],
        "parameters" : [ {
          "name" : "id",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "integer",
            "format" : "int64"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/SavedSearchDto"
                }
              }
            }
          },
          "401" : {
            "description" : "Not Authorized"
          },
          "403" : {
            "description" : "Not Allowed"
          }
        },
        "security" : [ {
          "SecurityScheme" : [ "USER", "ADMIN" ]
        } ]
      }
    },
    "/api/card/sectors" : {
      "get" : {
        "summary" : "Get all sectors",
        "description" : "Retrieves all sectors as label options",
        "tags" : [ "Card Controller" ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "type" : "array",
                  "items" : {
                    "$ref" : "#/components/schemas/LabelDto"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/card/suspended/index/{index}/size/{size}" : {
      "get" : {
        "summary" : "Get suspended cards (admin only)",
        "description" : "Retrieves a paginated list of suspended (inactive) cards. Admin only.",
        "tags" : [ "Card Controller" ],
        "parameters" : [ {
          "name" : "index",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "integer",
            "format" : "int32"
          }
        }, {
          "name" : "size",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "integer",
            "format" : "int32"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/PaginationDtoCardDetailDto"
                }
              }
            }
          },
          "401" : {
            "description" : "Not Authorized"
          },
          "403" : {
            "description" : "Not Allowed"
          }
        },
        "security" : [ {
          "SecurityScheme" : [ "ADMIN" ]
        } ]
      }
    },
    "/api/card/tag" : {
      "get" : {
        "summary" : "Get all tag",
        "description" : "Retrieves all tag as label options",
        "tags" : [ "Card Controller" ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "type" : "array",
                  "items" : {
                    "$ref" : "#/components/schemas/LabelDto"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/card/trls" : {
      "get" : {
        "summary" : "Get all TRLs",
        "description" : "Retrieves all Technology Readiness Levels as label options",
        "tags" : [ "Card Controller" ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "type" : "array",
                  "items" : {
                    "$ref" : "#/components/schemas/LabelDto"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/card/upload/presentation" : {
      "post" : {
        "summary" : "Upload presentation document",
        "description" : "Uploads a presentation document file for a card. The file is forwarded to the external common API as an enclosed document. Requires Bearer token authentication in the Authorization header, which will be forwarded to the external common API.",
        "tags" : [ "Card Controller" ],
        "requestBody" : {
          "content" : {
            "multipart/form-data" : {
              "schema" : {
                "type" : "object",
                "properties" : {
                  "file" : {
                    "type" : "string",
                    "format" : "binary"
                  },
                  "fileName" : {
                    "type" : "string"
                  },
                  "note" : {
                    "type" : "string"
                  }
                }
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/EnclosedDocumentDto"
                }
              }
            }
          },
          "401" : {
            "description" : "Not Authorized"
          },
          "403" : {
            "description" : "Not Allowed"
          }
        },
        "security" : [ {
          "SecurityScheme" : [ "USER", "ADMIN" ]
        } ]
      }
    },
    "/api/card/upload/support-documents" : {
      "post" : {
        "summary" : "Upload support documents",
        "description" : "Uploads support document files for a card. The files are forwarded to the external common API as enclosed documents. Requires Bearer token authentication in the Authorization header, which will be forwarded to the external common API.",
        "tags" : [ "Card Controller" ],
        "requestBody" : {
          "content" : {
            "multipart/form-data" : {
              "schema" : {
                "type" : "object",
                "properties" : {
                  "file" : {
                    "type" : "string",
                    "format" : "binary"
                  },
                  "fileName" : {
                    "type" : "string"
                  },
                  "note" : {
                    "type" : "string"
                  }
                }
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/EnclosedDocumentDto"
                }
              }
            }
          },
          "401" : {
            "description" : "Not Authorized"
          },
          "403" : {
            "description" : "Not Allowed"
          }
        },
        "security" : [ {
          "SecurityScheme" : [ "USER", "ADMIN" ]
        } ]
      }
    },
    "/api/card/upload/support-images" : {
      "post" : {
        "summary" : "Upload support images",
        "description" : "Uploads support image files for a card. The files are forwarded to the external common API as enclosed documents. Requires Bearer token authentication in the Authorization header, which will be forwarded to the external common API.",
        "tags" : [ "Card Controller" ],
        "requestBody" : {
          "content" : {
            "multipart/form-data" : {
              "schema" : {
                "type" : "object",
                "properties" : {
                  "file" : {
                    "type" : "string",
                    "format" : "binary"
                  },
                  "fileName" : {
                    "type" : "string"
                  },
                  "note" : {
                    "type" : "string"
                  }
                }
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/EnclosedDocumentDto"
                }
              }
            }
          },
          "401" : {
            "description" : "Not Authorized"
          },
          "403" : {
            "description" : "Not Allowed"
          }
        },
        "security" : [ {
          "SecurityScheme" : [ "USER", "ADMIN" ]
        } ]
      }
    },
    "/api/card/upload/support-videos" : {
      "post" : {
        "summary" : "Upload support videos",
        "description" : "Uploads support video files for a card. The files are forwarded to the external common API as enclosed documents. Requires Bearer token authentication in the Authorization header, which will be forwarded to the external common API.",
        "tags" : [ "Card Controller" ],
        "requestBody" : {
          "content" : {
            "multipart/form-data" : {
              "schema" : {
                "type" : "object",
                "properties" : {
                  "file" : {
                    "type" : "string",
                    "format" : "binary"
                  },
                  "fileName" : {
                    "type" : "string"
                  },
                  "note" : {
                    "type" : "string"
                  }
                }
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/EnclosedDocumentDto"
                }
              }
            }
          },
          "401" : {
            "description" : "Not Authorized"
          },
          "403" : {
            "description" : "Not Allowed"
          }
        },
        "security" : [ {
          "SecurityScheme" : [ "USER", "ADMIN" ]
        } ]
      }
    },
    "/api/card/upload/thumbnail" : {
      "post" : {
        "summary" : "Upload thumbnail image",
        "description" : "Uploads a thumbnail image file for a card. The file is forwarded to the external common API as an enclosed document. Requires Bearer token authentication in the Authorization header, which will be forwarded to the external common API.",
        "tags" : [ "Card Controller" ],
        "requestBody" : {
          "content" : {
            "multipart/form-data" : {
              "schema" : {
                "type" : "object",
                "properties" : {
                  "file" : {
                    "type" : "string",
                    "format" : "binary"
                  },
                  "fileName" : {
                    "type" : "string"
                  },
                  "note" : {
                    "type" : "string"
                  }
                }
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/EnclosedDocumentDto"
                }
              }
            }
          },
          "401" : {
            "description" : "Not Authorized"
          },
          "403" : {
            "description" : "Not Allowed"
          }
        },
        "security" : [ {
          "SecurityScheme" : [ "USER", "ADMIN" ]
        } ]
      }
    },
    "/api/card/user/bookmarks/index/{index}/size/{size}" : {
      "get" : {
        "summary" : "Get all bookmarked cards for logged-in user with pagination",
        "description" : "Retrieves bookmarked cards belonging to the logged-in user with pagination support. Supports filtering via query parameters.",
        "tags" : [ "Card Controller" ],
        "parameters" : [ {
          "name" : "index",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "integer",
            "format" : "int32"
          }
        }, {
          "name" : "size",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "integer",
            "format" : "int32"
          }
        }, {
          "name" : "code",
          "in" : "query",
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "finalProductId",
          "in" : "query",
          "schema" : {
            "type" : "integer",
            "format" : "int64"
          }
        }, {
          "name" : "hasWonAwards",
          "in" : "query",
          "schema" : {
            "type" : "boolean"
          }
        }, {
          "name" : "idPatent",
          "in" : "query",
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "publiclyFunded",
          "in" : "query",
          "schema" : {
            "type" : "boolean"
          }
        }, {
          "name" : "relationshipTypeId",
          "in" : "query",
          "schema" : {
            "type" : "integer",
            "format" : "int64"
          }
        }, {
          "name" : "sectorId",
          "in" : "query",
          "schema" : {
            "type" : "integer",
            "format" : "int64"
          }
        }, {
          "name" : "sortingDirection",
          "in" : "query",
          "schema" : {
            "type" : "integer",
            "format" : "int32"
          }
        }, {
          "name" : "sortingField",
          "in" : "query",
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "tagId",
          "in" : "query",
          "schema" : {
            "type" : "integer",
            "format" : "int64"
          }
        }, {
          "name" : "title",
          "in" : "query",
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "trlId",
          "in" : "query",
          "schema" : {
            "type" : "integer",
            "format" : "int64"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/PaginationDtoCardDetailDto"
                }
              }
            }
          },
          "401" : {
            "description" : "Not Authorized"
          },
          "403" : {
            "description" : "Not Allowed"
          }
        },
        "security" : [ {
          "SecurityScheme" : [ "USER", "ADMIN" ]
        } ]
      }
    },
    "/api/card/user/card-ids/index/{index}/size/{size}" : {
      "get" : {
        "summary" : "Get related cards as labels for logged-in user with filtering and pagination",
        "description" : "Returns distinct related cards (id, title) that are related to any card owned by the authenticated user. Supports filtering via query parameters and pagination. Requires authorization token.",
        "tags" : [ "Card Controller" ],
        "parameters" : [ {
          "name" : "index",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "integer",
            "format" : "int32"
          }
        }, {
          "name" : "size",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "integer",
            "format" : "int32"
          }
        }, {
          "name" : "code",
          "in" : "query",
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "finalProductId",
          "in" : "query",
          "schema" : {
            "type" : "integer",
            "format" : "int64"
          }
        }, {
          "name" : "hasWonAwards",
          "in" : "query",
          "schema" : {
            "type" : "boolean"
          }
        }, {
          "name" : "idPatent",
          "in" : "query",
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "publiclyFunded",
          "in" : "query",
          "schema" : {
            "type" : "boolean"
          }
        }, {
          "name" : "relationshipTypeId",
          "in" : "query",
          "schema" : {
            "type" : "integer",
            "format" : "int64"
          }
        }, {
          "name" : "sectorId",
          "in" : "query",
          "schema" : {
            "type" : "integer",
            "format" : "int64"
          }
        }, {
          "name" : "sortingDirection",
          "in" : "query",
          "schema" : {
            "type" : "integer",
            "format" : "int32"
          }
        }, {
          "name" : "sortingField",
          "in" : "query",
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "tagId",
          "in" : "query",
          "schema" : {
            "type" : "integer",
            "format" : "int64"
          }
        }, {
          "name" : "title",
          "in" : "query",
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "trlId",
          "in" : "query",
          "schema" : {
            "type" : "integer",
            "format" : "int64"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/PaginationDtoLabelDto"
                }
              }
            }
          },
          "401" : {
            "description" : "Not Authorized"
          },
          "403" : {
            "description" : "Not Allowed"
          }
        },
        "security" : [ {
          "SecurityScheme" : [ "USER", "ADMIN" ]
        } ]
      }
    },
    "/api/card/user/drafts/index/{index}/size/{size}" : {
      "get" : {
        "summary" : "Get all draft cards for logged-in user with pagination",
        "description" : "Retrieves draft cards belonging to the logged-in user with pagination support. Supports filtering via query parameters.",
        "tags" : [ "Card Controller" ],
        "parameters" : [ {
          "name" : "index",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "integer",
            "format" : "int32"
          }
        }, {
          "name" : "size",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "integer",
            "format" : "int32"
          }
        }, {
          "name" : "code",
          "in" : "query",
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "finalProductId",
          "in" : "query",
          "schema" : {
            "type" : "integer",
            "format" : "int64"
          }
        }, {
          "name" : "hasWonAwards",
          "in" : "query",
          "schema" : {
            "type" : "boolean"
          }
        }, {
          "name" : "idPatent",
          "in" : "query",
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "publiclyFunded",
          "in" : "query",
          "schema" : {
            "type" : "boolean"
          }
        }, {
          "name" : "relationshipTypeId",
          "in" : "query",
          "schema" : {
            "type" : "integer",
            "format" : "int64"
          }
        }, {
          "name" : "sectorId",
          "in" : "query",
          "schema" : {
            "type" : "integer",
            "format" : "int64"
          }
        }, {
          "name" : "sortingDirection",
          "in" : "query",
          "schema" : {
            "type" : "integer",
            "format" : "int32"
          }
        }, {
          "name" : "sortingField",
          "in" : "query",
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "tagId",
          "in" : "query",
          "schema" : {
            "type" : "integer",
            "format" : "int64"
          }
        }, {
          "name" : "title",
          "in" : "query",
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "trlId",
          "in" : "query",
          "schema" : {
            "type" : "integer",
            "format" : "int64"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/PaginationDtoCardDraftDto"
                }
              }
            }
          },
          "401" : {
            "description" : "Not Authorized"
          },
          "403" : {
            "description" : "Not Allowed"
          }
        },
        "security" : [ {
          "SecurityScheme" : [ "USER", "ADMIN" ]
        } ]
      }
    },
    "/api/card/user/index/{index}/size/{size}" : {
      "get" : {
        "summary" : "Get all cards for logged-in user with pagination",
        "description" : "Retrieves non-draft cards belonging to the logged-in user with pagination support. Supports filtering via query parameters.",
        "tags" : [ "Card Controller" ],
        "parameters" : [ {
          "name" : "index",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "integer",
            "format" : "int32"
          }
        }, {
          "name" : "size",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "integer",
            "format" : "int32"
          }
        }, {
          "name" : "code",
          "in" : "query",
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "finalProductId",
          "in" : "query",
          "schema" : {
            "type" : "integer",
            "format" : "int64"
          }
        }, {
          "name" : "hasWonAwards",
          "in" : "query",
          "schema" : {
            "type" : "boolean"
          }
        }, {
          "name" : "idPatent",
          "in" : "query",
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "publiclyFunded",
          "in" : "query",
          "schema" : {
            "type" : "boolean"
          }
        }, {
          "name" : "relationshipTypeId",
          "in" : "query",
          "schema" : {
            "type" : "integer",
            "format" : "int64"
          }
        }, {
          "name" : "sectorId",
          "in" : "query",
          "schema" : {
            "type" : "integer",
            "format" : "int64"
          }
        }, {
          "name" : "sortingDirection",
          "in" : "query",
          "schema" : {
            "type" : "integer",
            "format" : "int32"
          }
        }, {
          "name" : "sortingField",
          "in" : "query",
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "tagId",
          "in" : "query",
          "schema" : {
            "type" : "integer",
            "format" : "int64"
          }
        }, {
          "name" : "title",
          "in" : "query",
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "trlId",
          "in" : "query",
          "schema" : {
            "type" : "integer",
            "format" : "int64"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/PaginationDtoCardDetailDto"
                }
              }
            }
          },
          "401" : {
            "description" : "Not Authorized"
          },
          "403" : {
            "description" : "Not Allowed"
          }
        },
        "security" : [ {
          "SecurityScheme" : [ "USER", "ADMIN" ]
        } ]
      }
    },
    "/api/card/{id}" : {
      "put" : {
        "summary" : "Update card",
        "description" : "Updates an existing card. All fields are optional - only provided fields will be updated.",
        "tags" : [ "Card Controller" ],
        "parameters" : [ {
          "name" : "id",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "integer",
            "format" : "int64"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/CardUpdateDto"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/CardDetailDto"
                }
              }
            }
          },
          "401" : {
            "description" : "Not Authorized"
          },
          "403" : {
            "description" : "Not Allowed"
          },
          "400" : {
            "description" : "Bad Request"
          }
        },
        "security" : [ {
          "SecurityScheme" : [ "USER", "ADMIN" ]
        } ]
      },
      "get" : {
        "summary" : "Get card by ID",
        "description" : "Retrieves a card by its ID with detailed entity information",
        "tags" : [ "Card Controller" ],
        "parameters" : [ {
          "name" : "id",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "integer",
            "format" : "int64"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/CardDetailDto"
                }
              }
            }
          },
          "401" : {
            "description" : "Not Authorized"
          },
          "403" : {
            "description" : "Not Allowed"
          }
        },
        "security" : [ {
          "SecurityScheme" : [ "USER", "ADMIN" ]
        } ]
      },
      "delete" : {
        "summary" : "Delete card",
        "description" : "Deletes a card by its ID",
        "tags" : [ "Card Controller" ],
        "parameters" : [ {
          "name" : "id",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "integer",
            "format" : "int64"
          }
        } ],
        "responses" : {
          "204" : {
            "description" : "No Content"
          },
          "401" : {
            "description" : "Not Authorized"
          },
          "403" : {
            "description" : "Not Allowed"
          }
        },
        "security" : [ {
          "SecurityScheme" : [ "USER", "ADMIN" ]
        } ]
      }
    },
    "/api/card/{id}/activate" : {
      "patch" : {
        "summary" : "Activate card",
        "description" : "Activates a card by setting its active status to true",
        "tags" : [ "Card Controller" ],
        "parameters" : [ {
          "name" : "id",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "integer",
            "format" : "int64"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/CardDetailDto"
                }
              }
            }
          },
          "401" : {
            "description" : "Not Authorized"
          },
          "403" : {
            "description" : "Not Allowed"
          }
        },
        "security" : [ {
          "SecurityScheme" : [ "USER", "ADMIN" ]
        } ]
      }
    },
    "/api/card/{id}/bookmark" : {
      "delete" : {
        "summary" : "Remove bookmark",
        "description" : "Removes the bookmark for the card. Requires authenticated user.",
        "tags" : [ "Card Controller" ],
        "parameters" : [ {
          "name" : "id",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "integer",
            "format" : "int64"
          }
        } ],
        "responses" : {
          "204" : {
            "description" : "No Content"
          },
          "401" : {
            "description" : "Not Authorized"
          },
          "403" : {
            "description" : "Not Allowed"
          }
        },
        "security" : [ {
          "SecurityScheme" : [ "USER", "ADMIN" ]
        } ]
      },
      "post" : {
        "summary" : "Bookmark a card",
        "description" : "Adds a bookmark for the card. Requires authenticated user.",
        "tags" : [ "Card Controller" ],
        "parameters" : [ {
          "name" : "id",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "integer",
            "format" : "int64"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/CardBookmarkDto"
                }
              }
            }
          },
          "401" : {
            "description" : "Not Authorized"
          },
          "403" : {
            "description" : "Not Allowed"
          }
        },
        "security" : [ {
          "SecurityScheme" : [ "USER", "ADMIN" ]
        } ]
      }
    },
    "/api/card/{id}/deactivate" : {
      "patch" : {
        "summary" : "Deactivate card",
        "description" : "Deactivates a card by setting its active status to false",
        "tags" : [ "Card Controller" ],
        "parameters" : [ {
          "name" : "id",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "integer",
            "format" : "int64"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/CardDetailDto"
                }
              }
            }
          },
          "401" : {
            "description" : "Not Authorized"
          },
          "403" : {
            "description" : "Not Allowed"
          }
        },
        "security" : [ {
          "SecurityScheme" : [ "USER", "ADMIN" ]
        } ]
      }
    },
    "/api/card/{id}/email" : {
      "post" : {
        "summary" : "Send card email",
        "description" : "Sends an email to the user (by username) with subject and body. Footer includes sender and card link.",
        "tags" : [ "Card Controller" ],
        "parameters" : [ {
          "name" : "id",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "integer",
            "format" : "int64"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/CardEmailSendDto"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "201" : {
            "description" : "Created"
          },
          "401" : {
            "description" : "Not Authorized"
          },
          "403" : {
            "description" : "Not Allowed"
          },
          "400" : {
            "description" : "Bad Request"
          }
        },
        "security" : [ {
          "SecurityScheme" : [ "USER", "ADMIN" ]
        } ]
      }
    },
    "/api/card/{id}/export/pdf" : {
      "post" : {
        "summary" : "Export single card to PDF",
        "description" : "Exports the card with the given ID as a PDF, stores it as a Ricerche document, and returns the document metadata (including s3Key). Returns 404 if the card does not exist.",
        "tags" : [ "Card Controller" ],
        "parameters" : [ {
          "name" : "id",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "integer",
            "format" : "int64"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/EnclosedDocumentDto"
                }
              }
            }
          },
          "401" : {
            "description" : "Not Authorized"
          },
          "403" : {
            "description" : "Not Allowed"
          }
        },
        "security" : [ {
          "SecurityScheme" : [ "USER", "ADMIN" ]
        } ]
      }
    },
    "/api/card/{id}/full-card" : {
      "get" : {
        "summary" : "Get full card by ID",
        "description" : "Retrieves a complete representation of a card with all fields including: id, creation date, consent flags, patents (main and secondary), title, knowledge share, introduction, thumbnail, final products, sectors, TRL, tags, relationship types, funding details, awards details, technical features, support images/videos/documents, presentation, possible applications, benefits, challenges, and related cards (as LabelDto with id and title)",
        "tags" : [ "Card Controller" ],
        "parameters" : [ {
          "name" : "id",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "integer",
            "format" : "int64"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/CardFullDto"
                }
              }
            }
          },
          "401" : {
            "description" : "Not Authorized"
          },
          "403" : {
            "description" : "Not Allowed"
          }
        },
        "security" : [ {
          "SecurityScheme" : [ "USER", "ADMIN" ]
        } ]
      }
    },
    "/api/card/{id}/limited-card" : {
      "get" : {
        "summary" : "Get limited card by ID",
        "description" : "Retrieves a limited representation of a card with essential fields: title, thumbnail, creation date, final products, patent ID, tags, sectors, TRL, relationship types, public funding status, awards status, and introduction",
        "tags" : [ "Card Controller" ],
        "parameters" : [ {
          "name" : "id",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "integer",
            "format" : "int64"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/CardLimitedDto"
                }
              }
            }
          }
        }
      }
    },
    "/api/card/{id}/matching-notifications" : {
      "get" : {
        "summary" : "Get saved searches with notification that match a card",
        "description" : "Returns saved searches with notification=true whose filters match the card's finalProduct, sector, trl, tag, and relationshipType",
        "tags" : [ "Card Controller" ],
        "parameters" : [ {
          "name" : "id",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "integer",
            "format" : "int64"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "type" : "array",
                  "items" : {
                    "$ref" : "#/components/schemas/SavedSearchDto"
                  }
                }
              }
            }
          },
          "401" : {
            "description" : "Not Authorized"
          },
          "403" : {
            "description" : "Not Allowed"
          }
        },
        "security" : [ {
          "SecurityScheme" : [ "USER", "ADMIN" ]
        } ]
      }
    },
    "/api/card/{id}/view" : {
      "post" : {
        "summary" : "Add a view for a card",
        "description" : "Records a view. Logged-in: userId attached; anonymous: userId null. Optional fingerprint for anonymous deduplication. Same user/fingerprint+card within cooldown = no new record.",
        "tags" : [ "Card Controller" ],
        "parameters" : [ {
          "name" : "id",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "integer",
            "format" : "int64"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/CardViewAddDto"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/CardViewResponseDto"
                }
              }
            }
          },
          "400" : {
            "description" : "Bad Request"
          }
        }
      }
    },
    "/api/profile" : {
      "put" : {
        "summary" : "Update profile for current user",
        "description" : "Updates the profile data for the currently authenticated user. All fields are optional - only provided fields will be updated.",
        "tags" : [ "Profile Controller" ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/ProfileUpdateDto"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ProfileDetailDto"
                }
              }
            }
          },
          "401" : {
            "description" : "Not Authorized"
          },
          "403" : {
            "description" : "Not Allowed"
          },
          "400" : {
            "description" : "Bad Request"
          }
        },
        "security" : [ {
          "SecurityScheme" : [ "USER", "ADMIN" ]
        } ]
      },
      "get" : {
        "summary" : "Get profile for current user",
        "description" : "Retrieves the profile data for the currently authenticated user",
        "tags" : [ "Profile Controller" ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ProfileDetailDto"
                }
              }
            }
          },
          "401" : {
            "description" : "Not Authorized"
          },
          "403" : {
            "description" : "Not Allowed"
          }
        },
        "security" : [ {
          "SecurityScheme" : [ "USER", "ADMIN" ]
        } ]
      },
      "post" : {
        "summary" : "Create profile",
        "description" : "Creates a user profile with interest areas, relationship types, sectors, tags, and email update preferences",
        "tags" : [ "Profile Controller" ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/ProfileCreateDto"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ProfileCreateDto"
                }
              }
            }
          },
          "401" : {
            "description" : "Not Authorized"
          },
          "403" : {
            "description" : "Not Allowed"
          },
          "400" : {
            "description" : "Bad Request"
          }
        },
        "security" : [ {
          "SecurityScheme" : [ "USER", "ADMIN" ]
        } ]
      }
    },
    "/api/profile/boi-types" : {
      "get" : {
        "summary" : "Get all bearer of interest types",
        "description" : "Retrieves all bearer of interest types as label options",
        "tags" : [ "Profile Controller" ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "type" : "array",
                  "items" : {
                    "$ref" : "#/components/schemas/LabelDto"
                  }
                }
              }
            }
          },
          "401" : {
            "description" : "Not Authorized"
          },
          "403" : {
            "description" : "Not Allowed"
          }
        },
        "security" : [ {
          "SecurityScheme" : [ "USER", "ADMIN" ]
        } ]
      }
    },
    "/api/statistics/boi" : {
      "get" : {
        "summary" : "BOI stats",
        "description" : "Per-user stats for bearers (bookmarks, profile matches). 404 if no profile.",
        "tags" : [ "Statistics" ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/StatisticsDto"
                }
              }
            }
          },
          "401" : {
            "description" : "Not Authorized"
          },
          "403" : {
            "description" : "Not Allowed"
          }
        },
        "security" : [ {
          "SecurityScheme" : [ "USER", "ADMIN" ]
        } ]
      }
    },
    "/api/statistics/holder" : {
      "get" : {
        "summary" : "Holder stats",
        "description" : "Per-user stats for card creators (cards, views, messages).",
        "tags" : [ "Statistics" ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/StatisticsDto"
                }
              }
            }
          },
          "401" : {
            "description" : "Not Authorized"
          },
          "403" : {
            "description" : "Not Allowed"
          }
        },
        "security" : [ {
          "SecurityScheme" : [ "USER", "ADMIN" ]
        } ]
      }
    },
    "/api/statistics/homepage" : {
      "get" : {
        "summary" : "Homepage stats",
        "description" : "Global stats (cards, profiles, contacts).",
        "tags" : [ "Statistics" ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/StatisticsDto"
                }
              }
            }
          }
        }
      }
    }
  },
  "info" : {
    "title" : "UIBM Cabinet API",
    "version" : "0.0.11",
    "description" : "Cabinet services for UIBM Applications",
    "contact" : {
      "name" : "IBM Consulting & RTI",
      "email" : "info@it.ibm.com"
    }
  }
}