global: module_name: "api-service" output_dir: "internal/handlers" enable_swagger: true enable_logging: true # services: # retribusi: # name: "Retribusi" # category: "retribusi" # package: "retribusi" # description: "Retribusi service for tariff and billing management" # base_url: "" # timeout: 30 # retry_count: 3 services: qris: name: "QRIS" category: "qris" package: "qris" description: "QRIS service for QR code payment management" base_url: "" timeout: 30 retry_count: 3 endpoints: qris: description: "QRIS management" handler_folder: "qris" handler_file: "qris.go" handler_name: "QRIS" table_name: "m_deviceqris" functions: create: methods: ["POST"] path: "/broadcast/qris" post_routes: "/broadcast/qris" post_path: "/broadcast/qris" model: "QrisCreateRequest" response_model: "QrisCreateResponse" request_model: "QrisCreateRequest" description: "Send new QRIS broadcast" summary: "Send QRIS" tags: ["QRIS"] require_auth: true cache_enabled: false enable_database: true cache_ttl: 0 create: methods: ["POST"] path: "/broadcast/check" post_routes: "/broadcast/check" post_path: "/broadcast/check" model: "QrisCreateRequest" response_model: "QrisCreateResponse" request_model: "QrisCreateRequest" description: "Send new QRIS check broadcast" summary: "Send QRIS check" tags: ["QRIS"] require_auth: true cache_enabled: false enable_database: true cache_ttl: 0 # endpoints: # retribusi: # description: "Retribusi tariff management" # handler_folder: "retribusi" # handler_file: "retribusi.go" # handler_name: "Retribusi" # table_name: "data_retribusi" # functions: # list: # methods: ["GET"] # path: "/" # get_routes: "/" # get_path: "/" # model: "Retribusi" # response_model: "RetribusiGetResponse" # description: "Get retribusi list with pagination and filters" # summary: "Get Retribusi List" # tags: ["Retribusi"] # require_auth: true # cache_enabled: true # enable_database: true # cache_ttl: 300 # has_pagination: true # has_filter: true # has_search: true # has_stats: true # get: # methods: ["GET"] # path: "/:id" # get_routes: "/:id" # get_path: "/:id" # model: "Retribusi" # response_model: "RetribusiGetByIDResponse" # description: "Get retribusi by ID" # summary: "Get Retribusi by ID" # tags: ["Retribusi"] # require_auth: true # cache_enabled: true # enable_database: true # cache_ttl: 300 # dynamic: # methods: ["GET"] # path: "/dynamic" # get_routes: "/dynamic" # get_path: "/dynamic" # model: "Retribusi" # response_model: "RetribusiGetResponse" # description: "Get retribusi with dynamic filtering" # summary: "Get Retribusi Dynamic" # tags: ["Retribusi"] # require_auth: true # cache_enabled: true # enable_database: true # cache_ttl: 300 # has_dynamic: true # search: # methods: ["GET"] # path: "/search" # get_routes: "/search" # get_path: "/search" # model: "Retribusi" # response_model: "RetribusiGetResponse" # description: "Search retribusi" # summary: "Search Retribusi" # tags: ["Retribusi"] # require_auth: true # cache_enabled: true # enable_database: true # cache_ttl: 300 # has_search: true # create: # methods: ["POST"] # path: "/" # post_routes: "/" # post_path: "/" # model: "RetribusiCreateRequest" # response_model: "RetribusiCreateResponse" # request_model: "RetribusiCreateRequest" # description: "Create new retribusi" # summary: "Create Retribusi" # tags: ["Retribusi"] # require_auth: true # cache_enabled: false # enable_database: true # cache_ttl: 0 # update: # methods: ["PUT"] # path: "/:id" # put_routes: "/:id" # put_path: "/:id" # model: "RetribusiUpdateRequest" # response_model: "RetribusiUpdateResponse" # request_model: "RetribusiUpdateRequest" # description: "Update retribusi" # summary: "Update Retribusi" # tags: ["Retribusi"] # require_auth: true # cache_enabled: false # enable_database: true # cache_ttl: 0 # delete: # methods: ["DELETE"] # path: "/:id" # delete_routes: "/:id" # delete_path: "/:id" # model: "Retribusi" # response_model: "RetribusiDeleteResponse" # description: "Delete retribusi" # summary: "Delete Retribusi" # tags: ["Retribusi"] # require_auth: true # cache_enabled: false # enable_database: true # cache_ttl: 0 # stats: # methods: ["GET"] # path: "/stats" # get_routes: "/stats" # get_path: "/stats" # model: "AggregateData" # response_model: "AggregateData" # description: "Get retribusi statistics" # summary: "Get Retribusi Stats" # tags: ["Retribusi"] # require_auth: true # cache_enabled: true # enable_database: true # cache_ttl: 180 # has_stats: true # Example of another service # user: # name: "User" # category: "user" # package: "user" # description: "User management service" # base_url: "" # timeout: 30 # retry_count: 3 # endpoints: # user: # description: "User management endpoints" # handler_folder: "retribusi" # handler_file: "user.go" # handler_name: "User" # table_name: "data_user" # functions: # list: # methods: ["GET"] # path: "/" # get_routes: "/" # get_path: "/" # model: "User" # response_model: "UserGetResponse" # description: "Get user list with pagination" # summary: "Get User List" # tags: ["User"] # require_auth: true # cache_enabled: true # enable_database: true # cache_ttl: 300 # has_pagination: true # has_filter: true # has_search: true # get: # methods: ["GET"] # path: "/:id" # get_routes: "/:id" # get_path: "/:id" # model: "User" # response_model: "UserGetByIDResponse" # description: "Get user by ID" # summary: "Get User by ID" # tags: ["User"] # require_auth: true # cache_enabled: true # enable_database: true # cache_ttl: 300 # create: # methods: ["POST"] # path: "/" # post_routes: "/" # post_path: "/" # model: "UserCreateRequest" # response_model: "UserCreateResponse" # request_model: "UserCreateRequest" # description: "Create new user" # summary: "Create User" # tags: ["User"] # require_auth: true # cache_enabled: false # enable_database: true # cache_ttl: 0 # update: # methods: ["PUT"] # path: "/:id" # put_routes: "/:id" # put_path: "/:id" # model: "UserUpdateRequest" # response_model: "UserUpdateResponse" # request_model: "UserUpdateRequest" # description: "Update user" # summary: "Update User" # tags: ["User"] # require_auth: true # cache_enabled: false # enable_database: true # cache_ttl: 0 # delete: # methods: ["DELETE"] # path: "/:id" # delete_routes: "/:id" # delete_path: "/:id" # model: "User" # response_model: "UserDeleteResponse" # description: "Delete user" # summary: "Delete User" # tags: ["User"] # require_auth: true # cache_enabled: false # enable_database: true # cache_ttl: 0