Files

3745 lines
130 KiB
JSON

{
"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/bulk": {
"put": {
"description": "Update multiple pages in a single request. Each object must include \"id\". Use /pages/bulk [put].",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"Pages"
],
"summary": "Bulk update pages",
"parameters": [
{
"description": "Array of rol_pages update requests",
"name": "request",
"in": "body",
"required": true,
"schema": {
"type": "array",
"items": {
"$ref": "#/definitions/api-service_internal_models_pages.PagesUpdateRequest"
}
}
}
],
"responses": {
"200": {
"description": "Updated pages",
"schema": {
"type": "array",
"items": {
"$ref": "#/definitions/api-service_internal_models_pages.PagesUpdateResponse"
}
}
},
"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": "Get list of patients with pagination and filters, including their attachments and payment types.",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"Patient"
],
"summary": "Get Patients 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 active status (true/false)",
"name": "active",
"in": "query"
},
{
"type": "string",
"description": "Search in medical_record_number, name, or phone_number",
"name": "search",
"in": "query"
},
{
"type": "boolean",
"default": false,
"description": "Include aggregation summary",
"name": "include_summary",
"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"
}
}
}
}
},
"/patient/detail": {
"post": {
"description": "Retrieves a single patient record by its ID, including attachments and payment types.",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"Patient"
],
"summary": "Get Patient by ID",
"parameters": [
{
"description": "Patient post request",
"name": "request",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/api-service_internal_models_patient.PatientPostRequest"
}
}
],
"responses": {
"200": {
"description": "Patient details retrieved 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"
}
},
"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",
"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",
"minimum": 1
}
}
},
"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.ComponentCreateRequest": {
"type": "object",
"required": [
"directory",
"name"
],
"properties": {
"active": {
"type": "boolean"
},
"description": {
"type": "string",
"maxLength": 255
},
"directory": {
"type": "string",
"maxLength": 255,
"minLength": 1
},
"name": {
"type": "string",
"maxLength": 100,
"minLength": 1
},
"sort": {
"type": "integer"
}
}
},
"api-service_internal_models_pages.ComponentUpdateRequest": {
"type": "object",
"required": [
"id"
],
"properties": {
"active": {
"type": "boolean"
},
"description": {
"type": "string",
"maxLength": 255
},
"directory": {
"type": "string",
"maxLength": 255,
"minLength": 1
},
"fk_rol_pages_id": {
"type": "integer",
"minimum": 1
},
"id": {
"type": "integer"
},
"name": {
"type": "string",
"maxLength": 100,
"minLength": 1
},
"sort": {
"type": "integer",
"minimum": 1
}
}
},
"api-service_internal_models_pages.PagesCreateRequest": {
"type": "object",
"required": [
"name"
],
"properties": {
"active": {
"type": "boolean"
},
"components": {
"type": "array",
"items": {
"$ref": "#/definitions/api-service_internal_models_pages.ComponentCreateRequest"
}
},
"icon": {
"type": "string",
"maxLength": 100,
"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
},
"permissions": {
"type": "array",
"items": {
"$ref": "#/definitions/api-service_internal_models_pages.PermissionCreateRequest"
}
},
"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",
"properties": {
"active": {
"type": "boolean"
},
"components": {
"type": "array",
"items": {
"$ref": "#/definitions/api-service_internal_models_pages.ComponentUpdateRequest"
}
},
"icon": {
"type": "string",
"maxLength": 100,
"minLength": 1
},
"id": {
"description": "used when updating via JSON array (bulk)",
"type": "integer"
},
"level": {
"type": "integer",
"minimum": 1
},
"name": {
"description": "Status string `json:\"status\" validate:\"required,oneof=draft active inactive\"`",
"type": "string",
"maxLength": 20,
"minLength": 1
},
"parent": {
"type": "integer",
"minimum": 1
},
"permissions": {
"type": "array",
"items": {
"$ref": "#/definitions/api-service_internal_models_pages.PermissionUpdateRequest"
}
},
"sort": {
"type": "integer",
"minimum": 1
},
"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.PermissionCreateRequest": {
"type": "object",
"properties": {
"active": {
"type": "boolean"
},
"create": {
"type": "boolean"
},
"delete": {
"type": "boolean"
},
"disable": {
"type": "boolean"
},
"group_keycloak": {
"type": "array",
"items": {
"type": "string"
}
},
"read": {
"type": "boolean"
},
"role_keycloak": {
"description": "FkRolPagesID *int64 `json:\"fk_rol_pages_id\" validate:\"omitempty,\"`",
"type": "array",
"items": {
"type": "string"
}
},
"update": {
"type": "boolean"
}
}
},
"api-service_internal_models_pages.PermissionUpdateRequest": {
"type": "object",
"required": [
"id"
],
"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"
}
},
"id": {
"type": "integer"
},
"read": {
"type": "boolean"
},
"role_keycloak": {
"type": "array",
"items": {
"type": "string"
}
},
"update": {
"type": "boolean"
}
}
},
"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"
},
"attachments": {
"type": "array",
"items": {
"$ref": "#/definitions/api-service_internal_models_patient.PatientAttachment"
}
},
"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"
},
"payment_types": {
"type": "array",
"items": {
"$ref": "#/definitions/api-service_internal_models_patient.PatientPaymentType"
}
},
"phone_number": {
"$ref": "#/definitions/sql.NullString"
}
}
},
"api-service_internal_models_patient.PatientAttachment": {
"type": "object",
"properties": {
"active": {
"$ref": "#/definitions/sql.NullBool"
},
"directory": {
"$ref": "#/definitions/sql.NullString"
},
"file_name": {
"$ref": "#/definitions/sql.NullString"
},
"fk_ms_patient_id": {
"$ref": "#/definitions/api-service_internal_models.NullableInt32"
},
"id": {
"type": "integer"
},
"name": {
"$ref": "#/definitions/sql.NullString"
}
}
},
"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.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.PatientPaymentType": {
"type": "object",
"properties": {
"active": {
"$ref": "#/definitions/sql.NullBool"
},
"fk_ms_patient_id": {
"$ref": "#/definitions/api-service_internal_models.NullableInt32"
},
"fk_ref_payment_type": {
"$ref": "#/definitions/api-service_internal_models.NullableInt32"
},
"id": {
"type": "integer"
},
"name": {
"$ref": "#/definitions/sql.NullString"
},
"number": {
"$ref": "#/definitions/sql.NullString"
}
}
},
"api-service_internal_models_patient.PatientPostRequest": {
"type": "object",
"required": [
"medical_record_number"
],
"properties": {
"medical_record_number": {
"description": "ID int64 `json:\"id\" validate:\"required,min=1\"`",
"type": "string",
"minLength": 1
}
}
},
"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"
}
}
}
}
}