{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/classquill-com/json-schema/classquill-com-blog-post-update-schema.json",
  "title": "BlogPostUpdate",
  "description": "PATCH /v1/blog-posts/{id} → blog_posts. Partial update; only these fields are\nwritable. Flip `status` to 'published' to publish (idempotent — re-publishing is a\nno-op). brand/target/organization_id are immutable after creation (not accepted);\nupdated_at is trigger-maintained.",
  "x-generated": "2026-11-04",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/classquill-com-openapi.json#/components/schemas/BlogPostUpdate",
  "properties": {
    "title": {
      "anyOf": [
        {
          "type": "string",
          "maxLength": 300,
          "minLength": 1
        },
        {
          "type": "null"
        }
      ],
      "title": "Title"
    },
    "slug": {
      "anyOf": [
        {
          "type": "string",
          "maxLength": 200,
          "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$"
        },
        {
          "type": "null"
        }
      ],
      "title": "Slug"
    },
    "excerpt": {
      "anyOf": [
        {
          "type": "string",
          "maxLength": 2000
        },
        {
          "type": "null"
        }
      ],
      "title": "Excerpt"
    },
    "content": {
      "anyOf": [
        {
          "type": "string",
          "maxLength": 200000
        },
        {
          "type": "null"
        }
      ],
      "title": "Content"
    },
    "tags": {
      "anyOf": [
        {
          "items": {
            "type": "string"
          },
          "type": "array",
          "maxItems": 50
        },
        {
          "type": "null"
        }
      ],
      "title": "Tags"
    },
    "featured_image": {
      "anyOf": [
        {
          "type": "string",
          "maxLength": 2000
        },
        {
          "type": "null"
        }
      ],
      "title": "Featured Image"
    },
    "author": {
      "anyOf": [
        {
          "type": "string",
          "maxLength": 200
        },
        {
          "type": "null"
        }
      ],
      "title": "Author"
    },
    "category": {
      "anyOf": [
        {
          "type": "string",
          "maxLength": 200
        },
        {
          "type": "null"
        }
      ],
      "title": "Category"
    },
    "date": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Date"
    },
    "status": {
      "anyOf": [
        {
          "type": "string",
          "enum": [
            "draft",
            "published"
          ]
        },
        {
          "type": "null"
        }
      ],
      "title": "Status"
    },
    "publish_to_website": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "null"
        }
      ],
      "title": "Publish To Website"
    },
    "publish_to_portal": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "null"
        }
      ],
      "title": "Publish To Portal"
    },
    "scheduled_at": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Scheduled At",
      "description": "ISO 8601 datetime. Set to schedule deferred publishing; set to null to cancel a scheduled publish."
    }
  },
  "additionalProperties": false,
  "type": "object"
}