basePath: /api/v1 definitions: api-service_internal_models.AggregateData: properties: by_dinas: additionalProperties: type: integer type: object by_jenis: additionalProperties: type: integer type: object by_status: additionalProperties: type: integer type: object created_today: type: integer last_updated: type: string total_active: type: integer total_draft: type: integer total_inactive: type: integer updated_today: type: integer type: object api-service_internal_models.ErrorResponse: properties: code: type: integer error: type: string message: type: string timestamp: type: string type: object api-service_internal_models.ErrorResponseBpjs: properties: code: type: string errors: additionalProperties: true type: object message: type: string request_id: type: string status: type: string type: object api-service_internal_models.MetaResponse: 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 type: object api-service_internal_models.NullableInt32: properties: int32: type: integer valid: type: boolean type: object api-service_internal_models_auth.LoginRequest: properties: password: type: string username: type: string required: - password - username type: object api-service_internal_models_auth.TokenResponse: properties: access_token: type: string expires_in: type: integer token_type: type: string type: object api-service_internal_models_auth.User: properties: email: type: string id: type: string role: type: string username: type: string type: object api-service_internal_models_kiosk.Listkiosk: properties: active: $ref: '#/definitions/sql.NullBool' ds_sd_location: $ref: '#/definitions/sql.NullString' fk_ref_healthcare_type_id: $ref: '#/definitions/api-service_internal_models.NullableInt32' fk_ref_service_type_id: $ref: '#/definitions/api-service_internal_models.NullableInt32' fk_sd_location_id: $ref: '#/definitions/sql.NullString' icon: $ref: '#/definitions/sql.NullString' id: type: integer name: $ref: '#/definitions/sql.NullString' url: $ref: '#/definitions/sql.NullString' type: object api-service_internal_models_kiosk.ListkioskCreateRequest: properties: active: type: boolean ds_sd_location: type: string fk_ref_healthcare_type_id: minimum: 1 type: integer fk_ref_service_type_id: minimum: 1 type: integer fk_sd_location_id: type: string icon: maxLength: 20 minLength: 1 type: string name: maxLength: 20 minLength: 1 type: string url: maxLength: 255 minLength: 1 type: string type: object api-service_internal_models_kiosk.ListkioskCreateResponse: properties: data: $ref: '#/definitions/api-service_internal_models_kiosk.Listkiosk' message: type: string type: object api-service_internal_models_kiosk.ListkioskDeleteResponse: properties: id: type: string message: type: string type: object api-service_internal_models_kiosk.ListkioskGetResponse: properties: data: items: $ref: '#/definitions/api-service_internal_models_kiosk.Listkiosk' type: array message: type: string meta: $ref: '#/definitions/api-service_internal_models.MetaResponse' summary: $ref: '#/definitions/api-service_internal_models.AggregateData' type: object api-service_internal_models_kiosk.ListkioskUpdateRequest: properties: active: type: boolean ds_sd_location: maxLength: 255 type: string fk_ref_healthcare_type_id: minimum: 1 type: integer fk_ref_service_type_id: minimum: 1 type: integer fk_sd_location_id: type: string icon: maxLength: 20 minLength: 1 type: string id: minimum: 1 type: integer name: maxLength: 20 minLength: 1 type: string url: maxLength: 255 minLength: 1 type: string required: - id type: object api-service_internal_models_kiosk.ListkioskUpdateResponse: properties: data: $ref: '#/definitions/api-service_internal_models_kiosk.Listkiosk' message: type: string type: object api-service_internal_models_patient.Patient: properties: active: $ref: '#/definitions/sql.NullBool' address: $ref: '#/definitions/sql.NullString' birth_date: type: string 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' type: object api-service_internal_models_patient.PatientCreateRequest: properties: active: type: boolean address: maxLength: 255 minLength: 1 type: string birth_date: type: string ds_sd_kabupaten_kota: maxLength: 255 minLength: 1 type: string ds_sd_kecamatan: maxLength: 255 minLength: 1 type: string ds_sd_kelurahan: maxLength: 255 minLength: 1 type: string ds_sd_provinsi: maxLength: 255 minLength: 1 type: string 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: maxLength: 1 type: string medical_record_number: maxLength: 20 minLength: 1 type: string name: maxLength: 100 minLength: 1 type: string phone_number: maxLength: 20 minLength: 1 type: string type: object api-service_internal_models_patient.PatientCreateResponse: properties: data: $ref: '#/definitions/api-service_internal_models_patient.Patient' message: type: string type: object api-service_internal_models_patient.PatientDeleteResponse: properties: id: type: string message: type: string type: object api-service_internal_models_patient.PatientGetResponse: properties: data: items: $ref: '#/definitions/api-service_internal_models_patient.Patient' type: array message: type: string meta: $ref: '#/definitions/api-service_internal_models.MetaResponse' summary: $ref: '#/definitions/api-service_internal_models.AggregateData' type: object api-service_internal_models_patient.PatientPostRequest: properties: id: minimum: 1 type: integer required: - id type: object api-service_internal_models_patient.PatientUpdateRequest: properties: active: type: boolean address: maxLength: 255 minLength: 1 type: string birth_date: type: string ds_sd_kabupaten_kota: maxLength: 255 type: string ds_sd_kecamatan: maxLength: 255 type: string ds_sd_kelurahan: maxLength: 255 type: string ds_sd_provinsi: maxLength: 255 type: string 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: maxLength: 1 type: string id: minimum: 1 type: integer medical_record_number: maxLength: 20 minLength: 1 type: string name: maxLength: 100 minLength: 1 type: string phone_number: maxLength: 20 minLength: 1 type: string required: - id type: object api-service_internal_models_patient.PatientUpdateResponse: properties: data: $ref: '#/definitions/api-service_internal_models_patient.Patient' message: type: string type: object api-service_internal_models_registrasi.MsRegistrationCounter: properties: active: $ref: '#/definitions/sql.NullBool' code: $ref: '#/definitions/sql.NullString' ds_sd_location: $ref: '#/definitions/sql.NullString' fk_ref_healtcare_type_id: $ref: '#/definitions/api-service_internal_models.NullableInt32' fk_ref_service_type_id: $ref: '#/definitions/api-service_internal_models.NullableInt32' fk_sd_location_id: $ref: '#/definitions/sql.NullString' icon: $ref: '#/definitions/sql.NullString' id: type: integer name: $ref: '#/definitions/sql.NullString' quota: $ref: '#/definitions/sql.NullInt16' type: object api-service_internal_models_registrasi.MsRegistrationCounterCreateRequest: properties: active: type: boolean code: maxLength: 3 minLength: 1 type: string ds_sd_location: maxLength: 255 minLength: 1 type: string fk_ref_healtcare_type_id: minimum: 1 type: integer fk_ref_service_type_id: minimum: 1 type: integer fk_sd_location_id: type: string icon: maxLength: 20 minLength: 1 type: string name: maxLength: 20 minLength: 1 type: string quota: minimum: 0 type: integer required: - code - name type: object api-service_internal_models_registrasi.MsRegistrationCounterCreateResponse: properties: data: $ref: '#/definitions/api-service_internal_models_registrasi.MsRegistrationCounter' message: type: string type: object api-service_internal_models_registrasi.MsRegistrationCounterDeleteResponse: properties: id: type: string message: type: string type: object api-service_internal_models_registrasi.MsRegistrationCounterDetail: properties: active: $ref: '#/definitions/sql.NullBool' code: $ref: '#/definitions/sql.NullString' healthcaretype: $ref: '#/definitions/sql.NullString' icon: $ref: '#/definitions/sql.NullString' id: type: integer name: $ref: '#/definitions/sql.NullString' quota: $ref: '#/definitions/sql.NullInt16' servicetype: $ref: '#/definitions/sql.NullString' type: object api-service_internal_models_registrasi.MsRegistrationCounterGetByIDResponse: properties: data: $ref: '#/definitions/api-service_internal_models_registrasi.MsRegistrationCounterDetail' message: type: string type: object api-service_internal_models_registrasi.MsRegistrationCounterGetResponse: properties: data: items: $ref: '#/definitions/api-service_internal_models_registrasi.MsRegistrationCounter' type: array message: type: string meta: $ref: '#/definitions/api-service_internal_models.MetaResponse' summary: $ref: '#/definitions/api-service_internal_models.AggregateData' type: object api-service_internal_models_registrasi.MsRegistrationCounterUpdateRequest: properties: active: type: boolean code: maxLength: 3 minLength: 1 type: string ds_sd_location: maxLength: 255 minLength: 1 type: string fk_ref_healtcare_type_id: minimum: 1 type: integer fk_ref_service_type_id: minimum: 1 type: integer fk_sd_location_id: type: string icon: maxLength: 20 minLength: 1 type: string id: minimum: 1 type: integer name: maxLength: 20 minLength: 1 type: string quota: minimum: 0 type: integer required: - code - ds_sd_location - fk_sd_location_id - id - name type: object api-service_internal_models_registrasi.MsRegistrationCounterUpdateResponse: properties: data: $ref: '#/definitions/api-service_internal_models_registrasi.MsRegistrationCounter' message: type: string type: object api-service_internal_models_retribusi.Retribusi: properties: createdAt: type: string date_created: $ref: '#/definitions/sql.NullTime' date_updated: $ref: '#/definitions/sql.NullTime' deletedAt: $ref: '#/definitions/gorm.DeletedAt' dinas: $ref: '#/definitions/sql.NullString' id: type: string jenis: $ref: '#/definitions/sql.NullString' kelompok_obyek: $ref: '#/definitions/sql.NullString' kode_tarif: $ref: '#/definitions/sql.NullString' pelayanan: $ref: '#/definitions/sql.NullString' rekening_denda: $ref: '#/definitions/sql.NullString' rekening_pokok: $ref: '#/definitions/sql.NullString' satuan: $ref: '#/definitions/sql.NullString' satuan_overtime: $ref: '#/definitions/sql.NullString' sort: $ref: '#/definitions/sql.NullInt32' status: type: string tarif: $ref: '#/definitions/sql.NullString' tarif_overtime: $ref: '#/definitions/sql.NullString' updatedAt: type: string uraian_1: $ref: '#/definitions/sql.NullString' uraian_2: $ref: '#/definitions/sql.NullString' uraian_3: $ref: '#/definitions/sql.NullString' user_created: $ref: '#/definitions/sql.NullString' user_updated: $ref: '#/definitions/sql.NullString' type: object api-service_internal_models_retribusi.RetribusiCreateRequest: properties: dinas: maxLength: 255 minLength: 1 type: string jenis: maxLength: 255 minLength: 1 type: string kelompok_obyek: maxLength: 255 minLength: 1 type: string kode_tarif: maxLength: 255 minLength: 1 type: string pelayanan: maxLength: 255 minLength: 1 type: string rekening_denda: maxLength: 255 minLength: 1 type: string rekening_pokok: maxLength: 255 minLength: 1 type: string satuan: maxLength: 255 minLength: 1 type: string satuan_overtime: maxLength: 255 minLength: 1 type: string status: enum: - draft - active - inactive type: string tarif: type: string tarif_overtime: type: string uraian_1: type: string uraian_2: type: string uraian_3: type: string required: - status type: object api-service_internal_models_retribusi.RetribusiCreateResponse: properties: data: $ref: '#/definitions/api-service_internal_models_retribusi.Retribusi' message: type: string type: object api-service_internal_models_retribusi.RetribusiDeleteResponse: properties: id: type: string message: type: string type: object api-service_internal_models_retribusi.RetribusiGetByIDResponse: properties: data: $ref: '#/definitions/api-service_internal_models_retribusi.Retribusi' message: type: string type: object api-service_internal_models_retribusi.RetribusiGetResponse: properties: data: items: $ref: '#/definitions/api-service_internal_models_retribusi.Retribusi' type: array message: type: string meta: $ref: '#/definitions/api-service_internal_models.MetaResponse' summary: $ref: '#/definitions/api-service_internal_models.AggregateData' type: object api-service_internal_models_retribusi.RetribusiUpdateRequest: properties: dinas: maxLength: 255 minLength: 1 type: string jenis: maxLength: 255 minLength: 1 type: string kelompok_obyek: maxLength: 255 minLength: 1 type: string kode_tarif: maxLength: 255 minLength: 1 type: string pelayanan: maxLength: 255 minLength: 1 type: string rekening_denda: maxLength: 255 minLength: 1 type: string rekening_pokok: maxLength: 255 minLength: 1 type: string satuan: maxLength: 255 minLength: 1 type: string satuan_overtime: maxLength: 255 minLength: 1 type: string status: enum: - draft - active - inactive type: string tarif: type: string tarif_overtime: type: string uraian_1: type: string uraian_2: type: string uraian_3: type: string required: - status type: object api-service_internal_models_retribusi.RetribusiUpdateResponse: properties: data: $ref: '#/definitions/api-service_internal_models_retribusi.Retribusi' message: type: string type: object api-service_internal_models_vclaim_peserta.PesertaData: properties: cob: properties: nmAsuransi: {} noAsuransi: {} tglTAT: {} tglTMT: {} type: object hakKelas: properties: keterangan: type: string kode: type: string type: object informasi: properties: dinsos: {} eSEP: {} noSKTM: {} prolanisPRB: type: string type: object jenisPeserta: properties: keterangan: type: string kode: type: string type: object mr: properties: noMR: type: string noTelepon: type: string type: object nama: type: string nik: type: string noKartu: type: string pisa: type: string provUmum: properties: kdProvider: type: string nmProvider: type: string type: object raw_response: type: string sex: type: string statusPeserta: properties: keterangan: type: string kode: type: string type: object tglCetakKartu: type: string tglLahir: type: string tglTAT: type: string tglTMT: type: string umur: properties: umurSaatPelayanan: type: string umurSekarang: type: string type: object type: object api-service_internal_models_vclaim_peserta.PesertaResponse: properties: data: $ref: '#/definitions/api-service_internal_models_vclaim_peserta.PesertaData' message: type: string metaData: {} request_id: type: string status: type: string timestamp: type: string type: object gorm.DeletedAt: properties: time: type: string valid: description: Valid is true if Time is not NULL type: boolean type: object sql.NullBool: properties: bool: type: boolean valid: description: Valid is true if Bool is not NULL type: boolean type: object sql.NullInt16: properties: int16: format: int32 type: integer valid: description: Valid is true if Int16 is not NULL type: boolean type: object sql.NullInt32: properties: int32: format: int32 type: integer valid: description: Valid is true if Int32 is not NULL type: boolean type: object sql.NullString: properties: string: type: string valid: description: Valid is true if String is not NULL type: boolean type: object sql.NullTime: properties: time: type: string valid: description: Valid is true if Time is not NULL type: boolean type: object host: localhost:8080 info: contact: email: support@swagger.io name: API Support url: http://www.swagger.io/support description: A comprehensive Go API service with Swagger documentation license: name: Apache 2.0 url: http://www.apache.org/licenses/LICENSE-2.0.html termsOfService: http://swagger.io/terms/ title: API Service version: 1.0.0 paths: /Peserta/nik/:nik: get: consumes: - application/json description: Get participant eligibility information by NIK parameters: - description: Request ID for tracking in: header name: X-Request-ID type: string - description: nik example: '"example_value"' in: path name: nik required: true type: string produces: - application/json responses: "200": description: Successfully retrieved Bynik data schema: $ref: '#/definitions/api-service_internal_models_vclaim_peserta.PesertaResponse' "400": description: Bad request - invalid parameters schema: $ref: '#/definitions/api-service_internal_models.ErrorResponseBpjs' "401": description: Unauthorized - invalid API credentials schema: $ref: '#/definitions/api-service_internal_models.ErrorResponseBpjs' "404": description: Not found - Bynik not found schema: $ref: '#/definitions/api-service_internal_models.ErrorResponseBpjs' "500": description: Internal server error schema: $ref: '#/definitions/api-service_internal_models.ErrorResponseBpjs' security: - ApiKeyAuth: [] summary: Get Bynik data tags: - Peserta /Peserta/nokartu/:nokartu: get: consumes: - application/json description: Get participant eligibility information by card number parameters: - description: Request ID for tracking in: header name: X-Request-ID type: string - description: nokartu example: '"example_value"' in: path name: nokartu required: true type: string produces: - application/json responses: "200": description: Successfully retrieved Bynokartu data schema: $ref: '#/definitions/api-service_internal_models_vclaim_peserta.PesertaResponse' "400": description: Bad request - invalid parameters schema: $ref: '#/definitions/api-service_internal_models.ErrorResponseBpjs' "401": description: Unauthorized - invalid API credentials schema: $ref: '#/definitions/api-service_internal_models.ErrorResponseBpjs' "404": description: Not found - Bynokartu not found schema: $ref: '#/definitions/api-service_internal_models.ErrorResponseBpjs' "500": description: Internal server error schema: $ref: '#/definitions/api-service_internal_models.ErrorResponseBpjs' security: - ApiKeyAuth: [] summary: Get Bynokartu data tags: - Peserta /api/v1/auth/login: post: consumes: - application/json description: Authenticate user with username and password to receive JWT token parameters: - description: Login credentials in: body name: login required: true schema: $ref: '#/definitions/api-service_internal_models_auth.LoginRequest' produces: - application/json responses: "200": description: OK schema: $ref: '#/definitions/api-service_internal_models_auth.TokenResponse' "400": description: Bad request schema: additionalProperties: type: string type: object "401": description: Unauthorized schema: additionalProperties: type: string type: object summary: Login user and get JWT token tags: - Authentication /api/v1/auth/me: get: description: Get information about the currently authenticated user produces: - application/json responses: "200": description: OK schema: $ref: '#/definitions/api-service_internal_models_auth.User' "401": description: Unauthorized schema: additionalProperties: type: string type: object security: - Bearer: [] summary: Get current user info tags: - Authentication /api/v1/auth/refresh: post: consumes: - application/json description: Refresh the JWT token using a valid refresh token parameters: - description: Refresh token in: body name: refresh required: true schema: additionalProperties: type: string type: object produces: - application/json responses: "200": description: OK schema: $ref: '#/definitions/api-service_internal_models_auth.TokenResponse' "400": description: Bad request schema: additionalProperties: type: string type: object "401": description: Unauthorized schema: additionalProperties: type: string type: object summary: Refresh JWT token tags: - Authentication /api/v1/auth/register: post: consumes: - application/json description: Register a new user account parameters: - description: Registration data in: body name: register required: true schema: additionalProperties: type: string type: object produces: - application/json responses: "201": description: Created schema: additionalProperties: type: string type: object "400": description: Bad request schema: additionalProperties: type: string type: object summary: Register new user tags: - Authentication /api/v1/listkiosks/stats: get: consumes: - application/json description: Returns comprehensive statistics about listkiosk data parameters: - description: Filter statistics by status in: query name: status type: string produces: - application/json 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' summary: Get listkiosk statistics tags: - Listkiosk /api/v1/patients/stats: get: consumes: - application/json description: Returns comprehensive statistics about patient data parameters: - description: Filter statistics by status in: query name: status type: string produces: - application/json 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' summary: Get patient statistics tags: - Patient /api/v1/retribusi/{id}: delete: consumes: - application/json description: Soft deletes a retribusi by setting status to 'deleted' parameters: - description: Retribusi ID (UUID) in: path name: id required: true type: string produces: - application/json 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' summary: Delete retribusi tags: - Retribusi get: consumes: - application/json description: Returns a single retribusi by ID parameters: - description: Retribusi ID (UUID) in: path name: id required: true type: string produces: - application/json 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' summary: Get Retribusi by ID tags: - Retribusi put: consumes: - application/json description: Updates an existing retribusi record parameters: - description: Retribusi ID (UUID) in: path name: id required: true type: string - description: Retribusi update request in: body name: request required: true schema: $ref: '#/definitions/api-service_internal_models_retribusi.RetribusiUpdateRequest' produces: - application/json 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' summary: Update retribusi tags: - Retribusi /api/v1/retribusis: get: consumes: - application/json description: Returns a paginated list of retribusis with optional summary statistics parameters: - default: 10 description: Limit (max 100) in: query name: limit type: integer - default: 0 description: Offset in: query name: offset type: integer - default: false description: Include aggregation summary in: query name: include_summary type: boolean - description: Filter by status in: query name: status type: string - description: Filter by jenis in: query name: jenis type: string - description: Filter by dinas in: query name: dinas type: string - description: Search in multiple fields in: query name: search type: string produces: - application/json 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' summary: Get retribusi with pagination and optional aggregation tags: - Retribusi post: consumes: - application/json description: Creates a new retribusi record parameters: - description: Retribusi creation request in: body name: request required: true schema: $ref: '#/definitions/api-service_internal_models_retribusi.RetribusiCreateRequest' produces: - application/json 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' summary: Create retribusi tags: - Retribusi /api/v1/retribusis/dynamic: get: consumes: - application/json description: Returns retribusis with advanced dynamic filtering like Directus parameters: - description: Fields to select (e.g., fields=*.*) in: query name: fields type: string - description: Dynamic filters (e.g., filter[Jenis][_eq]=value) in: query name: filter[column][operator] type: string - description: Sort fields (e.g., sort=date_created,-Jenis) in: query name: sort type: string - default: 10 description: Limit in: query name: limit type: integer - default: 0 description: Offset in: query name: offset type: integer produces: - application/json 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' summary: Get retribusi with dynamic filtering tags: - Retribusi /api/v1/retribusis/stats: get: consumes: - application/json description: Returns comprehensive statistics about retribusi data parameters: - description: Filter statistics by status in: query name: status type: string produces: - application/json 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' summary: Get retribusi statistics tags: - Retribusi /api/v1/token/generate: post: consumes: - application/json description: Generate a JWT token for a user parameters: - description: User credentials in: body name: token required: true schema: $ref: '#/definitions/api-service_internal_models_auth.LoginRequest' produces: - application/json responses: "200": description: OK schema: $ref: '#/definitions/api-service_internal_models_auth.TokenResponse' "400": description: Bad request schema: additionalProperties: type: string type: object "401": description: Unauthorized schema: additionalProperties: type: string type: object summary: Generate JWT token tags: - Token /api/v1/token/generate-direct: post: consumes: - application/json description: Generate a JWT token directly without password verification (for testing) parameters: - description: User info in: body name: user required: true schema: additionalProperties: type: string type: object produces: - application/json responses: "200": description: OK schema: $ref: '#/definitions/api-service_internal_models_auth.TokenResponse' "400": description: Bad request schema: additionalProperties: type: string type: object summary: Generate token directly tags: - Token /kiosk: post: consumes: - application/json description: Creates a new listkiosk record parameters: - description: Listkiosk creation request in: body name: request required: true schema: $ref: '#/definitions/api-service_internal_models_kiosk.ListkioskCreateRequest' produces: - application/json responses: "201": description: Listkiosk created successfully schema: $ref: '#/definitions/api-service_internal_models_kiosk.ListkioskCreateResponse' "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' summary: Create listkiosk tags: - Listkiosk /kiosk/{id}: delete: consumes: - application/json description: Soft deletes a listkiosk by setting status to 'deleted' parameters: - description: Kiosk ID (integer) in: path name: id required: true type: integer produces: - application/json responses: "200": description: Listkiosk deleted successfully schema: $ref: '#/definitions/api-service_internal_models_kiosk.ListkioskDeleteResponse' "400": description: Invalid ID format schema: $ref: '#/definitions/api-service_internal_models.ErrorResponse' "404": description: Listkiosk not found schema: $ref: '#/definitions/api-service_internal_models.ErrorResponse' "500": description: Internal server error schema: $ref: '#/definitions/api-service_internal_models.ErrorResponse' summary: Delete listkiosk tags: - Listkiosk put: consumes: - application/json description: Updates an existing listkiosk record parameters: - description: Kiosk ID (integer) in: path name: id required: true type: integer - description: Listkiosk update request in: body name: request required: true schema: $ref: '#/definitions/api-service_internal_models_kiosk.ListkioskUpdateRequest' produces: - application/json responses: "200": description: Listkiosk updated successfully schema: $ref: '#/definitions/api-service_internal_models_kiosk.ListkioskUpdateResponse' "400": description: Bad request or validation error schema: $ref: '#/definitions/api-service_internal_models.ErrorResponse' "404": description: Listkiosk not found schema: $ref: '#/definitions/api-service_internal_models.ErrorResponse' "500": description: Internal server error schema: $ref: '#/definitions/api-service_internal_models.ErrorResponse' summary: Update listkiosk tags: - Listkiosk /kiosk/listkiosk: get: consumes: - application/json description: Returns a paginated list of listkiosks with optional summary statistics parameters: - default: 10 description: Limit (max 100) in: query name: limit type: integer - default: 0 description: Offset in: query name: offset type: integer - default: false description: Include aggregation summary in: query name: include_summary type: boolean - description: Filter by status in: query name: status type: string - description: Search in multiple fields in: query name: search type: string produces: - application/json responses: "200": description: Success response schema: $ref: '#/definitions/api-service_internal_models_kiosk.ListkioskGetResponse' "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' summary: Get listkiosk with pagination and optional aggregation tags: - Listkiosk /patient: post: consumes: - application/json description: Creates a new patient record parameters: - description: Patient creation request in: body name: request required: true schema: $ref: '#/definitions/api-service_internal_models_patient.PatientCreateRequest' produces: - application/json 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' summary: Create patient tags: - Patient /patient/{id}: delete: consumes: - application/json description: Soft deletes a patient by setting status to 'deleted' parameters: - description: Patient ID in: path name: id required: true type: integer produces: - application/json 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' summary: Delete patient tags: - Patient put: consumes: - application/json description: Updates an existing patient record parameters: - description: Patient ID in: path name: id required: true type: integer - description: Patient update request in: body name: request required: true schema: $ref: '#/definitions/api-service_internal_models_patient.PatientUpdateRequest' produces: - application/json 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' summary: Update patient tags: - Patient /patient/detail: post: consumes: - application/json description: Retrieves a patient record by ID using POST request parameters: - description: Patient post request in: body name: request required: true schema: $ref: '#/definitions/api-service_internal_models_patient.PatientPostRequest' produces: - application/json 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' summary: Get patient by ID using POST request tags: - Patient /patient/listpatient: get: consumes: - application/json description: Returns a paginated list of patients with optional summary statistics parameters: - default: 10 description: Limit (max 100) in: query name: limit type: integer - default: 0 description: Offset in: query name: offset type: integer - default: false description: Include aggregation summary in: query name: include_summary type: boolean - description: Filter by status in: query name: status type: string - description: Search in multiple fields in: query name: search type: string produces: - application/json 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' summary: Get patient with pagination and optional aggregation tags: - Patient /registration-counter: get: consumes: - application/json description: Returns a paginated list of registration counters with optional summary statistics parameters: - default: 10 description: Limit (max 100) in: query name: limit type: integer - default: 0 description: Offset in: query name: offset type: integer - default: false description: Include aggregation summary in: query name: include_summary type: boolean - description: Filter by active status in: query name: active type: boolean - description: Search in name or code in: query name: search type: string produces: - application/json responses: "200": description: Success response schema: $ref: '#/definitions/api-service_internal_models_registrasi.MsRegistrationCounterGetResponse' "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' summary: Get registration counters with pagination and optional aggregation tags: - RegistrationCounter post: consumes: - application/json description: Creates a new registration counter record parameters: - description: Registration Counter creation request in: body name: request required: true schema: $ref: '#/definitions/api-service_internal_models_registrasi.MsRegistrationCounterCreateRequest' produces: - application/json responses: "201": description: Registration Counter created successfully schema: $ref: '#/definitions/api-service_internal_models_registrasi.MsRegistrationCounterCreateResponse' "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' summary: Create a new registration counter tags: - RegistrationCounter /registration-counter/{id}: delete: consumes: - application/json description: Soft deletes a registration counter by setting active to false parameters: - description: Registration Counter ID in: path name: id required: true type: integer produces: - application/json responses: "200": description: Registration Counter deleted successfully schema: $ref: '#/definitions/api-service_internal_models_registrasi.MsRegistrationCounterDeleteResponse' "400": description: Invalid ID format schema: $ref: '#/definitions/api-service_internal_models.ErrorResponse' "404": description: Registration Counter not found schema: $ref: '#/definitions/api-service_internal_models.ErrorResponse' "500": description: Internal server error schema: $ref: '#/definitions/api-service_internal_models.ErrorResponse' summary: Soft delete a registration counter tags: - RegistrationCounter get: consumes: - application/json description: Returns a single registration counter by its ID parameters: - description: Registration Counter ID in: path name: id required: true type: integer produces: - application/json responses: "200": description: Success response schema: $ref: '#/definitions/api-service_internal_models_registrasi.MsRegistrationCounterGetByIDResponse' "400": description: Invalid ID format schema: $ref: '#/definitions/api-service_internal_models.ErrorResponse' "404": description: Registration Counter not found schema: $ref: '#/definitions/api-service_internal_models.ErrorResponse' "500": description: Internal server error schema: $ref: '#/definitions/api-service_internal_models.ErrorResponse' summary: Get Registration Counter by ID tags: - RegistrationCounter put: consumes: - application/json description: Updates an existing registration counter record parameters: - description: Registration Counter ID in: path name: id required: true type: integer - description: Registration Counter update request in: body name: request required: true schema: $ref: '#/definitions/api-service_internal_models_registrasi.MsRegistrationCounterUpdateRequest' produces: - application/json responses: "200": description: Registration Counter updated successfully schema: $ref: '#/definitions/api-service_internal_models_registrasi.MsRegistrationCounterUpdateResponse' "400": description: Bad request or validation error schema: $ref: '#/definitions/api-service_internal_models.ErrorResponse' "404": description: Registration Counter not found schema: $ref: '#/definitions/api-service_internal_models.ErrorResponse' "500": description: Internal server error schema: $ref: '#/definitions/api-service_internal_models.ErrorResponse' summary: Update an existing registration counter tags: - RegistrationCounter /registration-counter/stats: get: consumes: - application/json description: Returns comprehensive statistics about registration counter data parameters: - description: Filter statistics by active status in: query name: active type: boolean produces: - application/json 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' summary: Get registration counter statistics tags: - RegistrationCounter schemes: - http - https swagger: "2.0"