{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/fatheron-dev/json-schema/fatheron-dev-purchase-gift-request-schema.json",
  "title": "PurchaseGiftRequest",
  "x-generated": "2026-10-30",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/fatheron-dev-openapi.json#/components/schemas/PurchaseGiftRequest",
  "properties": {
    "kind": {
      "type": "string",
      "enum": [
        "plan_grant",
        "credit"
      ],
      "title": "Kind",
      "default": "plan_grant"
    },
    "plan_code": {
      "anyOf": [
        {
          "type": "string",
          "maxLength": 64
        },
        {
          "type": "null"
        }
      ],
      "title": "Plan Code"
    },
    "credit_cents": {
      "anyOf": [
        {
          "type": "integer",
          "maximum": 100000.0,
          "minimum": 1.0
        },
        {
          "type": "null"
        }
      ],
      "title": "Credit Cents"
    },
    "payment_method": {
      "type": "string",
      "enum": [
        "stripe",
        "balance",
        "crypto"
      ],
      "title": "Payment Method",
      "default": "stripe"
    },
    "asset_code": {
      "anyOf": [
        {
          "type": "string",
          "maxLength": 16,
          "minLength": 2
        },
        {
          "type": "null"
        }
      ],
      "title": "Asset Code"
    },
    "recipient_email": {
      "anyOf": [
        {
          "type": "string",
          "maxLength": 320
        },
        {
          "type": "null"
        }
      ],
      "title": "Recipient Email"
    },
    "message": {
      "anyOf": [
        {
          "type": "string",
          "maxLength": 500
        },
        {
          "type": "null"
        }
      ],
      "title": "Message"
    },
    "reserved_local_part": {
      "anyOf": [
        {
          "type": "string",
          "maxLength": 64
        },
        {
          "type": "null"
        }
      ],
      "title": "Reserved Local Part"
    },
    "reserved_domain": {
      "anyOf": [
        {
          "type": "string",
          "maxLength": 255
        },
        {
          "type": "null"
        }
      ],
      "title": "Reserved Domain"
    },
    "reserved_capability": {
      "anyOf": [
        {
          "type": "string",
          "enum": [
            "forward_only",
            "send_receive"
          ]
        },
        {
          "type": "null"
        }
      ],
      "title": "Reserved Capability"
    }
  },
  "type": "object"
}