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