basePath: /api/v1 definitions: 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 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: /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/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 /api/v1/ws/broadcast/check: post: consumes: - application/json description: Creates and broadcasts a WebSocket message with the specified type and data parameters: - description: Type of the message to broadcast in: path name: messageType required: true type: string - description: Data payload for the message in: body name: data required: true schema: {} produces: - application/json responses: "200": description: Message successfully queued for broadcast schema: additionalProperties: type: string type: object "500": description: Failed to queue message (queue full) schema: additionalProperties: type: string type: object summary: Broadcast a WebSocket message tags: - WebSocket QRIS /api/v1/ws/broadcast/qris: post: consumes: - application/json description: Creates and broadcasts a WebSocket message with the specified type and data for QRIS operations parameters: - description: Type of the QRIS message to broadcast in: path name: messageType required: true type: string - description: QRIS data payload for the message in: body name: data required: true schema: {} produces: - application/json responses: "200": description: QRIS message successfully queued for broadcast schema: additionalProperties: type: string type: object "500": description: Failed to queue QRIS message (queue full) schema: additionalProperties: type: string type: object summary: Broadcast a QRIS-related WebSocket message tags: - WebSocket QRIS schemes: - http - https swagger: "2.0"