{"openapi":"3.0.0","paths":{"/auth/login":{"post":{"description":"Login with username and api key","operationId":"login","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserCredentials"}}}},"responses":{"201":{"description":"Token","content":{"application/json":{"schema":{"type":"string"}}}}},"summary":"Login","tags":["Auth"]}},"/auth/validate":{"post":{"description":"Validate JWT token","operationId":"validateToken","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TokenValidation"}}}},"responses":{"201":{"description":"Whether the token is valid","content":{"application/json":{"schema":{"type":"boolean"}}}}},"summary":"Validate token","tags":["Auth"]}},"/auth/is-admin":{"get":{"description":"Check if the current user is admin","operationId":"isAdmin","parameters":[],"responses":{"201":{"description":"Whether the user is admin","content":{"application/json":{"schema":{"type":"boolean"}}}}},"security":[{"bearer":[]}],"summary":"Check if the current user is admin","tags":["Auth"]}},"/proxy/{path}":{"get":{"description":"Proxies a request to the static host and returns the file as a stream","operationId":"proxyRequest","parameters":[{"name":"path","required":true,"in":"path","description":"Static path to proxy","schema":{"type":"string"}}],"responses":{"200":{"description":"File streamed successfully"},"400":{"description":"Invalid path"}},"summary":"Proxy request to static host","tags":["Proxy"]}},"/jobs":{"get":{"description":"Returns a list of all jobs that have been queued or processed.","operationId":"getJobs","parameters":[{"name":"page","required":false,"in":"query","description":"Page number","schema":{"minimum":1,"default":1,"type":"number"}},{"name":"limit","required":false,"in":"query","description":"Page size","schema":{"minimum":1,"maximum":320,"default":20,"type":"number"}}],"responses":{"200":{"description":"A list of all jobs","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/JobInfo"}}}}}},"security":[{"bearer":[]}],"summary":"Get all jobs","tags":["Jobs"]}},"/jobs/schedulers":{"get":{"description":"Returns a list of all registered job schedulers.","operationId":"getJobSchedulers","parameters":[],"responses":{"200":{"description":"A list of all job schedulers","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/SchedulerInfo"}}}}}},"security":[{"bearer":[]}],"summary":"Get all job schedulers","tags":["Jobs"]}},"/jobs/schedulers/{id}/enable":{"put":{"description":"Enables a previously disabled job scheduler.","operationId":"enableJobScheduler","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"security":[{"bearer":[]}],"summary":"Enable a job scheduler","tags":["Jobs"]}},"/jobs/schedulers/{id}/disable":{"put":{"description":"Disables a job scheduler, preventing it from creating jobs.","operationId":"disableJobScheduler","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"security":[{"bearer":[]}],"summary":"Disable a job scheduler","tags":["Jobs"]}},"/health":{"get":{"description":"Check the health of the application","operationId":"healthCheck","parameters":[],"responses":{"200":{"description":"The application is healthy"}},"summary":"Health Check","tags":["Health"]}},"/health/manifests":{"get":{"description":"Retrieve manifest health","operationId":"getManifestHealth","parameters":[{"name":"page","required":false,"in":"query","description":"Page number","schema":{"minimum":1,"default":1,"type":"number"}},{"name":"limit","required":false,"in":"query","description":"Page size","schema":{"minimum":1,"maximum":320,"default":20,"type":"number"}}],"responses":{"200":{"description":"Manifest health","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ManifestHealth"}}}}}},"security":[{"bearer":[]}],"summary":"Retrieve manifest health","tags":["Health"]}},"/health/tiles":{"get":{"description":"Retrieve tile health and coverage information","operationId":"getTileHealth","parameters":[{"name":"page","required":false,"in":"query","description":"Page number","schema":{"minimum":1,"default":1,"type":"number"}},{"name":"limit","required":false,"in":"query","description":"Page size","schema":{"minimum":1,"maximum":320,"default":20,"type":"number"}}],"responses":{"200":{"description":"Tile health information","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/TileHealth"}}}}}},"security":[{"bearer":[]}],"summary":"Retrieve tile health","tags":["Health"]}},"/health/tiles/{type}":{"delete":{"description":"Delete all tiles of the specified type","operationId":"deleteTilesByType","parameters":[{"name":"type","required":true,"in":"path","description":"The type of tiles to delete","schema":{"enum":["upload_hourly","post_pending_hourly"],"type":"string"}},{"name":"scale","required":false,"in":"query","schema":{"$ref":"#/components/schemas/TimeScale"}},{"name":"cycle","required":false,"in":"query","schema":{"$ref":"#/components/schemas/TimeScale"}},{"name":"startDate","required":false,"in":"query","schema":{"format":"date-time","type":"string"}},{"name":"endDate","required":false,"in":"query","schema":{"format":"date-time","type":"string"}},{"name":"timezone","required":false,"in":"query","schema":{"type":"string"}}],"responses":{"204":{"description":"Tiles deleted successfully"}},"security":[{"bearer":[]}],"summary":"Delete all tiles of a type","tags":["Health"]}},"/dashboards/{type}":{"get":{"description":"Get dashboard by type, for the current user","operationId":"getDashboard","parameters":[{"name":"type","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"Dashboard object","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DashboardConfig"}}}},"404":{"description":"Dashboard not found"}},"security":[{"bearer":[]}],"summary":"Get dashboard","tags":["Dashboards"]},"post":{"description":"Update dashboard by type, for the current user","operationId":"updateDashboard","parameters":[{"name":"type","required":true,"in":"path","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DashboardUpdate"}}}},"responses":{"200":{"description":"Updated dashboard object"}},"security":[{"bearer":[]}],"summary":"Update dashboard","tags":["Dashboards"]}},"/dashboards/{type}/delete":{"post":{"description":"Delete dashboard by type, for the current user","operationId":"deleteDashboard","parameters":[{"name":"type","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"Dashboard deleted"}},"security":[{"bearer":[]}],"summary":"Delete dashboard","tags":["Dashboards"]}},"/manifests/available":{"get":{"description":"Returns true if manifests cover the date range, false otherwise","operationId":"checkManifestAvailability","parameters":[{"name":"scale","required":false,"in":"query","schema":{"$ref":"#/components/schemas/TimeScale"}},{"name":"cycle","required":false,"in":"query","schema":{"$ref":"#/components/schemas/TimeScale"}},{"name":"startDate","required":false,"in":"query","schema":{"format":"date-time","type":"string"}},{"name":"endDate","required":false,"in":"query","schema":{"format":"date-time","type":"string"}},{"name":"timezone","required":false,"in":"query","schema":{"type":"string"}},{"name":"type","required":false,"in":"query","schema":{"type":"array","items":{"$ref":"#/components/schemas/ItemType"}}}],"responses":{"200":{"description":"Manifest availability","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ManifestAvailability"}}}}},"security":[{"bearer":[]}],"summary":"Check manifest availability for a date range","tags":["Manifests"]}},"/manifests/{id}":{"get":{"description":"Get a manifest by ID","operationId":"getManifest","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"number"}}],"responses":{"200":{"description":"Manifest","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Manifest"}}}}},"security":[{"bearer":[]}],"summary":"Get a manifest by ID","tags":["Manifests"]},"delete":{"description":"Delete a manifest by ID","operationId":"deleteManifest","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"number"}}],"responses":{"200":{"description":"Manifest deleted successfully"}},"security":[{"bearer":[]}],"summary":"Delete a manifest by ID","tags":["Manifests"]}},"/manifests":{"get":{"description":"List manifests","operationId":"listManifests","parameters":[{"name":"scale","required":true,"in":"query","schema":{"$ref":"#/components/schemas/TimeScale"}},{"name":"cycle","required":true,"in":"query","schema":{"$ref":"#/components/schemas/TimeScale"}},{"name":"startDate","required":false,"in":"query","schema":{"format":"date-time","type":"string"}},{"name":"endDate","required":false,"in":"query","schema":{"format":"date-time","type":"string"}},{"name":"timezone","required":false,"in":"query","schema":{"type":"string"}},{"name":"type","required":false,"in":"query","schema":{"type":"array","items":{"$ref":"#/components/schemas/ItemType"}}},{"name":"id","required":false,"in":"query","schema":{"type":"number"}}],"responses":{"200":{"description":"List of manifests","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Manifest"}}}}}},"security":[{"bearer":[]}],"summary":"List manifests","tags":["Manifests"]}},"/gadgets/motd":{"get":{"operationId":"getMotd","parameters":[],"responses":{"200":{"description":"Today's message of the day","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Motd"}}}}},"summary":"Get today's message of the day","tags":["Gadgets"]}},"/gadgets/activity":{"get":{"description":"Returns today's activity counter","operationId":"getDailyActivity","parameters":[],"responses":{"200":{"description":"Today's activity counter","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DailyActivity"}}}}},"summary":"Get today's activity counter","tags":["Gadgets"]}},"/metrics/approvals/count/summary":{"get":{"description":"Get total approval counts for a given date range","operationId":"getApprovalCountSummary","parameters":[{"name":"scale","required":false,"in":"query","schema":{"$ref":"#/components/schemas/TimeScale"}},{"name":"cycle","required":false,"in":"query","schema":{"$ref":"#/components/schemas/TimeScale"}},{"name":"startDate","required":false,"in":"query","schema":{"format":"date-time","type":"string"}},{"name":"endDate","required":false,"in":"query","schema":{"format":"date-time","type":"string"}},{"name":"timezone","required":false,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalCountSummary"}}}}},"security":[{"bearer":[]}],"summary":"Approval count summary","tags":["Approvals"]}},"/metrics/approvals/count/series":{"get":{"description":"Get a time series of approval counts for a given date range","operationId":"getApprovalCountSeries","parameters":[{"name":"scale","required":false,"in":"query","schema":{"$ref":"#/components/schemas/TimeScale"}},{"name":"cycle","required":false,"in":"query","schema":{"$ref":"#/components/schemas/TimeScale"}},{"name":"startDate","required":false,"in":"query","schema":{"format":"date-time","type":"string"}},{"name":"endDate","required":false,"in":"query","schema":{"format":"date-time","type":"string"}},{"name":"timezone","required":false,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/SeriesCountPoint"}}}}}},"security":[{"bearer":[]}],"summary":"Approval count series","tags":["Approvals"]}},"/metrics/approvals/count/series/by/approver/{approverId}":{"get":{"description":"Get a time series of approval counts for a given date range by approver","operationId":"getApprovalCountSeriesByApprover","parameters":[{"name":"approverId","required":true,"in":"path","schema":{"type":"number"}},{"name":"scale","required":false,"in":"query","schema":{"$ref":"#/components/schemas/TimeScale"}},{"name":"cycle","required":false,"in":"query","schema":{"$ref":"#/components/schemas/TimeScale"}},{"name":"startDate","required":false,"in":"query","schema":{"format":"date-time","type":"string"}},{"name":"endDate","required":false,"in":"query","schema":{"format":"date-time","type":"string"}},{"name":"timezone","required":false,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/SeriesCountPoint"}}}}}},"security":[{"bearer":[]}],"summary":"Approval count series by approver","tags":["Approvals"]}},"/metrics/approvals/approver/summary":{"get":{"description":"Get a summary of approvals by approver for a given date range","operationId":"getApproverSummary","parameters":[{"name":"scale","required":false,"in":"query","schema":{"$ref":"#/components/schemas/TimeScale"}},{"name":"cycle","required":false,"in":"query","schema":{"$ref":"#/components/schemas/TimeScale"}},{"name":"startDate","required":false,"in":"query","schema":{"format":"date-time","type":"string"}},{"name":"endDate","required":false,"in":"query","schema":{"format":"date-time","type":"string"}},{"name":"timezone","required":false,"in":"query","schema":{"type":"string"}},{"name":"page","required":false,"in":"query","description":"Page number","schema":{"minimum":1,"default":1,"type":"number"}},{"name":"limit","required":false,"in":"query","description":"Page size","schema":{"minimum":1,"maximum":320,"default":20,"type":"number"}},{"name":"x-safe-mode","in":"header","description":"Enable safe mode to filter explicit content","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ApproverSummary"}}}}}},"security":[{"bearer":[]}],"summary":"Approver summary","tags":["Approvals"]}},"/users/head/{id}":{"get":{"description":"Get user head by user id","operationId":"getUserHead","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"number"}},{"name":"x-safe-mode","in":"header","description":"Enable safe mode to filter explicit content","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserHead"}}}}},"security":[{"bearer":[]}],"summary":"Get user head","tags":["Users"]}},"/metrics/deletions/count/series":{"get":{"description":"Get a time series of post deletion counts for a given date range","operationId":"getDeletionCountSeries","parameters":[{"name":"scale","required":false,"in":"query","schema":{"$ref":"#/components/schemas/TimeScale"}},{"name":"cycle","required":false,"in":"query","schema":{"$ref":"#/components/schemas/TimeScale"}},{"name":"startDate","required":false,"in":"query","schema":{"format":"date-time","type":"string"}},{"name":"endDate","required":false,"in":"query","schema":{"format":"date-time","type":"string"}},{"name":"timezone","required":false,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/SeriesCountPoint"}}}}}},"security":[{"bearer":[]}],"summary":"Post deletion series","tags":["Deletions"]}},"/metrics/deletions/count/series/by/deleter/{userId}":{"get":{"description":"Get a time series of post deletion counts for a given date range by deleter","operationId":"getDeletionSeriesByDeleter","parameters":[{"name":"userId","required":true,"in":"path","schema":{"type":"number"}},{"name":"scale","required":false,"in":"query","schema":{"$ref":"#/components/schemas/TimeScale"}},{"name":"cycle","required":false,"in":"query","schema":{"$ref":"#/components/schemas/TimeScale"}},{"name":"startDate","required":false,"in":"query","schema":{"format":"date-time","type":"string"}},{"name":"endDate","required":false,"in":"query","schema":{"format":"date-time","type":"string"}},{"name":"timezone","required":false,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/SeriesCountPoint"}}}}}},"security":[{"bearer":[]}],"summary":"Post deletion series by deleter","tags":["Deletions"]}},"/metrics/deletions/activity/summary":{"get":{"description":"Get a hourly summary of post deletion counts for a given date range","operationId":"getDeletionActivitySummary","parameters":[{"name":"scale","required":false,"in":"query","schema":{"$ref":"#/components/schemas/TimeScale"}},{"name":"cycle","required":false,"in":"query","schema":{"$ref":"#/components/schemas/TimeScale"}},{"name":"startDate","required":false,"in":"query","schema":{"format":"date-time","type":"string"}},{"name":"endDate","required":false,"in":"query","schema":{"format":"date-time","type":"string"}},{"name":"timezone","required":false,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/SeriesCountPoint"}}}}}},"security":[{"bearer":[]}],"summary":"Post deletion activity summary","tags":["Deletions"]}},"/metrics/deletions/activity/summary/by/deleter/{userId}":{"get":{"description":"Get a hourly summary of post deletion counts for a given date range by deleter","operationId":"getDeletionActivitySummaryByDeleter","parameters":[{"name":"userId","required":true,"in":"path","schema":{"type":"number"}},{"name":"scale","required":false,"in":"query","schema":{"$ref":"#/components/schemas/TimeScale"}},{"name":"cycle","required":false,"in":"query","schema":{"$ref":"#/components/schemas/TimeScale"}},{"name":"startDate","required":false,"in":"query","schema":{"format":"date-time","type":"string"}},{"name":"endDate","required":false,"in":"query","schema":{"format":"date-time","type":"string"}},{"name":"timezone","required":false,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/SeriesCountPoint"}}}}}},"security":[{"bearer":[]}],"summary":"Post deletion activity summary by deleter","tags":["Deletions"]}},"/metrics/post-replacements/created":{"get":{"description":"Get post replacements created counts for a given date range","operationId":"getPostReplacementCreated","parameters":[{"name":"scale","required":false,"in":"query","schema":{"$ref":"#/components/schemas/TimeScale"}},{"name":"cycle","required":false,"in":"query","schema":{"$ref":"#/components/schemas/TimeScale"}},{"name":"startDate","required":false,"in":"query","schema":{"format":"date-time","type":"string"}},{"name":"endDate","required":false,"in":"query","schema":{"format":"date-time","type":"string"}},{"name":"timezone","required":false,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/SeriesCountPoint"}}}}}},"security":[{"bearer":[]}],"summary":"Post replacements created","tags":["Replacements"]}},"/metrics/post-replacements/status":{"get":{"description":"Get post replacement status counts for a given date range","operationId":"getPostReplacementStatus","parameters":[{"name":"scale","required":false,"in":"query","schema":{"$ref":"#/components/schemas/TimeScale"}},{"name":"cycle","required":false,"in":"query","schema":{"$ref":"#/components/schemas/TimeScale"}},{"name":"startDate","required":false,"in":"query","schema":{"format":"date-time","type":"string"}},{"name":"endDate","required":false,"in":"query","schema":{"format":"date-time","type":"string"}},{"name":"timezone","required":false,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/PostReplacementStatusPoint"}}}}}},"security":[{"bearer":[]}],"summary":"Post replacement status","tags":["Replacements"]}},"/metrics/post-replacements/handled":{"get":{"description":"Get post replacements handled counts for a given date range","operationId":"getPostReplacementHandled","parameters":[{"name":"scale","required":false,"in":"query","schema":{"$ref":"#/components/schemas/TimeScale"}},{"name":"cycle","required":false,"in":"query","schema":{"$ref":"#/components/schemas/TimeScale"}},{"name":"startDate","required":false,"in":"query","schema":{"format":"date-time","type":"string"}},{"name":"endDate","required":false,"in":"query","schema":{"format":"date-time","type":"string"}},{"name":"timezone","required":false,"in":"query","schema":{"type":"string"}},{"name":"userId","required":true,"in":"query","schema":{"type":"number"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/PostReplacementHandledPoint"}}}}}},"security":[{"bearer":[]}],"summary":"Post replacements handled","tags":["Replacements"]}},"/metrics/tickets/status":{"get":{"description":"Get ticket status (pending, approved, partial) counts for a given date range","operationId":"getTicketStatus","parameters":[{"name":"scale","required":false,"in":"query","schema":{"$ref":"#/components/schemas/TimeScale"}},{"name":"cycle","required":false,"in":"query","schema":{"$ref":"#/components/schemas/TimeScale"}},{"name":"startDate","required":false,"in":"query","schema":{"format":"date-time","type":"string"}},{"name":"endDate","required":false,"in":"query","schema":{"format":"date-time","type":"string"}},{"name":"timezone","required":false,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/TicketStatusSeriesPoint"}}}}}},"security":[{"bearer":[]}],"summary":"Ticket status","tags":["Tickets"]}},"/metrics/tickets/type/summary":{"get":{"description":"Get ticket types counts for a given date range","operationId":"getTicketTypeSummary","parameters":[{"name":"scale","required":false,"in":"query","schema":{"$ref":"#/components/schemas/TimeScale"}},{"name":"cycle","required":false,"in":"query","schema":{"$ref":"#/components/schemas/TimeScale"}},{"name":"startDate","required":false,"in":"query","schema":{"format":"date-time","type":"string"}},{"name":"endDate","required":false,"in":"query","schema":{"format":"date-time","type":"string"}},{"name":"timezone","required":false,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TicketTypeSummary"}}}}},"security":[{"bearer":[]}],"summary":"Ticket type summary","tags":["Tickets"]}},"/metrics/tickets/type/summary/by/handler/{claimantId}":{"get":{"description":"Get ticket types counts for a given date range for a specific handler","operationId":"getTicketTypeSummaryByHandler","parameters":[{"name":"claimantId","required":true,"in":"path","schema":{"type":"number"}},{"name":"scale","required":false,"in":"query","schema":{"$ref":"#/components/schemas/TimeScale"}},{"name":"cycle","required":false,"in":"query","schema":{"$ref":"#/components/schemas/TimeScale"}},{"name":"startDate","required":false,"in":"query","schema":{"format":"date-time","type":"string"}},{"name":"endDate","required":false,"in":"query","schema":{"format":"date-time","type":"string"}},{"name":"timezone","required":false,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TicketTypeSummary"}}}}},"security":[{"bearer":[]}],"summary":"Ticket type summary for a handler","tags":["Tickets"]}},"/metrics/tickets/open/series":{"get":{"description":"Get a time series of open tickets for a given date range","operationId":"getTicketOpenSeries","parameters":[{"name":"scale","required":false,"in":"query","schema":{"$ref":"#/components/schemas/TimeScale"}},{"name":"cycle","required":false,"in":"query","schema":{"$ref":"#/components/schemas/TimeScale"}},{"name":"startDate","required":false,"in":"query","schema":{"format":"date-time","type":"string"}},{"name":"endDate","required":false,"in":"query","schema":{"format":"date-time","type":"string"}},{"name":"timezone","required":false,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/SeriesCountPoint"}}}}}},"security":[{"bearer":[]}],"summary":"Ticket open series","tags":["Tickets"]}},"/metrics/tickets/created/series":{"get":{"description":"Get a time series of created tickets for a given date range","operationId":"getTicketCreatedSeries","parameters":[{"name":"scale","required":false,"in":"query","schema":{"$ref":"#/components/schemas/TimeScale"}},{"name":"cycle","required":false,"in":"query","schema":{"$ref":"#/components/schemas/TimeScale"}},{"name":"startDate","required":false,"in":"query","schema":{"format":"date-time","type":"string"}},{"name":"endDate","required":false,"in":"query","schema":{"format":"date-time","type":"string"}},{"name":"timezone","required":false,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/SeriesCountPoint"}}}}}},"security":[{"bearer":[]}],"summary":"Ticket created series","tags":["Tickets"]}},"/metrics/tickets/created/series/by/reporter/{repoterId}":{"get":{"description":"Get a time series of created tickets for a given date range for a specific reporter","operationId":"getTicketCreatedSeriesByReporter","parameters":[{"name":"repoterId","required":true,"in":"path","schema":{"type":"number"}},{"name":"scale","required":false,"in":"query","schema":{"$ref":"#/components/schemas/TimeScale"}},{"name":"cycle","required":false,"in":"query","schema":{"$ref":"#/components/schemas/TimeScale"}},{"name":"startDate","required":false,"in":"query","schema":{"format":"date-time","type":"string"}},{"name":"endDate","required":false,"in":"query","schema":{"format":"date-time","type":"string"}},{"name":"timezone","required":false,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/SeriesCountPoint"}}}}}},"security":[{"bearer":[]}],"summary":"Ticket created series by reporter","tags":["Tickets"]}},"/metrics/tickets/closed/series":{"get":{"description":"Get a time series of closed tickets for a given date range","operationId":"getTicketClosedSeries","parameters":[{"name":"scale","required":false,"in":"query","schema":{"$ref":"#/components/schemas/TimeScale"}},{"name":"cycle","required":false,"in":"query","schema":{"$ref":"#/components/schemas/TimeScale"}},{"name":"startDate","required":false,"in":"query","schema":{"format":"date-time","type":"string"}},{"name":"endDate","required":false,"in":"query","schema":{"format":"date-time","type":"string"}},{"name":"timezone","required":false,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/SeriesCountPoint"}}}}}},"security":[{"bearer":[]}],"summary":"Ticket closed series","tags":["Tickets"]}},"/metrics/tickets/closed/series/by/handler/{handlerId}":{"get":{"description":"Get a time series of closed tickets for a given date range for a specific handler","operationId":"getTicketClosedSeriesByHandler","parameters":[{"name":"handlerId","required":true,"in":"path","schema":{"type":"number"}},{"name":"scale","required":false,"in":"query","schema":{"$ref":"#/components/schemas/TimeScale"}},{"name":"cycle","required":false,"in":"query","schema":{"$ref":"#/components/schemas/TimeScale"}},{"name":"startDate","required":false,"in":"query","schema":{"format":"date-time","type":"string"}},{"name":"endDate","required":false,"in":"query","schema":{"format":"date-time","type":"string"}},{"name":"timezone","required":false,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/SeriesCountPoint"}}}}}},"security":[{"bearer":[]}],"summary":"Ticket closed series by handler","tags":["Tickets"]}},"/metrics/tickets/age/series":{"get":{"description":"Get a time series of ticket ages for a given date range","operationId":"getTicketAgeSeries","parameters":[{"name":"scale","required":false,"in":"query","schema":{"$ref":"#/components/schemas/TimeScale"}},{"name":"cycle","required":false,"in":"query","schema":{"$ref":"#/components/schemas/TimeScale"}},{"name":"startDate","required":false,"in":"query","schema":{"format":"date-time","type":"string"}},{"name":"endDate","required":false,"in":"query","schema":{"format":"date-time","type":"string"}},{"name":"timezone","required":false,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/TicketAgeSeriesPoint"}}}}}},"security":[{"bearer":[]}],"summary":"Ticket age series","tags":["Tickets"]}},"/metrics/tickets/age/summary":{"get":{"description":"Get a summary of ticket ages for a given date range","operationId":"getTicketAgeSummary","parameters":[{"name":"scale","required":false,"in":"query","schema":{"$ref":"#/components/schemas/TimeScale"}},{"name":"cycle","required":false,"in":"query","schema":{"$ref":"#/components/schemas/TimeScale"}},{"name":"startDate","required":false,"in":"query","schema":{"format":"date-time","type":"string"}},{"name":"endDate","required":false,"in":"query","schema":{"format":"date-time","type":"string"}},{"name":"timezone","required":false,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TicketAgeSummary"}}}}},"security":[{"bearer":[]}],"summary":"Ticket age summary","tags":["Tickets"]}},"/metrics/tickets/handler/summary":{"get":{"description":"Get a summary of ticket handling counts for a given date range","operationId":"getTicketHandlerSummary","parameters":[{"name":"scale","required":false,"in":"query","schema":{"$ref":"#/components/schemas/TimeScale"}},{"name":"cycle","required":false,"in":"query","schema":{"$ref":"#/components/schemas/TimeScale"}},{"name":"startDate","required":false,"in":"query","schema":{"format":"date-time","type":"string"}},{"name":"endDate","required":false,"in":"query","schema":{"format":"date-time","type":"string"}},{"name":"timezone","required":false,"in":"query","schema":{"type":"string"}},{"name":"page","required":false,"in":"query","description":"Page number","schema":{"minimum":1,"default":1,"type":"number"}},{"name":"limit","required":false,"in":"query","description":"Page size","schema":{"minimum":1,"maximum":320,"default":20,"type":"number"}},{"name":"x-safe-mode","in":"header","description":"Enable safe mode to filter explicit content","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/TicketHandlerSummary"}}}}}},"security":[{"bearer":[]}],"summary":"Handler summary","tags":["Tickets"]}},"/metrics/tickets/reporter/summary":{"get":{"description":"Get a summary of ticket reporting counts for a given date range","operationId":"getTicketReporterSummary","parameters":[{"name":"scale","required":false,"in":"query","schema":{"$ref":"#/components/schemas/TimeScale"}},{"name":"cycle","required":false,"in":"query","schema":{"$ref":"#/components/schemas/TimeScale"}},{"name":"startDate","required":false,"in":"query","schema":{"format":"date-time","type":"string"}},{"name":"endDate","required":false,"in":"query","schema":{"format":"date-time","type":"string"}},{"name":"timezone","required":false,"in":"query","schema":{"type":"string"}},{"name":"page","required":false,"in":"query","description":"Page number","schema":{"minimum":1,"default":1,"type":"number"}},{"name":"limit","required":false,"in":"query","description":"Page size","schema":{"minimum":1,"maximum":320,"default":20,"type":"number"}},{"name":"x-safe-mode","in":"header","description":"Enable safe mode to filter explicit content","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/TicketReporterSummary"}}}}}},"security":[{"bearer":[]}],"summary":"Reporter summary","tags":["Tickets"]}},"/metrics/performance/performance":{"get":{"description":"Get performance data for an area.","operationId":"getPerformance","parameters":[{"name":"scale","required":false,"in":"query","schema":{"$ref":"#/components/schemas/TimeScale"}},{"name":"cycle","required":false,"in":"query","schema":{"$ref":"#/components/schemas/TimeScale"}},{"name":"startDate","required":false,"in":"query","schema":{"format":"date-time","type":"string"}},{"name":"endDate","required":false,"in":"query","schema":{"format":"date-time","type":"string"}},{"name":"timezone","required":false,"in":"query","schema":{"type":"string"}},{"name":"area","required":false,"in":"query","schema":{"$ref":"#/components/schemas/UserArea"}},{"name":"activities","required":false,"in":"query","schema":{"type":"array","items":{"$ref":"#/components/schemas/Activity"}}},{"name":"userId","required":false,"in":"query","schema":{"type":"number"}},{"name":"head","required":false,"in":"query","schema":{"type":"boolean"}},{"name":"x-safe-mode","in":"header","description":"Enable safe mode to filter explicit content","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/PerformanceSummary"}}}}}},"security":[{"bearer":[]}],"summary":"Performance","tags":["Performance"]}},"/metrics/performance/activity":{"get":{"description":"Get activity data for the specified range, scale, and cycle.","operationId":"getActivity","parameters":[{"name":"scale","required":false,"in":"query","schema":{"$ref":"#/components/schemas/TimeScale"}},{"name":"cycle","required":false,"in":"query","schema":{"$ref":"#/components/schemas/TimeScale"}},{"name":"startDate","required":false,"in":"query","schema":{"format":"date-time","type":"string"}},{"name":"endDate","required":false,"in":"query","schema":{"format":"date-time","type":"string"}},{"name":"timezone","required":false,"in":"query","schema":{"type":"string"}},{"name":"area","required":false,"in":"query","schema":{"$ref":"#/components/schemas/UserArea"}},{"name":"activities","required":false,"in":"query","schema":{"type":"array","items":{"$ref":"#/components/schemas/Activity"}}},{"name":"userId","required":false,"in":"query","schema":{"type":"number"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ActivitySeriesPoint"}}}}}},"security":[{"bearer":[]}],"summary":"Activity","tags":["Performance"]}},"/metrics/posts/status/summary":{"get":{"description":"Get post status (approved, deleted, permitted) counts for a given date range","operationId":"getPostStatusSummary","parameters":[{"name":"scale","required":false,"in":"query","schema":{"$ref":"#/components/schemas/TimeScale"}},{"name":"cycle","required":false,"in":"query","schema":{"$ref":"#/components/schemas/TimeScale"}},{"name":"startDate","required":false,"in":"query","schema":{"format":"date-time","type":"string"}},{"name":"endDate","required":false,"in":"query","schema":{"format":"date-time","type":"string"}},{"name":"timezone","required":false,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PostStatusSummary"}}}}},"security":[{"bearer":[]}],"summary":"Post status summary","tags":["Posts"]}},"/metrics/posts/pending/series":{"get":{"description":"Get post pending series for a given date range","operationId":"getPostPendingSeries","parameters":[{"name":"scale","required":false,"in":"query","schema":{"$ref":"#/components/schemas/TimeScale"}},{"name":"cycle","required":false,"in":"query","schema":{"$ref":"#/components/schemas/TimeScale"}},{"name":"startDate","required":false,"in":"query","schema":{"format":"date-time","type":"string"}},{"name":"endDate","required":false,"in":"query","schema":{"format":"date-time","type":"string"}},{"name":"timezone","required":false,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/SeriesCountPoint"}}}}}},"security":[{"bearer":[]}],"summary":"Post pending series","tags":["Posts"]}},"/metrics/feedbacks/type":{"get":{"description":"Get a time series of feedback types counts for a given range","operationId":"getFeedbackTypeSeries","parameters":[{"name":"scale","required":false,"in":"query","schema":{"$ref":"#/components/schemas/TimeScale"}},{"name":"cycle","required":false,"in":"query","schema":{"$ref":"#/components/schemas/TimeScale"}},{"name":"startDate","required":false,"in":"query","schema":{"format":"date-time","type":"string"}},{"name":"endDate","required":false,"in":"query","schema":{"format":"date-time","type":"string"}},{"name":"timezone","required":false,"in":"query","schema":{"type":"string"}},{"name":"creatorId","required":false,"in":"query","schema":{"type":"number"}},{"name":"userId","required":false,"in":"query","schema":{"type":"number"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/FeedbackTypeSeriesPoint"}}}}}},"security":[{"bearer":[]}],"summary":"Feedback Type Series","tags":["Feedbacks"]}},"/metrics/uploads/count":{"get":{"description":"Get a time series of upload counts for a given date range","operationId":"getUploadCount","parameters":[{"name":"scale","required":false,"in":"query","schema":{"$ref":"#/components/schemas/TimeScale"}},{"name":"cycle","required":false,"in":"query","schema":{"$ref":"#/components/schemas/TimeScale"}},{"name":"startDate","required":false,"in":"query","schema":{"format":"date-time","type":"string"}},{"name":"endDate","required":false,"in":"query","schema":{"format":"date-time","type":"string"}},{"name":"timezone","required":false,"in":"query","schema":{"type":"string"}},{"name":"uploaderId","required":false,"in":"query","schema":{"type":"number"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/SeriesCountPoint"}}}}}},"security":[{"bearer":[]}],"summary":"Upload series","tags":["Uploads"]}},"/metrics/uploads/uploader/summary":{"get":{"description":"Get a summary of post uploading counts for a given date range","operationId":"getPostUploaderSummary","parameters":[{"name":"scale","required":false,"in":"query","schema":{"$ref":"#/components/schemas/TimeScale"}},{"name":"cycle","required":false,"in":"query","schema":{"$ref":"#/components/schemas/TimeScale"}},{"name":"startDate","required":false,"in":"query","schema":{"format":"date-time","type":"string"}},{"name":"endDate","required":false,"in":"query","schema":{"format":"date-time","type":"string"}},{"name":"timezone","required":false,"in":"query","schema":{"type":"string"}},{"name":"page","required":false,"in":"query","description":"Page number","schema":{"minimum":1,"default":1,"type":"number"}},{"name":"limit","required":false,"in":"query","description":"Page size","schema":{"minimum":1,"maximum":320,"default":20,"type":"number"}},{"name":"x-safe-mode","in":"header","description":"Enable safe mode to filter explicit content","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/PostUploaderSummary"}}}}}},"security":[{"bearer":[]}],"summary":"Uploader summary","tags":["Uploads"]}},"/metrics/permits/count":{"get":{"description":"Get total permit counts for a given date range","operationId":"getPermitCount","parameters":[{"name":"scale","required":false,"in":"query","schema":{"$ref":"#/components/schemas/TimeScale"}},{"name":"cycle","required":false,"in":"query","schema":{"$ref":"#/components/schemas/TimeScale"}},{"name":"startDate","required":false,"in":"query","schema":{"format":"date-time","type":"string"}},{"name":"endDate","required":false,"in":"query","schema":{"format":"date-time","type":"string"}},{"name":"timezone","required":false,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/SeriesCountPoint"}}}}}},"security":[{"bearer":[]}],"summary":"Get total permit counts for a given date range","tags":["Permits"]}}},"info":{"title":"@6oclock/api","description":"backend data aggregate for 6 o'clock","version":"1.0.0","contact":{}},"tags":[],"servers":[],"components":{"securitySchemes":{"bearer":{"scheme":"bearer","bearerFormat":"JWT","type":"http"}},"schemas":{"UserCredentials":{"type":"object","properties":{"username":{"type":"string","minLength":1},"password":{"type":"string","pattern":"^[a-zA-Z0-9]{24,32}$"}},"required":["username","password"]},"TokenValidation":{"type":"object","properties":{"token":{"type":"string"}},"required":["token"]},"JobInfo":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"queue":{"type":"string"},"state":{"type":"string"},"scheduledAt":{"format":"date-time","type":"string"},"startedAt":{"format":"date-time","type":"string"},"endedAt":{"format":"date-time","type":"string"},"failedReason":{"type":"string"}},"required":["id","name","queue","state"]},"SchedulerInfo":{"type":"object","properties":{"id":{"type":"string"},"queue":{"type":"string"},"pattern":{"type":"string"},"enabled":{"type":"boolean"}},"required":["id","queue","pattern","enabled"]},"ItemType":{"type":"string","enum":["tickets","posts","users","user_profiles","flags","feedbacks","post_versions","post_replacements","post_events","mod_actions","bulk_update_requests","tag_aliases","tag_implications","permits"]},"ManifestSlice":{"type":"object","properties":{"startId":{"type":"number"},"endId":{"type":"number"},"available":{"type":"number"},"unavailable":{"type":"number"},"none":{"type":"number"}},"required":["startId","endId","available","unavailable","none"]},"ManifestHealth":{"type":"object","properties":{"type":{"allOf":[{"$ref":"#/components/schemas/ItemType"}]},"id":{"type":"number"},"porous":{"type":"boolean"},"startDate":{"format":"date-time","type":"string"},"endDate":{"format":"date-time","type":"string"},"startId":{"type":"number"},"endId":{"type":"number"},"count":{"type":"number"},"slices":{"type":"array","items":{"$ref":"#/components/schemas/ManifestSlice"}}},"required":["type","id","porous","startDate","endDate","startId","endId","count","slices"]},"TileType":{"type":"string","enum":["upload_hourly","post_pending_hourly"]},"TileSlice":{"type":"object","properties":{"startDate":{"format":"date-time","type":"string"},"endDate":{"format":"date-time","type":"string"},"available":{"type":"number"},"unavailable":{"type":"number"},"none":{"type":"number"}},"required":["startDate","endDate","available","unavailable","none"]},"TileHealth":{"type":"object","properties":{"type":{"allOf":[{"$ref":"#/components/schemas/TileType"}]},"startDate":{"format":"date-time","type":"string"},"endDate":{"format":"date-time","type":"string"},"expected":{"type":"number"},"actual":{"type":"number"},"slices":{"type":"array","items":{"$ref":"#/components/schemas/TileSlice"}}},"required":["type","startDate","endDate","expected","actual","slices"]},"TimeScale":{"type":"string","enum":["minute","hour","day","week","month","year","decade","all"]},"DashboardPosition":{"type":"object","properties":{"i":{"type":"string"},"x":{"type":"number"},"y":{"type":"number"},"w":{"type":"number"},"h":{"type":"number"}},"required":["i","x","y","w","h"]},"DashboardPositions":{"type":"object","properties":{"xs":{"type":"array","items":{"$ref":"#/components/schemas/DashboardPosition"}},"sm":{"type":"array","items":{"$ref":"#/components/schemas/DashboardPosition"}},"md":{"type":"array","items":{"$ref":"#/components/schemas/DashboardPosition"}},"lg":{"type":"array","items":{"$ref":"#/components/schemas/DashboardPosition"}},"xl":{"type":"array","items":{"$ref":"#/components/schemas/DashboardPosition"}}}},"DashboardConfig":{"type":"object","properties":{"type":{"type":"string","enum":["moderator","janitor","admin"]},"userId":{"type":"number"},"version":{"type":"number"},"positions":{"$ref":"#/components/schemas/DashboardPositions"},"meta":{"type":"object"}},"required":["type","userId","version","positions","meta"]},"DashboardUpdate":{"type":"object","properties":{"version":{"type":"number"},"positions":{"$ref":"#/components/schemas/DashboardPositions"},"meta":{"type":"object"}}},"ManifestAvailability":{"type":"object","properties":{"approvals":{"type":"number"},"tickets":{"type":"number"},"posts":{"type":"number"},"users":{"type":"number"},"userProfiles":{"type":"number"},"flags":{"type":"number"},"feedbacks":{"type":"number"},"postVersions":{"type":"number"},"postReplacements":{"type":"number"},"modActions":{"type":"number"},"bulkUpdateRequests":{"type":"number"},"tagAliases":{"type":"number"},"tagImplications":{"type":"number"}}},"Manifest":{"type":"object","properties":{"type":{"allOf":[{"$ref":"#/components/schemas/ItemType"}]},"id":{"type":"number"},"startDate":{"format":"date-time","type":"string"},"endDate":{"format":"date-time","type":"string"},"lowerId":{"type":"number"},"upperId":{"type":"number"}},"required":["type","id","startDate","endDate","lowerId","upperId"]},"Motd":{"type":"object","properties":{"message":{"type":"string","description":"The message of the day","example":"Your valiant efforts are appreciated."}},"required":["message"]},"Activity":{"type":"string","enum":["post_create","post_delete","post_approve","post_replacement_create","post_replacement_approve","post_replacement_promote","post_replacement_reject","ticket_create","ticket_handle"]},"DailyActivity":{"type":"object","properties":{"value":{"type":"number","description":"The counter value","example":42},"timescale":{"allOf":[{"$ref":"#/components/schemas/TimeScale"}]},"activity":{"allOf":[{"$ref":"#/components/schemas/Activity"}]}},"required":["value","timescale","activity"]},"ApprovalCountSummary":{"type":"object","properties":{"total":{"type":"number"}},"required":["total"]},"SeriesCountPoint":{"type":"object","properties":{"date":{"format":"date-time","type":"string"},"value":{"type":"number"}},"required":["date","value"]},"UserHead":{"type":"object","properties":{"id":{"type":"number"},"name":{"type":"string"},"avatar":{"type":"string"},"level":{"type":"string"}},"required":["id","name","level"]},"ApproverSummary":{"type":"object","properties":{"userId":{"type":"number"},"head":{"$ref":"#/components/schemas/UserHead"},"total":{"type":"number"},"position":{"type":"number"},"days":{"type":"number"}},"required":["userId","total","position","days"]},"PostReplacementStatusPoint":{"type":"object","properties":{"pending":{"type":"number"},"date":{"format":"date-time","type":"string"},"rejected":{"type":"number"},"approved":{"type":"number"},"promoted":{"type":"number"}},"required":["pending","date","rejected","approved","promoted"]},"PostReplacementHandledPoint":{"type":"object","properties":{"date":{"format":"date-time","type":"string"},"rejected":{"type":"number"},"approved":{"type":"number"},"promoted":{"type":"number"}},"required":["date","rejected","approved","promoted"]},"TicketStatusSeriesPoint":{"type":"object","properties":{"date":{"format":"date-time","type":"string"},"pending":{"type":"number"},"approved":{"type":"number"},"partial":{"type":"number"}},"required":["date","pending","approved","partial"]},"TicketTypeSummary":{"type":"object","properties":{"user":{"type":"number"},"comment":{"type":"number"},"forum":{"type":"number"},"blip":{"type":"number"},"wiki":{"type":"number"},"pool":{"type":"number"},"set":{"type":"number"},"post":{"type":"number"},"dmail":{"type":"number"},"replacement":{"type":"number"}},"required":["user","comment","forum","blip","wiki","pool","set","post","dmail","replacement"]},"TicketAgeSeriesPoint":{"type":"object","properties":{"date":{"format":"date-time","type":"string"},"oneDay":{"type":"number"},"threeDays":{"type":"number"},"oneWeek":{"type":"number"},"twoWeeks":{"type":"number"},"oneMonth":{"type":"number"},"aboveOneMonth":{"type":"number"}},"required":["date","oneDay","threeDays","oneWeek","twoWeeks","oneMonth","aboveOneMonth"]},"TicketAgeSummary":{"type":"object","properties":{"oneDay":{"type":"number"},"threeDays":{"type":"number"},"oneWeek":{"type":"number"},"twoWeeks":{"type":"number"},"oneMonth":{"type":"number"},"aboveOneMonth":{"type":"number"}},"required":["oneDay","threeDays","oneWeek","twoWeeks","oneMonth","aboveOneMonth"]},"TicketHandlerSummary":{"type":"object","properties":{"userId":{"type":"number"},"head":{"$ref":"#/components/schemas/UserHead"},"total":{"type":"number"},"position":{"type":"number"},"days":{"type":"number"}},"required":["userId","total","position","days"]},"TicketReporterSummary":{"type":"object","properties":{"userId":{"type":"number"},"head":{"$ref":"#/components/schemas/UserHead"},"total":{"type":"number"},"days":{"type":"number"}},"required":["userId","total","days"]},"UserArea":{"type":"string","enum":["admin","moderator","janitor","member"]},"PerformanceGrade":{"type":"string","enum":["F","E","D","C","B","A","S","S2","S3","S4","S5","S6"]},"TrendGrade":{"type":"string","enum":["plummet","drop","decline","neutral","rise","climb","surge"]},"PerformanceRecord":{"type":"object","properties":{"grade":{"allOf":[{"$ref":"#/components/schemas/PerformanceGrade"}]},"score":{"type":"number"}},"required":["grade","score"]},"ActivitySummary":{"type":"object","properties":{"postCreate":{"type":"number"},"postDelete":{"type":"number"},"postApprove":{"type":"number"},"postReplacementCreate":{"type":"number"},"postReplacementApprove":{"type":"number"},"postReplacementReject":{"type":"number"},"postReplacementPromote":{"type":"number"},"ticketCreate":{"type":"number"},"ticketHandle":{"type":"number"}},"required":["postCreate","postDelete","postApprove","postReplacementCreate","postReplacementApprove","postReplacementReject","postReplacementPromote","ticketCreate","ticketHandle"]},"PerformanceSummary":{"type":"object","properties":{"scoreGrade":{"allOf":[{"$ref":"#/components/schemas/PerformanceGrade"}]},"trendGrade":{"allOf":[{"$ref":"#/components/schemas/TrendGrade"}]},"userId":{"type":"number"},"head":{"$ref":"#/components/schemas/UserHead"},"position":{"type":"number"},"score":{"type":"number"},"trend":{"type":"number"},"history":{"type":"array","items":{"$ref":"#/components/schemas/PerformanceRecord"}},"activity":{"$ref":"#/components/schemas/ActivitySummary"},"days":{"type":"number"}},"required":["scoreGrade","trendGrade","userId","position","score","trend","history","activity","days"]},"ActivitySeriesPoint":{"type":"object","properties":{"postCreate":{"type":"number"},"postDelete":{"type":"number"},"postApprove":{"type":"number"},"postReplacementCreate":{"type":"number"},"postReplacementApprove":{"type":"number"},"postReplacementReject":{"type":"number"},"postReplacementPromote":{"type":"number"},"ticketCreate":{"type":"number"},"ticketHandle":{"type":"number"},"date":{"format":"date-time","type":"string"}},"required":["postCreate","postDelete","postApprove","postReplacementCreate","postReplacementApprove","postReplacementReject","postReplacementPromote","ticketCreate","ticketHandle","date"]},"PostStatusSummary":{"type":"object","properties":{"pending":{"type":"number"},"approved":{"type":"number"},"deleted":{"type":"number"},"permitted":{"type":"number"}},"required":["pending","approved","deleted","permitted"]},"FeedbackTypeSeriesPoint":{"type":"object","properties":{"date":{"format":"date-time","type":"string"},"negative":{"type":"number"},"neutral":{"type":"number"},"positive":{"type":"number"}},"required":["date","negative","neutral","positive"]},"PostUploaderSummary":{"type":"object","properties":{"userId":{"type":"number"},"head":{"$ref":"#/components/schemas/UserHead"},"total":{"type":"number"},"position":{"type":"number"},"days":{"type":"number"}},"required":["userId","total","position","days"]}}},"externalDocs":{"description":"/api/swagger.json","url":"/api/swagger.json"}}