{
  "addedInModelVersion" : 1200,
  "ash" : {
    "generateResource" : "Y"
  },
  "attributes" : [
    {
      "addedInModelVersion" : 1200,
      "allowsNull" : "N",
      "ash" : {
        "includeInResource" : "Y"
      },
      "columnName" : "_rowid",
      "externalType" : "longlong",
      "isIndexed" : "Y",
      "name" : "availabilityOverrideID",
      "record" : {
        "allowsRecord" : "Y",
        "isInternal" : "N",
        "isUpdatable" : "Y"
      },
      "valueClassName" : "NSNumber",
      "valueType" : "i"
    },
    {
      "addedInModelVersion" : 1200,
      "ash" : {
        "includeInResource" : "Y"
      },
      "columnName" : "calendarDate",
      "externalType" : "char",
      "name" : "calendarDate",
      "purpose" : "The calendar date of the availability override, in the availability schedule’s time zone.",
      "record" : {
        "allowsRecord" : "Y",
        "isInternal" : "N",
        "isUpdatable" : "Y"
      },
      "valueClassName" : "CalendarDate",
      "width" : 128
    },
    {
      "addedInModelVersion" : 1200,
      "allowsNull" : "Y",
      "ash" : {
        "includeInResource" : "Y"
      },
      "columnName" : "createDate",
      "externalType" : "datetime",
      "name" : "createDate",
      "record" : {
        "allowsRecord" : "Y",
        "isInternal" : "N",
        "isUpdatable" : "Y"
      },
      "valueClassName" : "NSDate"
    },
    {
      "addedInModelVersion" : 1200,
      "allowsNull" : "Y",
      "ash" : {
        "includeInResource" : "Y"
      },
      "columnName" : "modifyDate",
      "externalType" : "datetime",
      "name" : "modifyDate",
      "record" : {
        "allowsRecord" : "Y",
        "isInternal" : "N",
        "isUpdatable" : "Y"
      },
      "valueClassName" : "NSDate"
    },
    {
      "addedInModelVersion" : 1200,
      "allowsNull" : "Y",
      "ash" : {
        "includeInResource" : "Y"
      },
      "columnName" : "availabilityScheduleID",
      "externalType" : "longlong",
      "isIndexed" : "Y",
      "name" : "availabilityScheduleID",
      "record" : {
        "allowsRecord" : "Y",
        "isInternal" : "N",
        "isUpdatable" : "Y"
      },
      "valueClassName" : "NSNumber",
      "valueType" : "i"
    },
    {
      "addedInModelVersion" : 1200,
      "allowsNull" : "Y",
      "ash" : {
        "includeInResource" : "Y"
      },
      "columnName" : "userID",
      "externalType" : "longlong",
      "isIndexed" : "Y",
      "name" : "userID",
      "record" : {
        "allowsRecord" : "Y",
        "isInternal" : "N",
        "isUpdatable" : "Y"
      },
      "valueClassName" : "NSNumber",
      "valueType" : "i"
    }
  ],
  "className" : "GWAvailabilityOverride",
  "classProperties" : [
    "availabilityOverrideID",
    "calendarDate",
    "createDate",
    "modifyDate",
    "availabilityScheduleID",
    "userID",
    "availabilitySchedule",
    "user",
    "segments"
  ],
  "domain" : "OnlineBooking",
  "externalName" : "AvailabilityOverride",
  "isDatabasePreference" : false,
  "isTrashable" : false,
  "localizationKey" : "Date Override",
  "localizationPluralKey" : "Date Overrides",
  "moduleName" : "DLSubstrate",
  "name" : "AvailabilityOverride",
  "primaryKeyAttributes" : [
    "availabilityOverrideID"
  ],
  "purpose" : "A availability override for a specific user on a specific date.\n\nAn availability override always has exactly one user and specifies the date for the override. The model defines either zero or one availability override for each combination of (Availability Schedule, User, Date).\n\nOnce an override is defined for a date, the base availability schedule’s segments no longer apply for that user on that date.\n\nTo define a different availability for a user on a specific date, add one or more `segments` to the `AvailabilityOverride` representing the new schedule.\n\nTo disable a user’s availability for the entire day, specify an `AvailabilityOverride` with an empty `segments` relationship.",
  "record" : {
    "allowsRecord" : "Y",
    "isDirectlyUpdatable" : "Y"
  },
  "relationships" : [
    {
      "addedInModelVersion" : 1200,
      "ash" : {
        "includeInResource" : "Y"
      },
      "destination" : "AvailabilitySchedule",
      "isToMany" : "N",
      "joins" : [
        {
          "destinationAttribute" : "availabilityScheduleID",
          "sourceAttribute" : "availabilityScheduleID"
        }
      ],
      "joinSemantic" : "EOInnerJoin",
      "name" : "availabilitySchedule",
      "purpose" : "The availability schedule that this override applies to.",
      "record" : {
        "allowsRecord" : "Y",
        "isEmbedded" : "N",
        "isInternal" : "N",
        "propagatesUpdates" : "N"
      }
    },
    {
      "addedInModelVersion" : 1200,
      "ash" : {
        "includeInResource" : "Y"
      },
      "destination" : "User",
      "isToMany" : "N",
      "joins" : [
        {
          "destinationAttribute" : "userID",
          "sourceAttribute" : "userID"
        }
      ],
      "joinSemantic" : "EOInnerJoin",
      "name" : "user",
      "purpose" : "The user that this availability override applies to.",
      "record" : {
        "allowsRecord" : "Y",
        "isEmbedded" : "N",
        "isInternal" : "N",
        "propagatesUpdates" : "N"
      }
    },
    {
      "addedInModelVersion" : 1200,
      "ash" : {
        "includeInResource" : "Y"
      },
      "deleteRule" : "EODeleteRuleCascade",
      "destination" : "AvailabilitySegment",
      "isToMany" : "Y",
      "joins" : [
        {
          "destinationAttribute" : "availabilityOverrideID",
          "sourceAttribute" : "availabilityOverrideID"
        }
      ],
      "joinSemantic" : "EOInnerJoin",
      "name" : "segments",
      "ownsDestination" : "Y",
      "purpose" : "The segments to override for the specified date.",
      "record" : {
        "allowsRecord" : "Y",
        "isEmbedded" : "N",
        "isInternal" : "N",
        "propagatesUpdates" : "N"
      }
    }
  ],
  "supportsPermissions" : false,
  "uniqueIdentifier" : 223
}