{
    "title": "plans",
    "type": "object",
    "properties": {
        "id": {
            "type": "integer",
            "description": "Primary key, auto-increment"
        },
        "service_type": {
            "type": "string",
            "description": "Service type slug e.g. shared-hosting, wordpress-hosting, uptime-monitor, whatsapp-api"
        },
        "name": {
            "type": "string",
            "description": "Plan display name e.g. Starter / Pro / Business"
        },
        "price": {
            "type": "number",
            "description": "Numeric price"
        },
        "currency": {
            "type": "string",
            "description": "Currency code e.g. USD"
        },
        "billing_cycle": {
            "type": "string",
            "description": "monthly or yearly"
        },
        "features": {
            "type": "string",
            "description": "JSON-encoded array of feature strings"
        },
        "cta_label": {
            "type": "string",
            "description": "Call-to-action button label"
        },
        "cta_url": {
            "type": "string",
            "description": "Optional URL for CTA; if empty, frontend opens GetPrice modal"
        },
        "is_featured": {
            "type": "boolean",
            "description": "Whether the plan is marked featured/most popular"
        },
        "is_active": {
            "type": "boolean",
            "description": "Whether the plan is visible on the public site"
        },
        "sort_order": {
            "type": "integer",
            "description": "Display order ascending"
        },
        "tagline": {
            "type": "string",
            "description": "Short plan tagline"
        }
    },
    "required": [
        "id",
        "service_type",
        "name",
        "price"
    ]
}