{ "openapi": "3.0.3", "info": { "title": "Bun + React API", "description": "Development documentation", "version": "1.0.0" }, "paths": { "/api/health": { "get": { "responses": { "200": { "content": { "application/json": { "schema": { "type": "object", "properties": { "ok": { "type": "boolean" } }, "required": [ "ok" ] } }, "multipart/form-data": { "schema": { "type": "object", "properties": { "ok": { "type": "boolean" } }, "required": [ "ok" ] } }, "text/plain": { "schema": { "type": "object", "properties": { "ok": { "type": "boolean" } }, "required": [ "ok" ] } } } } }, "operationId": "getApiHealth" } }, "/api/session": { "get": { "responses": { "200": { "content": { "application/json": { "schema": { "type": "object", "properties": { "data": {} }, "required": [ "data" ] } }, "multipart/form-data": { "schema": { "type": "object", "properties": { "data": {} }, "required": [ "data" ] } }, "text/plain": { "schema": { "type": "object", "properties": { "data": {} }, "required": [ "data" ] } } } } }, "operationId": "getApiSession" } }, "/api/apikey/": { "get": { "responses": { "200": { "content": { "application/json": { "schema": { "type": "object", "properties": { "apiKeys": { "type": "array", "items": { "type": "object", "required": [ "id", "name", "key", "isActive", "expiresAt", "createdAt", "updatedAt" ], "properties": { "id": { "type": "string" }, "name": { "type": "string" }, "key": { "type": "string" }, "isActive": { "type": "boolean" }, "expiresAt": { "anyOf": [ { "type": "string" }, { "type": "null" }, {} ] }, "createdAt": {}, "updatedAt": {} } } } }, "required": [ "apiKeys" ] } }, "multipart/form-data": { "schema": { "type": "object", "properties": { "apiKeys": { "type": "array", "items": { "type": "object", "required": [ "id", "name", "key", "isActive", "expiresAt", "createdAt", "updatedAt" ], "properties": { "id": { "type": "string" }, "name": { "type": "string" }, "key": { "type": "string" }, "isActive": { "type": "boolean" }, "expiresAt": { "anyOf": [ { "type": "string" }, { "type": "null" }, {} ] }, "createdAt": {}, "updatedAt": {} } } } }, "required": [ "apiKeys" ] } }, "text/plain": { "schema": { "type": "object", "properties": { "apiKeys": { "type": "array", "items": { "type": "object", "required": [ "id", "name", "key", "isActive", "expiresAt", "createdAt", "updatedAt" ], "properties": { "id": { "type": "string" }, "name": { "type": "string" }, "key": { "type": "string" }, "isActive": { "type": "boolean" }, "expiresAt": { "anyOf": [ { "type": "string" }, { "type": "null" }, {} ] }, "createdAt": {}, "updatedAt": {} } } } }, "required": [ "apiKeys" ] } } } }, "401": { "content": { "application/json": { "schema": { "type": "object", "properties": { "error": { "type": "string" } }, "required": [ "error" ] } }, "multipart/form-data": { "schema": { "type": "object", "properties": { "error": { "type": "string" } }, "required": [ "error" ] } }, "text/plain": { "schema": { "type": "object", "properties": { "error": { "type": "string" } }, "required": [ "error" ] } } } }, "500": { "content": { "application/json": { "schema": { "type": "object", "properties": { "error": { "type": "string" } }, "required": [ "error" ] } }, "multipart/form-data": { "schema": { "type": "object", "properties": { "error": { "type": "string" } }, "required": [ "error" ] } }, "text/plain": { "schema": { "type": "object", "properties": { "error": { "type": "string" } }, "required": [ "error" ] } } } } }, "operationId": "getApiApikey", "summary": "Get all API keys", "description": "Get all API keys" }, "post": { "parameters": [], "responses": { "200": { "content": { "application/json": { "schema": { "type": "object", "properties": { "apiKey": { "type": "object", "required": [ "id", "name", "key", "isActive", "expiresAt", "createdAt", "updatedAt" ], "properties": { "id": { "type": "string" }, "name": { "type": "string" }, "key": { "type": "string" }, "isActive": { "type": "boolean" }, "expiresAt": { "anyOf": [ { "type": "string" }, { "type": "null" }, {} ] }, "createdAt": {}, "updatedAt": {} } } }, "required": [ "apiKey" ] } }, "multipart/form-data": { "schema": { "type": "object", "properties": { "apiKey": { "type": "object", "required": [ "id", "name", "key", "isActive", "expiresAt", "createdAt", "updatedAt" ], "properties": { "id": { "type": "string" }, "name": { "type": "string" }, "key": { "type": "string" }, "isActive": { "type": "boolean" }, "expiresAt": { "anyOf": [ { "type": "string" }, { "type": "null" }, {} ] }, "createdAt": {}, "updatedAt": {} } } }, "required": [ "apiKey" ] } }, "text/plain": { "schema": { "type": "object", "properties": { "apiKey": { "type": "object", "required": [ "id", "name", "key", "isActive", "expiresAt", "createdAt", "updatedAt" ], "properties": { "id": { "type": "string" }, "name": { "type": "string" }, "key": { "type": "string" }, "isActive": { "type": "boolean" }, "expiresAt": { "anyOf": [ { "type": "string" }, { "type": "null" }, {} ] }, "createdAt": {}, "updatedAt": {} } } }, "required": [ "apiKey" ] } } } }, "401": { "content": { "application/json": { "schema": { "type": "object", "properties": { "error": { "type": "string" } }, "required": [ "error" ] } }, "multipart/form-data": { "schema": { "type": "object", "properties": { "error": { "type": "string" } }, "required": [ "error" ] } }, "text/plain": { "schema": { "type": "object", "properties": { "error": { "type": "string" } }, "required": [ "error" ] } } } }, "500": { "content": { "application/json": { "schema": { "type": "object", "properties": { "error": { "type": "string" } }, "required": [ "error" ] } }, "multipart/form-data": { "schema": { "type": "object", "properties": { "error": { "type": "string" } }, "required": [ "error" ] } }, "text/plain": { "schema": { "type": "object", "properties": { "error": { "type": "string" } }, "required": [ "error" ] } } } } }, "operationId": "postApiApikey", "summary": "Create a new API key", "description": "Create a new API key", "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object", "required": [ "name" ], "properties": { "name": { "type": "string" }, "expiresAt": { "type": "string" } } } }, "multipart/form-data": { "schema": { "type": "object", "required": [ "name" ], "properties": { "name": { "type": "string" }, "expiresAt": { "type": "string" } } } }, "text/plain": { "schema": { "type": "object", "required": [ "name" ], "properties": { "name": { "type": "string" }, "expiresAt": { "type": "string" } } } } } } } }, "/api/apikey/update": { "post": { "parameters": [], "responses": { "200": { "content": { "application/json": { "schema": { "type": "object", "properties": { "apiKey": { "type": "object", "required": [ "id", "name", "key", "isActive", "expiresAt", "createdAt", "updatedAt" ], "properties": { "id": { "type": "string" }, "name": { "type": "string" }, "key": { "type": "string" }, "isActive": { "type": "boolean" }, "expiresAt": { "anyOf": [ { "type": "string" }, { "type": "null" }, {} ] }, "createdAt": {}, "updatedAt": {} } } }, "required": [ "apiKey" ] } }, "multipart/form-data": { "schema": { "type": "object", "properties": { "apiKey": { "type": "object", "required": [ "id", "name", "key", "isActive", "expiresAt", "createdAt", "updatedAt" ], "properties": { "id": { "type": "string" }, "name": { "type": "string" }, "key": { "type": "string" }, "isActive": { "type": "boolean" }, "expiresAt": { "anyOf": [ { "type": "string" }, { "type": "null" }, {} ] }, "createdAt": {}, "updatedAt": {} } } }, "required": [ "apiKey" ] } }, "text/plain": { "schema": { "type": "object", "properties": { "apiKey": { "type": "object", "required": [ "id", "name", "key", "isActive", "expiresAt", "createdAt", "updatedAt" ], "properties": { "id": { "type": "string" }, "name": { "type": "string" }, "key": { "type": "string" }, "isActive": { "type": "boolean" }, "expiresAt": { "anyOf": [ { "type": "string" }, { "type": "null" }, {} ] }, "createdAt": {}, "updatedAt": {} } } }, "required": [ "apiKey" ] } } } }, "401": { "content": { "application/json": { "schema": { "type": "object", "properties": { "error": { "type": "string" } }, "required": [ "error" ] } }, "multipart/form-data": { "schema": { "type": "object", "properties": { "error": { "type": "string" } }, "required": [ "error" ] } }, "text/plain": { "schema": { "type": "object", "properties": { "error": { "type": "string" } }, "required": [ "error" ] } } } }, "403": { "content": { "application/json": { "schema": { "type": "object", "properties": { "error": { "type": "string" } }, "required": [ "error" ] } }, "multipart/form-data": { "schema": { "type": "object", "properties": { "error": { "type": "string" } }, "required": [ "error" ] } }, "text/plain": { "schema": { "type": "object", "properties": { "error": { "type": "string" } }, "required": [ "error" ] } } } }, "500": { "content": { "application/json": { "schema": { "type": "object", "properties": { "error": { "type": "string" } }, "required": [ "error" ] } }, "multipart/form-data": { "schema": { "type": "object", "properties": { "error": { "type": "string" } }, "required": [ "error" ] } }, "text/plain": { "schema": { "type": "object", "properties": { "error": { "type": "string" } }, "required": [ "error" ] } } } } }, "operationId": "postApiApikeyUpdate", "summary": "Update an API key", "description": "Update an API key", "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object", "required": [ "id", "isActive" ], "properties": { "id": { "type": "string" }, "isActive": { "type": "boolean" }, "expiresAt": { "anyOf": [ { "type": "string" }, { "type": "null" } ] } } } }, "multipart/form-data": { "schema": { "type": "object", "required": [ "id", "isActive" ], "properties": { "id": { "type": "string" }, "isActive": { "type": "boolean" }, "expiresAt": { "anyOf": [ { "type": "string" }, { "type": "null" } ] } } } }, "text/plain": { "schema": { "type": "object", "required": [ "id", "isActive" ], "properties": { "id": { "type": "string" }, "isActive": { "type": "boolean" }, "expiresAt": { "anyOf": [ { "type": "string" }, { "type": "null" } ] } } } } } } } }, "/api/apikey/delete": { "post": { "parameters": [], "responses": { "200": { "content": { "application/json": { "schema": { "type": "object", "properties": { "success": { "type": "boolean" } }, "required": [ "success" ] } }, "multipart/form-data": { "schema": { "type": "object", "properties": { "success": { "type": "boolean" } }, "required": [ "success" ] } }, "text/plain": { "schema": { "type": "object", "properties": { "success": { "type": "boolean" } }, "required": [ "success" ] } } } }, "401": { "content": { "application/json": { "schema": { "type": "object", "properties": { "error": { "type": "string" } }, "required": [ "error" ] } }, "multipart/form-data": { "schema": { "type": "object", "properties": { "error": { "type": "string" } }, "required": [ "error" ] } }, "text/plain": { "schema": { "type": "object", "properties": { "error": { "type": "string" } }, "required": [ "error" ] } } } }, "403": { "content": { "application/json": { "schema": { "type": "object", "properties": { "error": { "type": "string" } }, "required": [ "error" ] } }, "multipart/form-data": { "schema": { "type": "object", "properties": { "error": { "type": "string" } }, "required": [ "error" ] } }, "text/plain": { "schema": { "type": "object", "properties": { "error": { "type": "string" } }, "required": [ "error" ] } } } }, "500": { "content": { "application/json": { "schema": { "type": "object", "properties": { "error": { "type": "string" } }, "required": [ "error" ] } }, "multipart/form-data": { "schema": { "type": "object", "properties": { "error": { "type": "string" } }, "required": [ "error" ] } }, "text/plain": { "schema": { "type": "object", "properties": { "error": { "type": "string" } }, "required": [ "error" ] } } } } }, "operationId": "postApiApikeyDelete", "summary": "Delete an API key", "description": "Delete an API key", "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object", "required": [ "id" ], "properties": { "id": { "type": "string" } } } }, "multipart/form-data": { "schema": { "type": "object", "required": [ "id" ], "properties": { "id": { "type": "string" } } } }, "text/plain": { "schema": { "type": "object", "required": [ "id" ], "properties": { "id": { "type": "string" } } } } } } } }, "/api/profile/update": { "post": { "parameters": [], "responses": { "200": { "content": { "application/json": { "schema": { "type": "object", "properties": { "user": { "type": "object", "required": [ "id", "name", "email", "image", "role" ], "properties": { "id": { "type": "string" }, "name": {}, "email": { "type": "string" }, "image": {}, "role": {} } } }, "required": [ "user" ] } }, "multipart/form-data": { "schema": { "type": "object", "properties": { "user": { "type": "object", "required": [ "id", "name", "email", "image", "role" ], "properties": { "id": { "type": "string" }, "name": {}, "email": { "type": "string" }, "image": {}, "role": {} } } }, "required": [ "user" ] } }, "text/plain": { "schema": { "type": "object", "properties": { "user": { "type": "object", "required": [ "id", "name", "email", "image", "role" ], "properties": { "id": { "type": "string" }, "name": {}, "email": { "type": "string" }, "image": {}, "role": {} } } }, "required": [ "user" ] } } } }, "401": { "content": { "application/json": { "schema": { "type": "object", "properties": { "error": { "type": "string" } }, "required": [ "error" ] } }, "multipart/form-data": { "schema": { "type": "object", "properties": { "error": { "type": "string" } }, "required": [ "error" ] } }, "text/plain": { "schema": { "type": "object", "properties": { "error": { "type": "string" } }, "required": [ "error" ] } } } }, "500": { "content": { "application/json": { "schema": { "type": "object", "properties": { "error": { "type": "string" } }, "required": [ "error" ] } }, "multipart/form-data": { "schema": { "type": "object", "properties": { "error": { "type": "string" } }, "required": [ "error" ] } }, "text/plain": { "schema": { "type": "object", "properties": { "error": { "type": "string" } }, "required": [ "error" ] } } } } }, "operationId": "postApiProfileUpdate", "summary": "Update user profile", "description": "Update the authenticated user's name or profile image", "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "name": { "type": "string" }, "image": { "type": "string" } } } }, "multipart/form-data": { "schema": { "type": "object", "properties": { "name": { "type": "string" }, "image": { "type": "string" } } } }, "text/plain": { "schema": { "type": "object", "properties": { "name": { "type": "string" }, "image": { "type": "string" } } } } } } } }, "/api/division/": { "get": { "responses": { "200": { "content": { "application/json": { "schema": { "type": "object", "properties": { "data": { "type": "array", "items": {} } }, "required": [ "data" ] } }, "multipart/form-data": { "schema": { "type": "object", "properties": { "data": { "type": "array", "items": {} } }, "required": [ "data" ] } }, "text/plain": { "schema": { "type": "object", "properties": { "data": { "type": "array", "items": {} } }, "required": [ "data" ] } } } }, "500": { "content": { "application/json": { "schema": { "type": "object", "properties": { "error": { "type": "string" } }, "required": [ "error" ] } }, "multipart/form-data": { "schema": { "type": "object", "properties": { "error": { "type": "string" } }, "required": [ "error" ] } }, "text/plain": { "schema": { "type": "object", "properties": { "error": { "type": "string" } }, "required": [ "error" ] } } } } }, "operationId": "getApiDivision", "summary": "Get all divisions" } }, "/api/division/activities": { "get": { "responses": { "200": { "content": { "application/json": { "schema": { "type": "object", "properties": { "data": { "type": "array", "items": {} } }, "required": [ "data" ] } }, "multipart/form-data": { "schema": { "type": "object", "properties": { "data": { "type": "array", "items": {} } }, "required": [ "data" ] } }, "text/plain": { "schema": { "type": "object", "properties": { "data": { "type": "array", "items": {} } }, "required": [ "data" ] } } } }, "500": { "content": { "application/json": { "schema": { "type": "object", "properties": { "error": { "type": "string" } }, "required": [ "error" ] } }, "multipart/form-data": { "schema": { "type": "object", "properties": { "error": { "type": "string" } }, "required": [ "error" ] } }, "text/plain": { "schema": { "type": "object", "properties": { "error": { "type": "string" } }, "required": [ "error" ] } } } } }, "operationId": "getApiDivisionActivities", "summary": "Get recent activities" } }, "/api/division/metrics": { "get": { "responses": { "200": { "content": { "application/json": { "schema": { "type": "object", "properties": { "data": { "type": "array", "items": {} } }, "required": [ "data" ] } }, "multipart/form-data": { "schema": { "type": "object", "properties": { "data": { "type": "array", "items": {} } }, "required": [ "data" ] } }, "text/plain": { "schema": { "type": "object", "properties": { "data": { "type": "array", "items": {} } }, "required": [ "data" ] } } } }, "500": { "content": { "application/json": { "schema": { "type": "object", "properties": { "error": { "type": "string" } }, "required": [ "error" ] } }, "multipart/form-data": { "schema": { "type": "object", "properties": { "error": { "type": "string" } }, "required": [ "error" ] } }, "text/plain": { "schema": { "type": "object", "properties": { "error": { "type": "string" } }, "required": [ "error" ] } } } } }, "operationId": "getApiDivisionMetrics", "summary": "Get division performance metrics" } }, "/api/complaint/stats": { "get": { "responses": { "200": { "content": { "application/json": { "schema": { "type": "object", "properties": { "data": { "type": "object", "required": [ "total", "baru", "proses", "selesai" ], "properties": { "total": { "type": "number" }, "baru": { "type": "number" }, "proses": { "type": "number" }, "selesai": { "type": "number" } } } }, "required": [ "data" ] } }, "multipart/form-data": { "schema": { "type": "object", "properties": { "data": { "type": "object", "required": [ "total", "baru", "proses", "selesai" ], "properties": { "total": { "type": "number" }, "baru": { "type": "number" }, "proses": { "type": "number" }, "selesai": { "type": "number" } } } }, "required": [ "data" ] } }, "text/plain": { "schema": { "type": "object", "properties": { "data": { "type": "object", "required": [ "total", "baru", "proses", "selesai" ], "properties": { "total": { "type": "number" }, "baru": { "type": "number" }, "proses": { "type": "number" }, "selesai": { "type": "number" } } } }, "required": [ "data" ] } } } }, "500": { "content": { "application/json": { "schema": { "type": "object", "properties": { "error": { "type": "string" } }, "required": [ "error" ] } }, "multipart/form-data": { "schema": { "type": "object", "properties": { "error": { "type": "string" } }, "required": [ "error" ] } }, "text/plain": { "schema": { "type": "object", "properties": { "error": { "type": "string" } }, "required": [ "error" ] } } } } }, "operationId": "getApiComplaintStats", "summary": "Get complaint statistics" } }, "/api/complaint/recent": { "get": { "responses": { "200": { "content": { "application/json": { "schema": { "type": "object", "properties": { "data": { "type": "array", "items": {} } }, "required": [ "data" ] } }, "multipart/form-data": { "schema": { "type": "object", "properties": { "data": { "type": "array", "items": {} } }, "required": [ "data" ] } }, "text/plain": { "schema": { "type": "object", "properties": { "data": { "type": "array", "items": {} } }, "required": [ "data" ] } } } }, "500": { "content": { "application/json": { "schema": { "type": "object", "properties": { "error": { "type": "string" } }, "required": [ "error" ] } }, "multipart/form-data": { "schema": { "type": "object", "properties": { "error": { "type": "string" } }, "required": [ "error" ] } }, "text/plain": { "schema": { "type": "object", "properties": { "error": { "type": "string" } }, "required": [ "error" ] } } } } }, "operationId": "getApiComplaintRecent", "summary": "Get recent complaints" } }, "/api/complaint/service-stats": { "get": { "responses": { "200": { "content": { "application/json": { "schema": { "type": "object", "properties": { "data": { "type": "array", "items": {} } }, "required": [ "data" ] } }, "multipart/form-data": { "schema": { "type": "object", "properties": { "data": { "type": "array", "items": {} } }, "required": [ "data" ] } }, "text/plain": { "schema": { "type": "object", "properties": { "data": { "type": "array", "items": {} } }, "required": [ "data" ] } } } }, "500": { "content": { "application/json": { "schema": { "type": "object", "properties": { "error": { "type": "string" } }, "required": [ "error" ] } }, "multipart/form-data": { "schema": { "type": "object", "properties": { "error": { "type": "string" } }, "required": [ "error" ] } }, "text/plain": { "schema": { "type": "object", "properties": { "error": { "type": "string" } }, "required": [ "error" ] } } } } }, "operationId": "getApiComplaintService-stats", "summary": "Get service letter statistics by type" } }, "/api/complaint/innovation-ideas": { "get": { "responses": { "200": { "content": { "application/json": { "schema": { "type": "object", "properties": { "data": { "type": "array", "items": {} } }, "required": [ "data" ] } }, "multipart/form-data": { "schema": { "type": "object", "properties": { "data": { "type": "array", "items": {} } }, "required": [ "data" ] } }, "text/plain": { "schema": { "type": "object", "properties": { "data": { "type": "array", "items": {} } }, "required": [ "data" ] } } } }, "500": { "content": { "application/json": { "schema": { "type": "object", "properties": { "error": { "type": "string" } }, "required": [ "error" ] } }, "multipart/form-data": { "schema": { "type": "object", "properties": { "error": { "type": "string" } }, "required": [ "error" ] } }, "text/plain": { "schema": { "type": "object", "properties": { "error": { "type": "string" } }, "required": [ "error" ] } } } } }, "operationId": "getApiComplaintInnovation-ideas", "summary": "Get recent innovation ideas" } }, "/api/complaint/service-trends": { "get": { "responses": { "200": { "content": { "application/json": { "schema": { "type": "object", "properties": { "data": { "type": "array", "items": {} } }, "required": [ "data" ] } }, "multipart/form-data": { "schema": { "type": "object", "properties": { "data": { "type": "array", "items": {} } }, "required": [ "data" ] } }, "text/plain": { "schema": { "type": "object", "properties": { "data": { "type": "array", "items": {} } }, "required": [ "data" ] } } } }, "500": { "content": { "application/json": { "schema": { "type": "object", "properties": { "error": { "type": "string" } }, "required": [ "error" ] } }, "multipart/form-data": { "schema": { "type": "object", "properties": { "error": { "type": "string" } }, "required": [ "error" ] } }, "text/plain": { "schema": { "type": "object", "properties": { "error": { "type": "string" } }, "required": [ "error" ] } } } } }, "operationId": "getApiComplaintService-trends", "summary": "Get service letter trends for last 6 months" } }, "/api/complaint/service-weekly": { "get": { "responses": { "200": { "content": { "application/json": { "schema": { "type": "object", "properties": { "data": { "type": "object", "required": [ "count" ], "properties": { "count": { "type": "number" } } } }, "required": [ "data" ] } }, "multipart/form-data": { "schema": { "type": "object", "properties": { "data": { "type": "object", "required": [ "count" ], "properties": { "count": { "type": "number" } } } }, "required": [ "data" ] } }, "text/plain": { "schema": { "type": "object", "properties": { "data": { "type": "object", "required": [ "count" ], "properties": { "count": { "type": "number" } } } }, "required": [ "data" ] } } } }, "500": { "content": { "application/json": { "schema": { "type": "object", "properties": { "error": { "type": "string" } }, "required": [ "error" ] } }, "multipart/form-data": { "schema": { "type": "object", "properties": { "error": { "type": "string" } }, "required": [ "error" ] } }, "text/plain": { "schema": { "type": "object", "properties": { "error": { "type": "string" } }, "required": [ "error" ] } } } } }, "operationId": "getApiComplaintService-weekly", "summary": "Get service letter count for current week" } }, "/api/resident/stats": { "get": { "responses": { "200": { "content": { "application/json": { "schema": { "type": "object", "properties": { "data": { "type": "object", "required": [ "total", "heads", "poor" ], "properties": { "total": { "type": "number" }, "heads": { "type": "number" }, "poor": { "type": "number" } } } }, "required": [ "data" ] } }, "multipart/form-data": { "schema": { "type": "object", "properties": { "data": { "type": "object", "required": [ "total", "heads", "poor" ], "properties": { "total": { "type": "number" }, "heads": { "type": "number" }, "poor": { "type": "number" } } } }, "required": [ "data" ] } }, "text/plain": { "schema": { "type": "object", "properties": { "data": { "type": "object", "required": [ "total", "heads", "poor" ], "properties": { "total": { "type": "number" }, "heads": { "type": "number" }, "poor": { "type": "number" } } } }, "required": [ "data" ] } } } }, "500": { "content": { "application/json": { "schema": { "type": "object", "properties": { "error": { "type": "string" } }, "required": [ "error" ] } }, "multipart/form-data": { "schema": { "type": "object", "properties": { "error": { "type": "string" } }, "required": [ "error" ] } }, "text/plain": { "schema": { "type": "object", "properties": { "error": { "type": "string" } }, "required": [ "error" ] } } } } }, "operationId": "getApiResidentStats", "summary": "Get resident statistics" } }, "/api/resident/banjar-stats": { "get": { "responses": { "200": { "content": { "application/json": { "schema": { "type": "object", "properties": { "data": { "type": "array", "items": {} } }, "required": [ "data" ] } }, "multipart/form-data": { "schema": { "type": "object", "properties": { "data": { "type": "array", "items": {} } }, "required": [ "data" ] } }, "text/plain": { "schema": { "type": "object", "properties": { "data": { "type": "array", "items": {} } }, "required": [ "data" ] } } } }, "500": { "content": { "application/json": { "schema": { "type": "object", "properties": { "error": { "type": "string" } }, "required": [ "error" ] } }, "multipart/form-data": { "schema": { "type": "object", "properties": { "error": { "type": "string" } }, "required": [ "error" ] } }, "text/plain": { "schema": { "type": "object", "properties": { "error": { "type": "string" } }, "required": [ "error" ] } } } } }, "operationId": "getApiResidentBanjar-stats", "summary": "Get population data per banjar" } }, "/api/resident/demographics": { "get": { "responses": { "200": { "content": { "application/json": { "schema": { "type": "object", "properties": { "data": { "type": "object", "required": [ "religion", "gender", "occupation", "ageGroups" ], "properties": { "religion": { "type": "array", "items": {} }, "gender": { "type": "array", "items": {} }, "occupation": { "type": "array", "items": {} }, "ageGroups": { "type": "array", "items": {} } } } }, "required": [ "data" ] } }, "multipart/form-data": { "schema": { "type": "object", "properties": { "data": { "type": "object", "required": [ "religion", "gender", "occupation", "ageGroups" ], "properties": { "religion": { "type": "array", "items": {} }, "gender": { "type": "array", "items": {} }, "occupation": { "type": "array", "items": {} }, "ageGroups": { "type": "array", "items": {} } } } }, "required": [ "data" ] } }, "text/plain": { "schema": { "type": "object", "properties": { "data": { "type": "object", "required": [ "religion", "gender", "occupation", "ageGroups" ], "properties": { "religion": { "type": "array", "items": {} }, "gender": { "type": "array", "items": {} }, "occupation": { "type": "array", "items": {} }, "ageGroups": { "type": "array", "items": {} } } } }, "required": [ "data" ] } } } }, "500": { "content": { "application/json": { "schema": { "type": "object", "properties": { "error": { "type": "string" } }, "required": [ "error" ] } }, "multipart/form-data": { "schema": { "type": "object", "properties": { "error": { "type": "string" } }, "required": [ "error" ] } }, "text/plain": { "schema": { "type": "object", "properties": { "error": { "type": "string" } }, "required": [ "error" ] } } } } }, "operationId": "getApiResidentDemographics", "summary": "Get demographics including religion, gender, occupation and age" } }, "/api/event/": { "get": { "responses": { "200": { "content": { "application/json": { "schema": { "type": "object", "properties": { "data": { "type": "array", "items": {} } }, "required": [ "data" ] } }, "multipart/form-data": { "schema": { "type": "object", "properties": { "data": { "type": "array", "items": {} } }, "required": [ "data" ] } }, "text/plain": { "schema": { "type": "object", "properties": { "data": { "type": "array", "items": {} } }, "required": [ "data" ] } } } }, "500": { "content": { "application/json": { "schema": { "type": "object", "properties": { "error": { "type": "string" } }, "required": [ "error" ] } }, "multipart/form-data": { "schema": { "type": "object", "properties": { "error": { "type": "string" } }, "required": [ "error" ] } }, "text/plain": { "schema": { "type": "object", "properties": { "error": { "type": "string" } }, "required": [ "error" ] } } } } }, "operationId": "getApiEvent", "summary": "Get upcoming events" } }, "/api/event/today": { "get": { "responses": { "200": { "content": { "application/json": { "schema": { "type": "object", "properties": { "data": { "type": "array", "items": {} } }, "required": [ "data" ] } }, "multipart/form-data": { "schema": { "type": "object", "properties": { "data": { "type": "array", "items": {} } }, "required": [ "data" ] } }, "text/plain": { "schema": { "type": "object", "properties": { "data": { "type": "array", "items": {} } }, "required": [ "data" ] } } } }, "500": { "content": { "application/json": { "schema": { "type": "object", "properties": { "error": { "type": "string" } }, "required": [ "error" ] } }, "multipart/form-data": { "schema": { "type": "object", "properties": { "error": { "type": "string" } }, "required": [ "error" ] } }, "text/plain": { "schema": { "type": "object", "properties": { "error": { "type": "string" } }, "required": [ "error" ] } } } } }, "operationId": "getApiEventToday", "summary": "Get events for today" } }, "/api/dashboard/budget": { "get": { "responses": { "200": { "content": { "application/json": { "schema": { "type": "object", "properties": { "data": { "type": "array", "items": { "type": "object", "required": [ "category", "amount", "percentage", "color" ], "properties": { "category": { "type": "string" }, "amount": { "type": "number" }, "percentage": { "type": "number" }, "color": { "type": "string" } } } } }, "required": [ "data" ] } }, "multipart/form-data": { "schema": { "type": "object", "properties": { "data": { "type": "array", "items": { "type": "object", "required": [ "category", "amount", "percentage", "color" ], "properties": { "category": { "type": "string" }, "amount": { "type": "number" }, "percentage": { "type": "number" }, "color": { "type": "string" } } } } }, "required": [ "data" ] } }, "text/plain": { "schema": { "type": "object", "properties": { "data": { "type": "array", "items": { "type": "object", "required": [ "category", "amount", "percentage", "color" ], "properties": { "category": { "type": "string" }, "amount": { "type": "number" }, "percentage": { "type": "number" }, "color": { "type": "string" } } } } }, "required": [ "data" ] } } } } }, "operationId": "getApiDashboardBudget" } }, "/api/dashboard/sdgs": { "get": { "responses": { "200": { "content": { "application/json": { "schema": { "type": "object", "properties": { "data": { "type": "array", "items": { "type": "object", "required": [ "title", "score", "image" ], "properties": { "title": { "type": "string" }, "score": { "type": "number" }, "image": { "nullable": true, "anyOf": [ { "type": "string" }, { "type": "null" } ] } } } } }, "required": [ "data" ] } }, "multipart/form-data": { "schema": { "type": "object", "properties": { "data": { "type": "array", "items": { "type": "object", "required": [ "title", "score", "image" ], "properties": { "title": { "type": "string" }, "score": { "type": "number" }, "image": { "nullable": true, "anyOf": [ { "type": "string" }, { "type": "null" } ] } } } } }, "required": [ "data" ] } }, "text/plain": { "schema": { "type": "object", "properties": { "data": { "type": "array", "items": { "type": "object", "required": [ "title", "score", "image" ], "properties": { "title": { "type": "string" }, "score": { "type": "number" }, "image": { "nullable": true, "anyOf": [ { "type": "string" }, { "type": "null" } ] } } } } }, "required": [ "data" ] } } } } }, "operationId": "getApiDashboardSdgs" } }, "/api/dashboard/satisfaction": { "get": { "responses": { "200": { "content": { "application/json": { "schema": { "type": "object", "properties": { "data": { "type": "array", "items": { "type": "object", "required": [ "category", "value", "color" ], "properties": { "category": { "type": "string" }, "value": { "type": "number" }, "color": { "type": "string" } } } } }, "required": [ "data" ] } }, "multipart/form-data": { "schema": { "type": "object", "properties": { "data": { "type": "array", "items": { "type": "object", "required": [ "category", "value", "color" ], "properties": { "category": { "type": "string" }, "value": { "type": "number" }, "color": { "type": "string" } } } } }, "required": [ "data" ] } }, "text/plain": { "schema": { "type": "object", "properties": { "data": { "type": "array", "items": { "type": "object", "required": [ "category", "value", "color" ], "properties": { "category": { "type": "string" }, "value": { "type": "number" }, "color": { "type": "string" } } } } }, "required": [ "data" ] } } } } }, "operationId": "getApiDashboardSatisfaction" } } }, "components": { "schemas": {} } }