{
  "repo": "tidbcloud/dbaas",
  "binary": "worker",
  "binary_path": "billing2/cmd/worker/main.go",
  "surface_kind": "mixed_service",
  "type": "mixed_service",
  "services": [
    {
      "name": "HTTPService",
      "methods": [{"name": "GET /version", "name_key": "HTTP GET /version", "description": "Get service version"}]
    },
    {
      "name": "ScheduledWorkers",
      "scheduler": "gocron",
      "methods": [
        {"name": "CreateInvoiceWorker", "name_key": "Runtime ScheduledWorkers.CreateInvoiceWorker", "interval": "5m", "description": "Creates and sends invoices for payable tenants"},
        {"name": "SyncTenantPayableWorker", "name_key": "Runtime ScheduledWorkers.SyncTenantPayableWorker", "interval": "5m", "description": "Syncs tenant payable status with payment providers"},
        {"name": "CalculateCache", "name_key": "Runtime ScheduledWorkers.CalculateCache", "interval": "30m", "description": "Pre-calculates costs for POC/on-demand tenants"},
        {"name": "RemoveUnusedCosts", "name_key": "Runtime ScheduledWorkers.RemoveUnusedCosts", "interval": "12h", "description": "Removes failed cost records"},
        {"name": "MergeSmallCosts", "name_key": "Runtime ScheduledWorkers.MergeSmallCosts", "interval": "12h", "description": "Aggregates small cost units"}
      ]
    }
  ],
  "extensions": {
    "notes": [
      "Billing worker service for invoice generation and cost management."
    ]
  }
}
