{ "schemes": [ "http", "https" ], "swagger": "2.0", "info": { "description": "A comprehensive Go API service with Swagger documentation", "title": "API Service", "termsOfService": "http://swagger.io/terms/", "contact": { "name": "API Support", "url": "http://www.swagger.io/support", "email": "support@swagger.io" }, "license": { "name": "Apache 2.0", "url": "http://www.apache.org/licenses/LICENSE-2.0.html" }, "version": "1.0.0" }, "host": "localhost:8084", "basePath": "/api/v1", "paths": { "/api/v1/auth/login": { "post": { "description": "Authenticate user with username and password to receive JWT token", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "Authentication" ], "summary": "Login user and get JWT token", "parameters": [ { "description": "Login credentials", "name": "login", "in": "body", "required": true, "schema": { "$ref": "#/definitions/api-service_internal_models_auth.LoginRequest" } } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/api-service_internal_models_auth.TokenResponse" } }, "400": { "description": "Bad request", "schema": { "type": "object", "additionalProperties": { "type": "string" } } }, "401": { "description": "Unauthorized", "schema": { "type": "object", "additionalProperties": { "type": "string" } } } } } }, "/api/v1/auth/me": { "get": { "security": [ { "Bearer": [] } ], "description": "Get information about the currently authenticated user", "produces": [ "application/json" ], "tags": [ "Authentication" ], "summary": "Get current user info", "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/api-service_internal_models_auth.User" } }, "401": { "description": "Unauthorized", "schema": { "type": "object", "additionalProperties": { "type": "string" } } } } } }, "/api/v1/auth/refresh": { "post": { "description": "Refresh the JWT token using a valid refresh token", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "Authentication" ], "summary": "Refresh JWT token", "parameters": [ { "description": "Refresh token", "name": "refresh", "in": "body", "required": true, "schema": { "type": "object", "additionalProperties": { "type": "string" } } } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/api-service_internal_models_auth.TokenResponse" } }, "400": { "description": "Bad request", "schema": { "type": "object", "additionalProperties": { "type": "string" } } }, "401": { "description": "Unauthorized", "schema": { "type": "object", "additionalProperties": { "type": "string" } } } } } }, "/api/v1/auth/register": { "post": { "description": "Register a new user account", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "Authentication" ], "summary": "Register new user", "parameters": [ { "description": "Registration data", "name": "register", "in": "body", "required": true, "schema": { "type": "object", "additionalProperties": { "type": "string" } } } ], "responses": { "201": { "description": "Created", "schema": { "type": "object", "additionalProperties": { "type": "string" } } }, "400": { "description": "Bad request", "schema": { "type": "object", "additionalProperties": { "type": "string" } } } } } }, "/api/v1/pasien/": { "get": { "description": "Get list of pasien with pagination and filters", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "Pasien" ], "summary": "Get Pasien List", "parameters": [ { "type": "integer", "default": 10, "description": "Limit (max 100)", "name": "limit", "in": "query" }, { "type": "integer", "default": 0, "description": "Offset", "name": "offset", "in": "query" }, { "type": "string", "description": "Filter by status", "name": "status", "in": "query" }, { "type": "string", "description": "Search in multiple fields", "name": "search", "in": "query" } ], "responses": { "200": { "description": "Success response", "schema": { "$ref": "#/definitions/api-service_internal_models_pasien.PasienGetResponse" } }, "400": { "description": "Bad request", "schema": { "$ref": "#/definitions/api-service_internal_models.ErrorResponse" } }, "500": { "description": "Internal server error", "schema": { "$ref": "#/definitions/api-service_internal_models.ErrorResponse" } } } }, "post": { "description": "Create a new pasien", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "Pasien" ], "summary": "Create Pasien", "parameters": [ { "description": "Pasien creation request", "name": "request", "in": "body", "required": true, "schema": { "$ref": "#/definitions/api-service_internal_models_pasien.PasienCreateRequest" } } ], "responses": { "201": { "description": "Pasien created successfully", "schema": { "$ref": "#/definitions/api-service_internal_models_pasien.PasienCreateResponse" } }, "400": { "description": "Bad request or validation error", "schema": { "$ref": "#/definitions/api-service_internal_models.ErrorResponse" } }, "500": { "description": "Internal server error", "schema": { "$ref": "#/definitions/api-service_internal_models.ErrorResponse" } } } } }, "/api/v1/pasien/:id": { "get": { "description": "Get pasien by ID", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "Pasien" ], "summary": "Get Pasien by ID", "parameters": [ { "type": "string", "description": "Pasien ID", "name": "id", "in": "path", "required": true } ], "responses": { "200": { "description": "Success response", "schema": { "$ref": "#/definitions/api-service_internal_models_pasien.PasienGetByIDResponse" } }, "400": { "description": "Invalid ID format", "schema": { "$ref": "#/definitions/api-service_internal_models.ErrorResponse" } }, "404": { "description": "Pasien not found", "schema": { "$ref": "#/definitions/api-service_internal_models.ErrorResponse" } }, "500": { "description": "Internal server error", "schema": { "$ref": "#/definitions/api-service_internal_models.ErrorResponse" } } } } }, "/api/v1/pasien/:nomr": { "put": { "description": "Update an existing pasien", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "Pasien" ], "summary": "Update Pasien", "parameters": [ { "type": "string", "description": "Pasien ID", "name": "id", "in": "path", "required": true }, { "description": "Pasien update request", "name": "request", "in": "body", "required": true, "schema": { "$ref": "#/definitions/api-service_internal_models_pasien.PasienUpdateRequest" } } ], "responses": { "200": { "description": "Pasien updated successfully", "schema": { "$ref": "#/definitions/api-service_internal_models_pasien.PasienUpdateResponse" } }, "400": { "description": "Bad request or validation error", "schema": { "$ref": "#/definitions/api-service_internal_models.ErrorResponse" } }, "404": { "description": "Pasien not found", "schema": { "$ref": "#/definitions/api-service_internal_models.ErrorResponse" } }, "500": { "description": "Internal server error", "schema": { "$ref": "#/definitions/api-service_internal_models.ErrorResponse" } } } }, "delete": { "description": "Delete a pasien", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "Pasien" ], "summary": "Delete Pasien", "parameters": [ { "type": "string", "description": "Pasien ID", "name": "id", "in": "path", "required": true } ], "responses": { "200": { "description": "Pasien deleted successfully", "schema": { "$ref": "#/definitions/api-service_internal_models_pasien.PasienDeleteResponse" } }, "400": { "description": "Invalid ID format", "schema": { "$ref": "#/definitions/api-service_internal_models.ErrorResponse" } }, "404": { "description": "Pasien not found", "schema": { "$ref": "#/definitions/api-service_internal_models.ErrorResponse" } }, "500": { "description": "Internal server error", "schema": { "$ref": "#/definitions/api-service_internal_models.ErrorResponse" } } } } }, "/api/v1/pasien/by-age": { "get": { "description": "Get pasien statistics by age group", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "Pasien" ], "summary": "Get Pasien by Age Group", "parameters": [ { "type": "string", "description": "Age group (child, teen, adult, senior)", "name": "age_group", "in": "query" } ], "responses": { "200": { "description": "Statistics data", "schema": { "$ref": "#/definitions/api-service_internal_models_pasien.PasienAgeStatsResponse" } }, "400": { "description": "Bad request", "schema": { "$ref": "#/definitions/api-service_internal_models.ErrorResponse" } }, "500": { "description": "Internal server error", "schema": { "$ref": "#/definitions/api-service_internal_models.ErrorResponse" } } } } }, "/api/v1/pasien/by-location": { "get": { "description": "Get pasien by location (provinsi, kota, kecamatan, kelurahan)", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "Pasien" ], "summary": "Get Pasien by Location", "parameters": [ { "type": "integer", "description": "Filter by kelurahan ID", "name": "kelurahan", "in": "query" }, { "type": "integer", "description": "Filter by kdkecamatan ID", "name": "kdkecamatan", "in": "query" }, { "type": "integer", "description": "Filter by kota ID", "name": "kota", "in": "query" }, { "type": "integer", "description": "Filter by kdprovinsi ID", "name": "kdprovinsi", "in": "query" }, { "type": "integer", "default": 10, "description": "Limit (max 100)", "name": "limit", "in": "query" }, { "type": "integer", "default": 0, "description": "Offset", "name": "offset", "in": "query" } ], "responses": { "200": { "description": "Success response", "schema": { "$ref": "#/definitions/api-service_internal_models_pasien.PasienGetResponse" } }, "400": { "description": "Bad request", "schema": { "$ref": "#/definitions/api-service_internal_models.ErrorResponse" } }, "500": { "description": "Internal server error", "schema": { "$ref": "#/definitions/api-service_internal_models.ErrorResponse" } } } } }, "/api/v1/pasien/dynamic": { "get": { "description": "Get pasien with dynamic filtering", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "Pasien" ], "summary": "Get Pasien Dynamic", "parameters": [ { "type": "string", "description": "Fields to select (e.g., fields=*.*)", "name": "fields", "in": "query" }, { "type": "string", "description": "Dynamic filters (e.g., filter[name][_eq]=value)", "name": "filter[column][operator]", "in": "query" }, { "type": "string", "description": "Sort fields (e.g., sort=date_created,-name)", "name": "sort", "in": "query" }, { "type": "integer", "default": 10, "description": "Limit", "name": "limit", "in": "query" }, { "type": "integer", "default": 0, "description": "Offset", "name": "offset", "in": "query" } ], "responses": { "200": { "description": "Success response", "schema": { "$ref": "#/definitions/api-service_internal_models_pasien.PasienGetResponse" } }, "400": { "description": "Bad request", "schema": { "$ref": "#/definitions/api-service_internal_models.ErrorResponse" } }, "500": { "description": "Internal server error", "schema": { "$ref": "#/definitions/api-service_internal_models.ErrorResponse" } } } } }, "/api/v1/pasien/nomr/:nomr": { "get": { "description": "Get pasien by Nomr", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "Pasien" ], "summary": "Get Pasien by Nomr", "responses": { "200": { "description": "Success response", "schema": { "$ref": "#/definitions/api-service_internal_models_pasien.PasienGetByNomrResponse" } }, "400": { "description": "Bad request", "schema": { "$ref": "#/definitions/api-service_internal_models.ErrorResponse" } }, "500": { "description": "Internal server error", "schema": { "$ref": "#/definitions/api-service_internal_models.ErrorResponse" } } } } }, "/api/v1/retribusi/{id}": { "get": { "description": "Returns a single retribusi by ID", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "Retribusi" ], "summary": "Get Retribusi by ID", "parameters": [ { "type": "string", "description": "Retribusi ID (UUID)", "name": "id", "in": "path", "required": true } ], "responses": { "200": { "description": "Success response", "schema": { "$ref": "#/definitions/api-service_internal_models_retribusi.RetribusiGetByIDResponse" } }, "400": { "description": "Invalid ID format", "schema": { "$ref": "#/definitions/api-service_internal_models.ErrorResponse" } }, "404": { "description": "Retribusi not found", "schema": { "$ref": "#/definitions/api-service_internal_models.ErrorResponse" } }, "500": { "description": "Internal server error", "schema": { "$ref": "#/definitions/api-service_internal_models.ErrorResponse" } } } }, "put": { "description": "Updates an existing retribusi record", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "Retribusi" ], "summary": "Update retribusi", "parameters": [ { "type": "string", "description": "Retribusi ID (UUID)", "name": "id", "in": "path", "required": true }, { "description": "Retribusi update request", "name": "request", "in": "body", "required": true, "schema": { "$ref": "#/definitions/api-service_internal_models_retribusi.RetribusiUpdateRequest" } } ], "responses": { "200": { "description": "Retribusi updated successfully", "schema": { "$ref": "#/definitions/api-service_internal_models_retribusi.RetribusiUpdateResponse" } }, "400": { "description": "Bad request or validation error", "schema": { "$ref": "#/definitions/api-service_internal_models.ErrorResponse" } }, "404": { "description": "Retribusi not found", "schema": { "$ref": "#/definitions/api-service_internal_models.ErrorResponse" } }, "500": { "description": "Internal server error", "schema": { "$ref": "#/definitions/api-service_internal_models.ErrorResponse" } } } }, "delete": { "description": "Soft deletes a retribusi by setting status to 'deleted'", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "Retribusi" ], "summary": "Delete retribusi", "parameters": [ { "type": "string", "description": "Retribusi ID (UUID)", "name": "id", "in": "path", "required": true } ], "responses": { "200": { "description": "Retribusi deleted successfully", "schema": { "$ref": "#/definitions/api-service_internal_models_retribusi.RetribusiDeleteResponse" } }, "400": { "description": "Invalid ID format", "schema": { "$ref": "#/definitions/api-service_internal_models.ErrorResponse" } }, "404": { "description": "Retribusi not found", "schema": { "$ref": "#/definitions/api-service_internal_models.ErrorResponse" } }, "500": { "description": "Internal server error", "schema": { "$ref": "#/definitions/api-service_internal_models.ErrorResponse" } } } } }, "/api/v1/retribusis": { "get": { "description": "Returns a paginated list of retribusis with optional summary statistics", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "Retribusi" ], "summary": "Get retribusi with pagination and optional aggregation", "parameters": [ { "type": "integer", "default": 10, "description": "Limit (max 100)", "name": "limit", "in": "query" }, { "type": "integer", "default": 0, "description": "Offset", "name": "offset", "in": "query" }, { "type": "boolean", "default": false, "description": "Include aggregation summary", "name": "include_summary", "in": "query" }, { "type": "string", "description": "Filter by status", "name": "status", "in": "query" }, { "type": "string", "description": "Filter by jenis", "name": "jenis", "in": "query" }, { "type": "string", "description": "Filter by dinas", "name": "dinas", "in": "query" }, { "type": "string", "description": "Search in multiple fields", "name": "search", "in": "query" } ], "responses": { "200": { "description": "Success response", "schema": { "$ref": "#/definitions/api-service_internal_models_retribusi.RetribusiGetResponse" } }, "400": { "description": "Bad request", "schema": { "$ref": "#/definitions/api-service_internal_models.ErrorResponse" } }, "500": { "description": "Internal server error", "schema": { "$ref": "#/definitions/api-service_internal_models.ErrorResponse" } } } }, "post": { "description": "Creates a new retribusi record", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "Retribusi" ], "summary": "Create retribusi", "parameters": [ { "description": "Retribusi creation request", "name": "request", "in": "body", "required": true, "schema": { "$ref": "#/definitions/api-service_internal_models_retribusi.RetribusiCreateRequest" } } ], "responses": { "201": { "description": "Retribusi created successfully", "schema": { "$ref": "#/definitions/api-service_internal_models_retribusi.RetribusiCreateResponse" } }, "400": { "description": "Bad request or validation error", "schema": { "$ref": "#/definitions/api-service_internal_models.ErrorResponse" } }, "500": { "description": "Internal server error", "schema": { "$ref": "#/definitions/api-service_internal_models.ErrorResponse" } } } } }, "/api/v1/retribusis/dynamic": { "get": { "description": "Returns retribusis with advanced dynamic filtering like Directus", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "Retribusi" ], "summary": "Get retribusi with dynamic filtering", "parameters": [ { "type": "string", "description": "Fields to select (e.g., fields=*.*)", "name": "fields", "in": "query" }, { "type": "string", "description": "Dynamic filters (e.g., filter[Jenis][_eq]=value)", "name": "filter[column][operator]", "in": "query" }, { "type": "string", "description": "Sort fields (e.g., sort=date_created,-Jenis)", "name": "sort", "in": "query" }, { "type": "integer", "default": 10, "description": "Limit", "name": "limit", "in": "query" }, { "type": "integer", "default": 0, "description": "Offset", "name": "offset", "in": "query" } ], "responses": { "200": { "description": "Success response", "schema": { "$ref": "#/definitions/api-service_internal_models_retribusi.RetribusiGetResponse" } }, "400": { "description": "Bad request", "schema": { "$ref": "#/definitions/api-service_internal_models.ErrorResponse" } }, "500": { "description": "Internal server error", "schema": { "$ref": "#/definitions/api-service_internal_models.ErrorResponse" } } } } }, "/api/v1/retribusis/stats": { "get": { "description": "Returns comprehensive statistics about retribusi data", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "Retribusi" ], "summary": "Get retribusi statistics", "parameters": [ { "type": "string", "description": "Filter statistics by status", "name": "status", "in": "query" } ], "responses": { "200": { "description": "Statistics data", "schema": { "$ref": "#/definitions/api-service_internal_models.AggregateData" } }, "500": { "description": "Internal server error", "schema": { "$ref": "#/definitions/api-service_internal_models.ErrorResponse" } } } } }, "/api/v1/retribusis/welcome": { "get": { "description": "Returns a welcome message and logs the request", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "Retribusi" ], "summary": "Get welcome message", "responses": { "200": { "description": "Welcome message", "schema": { "type": "object", "additionalProperties": { "type": "string" } } } } } }, "/api/v1/token/generate": { "post": { "description": "Generate a JWT token for testing purposes", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "Token" ], "summary": "Generate JWT token", "parameters": [ { "description": "Token generation data", "name": "token", "in": "body", "required": true, "schema": { "type": "object", "additionalProperties": true } } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/api-service_internal_models_auth.TokenResponse" } }, "400": { "description": "Bad request", "schema": { "type": "object", "additionalProperties": { "type": "string" } } } } } }, "/api/v1/token/generate-direct": { "post": { "description": "Generate a JWT token directly with provided data", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "Token" ], "summary": "Generate JWT token directly", "parameters": [ { "description": "Token generation data", "name": "token", "in": "body", "required": true, "schema": { "type": "object", "additionalProperties": true } } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/api-service_internal_models_auth.TokenResponse" } }, "400": { "description": "Bad request", "schema": { "type": "object", "additionalProperties": { "type": "string" } } } } } }, "/component": { "get": { "description": "Get list of components with pagination and filters", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "Components" ], "summary": "Get Components List", "parameters": [ { "type": "integer", "default": 10, "description": "Limit (max 100)", "name": "limit", "in": "query" }, { "type": "integer", "default": 0, "description": "Offset", "name": "offset", "in": "query" }, { "type": "integer", "description": "Filter by parent page ID", "name": "page_id", "in": "query" }, { "type": "string", "description": "Filter by status", "name": "active", "in": "query" } ], "responses": { "200": { "description": "Success response", "schema": { "$ref": "#/definitions/api-service_internal_models_component.ComponentsGetResponse" } }, "400": { "description": "Bad request", "schema": { "$ref": "#/definitions/api-service_internal_models.ErrorResponse" } }, "500": { "description": "Internal server error", "schema": { "$ref": "#/definitions/api-service_internal_models.ErrorResponse" } } } }, "post": { "description": "Create a new component", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "Components" ], "summary": "Create Component", "parameters": [ { "description": "Component creation request", "name": "request", "in": "body", "required": true, "schema": { "$ref": "#/definitions/api-service_internal_models_component.ComponentCreateRequest" } } ], "responses": { "201": { "description": "Component created successfully", "schema": { "$ref": "#/definitions/api-service_internal_models_component.ComponentCreateResponse" } }, "400": { "description": "Bad request or validation error", "schema": { "$ref": "#/definitions/api-service_internal_models.ErrorResponse" } }, "500": { "description": "Internal server error", "schema": { "$ref": "#/definitions/api-service_internal_models.ErrorResponse" } } } } }, "/component/{id}": { "put": { "description": "Update an existing component", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "Components" ], "summary": "Update Component", "parameters": [ { "type": "string", "description": "Component ID", "name": "id", "in": "path", "required": true }, { "description": "Component update request", "name": "request", "in": "body", "required": true, "schema": { "$ref": "#/definitions/api-service_internal_models_component.ComponentUpdateRequest" } } ], "responses": { "200": { "description": "Component updated successfully", "schema": { "$ref": "#/definitions/api-service_internal_models_component.ComponentUpdateResponse" } }, "400": { "description": "Bad request or validation error", "schema": { "$ref": "#/definitions/api-service_internal_models.ErrorResponse" } }, "404": { "description": "Component not found", "schema": { "$ref": "#/definitions/api-service_internal_models.ErrorResponse" } }, "500": { "description": "Internal server error", "schema": { "$ref": "#/definitions/api-service_internal_models.ErrorResponse" } } } }, "delete": { "description": "Delete a component", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "Components" ], "summary": "Delete Component", "parameters": [ { "type": "string", "description": "Component ID", "name": "id", "in": "path", "required": true } ], "responses": { "200": { "description": "Component deleted successfully", "schema": { "$ref": "#/definitions/api-service_internal_models_component.ComponentDeleteResponse" } }, "400": { "description": "Invalid ID format", "schema": { "$ref": "#/definitions/api-service_internal_models.ErrorResponse" } }, "404": { "description": "Component not found", "schema": { "$ref": "#/definitions/api-service_internal_models.ErrorResponse" } }, "500": { "description": "Internal server error", "schema": { "$ref": "#/definitions/api-service_internal_models.ErrorResponse" } } } } }, "/pages": { "get": { "description": "Get list of pages with pagination and filters", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "Pages" ], "summary": "Get Pages List", "parameters": [ { "type": "integer", "default": 10, "description": "Limit (max 100)", "name": "limit", "in": "query" }, { "type": "integer", "default": 0, "description": "Offset", "name": "offset", "in": "query" }, { "type": "string", "description": "Filter by status", "name": "status", "in": "query" }, { "type": "string", "description": "Search in multiple fields", "name": "search", "in": "query" } ], "responses": { "200": { "description": "Success response", "schema": { "$ref": "#/definitions/api-service_internal_models_pages.PagesGetResponse" } }, "400": { "description": "Bad request", "schema": { "$ref": "#/definitions/api-service_internal_models.ErrorResponse" } }, "500": { "description": "Internal server error", "schema": { "$ref": "#/definitions/api-service_internal_models.ErrorResponse" } } } }, "post": { "description": "Create a new page", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "Pages" ], "summary": "Create Page", "parameters": [ { "description": "Rol_pages creation request", "name": "request", "in": "body", "required": true, "schema": { "$ref": "#/definitions/api-service_internal_models_pages.PagesCreateRequest" } } ], "responses": { "201": { "description": "Rol_pages created successfully", "schema": { "$ref": "#/definitions/api-service_internal_models_pages.PagesCreateResponse" } }, "400": { "description": "Bad request or validation error", "schema": { "$ref": "#/definitions/api-service_internal_models.ErrorResponse" } }, "500": { "description": "Internal server error", "schema": { "$ref": "#/definitions/api-service_internal_models.ErrorResponse" } } } } }, "/pages/{id}": { "put": { "description": "Update an existing page", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "Pages" ], "summary": "Update Page", "parameters": [ { "type": "string", "description": "Rol_pages ID", "name": "id", "in": "path", "required": true }, { "description": "Rol_pages update request", "name": "request", "in": "body", "required": true, "schema": { "$ref": "#/definitions/api-service_internal_models_pages.PagesUpdateRequest" } } ], "responses": { "200": { "description": "Rol_pages updated successfully", "schema": { "$ref": "#/definitions/api-service_internal_models_pages.PagesUpdateResponse" } }, "400": { "description": "Bad request or validation error", "schema": { "$ref": "#/definitions/api-service_internal_models.ErrorResponse" } }, "404": { "description": "Rol_pages not found", "schema": { "$ref": "#/definitions/api-service_internal_models.ErrorResponse" } }, "500": { "description": "Internal server error", "schema": { "$ref": "#/definitions/api-service_internal_models.ErrorResponse" } } } }, "delete": { "description": "Delete a page", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "Pages" ], "summary": "Delete Page", "parameters": [ { "type": "string", "description": "Rol_pages ID", "name": "id", "in": "path", "required": true } ], "responses": { "200": { "description": "Rol_pages deleted successfully", "schema": { "$ref": "#/definitions/api-service_internal_models_pages.PagesDeleteResponse" } }, "400": { "description": "Invalid ID format", "schema": { "$ref": "#/definitions/api-service_internal_models.ErrorResponse" } }, "404": { "description": "Rol_pages not found", "schema": { "$ref": "#/definitions/api-service_internal_models.ErrorResponse" } }, "500": { "description": "Internal server error", "schema": { "$ref": "#/definitions/api-service_internal_models.ErrorResponse" } } } } }, "/patient": { "get": { "description": "Returns a paginated list of patients with optional summary statistics", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "Patient" ], "summary": "Get patient with pagination and optional aggregation", "parameters": [ { "type": "integer", "default": 10, "description": "Limit (max 100)", "name": "limit", "in": "query" }, { "type": "integer", "default": 0, "description": "Offset", "name": "offset", "in": "query" }, { "type": "boolean", "default": false, "description": "Include aggregation summary", "name": "include_summary", "in": "query" }, { "type": "string", "description": "Filter by status", "name": "status", "in": "query" }, { "type": "string", "description": "Search in multiple fields", "name": "search", "in": "query" } ], "responses": { "200": { "description": "Success response", "schema": { "$ref": "#/definitions/api-service_internal_models_patient.PatientGetResponse" } }, "400": { "description": "Bad request", "schema": { "$ref": "#/definitions/api-service_internal_models.ErrorResponse" } }, "500": { "description": "Internal server error", "schema": { "$ref": "#/definitions/api-service_internal_models.ErrorResponse" } } } }, "post": { "description": "Creates a new patient record", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "Patient" ], "summary": "Create patient", "parameters": [ { "description": "Patient creation request", "name": "request", "in": "body", "required": true, "schema": { "$ref": "#/definitions/api-service_internal_models_patient.PatientCreateRequest" } } ], "responses": { "201": { "description": "Patient created successfully", "schema": { "$ref": "#/definitions/api-service_internal_models_patient.PatientCreateResponse" } }, "400": { "description": "Bad request or validation error", "schema": { "$ref": "#/definitions/api-service_internal_models.ErrorResponse" } }, "500": { "description": "Internal server error", "schema": { "$ref": "#/definitions/api-service_internal_models.ErrorResponse" } } } } }, "/patient/{id}": { "put": { "description": "Updates an existing patient record", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "Patient" ], "summary": "Update patient", "parameters": [ { "type": "string", "description": "Medical Record Number", "name": "id", "in": "path", "required": true }, { "description": "Patient update request", "name": "request", "in": "body", "required": true, "schema": { "$ref": "#/definitions/api-service_internal_models_patient.PatientUpdateRequest" } } ], "responses": { "200": { "description": "Patient updated successfully", "schema": { "$ref": "#/definitions/api-service_internal_models_patient.PatientUpdateResponse" } }, "400": { "description": "Bad request or validation error", "schema": { "$ref": "#/definitions/api-service_internal_models.ErrorResponse" } }, "404": { "description": "Patient not found", "schema": { "$ref": "#/definitions/api-service_internal_models.ErrorResponse" } }, "500": { "description": "Internal server error", "schema": { "$ref": "#/definitions/api-service_internal_models.ErrorResponse" } } } }, "delete": { "description": "Soft deletes a patient by setting status to 'deleted'", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "Patient" ], "summary": "Delete patient", "parameters": [ { "type": "string", "description": "Medical Record Number", "name": "id", "in": "path", "required": true } ], "responses": { "200": { "description": "Patient deleted successfully", "schema": { "$ref": "#/definitions/api-service_internal_models_patient.PatientDeleteResponse" } }, "400": { "description": "Invalid ID format", "schema": { "$ref": "#/definitions/api-service_internal_models.ErrorResponse" } }, "404": { "description": "Patient not found", "schema": { "$ref": "#/definitions/api-service_internal_models.ErrorResponse" } }, "500": { "description": "Internal server error", "schema": { "$ref": "#/definitions/api-service_internal_models.ErrorResponse" } } } } }, "/permission": { "get": { "description": "Get list of permissions with pagination and filters", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "Permissions" ], "summary": "Get Permissions List", "parameters": [ { "type": "integer", "default": 10, "description": "Limit (max 100)", "name": "limit", "in": "query" }, { "type": "integer", "default": 0, "description": "Offset", "name": "offset", "in": "query" }, { "type": "integer", "description": "Filter by parent page ID", "name": "page_id", "in": "query" }, { "type": "string", "description": "Filter by status", "name": "active", "in": "query" } ], "responses": { "200": { "description": "Success response", "schema": { "$ref": "#/definitions/api-service_internal_models_permission.PermissionsGetResponse" } }, "400": { "description": "Bad request", "schema": { "$ref": "#/definitions/api-service_internal_models.ErrorResponse" } }, "500": { "description": "Internal server error", "schema": { "$ref": "#/definitions/api-service_internal_models.ErrorResponse" } } } }, "post": { "description": "Create a new permission", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "Permissions" ], "summary": "Create Permission", "parameters": [ { "description": "Permission creation request", "name": "request", "in": "body", "required": true, "schema": { "$ref": "#/definitions/api-service_internal_models_permission.PermissionCreateRequest" } } ], "responses": { "201": { "description": "Permission created successfully", "schema": { "$ref": "#/definitions/api-service_internal_models_permission.PermissionCreateResponse" } }, "400": { "description": "Bad request or validation error", "schema": { "$ref": "#/definitions/api-service_internal_models.ErrorResponse" } }, "500": { "description": "Internal server error", "schema": { "$ref": "#/definitions/api-service_internal_models.ErrorResponse" } } } } }, "/permission/{id}": { "put": { "description": "Update an existing permission", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "Permissions" ], "summary": "Update Permission", "parameters": [ { "type": "string", "description": "Permission ID", "name": "id", "in": "path", "required": true }, { "description": "Permission update request", "name": "request", "in": "body", "required": true, "schema": { "$ref": "#/definitions/api-service_internal_models_permission.PermissionUpdateRequest" } } ], "responses": { "200": { "description": "Permission updated successfully", "schema": { "$ref": "#/definitions/api-service_internal_models_permission.PermissionUpdateResponse" } }, "400": { "description": "Bad request or validation error", "schema": { "$ref": "#/definitions/api-service_internal_models.ErrorResponse" } }, "404": { "description": "Permission not found", "schema": { "$ref": "#/definitions/api-service_internal_models.ErrorResponse" } }, "500": { "description": "Internal server error", "schema": { "$ref": "#/definitions/api-service_internal_models.ErrorResponse" } } } }, "delete": { "description": "Delete a permission", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "Permissions" ], "summary": "Delete Permission", "parameters": [ { "type": "string", "description": "Permission ID", "name": "id", "in": "path", "required": true } ], "responses": { "200": { "description": "Permission deleted successfully", "schema": { "$ref": "#/definitions/api-service_internal_models_permission.PermissionDeleteResponse" } }, "400": { "description": "Invalid ID format", "schema": { "$ref": "#/definitions/api-service_internal_models.ErrorResponse" } }, "404": { "description": "Permission not found", "schema": { "$ref": "#/definitions/api-service_internal_models.ErrorResponse" } }, "500": { "description": "Internal server error", "schema": { "$ref": "#/definitions/api-service_internal_models.ErrorResponse" } } } } } }, "definitions": { "api-service_internal_models.AggregateData": { "type": "object", "properties": { "by_dinas": { "type": "object", "additionalProperties": { "type": "integer" } }, "by_jenis": { "type": "object", "additionalProperties": { "type": "integer" } }, "by_status": { "type": "object", "additionalProperties": { "type": "integer" } }, "created_today": { "type": "integer" }, "last_updated": { "type": "string" }, "total_active": { "type": "integer" }, "total_draft": { "type": "integer" }, "total_inactive": { "type": "integer" }, "updated_today": { "type": "integer" } } }, "api-service_internal_models.ErrorResponse": { "type": "object", "properties": { "code": { "type": "integer" }, "error": { "type": "string" }, "message": { "type": "string" }, "timestamp": { "type": "string" } } }, "api-service_internal_models.MetaResponse": { "type": "object", "properties": { "current_page": { "type": "integer" }, "has_next": { "type": "boolean" }, "has_prev": { "type": "boolean" }, "limit": { "type": "integer" }, "offset": { "type": "integer" }, "total": { "type": "integer" }, "total_pages": { "type": "integer" } } }, "api-service_internal_models.NullableInt32": { "type": "object", "properties": { "int32": { "type": "integer" }, "valid": { "type": "boolean" } } }, "api-service_internal_models.NullableString": { "type": "object", "properties": { "string": { "type": "string" }, "valid": { "type": "boolean" } } }, "api-service_internal_models.NullableTime": { "type": "object", "properties": { "time": { "type": "string" }, "valid": { "type": "boolean" } } }, "api-service_internal_models_auth.LoginRequest": { "type": "object", "required": [ "password", "username" ], "properties": { "password": { "type": "string" }, "username": { "type": "string" } } }, "api-service_internal_models_auth.TokenResponse": { "type": "object", "properties": { "access_token": { "type": "string" }, "expires_in": { "description": "Durasi dalam detik", "type": "integer" }, "refresh_token": { "type": "string" }, "token_type": { "description": "Biasanya \"Bearer\"", "type": "string" } } }, "api-service_internal_models_auth.User": { "type": "object", "properties": { "email": { "type": "string" }, "id": { "type": "string" }, "role": { "type": "string" }, "username": { "type": "string" } } }, "api-service_internal_models_component.ComponentCreateRequest": { "type": "object", "required": [ "directory", "fk_rol_pages_id", "name" ], "properties": { "active": { "type": "boolean" }, "description": { "type": "string", "maxLength": 255 }, "directory": { "type": "string", "maxLength": 255, "minLength": 1 }, "fk_rol_pages_id": { "type": "integer", "minimum": 1 }, "name": { "type": "string", "maxLength": 100, "minLength": 1 }, "sort": { "type": "integer" } } }, "api-service_internal_models_component.ComponentCreateResponse": { "type": "object", "properties": { "data": { "$ref": "#/definitions/api-service_internal_models_component.Rol_component" }, "message": { "type": "string" } } }, "api-service_internal_models_component.ComponentDeleteResponse": { "type": "object", "properties": { "id": { "type": "string" }, "message": { "type": "string" } } }, "api-service_internal_models_component.ComponentUpdateRequest": { "type": "object", "required": [ "directory", "fk_rol_pages_id", "name" ], "properties": { "active": { "type": "boolean" }, "description": { "type": "string", "maxLength": 255 }, "directory": { "type": "string", "maxLength": 255, "minLength": 1 }, "fk_rol_pages_id": { "type": "integer", "minimum": 1 }, "name": { "type": "string", "maxLength": 100, "minLength": 1 }, "sort": { "type": "integer" } } }, "api-service_internal_models_component.ComponentUpdateResponse": { "type": "object", "properties": { "data": { "$ref": "#/definitions/api-service_internal_models_component.Rol_component" }, "message": { "type": "string" } } }, "api-service_internal_models_component.ComponentsGetResponse": { "type": "object", "properties": { "code": { "type": "integer" }, "data": { "type": "array", "items": { "$ref": "#/definitions/api-service_internal_models_component.Rol_component" } }, "message": { "type": "string" }, "meta": { "$ref": "#/definitions/api-service_internal_models.MetaResponse" } } }, "api-service_internal_models_component.Rol_component": { "type": "object", "properties": { "active": { "type": "boolean" }, "description": { "$ref": "#/definitions/sql.NullString" }, "directory": { "type": "string" }, "fk_rol_pages_id": { "type": "integer" }, "id": { "type": "integer" }, "name": { "type": "string" }, "sort": { "type": "integer" } } }, "api-service_internal_models_pages.PagesCreateRequest": { "type": "object", "required": [ "name" ], "properties": { "active": { "type": "boolean" }, "icon": { "type": "string", "maxLength": 20, "minLength": 1 }, "id": { "description": "Status string `json:\"status\" validate:\"required,oneof=draft active inactive\"`", "type": "integer" }, "level": { "type": "integer" }, "name": { "type": "string", "maxLength": 20, "minLength": 1 }, "parent": { "type": "integer", "minimum": 1 }, "sort": { "type": "integer" }, "url": { "type": "string", "maxLength": 100, "minLength": 1 } } }, "api-service_internal_models_pages.PagesCreateResponse": { "type": "object", "properties": { "data": { "$ref": "#/definitions/api-service_internal_models_pages.Rol_pages" }, "message": { "type": "string" } } }, "api-service_internal_models_pages.PagesDeleteResponse": { "type": "object", "properties": { "id": { "type": "string" }, "message": { "type": "string" } } }, "api-service_internal_models_pages.PagesGetResponse": { "type": "object", "properties": { "code": { "type": "integer" }, "data": { "type": "array", "items": { "$ref": "#/definitions/api-service_internal_models_pages.Rol_pages" } }, "message": { "type": "string" }, "meta": { "$ref": "#/definitions/api-service_internal_models.MetaResponse" }, "summary": { "$ref": "#/definitions/api-service_internal_models.AggregateData" } } }, "api-service_internal_models_pages.PagesUpdateRequest": { "type": "object", "required": [ "name" ], "properties": { "active": { "type": "boolean" }, "icon": { "type": "string", "maxLength": 20, "minLength": 1 }, "level": { "type": "integer" }, "name": { "description": "Status string `json:\"status\" validate:\"required,oneof=draft active inactive\"`", "type": "string", "maxLength": 20, "minLength": 1 }, "parent": { "type": "integer", "minimum": 1 }, "sort": { "type": "integer" }, "url": { "type": "string", "maxLength": 100, "minLength": 1 } } }, "api-service_internal_models_pages.PagesUpdateResponse": { "type": "object", "properties": { "data": { "$ref": "#/definitions/api-service_internal_models_pages.Rol_pages" }, "message": { "type": "string" } } }, "api-service_internal_models_pages.Rol_component": { "type": "object", "properties": { "active": { "type": "boolean" }, "description": { "$ref": "#/definitions/sql.NullString" }, "directory": { "type": "string" }, "fk_rol_pages_id": { "type": "integer" }, "id": { "type": "integer" }, "name": { "type": "string" }, "sort": { "type": "integer" } } }, "api-service_internal_models_pages.Rol_pages": { "type": "object", "properties": { "active": { "type": "boolean" }, "icon": { "$ref": "#/definitions/sql.NullString" }, "id": { "type": "integer" }, "level": { "type": "integer" }, "list_component": { "type": "array", "items": { "$ref": "#/definitions/api-service_internal_models_pages.Rol_component" } }, "list_permission": { "type": "array", "items": { "$ref": "#/definitions/api-service_internal_models_pages.Rol_permission" } }, "name": { "type": "string" }, "parent": { "$ref": "#/definitions/api-service_internal_models.NullableInt32" }, "sort": { "type": "integer" }, "url": { "$ref": "#/definitions/sql.NullString" } } }, "api-service_internal_models_pages.Rol_permission": { "type": "object", "properties": { "active": { "$ref": "#/definitions/sql.NullBool" }, "create": { "$ref": "#/definitions/sql.NullBool" }, "delete": { "$ref": "#/definitions/sql.NullBool" }, "disable": { "description": "Note: \"disable\" is a Go keyword, so \"Disable\" is used for the field name.", "allOf": [ { "$ref": "#/definitions/sql.NullBool" } ] }, "fk_rol_pages_id": { "$ref": "#/definitions/api-service_internal_models.NullableInt32" }, "group_keycloak": { "type": "array", "items": { "type": "string" } }, "id": { "type": "integer" }, "read": { "$ref": "#/definitions/sql.NullBool" }, "role_keycloak": { "description": "Use NullString for optional text fields", "type": "array", "items": { "type": "string" } }, "update": { "$ref": "#/definitions/sql.NullBool" } } }, "api-service_internal_models_pasien.Pasien": { "type": "object", "properties": { "agama": { "$ref": "#/definitions/sql.NullInt32" }, "alamat": { "$ref": "#/definitions/sql.NullString" }, "createdAt": { "$ref": "#/definitions/sql.NullTime" }, "id": { "type": "integer" }, "idkecamatan": { "type": "integer" }, "idkelurahan": { "type": "integer" }, "idkota": { "type": "integer" }, "idprovinsi": { "type": "integer" }, "jeniskelamin": { "$ref": "#/definitions/sql.NullString" }, "kdkecamatan": { "$ref": "#/definitions/sql.NullInt32" }, "kdprovinsi": { "$ref": "#/definitions/sql.NullInt32" }, "kelurahan": { "$ref": "#/definitions/sql.NullInt64" }, "kota": { "$ref": "#/definitions/sql.NullInt32" }, "nama": { "$ref": "#/definitions/sql.NullString" }, "namakecamatan": { "$ref": "#/definitions/sql.NullString" }, "namakelurahan": { "$ref": "#/definitions/sql.NullString" }, "namakota": { "$ref": "#/definitions/sql.NullString" }, "namaprovinsi": { "$ref": "#/definitions/sql.NullString" }, "noKartu": { "$ref": "#/definitions/sql.NullString" }, "noktpBaru": { "$ref": "#/definitions/sql.NullString" }, "nomr": { "$ref": "#/definitions/sql.NullString" }, "status": { "$ref": "#/definitions/sql.NullString" }, "tempat": { "$ref": "#/definitions/sql.NullString" }, "tgllahir": { "$ref": "#/definitions/sql.NullTime" }, "title": { "$ref": "#/definitions/sql.NullString" }, "updatedAt": { "$ref": "#/definitions/sql.NullTime" } } }, "api-service_internal_models_pasien.PasienAgeStatsResponse": { "type": "object", "properties": { "data": { "type": "object", "additionalProperties": true }, "message": { "type": "string" } } }, "api-service_internal_models_pasien.PasienCreateRequest": { "type": "object", "required": [ "nama", "status", "title" ], "properties": { "agama": { "type": "integer" }, "alamat": { "type": "string" }, "id": { "type": "integer" }, "jeniskelamin": { "type": "string", "enum": [ "L", "P" ] }, "kdkecamatan": { "type": "integer" }, "kdprovinsi": { "type": "integer" }, "kelurahan": { "type": "integer" }, "kota": { "type": "integer" }, "nama": { "type": "string", "maxLength": 100, "minLength": 1 }, "noKartu": { "type": "string" }, "noktpBaru": { "type": "string" }, "nomr": { "type": "string" }, "status": { "type": "string", "enum": [ "draft", "active", "inactive" ] }, "tempat": { "type": "string" }, "tgllahir": { "type": "string" }, "title": { "type": "string", "maxLength": 100, "minLength": 1 } } }, "api-service_internal_models_pasien.PasienCreateResponse": { "type": "object", "properties": { "data": { "$ref": "#/definitions/api-service_internal_models_pasien.Pasien" }, "message": { "type": "string" } } }, "api-service_internal_models_pasien.PasienDeleteResponse": { "type": "object", "properties": { "id": { "type": "string" }, "message": { "type": "string" } } }, "api-service_internal_models_pasien.PasienGetByIDResponse": { "type": "object", "properties": { "data": { "$ref": "#/definitions/api-service_internal_models_pasien.Pasien" }, "message": { "type": "string" } } }, "api-service_internal_models_pasien.PasienGetByNomrResponse": { "type": "object", "properties": { "data": { "type": "array", "items": { "$ref": "#/definitions/api-service_internal_models_pasien.Pasien" } }, "message": { "type": "string" }, "meta": { "$ref": "#/definitions/api-service_internal_models.MetaResponse" }, "summary": { "$ref": "#/definitions/api-service_internal_models.AggregateData" } } }, "api-service_internal_models_pasien.PasienGetResponse": { "type": "object", "properties": { "data": { "type": "array", "items": { "$ref": "#/definitions/api-service_internal_models_pasien.Pasien" } }, "message": { "type": "string" }, "meta": { "$ref": "#/definitions/api-service_internal_models.MetaResponse" }, "summary": { "$ref": "#/definitions/api-service_internal_models.AggregateData" } } }, "api-service_internal_models_pasien.PasienUpdateRequest": { "type": "object", "required": [ "nama", "status" ], "properties": { "agama": { "type": "integer" }, "alamat": { "type": "string" }, "jeniskelamin": { "type": "string", "enum": [ "L", "P" ] }, "kdkecamatan": { "type": "integer" }, "kdprovinsi": { "type": "integer" }, "kelurahan": { "type": "integer" }, "kota": { "type": "integer" }, "nama": { "type": "string", "maxLength": 100, "minLength": 1 }, "noKartu": { "type": "string" }, "noktpBaru": { "type": "string" }, "nomr": { "type": "string" }, "status": { "type": "string", "enum": [ "draft", "active", "inactive" ] }, "tempat": { "type": "string" }, "tgllahir": { "type": "string" }, "title": { "type": "string", "maxLength": 255, "minLength": 1 } } }, "api-service_internal_models_pasien.PasienUpdateResponse": { "type": "object", "properties": { "data": { "$ref": "#/definitions/api-service_internal_models_pasien.Pasien" }, "message": { "type": "string" } } }, "api-service_internal_models_patient.Patient": { "type": "object", "properties": { "active": { "$ref": "#/definitions/sql.NullBool" }, "address": { "$ref": "#/definitions/sql.NullString" }, "birth_date": { "$ref": "#/definitions/sql.NullTime" }, "ds_sd_kabupaten_kota": { "$ref": "#/definitions/sql.NullString" }, "ds_sd_kecamatan": { "$ref": "#/definitions/sql.NullString" }, "ds_sd_kelurahan": { "$ref": "#/definitions/sql.NullString" }, "ds_sd_provinsi": { "$ref": "#/definitions/sql.NullString" }, "fk_sd_kabupaten_kota_id": { "$ref": "#/definitions/api-service_internal_models.NullableInt32" }, "fk_sd_kecamatan_id": { "$ref": "#/definitions/api-service_internal_models.NullableInt32" }, "fk_sd_kelurahan_id": { "$ref": "#/definitions/api-service_internal_models.NullableInt32" }, "fk_sd_provinsi_id": { "$ref": "#/definitions/api-service_internal_models.NullableInt32" }, "gender": { "$ref": "#/definitions/sql.NullString" }, "id": { "type": "integer" }, "medical_record_number": { "$ref": "#/definitions/sql.NullString" }, "name": { "$ref": "#/definitions/sql.NullString" }, "phone_number": { "$ref": "#/definitions/sql.NullString" } } }, "api-service_internal_models_patient.PatientCreateRequest": { "type": "object", "properties": { "active": { "type": "boolean" }, "address": { "type": "string", "maxLength": 255, "minLength": 1 }, "birth_date": { "type": "string" }, "ds_sd_kabupaten_kota": { "type": "string", "maxLength": 255, "minLength": 1 }, "ds_sd_kecamatan": { "type": "string", "maxLength": 255, "minLength": 1 }, "ds_sd_kelurahan": { "type": "string", "maxLength": 255, "minLength": 1 }, "ds_sd_provinsi": { "type": "string", "maxLength": 255, "minLength": 1 }, "fk_sd_kabupaten_kota_id": { "type": "integer" }, "fk_sd_kecamatan_id": { "type": "integer" }, "fk_sd_kelurahan_id": { "type": "integer" }, "fk_sd_provinsi_id": { "type": "integer" }, "gender": { "type": "string", "maxLength": 1 }, "id": { "type": "integer" }, "medical_record_number": { "type": "string", "maxLength": 20, "minLength": 1 }, "name": { "type": "string", "maxLength": 100, "minLength": 1 }, "phone_number": { "type": "string", "maxLength": 20, "minLength": 1 } } }, "api-service_internal_models_patient.PatientCreateResponse": { "type": "object", "properties": { "data": { "$ref": "#/definitions/api-service_internal_models_patient.Patient" }, "message": { "type": "string" } } }, "api-service_internal_models_patient.PatientDeleteResponse": { "type": "object", "properties": { "id": { "type": "string" }, "medical_record_number": { "type": "string" }, "message": { "type": "string" } } }, "api-service_internal_models_patient.PatientGetResponse": { "type": "object", "properties": { "data": { "type": "array", "items": { "$ref": "#/definitions/api-service_internal_models_patient.Patient" } }, "message": { "type": "string" }, "meta": { "$ref": "#/definitions/api-service_internal_models.MetaResponse" }, "summary": { "$ref": "#/definitions/api-service_internal_models.AggregateData" } } }, "api-service_internal_models_patient.PatientUpdateRequest": { "type": "object", "required": [ "id" ], "properties": { "active": { "type": "boolean" }, "address": { "type": "string", "maxLength": 255, "minLength": 1 }, "birth_date": { "type": "string" }, "ds_sd_kabupaten_kota": { "type": "string", "maxLength": 255 }, "ds_sd_kecamatan": { "type": "string", "maxLength": 255 }, "ds_sd_kelurahan": { "type": "string", "maxLength": 255 }, "ds_sd_provinsi": { "type": "string", "maxLength": 255 }, "fk_sd_kabupaten_kota_id": { "type": "integer" }, "fk_sd_kecamatan_id": { "type": "integer" }, "fk_sd_kelurahan_id": { "type": "integer" }, "fk_sd_provinsi_id": { "type": "integer" }, "gender": { "type": "string", "maxLength": 1 }, "id": { "type": "integer", "minimum": 1 }, "medical_record_number": { "type": "string", "maxLength": 20, "minLength": 1 }, "name": { "type": "string", "maxLength": 100, "minLength": 1 }, "phone_number": { "type": "string", "maxLength": 20, "minLength": 1 } } }, "api-service_internal_models_patient.PatientUpdateResponse": { "type": "object", "properties": { "data": { "$ref": "#/definitions/api-service_internal_models_patient.Patient" }, "message": { "type": "string" } } }, "api-service_internal_models_permission.PermissionCreateRequest": { "type": "object", "properties": { "active": { "type": "boolean" }, "create": { "type": "boolean" }, "delete": { "type": "boolean" }, "disable": { "type": "boolean" }, "fk_rol_pages_id": { "type": "integer" }, "group_keycloak": { "type": "array", "items": { "type": "string" } }, "read": { "type": "boolean" }, "role_keycloak": { "type": "array", "items": { "type": "string" } }, "update": { "type": "boolean" } } }, "api-service_internal_models_permission.PermissionCreateResponse": { "type": "object", "properties": { "data": { "$ref": "#/definitions/api-service_internal_models_permission.Rol_permission" }, "message": { "type": "string" } } }, "api-service_internal_models_permission.PermissionDeleteResponse": { "type": "object", "properties": { "id": { "type": "string" }, "message": { "type": "string" } } }, "api-service_internal_models_permission.PermissionUpdateRequest": { "type": "object", "properties": { "active": { "type": "boolean" }, "create": { "type": "boolean" }, "delete": { "type": "boolean" }, "disable": { "type": "boolean" }, "fk_rol_pages_id": { "type": "integer" }, "group_keycloak": { "type": "array", "items": { "type": "string" } }, "read": { "type": "boolean" }, "role_keycloak": { "type": "array", "items": { "type": "string" } }, "update": { "type": "boolean" } } }, "api-service_internal_models_permission.PermissionUpdateResponse": { "type": "object", "properties": { "data": { "$ref": "#/definitions/api-service_internal_models_permission.Rol_permission" }, "message": { "type": "string" } } }, "api-service_internal_models_permission.PermissionsGetResponse": { "type": "object", "properties": { "code": { "type": "integer" }, "data": { "type": "array", "items": { "$ref": "#/definitions/api-service_internal_models_permission.Rol_permission" } }, "message": { "type": "string" }, "meta": { "$ref": "#/definitions/api-service_internal_models.MetaResponse" } } }, "api-service_internal_models_permission.Rol_permission": { "type": "object", "properties": { "active": { "$ref": "#/definitions/sql.NullBool" }, "create": { "$ref": "#/definitions/sql.NullBool" }, "delete": { "$ref": "#/definitions/sql.NullBool" }, "disable": { "description": "\"disable\" is a Go keyword, so \"Disable\" is used for the field name.", "allOf": [ { "$ref": "#/definitions/sql.NullBool" } ] }, "fk_rol_pages_id": { "$ref": "#/definitions/api-service_internal_models.NullableInt32" }, "group_keycloak": { "type": "array", "items": { "type": "string" } }, "id": { "type": "integer" }, "read": { "$ref": "#/definitions/sql.NullBool" }, "role_keycloak": { "description": "Use NullString for optional text fields", "type": "array", "items": { "type": "string" } }, "update": { "$ref": "#/definitions/sql.NullBool" } } }, "api-service_internal_models_retribusi.Retribusi": { "type": "object", "properties": { "date_created": { "$ref": "#/definitions/api-service_internal_models.NullableTime" }, "date_updated": { "$ref": "#/definitions/api-service_internal_models.NullableTime" }, "dinas": { "$ref": "#/definitions/api-service_internal_models.NullableString" }, "id": { "type": "string" }, "jenis": { "$ref": "#/definitions/api-service_internal_models.NullableString" }, "kelompok_obyek": { "$ref": "#/definitions/api-service_internal_models.NullableString" }, "kode_tarif": { "$ref": "#/definitions/api-service_internal_models.NullableString" }, "pelayanan": { "$ref": "#/definitions/api-service_internal_models.NullableString" }, "rekening_denda": { "$ref": "#/definitions/api-service_internal_models.NullableString" }, "rekening_pokok": { "$ref": "#/definitions/api-service_internal_models.NullableString" }, "satuan": { "$ref": "#/definitions/api-service_internal_models.NullableString" }, "satuan_overtime": { "$ref": "#/definitions/api-service_internal_models.NullableString" }, "sort": { "$ref": "#/definitions/api-service_internal_models.NullableInt32" }, "status": { "type": "string" }, "tarif": { "$ref": "#/definitions/api-service_internal_models.NullableString" }, "tarif_overtime": { "$ref": "#/definitions/api-service_internal_models.NullableString" }, "uraian_1": { "$ref": "#/definitions/api-service_internal_models.NullableString" }, "uraian_2": { "$ref": "#/definitions/api-service_internal_models.NullableString" }, "uraian_3": { "$ref": "#/definitions/api-service_internal_models.NullableString" }, "user_created": { "$ref": "#/definitions/api-service_internal_models.NullableString" }, "user_updated": { "$ref": "#/definitions/api-service_internal_models.NullableString" } } }, "api-service_internal_models_retribusi.RetribusiCreateRequest": { "type": "object", "required": [ "status" ], "properties": { "dinas": { "type": "string", "maxLength": 255, "minLength": 1 }, "jenis": { "type": "string", "maxLength": 255, "minLength": 1 }, "kelompok_obyek": { "type": "string", "maxLength": 255, "minLength": 1 }, "kode_tarif": { "type": "string", "maxLength": 255, "minLength": 1 }, "pelayanan": { "type": "string", "maxLength": 255, "minLength": 1 }, "rekening_denda": { "type": "string", "maxLength": 255, "minLength": 1 }, "rekening_pokok": { "type": "string", "maxLength": 255, "minLength": 1 }, "satuan": { "type": "string", "maxLength": 255, "minLength": 1 }, "satuan_overtime": { "type": "string", "maxLength": 255, "minLength": 1 }, "status": { "type": "string", "enum": [ "draft", "active", "inactive" ] }, "tarif": { "type": "string" }, "tarif_overtime": { "type": "string" }, "uraian_1": { "type": "string" }, "uraian_2": { "type": "string" }, "uraian_3": { "type": "string" } } }, "api-service_internal_models_retribusi.RetribusiCreateResponse": { "type": "object", "properties": { "data": { "$ref": "#/definitions/api-service_internal_models_retribusi.Retribusi" }, "message": { "type": "string" } } }, "api-service_internal_models_retribusi.RetribusiDeleteResponse": { "type": "object", "properties": { "id": { "type": "string" }, "message": { "type": "string" } } }, "api-service_internal_models_retribusi.RetribusiGetByIDResponse": { "type": "object", "properties": { "data": { "$ref": "#/definitions/api-service_internal_models_retribusi.Retribusi" }, "message": { "type": "string" } } }, "api-service_internal_models_retribusi.RetribusiGetResponse": { "type": "object", "properties": { "data": { "type": "array", "items": { "$ref": "#/definitions/api-service_internal_models_retribusi.Retribusi" } }, "message": { "type": "string" }, "meta": { "$ref": "#/definitions/api-service_internal_models.MetaResponse" }, "summary": { "$ref": "#/definitions/api-service_internal_models.AggregateData" } } }, "api-service_internal_models_retribusi.RetribusiUpdateRequest": { "type": "object", "required": [ "status" ], "properties": { "dinas": { "type": "string", "maxLength": 255, "minLength": 1 }, "jenis": { "type": "string", "maxLength": 255, "minLength": 1 }, "kelompok_obyek": { "type": "string", "maxLength": 255, "minLength": 1 }, "kode_tarif": { "type": "string", "maxLength": 255, "minLength": 1 }, "pelayanan": { "type": "string", "maxLength": 255, "minLength": 1 }, "rekening_denda": { "type": "string", "maxLength": 255, "minLength": 1 }, "rekening_pokok": { "type": "string", "maxLength": 255, "minLength": 1 }, "satuan": { "type": "string", "maxLength": 255, "minLength": 1 }, "satuan_overtime": { "type": "string", "maxLength": 255, "minLength": 1 }, "status": { "type": "string", "enum": [ "draft", "active", "inactive" ] }, "tarif": { "type": "string" }, "tarif_overtime": { "type": "string" }, "uraian_1": { "type": "string" }, "uraian_2": { "type": "string" }, "uraian_3": { "type": "string" } } }, "api-service_internal_models_retribusi.RetribusiUpdateResponse": { "type": "object", "properties": { "data": { "$ref": "#/definitions/api-service_internal_models_retribusi.Retribusi" }, "message": { "type": "string" } } }, "sql.NullBool": { "type": "object", "properties": { "bool": { "type": "boolean" }, "valid": { "description": "Valid is true if Bool is not NULL", "type": "boolean" } } }, "sql.NullInt32": { "type": "object", "properties": { "int32": { "type": "integer", "format": "int32" }, "valid": { "description": "Valid is true if Int32 is not NULL", "type": "boolean" } } }, "sql.NullInt64": { "type": "object", "properties": { "int64": { "type": "integer", "format": "int64" }, "valid": { "description": "Valid is true if Int64 is not NULL", "type": "boolean" } } }, "sql.NullString": { "type": "object", "properties": { "string": { "type": "string" }, "valid": { "description": "Valid is true if String is not NULL", "type": "boolean" } } }, "sql.NullTime": { "type": "object", "properties": { "time": { "type": "string" }, "valid": { "description": "Valid is true if Time is not NULL", "type": "boolean" } } } } }