{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://raw.githubusercontent.com/api-evangelist/trelica/main/json-schema/trelica-contract-schema.json",
  "title": "Trelica Contract",
  "description": "Schema for a software contract managed in Trelica",
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "description": "Unique contract identifier"
    },
    "name": {
      "type": "string",
      "description": "Contract name"
    },
    "vendor": {
      "type": "string",
      "description": "Vendor or supplier name"
    },
    "applicationId": {
      "type": "string",
      "description": "Associated application ID"
    },
    "startDate": {
      "type": "string",
      "format": "date",
      "description": "Contract start date"
    },
    "endDate": {
      "type": "string",
      "format": "date",
      "description": "Contract end date/renewal date"
    },
    "annualValue": {
      "type": "number",
      "minimum": 0,
      "description": "Annual contract value"
    },
    "currency": {
      "type": "string",
      "description": "Currency code"
    },
    "status": {
      "type": "string",
      "enum": ["Active", "Expired", "Pending", "Cancelled"],
      "description": "Contract status"
    },
    "lastModifiedDtm": {
      "type": "string",
      "format": "date-time",
      "description": "Last modification timestamp"
    }
  },
  "required": ["id", "name"],
  "additionalProperties": true
}
