{
  "@context": {
    "@vocab": "https://gymflexa.com/schema#",
    "schema": "https://schema.org/",
    "xsd": "http://www.w3.org/2001/XMLSchema#",
    "dcterms": "http://purl.org/dc/terms/",
    "gymflexa": "https://gymflexa.com/schema#",
    "Error": "gymflexa:Error",
    "message": {
      "@id": "gymflexa:message",
      "@type": "xsd:string"
    },
    "status": {
      "@id": "gymflexa:status",
      "@type": "xsd:integer"
    },
    "name": {
      "@id": "gymflexa:name",
      "@type": "xsd:string"
    },
    "details": {
      "@id": "gymflexa:details"
    },
    "Appointment": "gymflexa:Appointment",
    "_id": {
      "@id": "gymflexa:_id",
      "@type": "xsd:string"
    },
    "gymId": {
      "@id": "gymflexa:gymId",
      "@type": "xsd:string"
    },
    "memberId": {
      "@id": "gymflexa:memberId",
      "@type": "xsd:string"
    },
    "serviceId": {
      "@id": "gymflexa:serviceId",
      "@type": "xsd:string"
    },
    "startTime": {
      "@id": "gymflexa:startTime",
      "@type": "xsd:dateTime"
    },
    "endTime": {
      "@id": "gymflexa:endTime",
      "@type": "xsd:dateTime"
    },
    "notes": {
      "@id": "gymflexa:notes",
      "@type": "xsd:string"
    },
    "creationTime": {
      "@id": "gymflexa:creationTime",
      "@type": "xsd:dateTime"
    },
    "lastEditTime": {
      "@id": "gymflexa:lastEditTime",
      "@type": "xsd:dateTime"
    },
    "Gym": "gymflexa:Gym",
    "email": {
      "@id": "gymflexa:email",
      "@type": "xsd:string"
    },
    "phone": {
      "@id": "gymflexa:phone",
      "@type": "xsd:string"
    },
    "address": {
      "@id": "gymflexa:address",
      "@type": "xsd:string"
    },
    "countryCode": {
      "@id": "gymflexa:countryCode",
      "@type": "xsd:string"
    },
    "appointmentDuration": {
      "@id": "gymflexa:appointmentDuration",
      "@type": "xsd:integer"
    },
    "openingHours": {
      "@id": "gymflexa:openingHours",
      "@container": "@list"
    },
    "Member": "gymflexa:Member",
    "firstName": {
      "@id": "gymflexa:firstName",
      "@type": "xsd:string"
    },
    "lastName": {
      "@id": "gymflexa:lastName",
      "@type": "xsd:string"
    },
    "dateOfBirth": {
      "@id": "gymflexa:dateOfBirth",
      "@type": "xsd:date"
    },
    "Payment": "gymflexa:Payment",
    "amount": {
      "@id": "gymflexa:amount",
      "@type": "xsd:decimal"
    },
    "currency": {
      "@id": "gymflexa:currency",
      "@type": "xsd:string"
    },
    "date": {
      "@id": "gymflexa:date",
      "@type": "xsd:date"
    },
    "reference": {
      "@id": "gymflexa:reference",
      "@type": "xsd:string"
    },
    "Service": "gymflexa:Service",
    "description": {
      "@id": "gymflexa:description",
      "@type": "xsd:string"
    },
    "duration": {
      "@id": "gymflexa:duration",
      "@type": "xsd:integer"
    },
    "price": {
      "@id": "gymflexa:price",
      "@type": "xsd:decimal"
    },
    "color": {
      "@id": "gymflexa:color",
      "@type": "xsd:string"
    },
    "WebhookSubscription": "gymflexa:WebhookSubscription",
    "url": {
      "@id": "gymflexa:url",
      "@type": "@id"
    },
    "events": {
      "@id": "gymflexa:events",
      "@container": "@list"
    },
    "active": {
      "@id": "gymflexa:active",
      "@type": "xsd:boolean"
    },
    "consecutiveFailures": {
      "@id": "gymflexa:consecutiveFailures",
      "@type": "xsd:integer"
    },
    "DeletedResource": "gymflexa:DeletedResource"
  },
  "@type": "schema:Dataset",
  "schema:name": "GymFlexa API JSON-LD context",
  "schema:description": "A JSON-LD @context for the objects GymFlexa's own API contract declares: one class per component schema, one property per declared field, typed from the contract. Derived by script (derive-json-ld.py, 2026-11-11) from openapi/_original/gymflexa-com-api-openapi.json.",
  "dcterms:created": "2026-11-11",
  "dcterms:source": [
    "openapi/_original/gymflexa-com-api-openapi.json"
  ]
}