167 lines
5.2 KiB
YAML
167 lines
5.2 KiB
YAML
global:
|
|
module_name: "api-service"
|
|
output_dir: "internal/handlers"
|
|
enable_swagger: true
|
|
enable_logging: true
|
|
|
|
services:
|
|
schedule:
|
|
name: "Jadwal Dokter"
|
|
category: "schedule"
|
|
package: "schedule"
|
|
description: "Jadwal Dokter management"
|
|
base_url: ""
|
|
timeout: 30
|
|
retry_count: 3
|
|
|
|
endpoints:
|
|
schedule:
|
|
description: "Jadwal dokter management"
|
|
handler_folder: "master"
|
|
handler_file: "schedule.go"
|
|
handler_name: "schedule"
|
|
table_name: "daftar_jadwal_dokter"
|
|
# Definisikan skema tabel di sini
|
|
# =
|
|
schema:
|
|
columns:
|
|
- name: "id"
|
|
type: "serial4"
|
|
primary_key: true
|
|
go_type: "string" # Override tipe Go, UUID biasanya string
|
|
- name: "Hari"
|
|
type: "int4"
|
|
nullable: true
|
|
- name: "Nama_hari"
|
|
type: "varchar"
|
|
nullable: true
|
|
- name: "Waktu"
|
|
type: "varchar"
|
|
nullable: true
|
|
- name: "Dokter"
|
|
type: "uuid"
|
|
nullable: true
|
|
go_type: "string" # Override tipe Go
|
|
- name: "Spesialis"
|
|
type: "int4"
|
|
nullable: true
|
|
- name: "Sub_spesialis"
|
|
type: "int4"
|
|
nullable: true
|
|
- name: "Status"
|
|
type: "int4"
|
|
nullable: true
|
|
# ======================================================================
|
|
functions:
|
|
list:
|
|
methods: ["GET"]
|
|
path: "/"
|
|
get_routes: "/"
|
|
get_path: "/"
|
|
model: "Schedule"
|
|
response_model: "ScheduleGetResponse"
|
|
description: "Get schedule list with pagination and filters"
|
|
summary: "Get Schedule List"
|
|
tags: ["Schedule"]
|
|
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: "Schedule"
|
|
response_model: "ScheduleGetByIDResponse"
|
|
description: "Get schedule by ID"
|
|
summary: "Get schedule by ID"
|
|
tags: ["Schedule"]
|
|
require_auth: true
|
|
cache_enabled: true
|
|
enable_database: true
|
|
cache_ttl: 300
|
|
|
|
search:
|
|
methods: ["GET"]
|
|
path: "/search"
|
|
get_routes: "/search"
|
|
get_path: "/search"
|
|
model: "Schedule"
|
|
response_model: "ScheduleGetResponse"
|
|
description: "Search schedule"
|
|
summary: "Search Schedule"
|
|
tags: ["Schedule"]
|
|
require_auth: true
|
|
cache_enabled: true
|
|
enable_database: true
|
|
cache_ttl: 300
|
|
has_search: true
|
|
|
|
create:
|
|
methods: ["POST"]
|
|
path: "/"
|
|
post_routes: "/"
|
|
post_path: "/"
|
|
model: "Schedule"
|
|
response_model: "ScheduleCreateResponse"
|
|
request_model: "ScheduleCreateRequest"
|
|
description: "Create new schedule"
|
|
summary: "Create Schedule"
|
|
tags: ["Schedule"]
|
|
require_auth: true
|
|
cache_enabled: false
|
|
enable_database: true
|
|
cache_ttl: 0
|
|
|
|
update:
|
|
methods: ["PUT"]
|
|
path: "/:id"
|
|
put_routes: "/:id"
|
|
put_path: "/:id"
|
|
model: "Schedule"
|
|
response_model: "ScheduleUpdateResponse"
|
|
request_model: "ScheduleUpdateRequest"
|
|
description: "Update schedule"
|
|
summary: "Update Schedule"
|
|
tags: ["Schedule"]
|
|
require_auth: true
|
|
cache_enabled: false
|
|
enable_database: true
|
|
cache_ttl: 0
|
|
|
|
delete:
|
|
methods: ["DELETE"]
|
|
path: "/:id"
|
|
delete_routes: "/:id"
|
|
delete_path: "/:id"
|
|
model: "Schedule"
|
|
response_model: "ScheduleDeleteResponse"
|
|
description: "Delete schedule"
|
|
summary: "Delete Schedule"
|
|
tags: ["Schedule"]
|
|
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 |