{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/buildworkpro-com/json-schema/buildworkpro-com-project-schema.json",
  "title": "Project",
  "x-generated": "2026-11-03",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/buildworkpro-com-openapi.json#/components/schemas/Project",
  "type": "object",
  "properties": {
    "id": {
      "type": "integer"
    },
    "name": {
      "type": "string"
    },
    "projectNumber": {
      "type": "string"
    },
    "contactId": {
      "type": [
        "integer",
        "null"
      ]
    },
    "bidId": {
      "type": [
        "integer",
        "null"
      ]
    },
    "projectType": {
      "type": [
        "string",
        "null"
      ]
    },
    "status": {
      "type": "string"
    },
    "priority": {
      "type": [
        "string",
        "null"
      ]
    },
    "startDate": {
      "anyOf": [
        {
          "type": "string",
          "format": "date-time"
        },
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ]
    },
    "expectedEndDate": {
      "anyOf": [
        {
          "type": "string",
          "format": "date-time"
        },
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ]
    },
    "actualEndDate": {
      "anyOf": [
        {
          "type": "string",
          "format": "date-time"
        },
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ]
    },
    "contractValue": {
      "type": [
        "string",
        "null"
      ]
    },
    "originalContractValue": {
      "type": [
        "string",
        "null"
      ]
    },
    "description": {
      "type": [
        "string",
        "null"
      ]
    },
    "siteAddress": {
      "type": [
        "string",
        "null"
      ]
    },
    "siteCity": {
      "type": [
        "string",
        "null"
      ]
    },
    "siteState": {
      "type": [
        "string",
        "null"
      ]
    },
    "siteZipCode": {
      "type": [
        "string",
        "null"
      ]
    },
    "architectName": {
      "type": [
        "string",
        "null"
      ]
    },
    "architectProjectNumber": {
      "type": [
        "string",
        "null"
      ]
    },
    "contractFor": {
      "type": [
        "string",
        "null"
      ]
    },
    "assignedTo": {
      "type": [
        "integer",
        "null"
      ]
    },
    "createdAt": {
      "anyOf": [
        {
          "type": "string",
          "format": "date-time"
        },
        {
          "type": "string"
        }
      ]
    },
    "updatedAt": {
      "anyOf": [
        {
          "type": "string",
          "format": "date-time"
        },
        {
          "type": "string"
        }
      ]
    },
    "isPractice": {
      "type": "boolean",
      "description": "Read-only. Present on GET /projects/{id}. True for the onboarding practice project a user starts from the setup wizard — demo content that \"Clear sample data\" removes; false for every other project."
    }
  },
  "required": [
    "id",
    "name",
    "projectNumber",
    "contactId",
    "bidId",
    "projectType",
    "status",
    "priority",
    "startDate",
    "expectedEndDate",
    "actualEndDate",
    "contractValue",
    "originalContractValue",
    "description",
    "siteAddress",
    "assignedTo",
    "createdAt",
    "updatedAt"
  ]
}