{"openapi":"3.0.1","info":{"title":"OpenAPI definition","version":"v0"},"servers":[{"url":"http://dev-admin.przetargi.info","description":"Generated server url"}],"tags":[{"name":"Home","description":"serve main/info HTML page"},{"name":"RulesetsApi","description":"Read-only access to NRS rulesets (view only, no create/edit/delete)"},{"name":"AuthApi","description":"Api for authentication"},{"name":"NotificationsApi","description":"Read-only access to NRS notifications"}],"paths":{"/api/manager/verify-manager-access/{token}":{"post":{"tags":["AuthApi"],"summary":"Verify manager access","operationId":"verifyManagerAccess","parameters":[{"name":"token","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK"}}}},"/api/manager/logout":{"post":{"tags":["AuthApi"],"summary":"Logout","operationId":"logout","responses":{"200":{"description":"OK"}}}},"/api/manager/login":{"post":{"tags":["AuthApi"],"summary":"Login","operationId":"login","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ManagerLoginRequest"}}},"required":true},"responses":{"200":{"description":"OK"}}}},"/api/rulesets":{"get":{"tags":["RulesetsApi"],"summary":"List rulesets, filtered by active state","operationId":"list","parameters":[{"name":"active","in":"query","required":false,"schema":{"type":"string","default":"ACTIVE","enum":["ACTIVE","INACTIVE","ALL"]}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/RulesetDto"}}}}}}}},"/api/rulesets/{id}":{"get":{"tags":["RulesetsApi"],"summary":"Ruleset details","operationId":"get","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RulesetDto"}}}}}}},"/api/rulesets/config-fields":{"get":{"tags":["RulesetsApi"],"summary":"List config fields (used to resolve ruleset property names)","operationId":"listConfigFields","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ConfigFieldDto"}}}}}}}},"/api/notifications":{"get":{"tags":["NotificationsApi"],"summary":"List notifications","operationId":"listNotifications","parameters":[{"name":"page","in":"query","description":"Zero-based page index.","required":false,"schema":{"minimum":0,"type":"integer","description":"Zero-based page index.","format":"int32","default":0}},{"name":"size","in":"query","description":"Page size.","required":false,"schema":{"maximum":100,"minimum":1,"type":"integer","description":"Page size.","format":"int32","default":20}},{"name":"id","in":"query","description":"Filter: exact numeric id.","required":false,"schema":{"type":"integer","description":"Filter: exact numeric id.","format":"int64"}},{"name":"uuid","in":"query","description":"Filter: exact uuid.","required":false,"schema":{"type":"string","description":"Filter: exact uuid."}},{"name":"relationCount","in":"query","description":"Filter: exact relationCount.","required":false,"schema":{"type":"integer","description":"Filter: exact relationCount.","format":"int64"}},{"name":"groupId","in":"query","description":"Filter: exact group id.","required":false,"schema":{"type":"string","description":"Filter: exact group id."}},{"name":"dataSource","in":"query","description":"Filter: exact dataSource.","required":false,"schema":{"type":"string","description":"Filter: exact dataSource."}},{"name":"country","in":"query","description":"Filter: country code.","required":false,"schema":{"type":"string","description":"Filter: country code."}},{"name":"referenceNumber","in":"query","description":"Filter: referenceNumber.","required":false,"schema":{"type":"string","description":"Filter: referenceNumber."}},{"name":"authorityReference","in":"query","description":"Filter: authorityReference.","required":false,"schema":{"type":"string","description":"Filter: authorityReference."}},{"name":"sortField","in":"query","description":"Sort field.","required":false,"schema":{"type":"string","description":"Sort field."}},{"name":"sortDir","in":"query","description":"Sort direction.","required":false,"schema":{"type":"string","description":"Sort direction.","enum":["asc","desc"]}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotificationsPageDto"}}}}}}},"/api/notifications/{uuid}":{"get":{"tags":["NotificationsApi"],"summary":"Notification details","operationId":"notificationDetails","parameters":[{"name":"uuid","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotificationDetailsDto"}}}}}}},"/api/notifications/{uuid}/similar":{"get":{"tags":["NotificationsApi"],"summary":"Similar notifications (suggestions)","operationId":"getSimilar","parameters":[{"name":"uuid","in":"path","required":true,"schema":{"type":"string"}},{"name":"limit","in":"query","required":false,"schema":{"maximum":20,"minimum":1,"type":"integer","format":"int32","default":20}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/SimilarNotificationDto"}}}}}}}},"/api/notifications/{uuid}/relations":{"get":{"tags":["NotificationsApi"],"summary":"Related notifications (same group)","operationId":"getRelations","parameters":[{"name":"uuid","in":"path","required":true,"schema":{"type":"string"}},{"name":"page","in":"query","required":false,"schema":{"minimum":0,"type":"integer","format":"int32","default":0}},{"name":"size","in":"query","required":false,"schema":{"maximum":100,"minimum":1,"type":"integer","format":"int32","default":20}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RelatedNotificationsPageDto"}}}}}}},"/api/manager/current-user":{"get":{"tags":["AuthApi"],"summary":"Get the currently authenticated manager","operationId":"getCurrentUser","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CurrentManagerResponse"}}}}}}},"/":{"get":{"tags":["Home"],"operationId":"indexHTML","responses":{"200":{"description":"OK","content":{"text/html":{"schema":{"type":"string"}}}}}}}},"components":{"schemas":{"ManagerLoginRequest":{"type":"object","properties":{"username":{"type":"string"},"password":{"type":"string"},"portalId":{"type":"string"}}},"RulesetDto":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"name":{"type":"string"},"active":{"type":"boolean"},"defaultRuleset":{"type":"boolean"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"datasources":{"type":"array","items":{"type":"string"}},"realisationCountries":{"type":"array","items":{"type":"string"}},"properties":{"type":"array","items":{"$ref":"#/components/schemas/RulesetPropertyDto"}}},"description":"A ruleset (view only in this API — no create/update/delete)."},"RulesetPropertyDto":{"type":"object","properties":{"configFieldId":{"type":"integer","format":"int64"},"configFieldNotificationProperty":{"type":"string"},"position":{"type":"integer","format":"int32"},"active":{"type":"boolean"}},"description":"One ordered config-field reference within a ruleset's property list."},"ConfigFieldDto":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"name":{"type":"string"},"notificationProperty":{"type":"string"}},"description":"A field a ruleset's property list can reference."},"NotificationDto":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"uuid":{"type":"string"},"title":{"type":"string"},"relationCount":{"type":"integer","format":"int64"},"groupId":{"type":"string"},"dataSource":{"type":"string"},"countries":{"type":"array","items":{"type":"string"}},"nutsCodes":{"type":"array","items":{"type":"string"}},"referenceNumber":{"type":"string"},"authorityReference":{"type":"string"},"authorityName":{"type":"string"},"contractorName":{"type":"string"},"typeOfDocument":{"type":"string"},"subTypeOfDocument":{"type":"string"},"status":{"type":"string"},"publicationDate":{"type":"string","format":"date-time"},"lastRelatedDate":{"type":"string","format":"date-time"},"lastUpdated":{"type":"string","format":"date-time"}},"description":"A single notification."},"NotificationsPageDto":{"type":"object","properties":{"content":{"type":"array","items":{"$ref":"#/components/schemas/NotificationDto"}},"page":{"type":"integer","format":"int32"},"size":{"type":"integer","format":"int32"},"totalElements":{"type":"integer","format":"int64"},"totalPages":{"type":"integer","format":"int32"}},"description":"A page of notifications."},"NotificationDetailsDto":{"type":"object","properties":{"notification":{"$ref":"#/components/schemas/NotificationDto"},"relations":{"type":"array","items":{"$ref":"#/components/schemas/NotificationDto"}}},"description":"A notification plus its current group's other members."},"SimilarNotificationDto":{"type":"object","properties":{"notification":{"$ref":"#/components/schemas/NotificationDto"},"score":{"type":"number","format":"double"},"matchingFields":{"type":"array","items":{"type":"string"}},"mismatchedFields":{"type":"array","items":{"type":"string"}}},"description":"A ranked similar-notification suggestion candidate."},"RelatedNotificationDto":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"uuid":{"type":"string"},"title":{"type":"string"},"referenceNumber":{"type":"string"},"authorityName":{"type":"string"},"contractorName":{"type":"string"},"realisationCountry":{"type":"string"},"nutsCodes":{"type":"array","items":{"type":"string"}},"dataSource":{"type":"string"},"subTypeOfDocument":{"type":"string"},"publicationDate":{"type":"string","format":"date-time"},"lastUpdated":{"type":"string","format":"date-time"},"source":{"type":"string","enum":["AUTO","MANUAL","BOTH"]}},"description":"A notification that is related to the requested notification."},"RelatedNotificationsPageDto":{"type":"object","properties":{"content":{"type":"array","items":{"$ref":"#/components/schemas/RelatedNotificationDto"}},"page":{"type":"integer","format":"int32"},"size":{"type":"integer","format":"int32"},"totalElements":{"type":"integer","format":"int64"},"totalPages":{"type":"integer","format":"int32"}},"description":"A page of related notifications."},"CurrentManagerResponse":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"username":{"type":"string"},"uuid":{"type":"string"}}}}}}