{
  "addedInModelVersion" : 1200,
  "ash" : {
    "generateResource" : "Y"
  },
  "attributes" : [
    {
      "addedInModelVersion" : 1200,
      "allowsNull" : "N",
      "ash" : {
        "includeInResource" : "Y"
      },
      "columnName" : "_rowid",
      "externalType" : "longlong",
      "isIndexed" : "Y",
      "name" : "availabilityScheduleID",
      "record" : {
        "allowsRecord" : "Y",
        "isInternal" : "N",
        "isUpdatable" : "Y"
      },
      "valueClassName" : "NSNumber",
      "valueType" : "i",
      "width" : 0
    },
    {
      "addedInModelVersion" : 1200,
      "allowsNull" : "N",
      "ash" : {
        "includeInResource" : "Y"
      },
      "columnName" : "name",
      "externalType" : "char",
      "name" : "name",
      "purpose" : "The name of the availability schedule that’s displayed in the configuration UI.",
      "record" : {
        "allowsRecord" : "Y",
        "isInternal" : "N",
        "isUpdatable" : "Y"
      },
      "valueClassName" : "NSString",
      "width" : 1024
    },
    {
      "addedInModelVersion" : 1200,
      "ash" : {
        "includeInResource" : "Y"
      },
      "columnName" : "timeZoneName",
      "externalType" : "char",
      "name" : "timeZoneName",
      "purpose" : "The time zone that this availability schedule applies to, as an IANA time zone name.",
      "record" : {
        "allowsRecord" : "Y",
        "isInternal" : "N",
        "isUpdatable" : "Y"
      },
      "valueClassName" : "NSString",
      "width" : 256
    },
    {
      "addedInModelVersion" : 1200,
      "allowsNull" : "Y",
      "ash" : {
        "includeInResource" : "Y"
      },
      "columnName" : "archivedDate",
      "externalType" : "datetime",
      "name" : "archivedDate",
      "purpose" : "The date that the availability schedule was archived.\n\nThe `archivedBy` relationship and `archivedDate` attribute must be set together.",
      "record" : {
        "allowsRecord" : "Y",
        "isInternal" : "N",
        "isUpdatable" : "Y"
      },
      "valueClassName" : "NSDate"
    },
    {
      "addedInModelVersion" : 1200,
      "ash" : {
        "ashName" : "personal?",
        "includeInResource" : "Y"
      },
      "columnName" : "isPersonal",
      "defaultValue" : "0",
      "externalType" : "int",
      "name" : "isPersonal",
      "purpose" : "Indicates whether this is a personal availability schedule belonging to the owner.",
      "record" : {
        "allowsRecord" : "Y",
        "isInternal" : "N",
        "isUpdatable" : "Y"
      },
      "valueClassName" : "Boolean"
    },
    {
      "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" : "ownerID",
      "externalType" : "longlong",
      "isIndexed" : "Y",
      "name" : "ownerID",
      "record" : {
        "allowsRecord" : "Y",
        "isInternal" : "N",
        "isUpdatable" : "Y"
      },
      "valueClassName" : "NSNumber",
      "valueType" : "i"
    },
    {
      "addedInModelVersion" : 1200,
      "allowsNull" : "Y",
      "ash" : {
        "includeInResource" : "Y"
      },
      "columnName" : "archivedByID",
      "externalType" : "longlong",
      "isIndexed" : "Y",
      "name" : "archivedByID",
      "record" : {
        "allowsRecord" : "Y",
        "isInternal" : "N",
        "isUpdatable" : "Y"
      },
      "valueClassName" : "NSNumber",
      "valueType" : "i"
    }
  ],
  "className" : "GWAvailabilitySchedule",
  "classProperties" : [
    "availabilityScheduleID",
    "name",
    "timeZoneName",
    "archivedDate",
    "isPersonal",
    "createDate",
    "modifyDate",
    "ownerID",
    "archivedByID",
    "segments",
    "overrides",
    "owner",
    "archivedBy"
  ],
  "domain" : "OnlineBooking",
  "externalName" : "AvailabilitySchedule",
  "isDatabasePreference" : false,
  "isTrashable" : false,
  "localizationKey" : "Availability Schedule",
  "localizationPluralKey" : "Availability Schedules",
  "moduleName" : "DLSubstrate",
  "name" : "AvailabilitySchedule",
  "primaryKeyAttributes" : [
    "availabilityScheduleID"
  ],
  "purpose" : "An availability schedule represents the base availability periods for each day of the week during which assignees can be booked for meetings.\n\nWhen assigning a user to a booking definition, you will always choose an availability schedule for them. Schedules can be re-used across multiple booking definitions and multiple assigned users.\n\nAvailability schedules can either be shared or personal. Shared schedules can be used by any user within the company. Personal schedules are owned by a specific user and can only be used and edited by that user. A schedule is considered personal when `isPersonal` is true and is owned by the `owner`.",
  "record" : {
    "allowsRecord" : "Y",
    "isDirectlyUpdatable" : "Y"
  },
  "relationships" : [
    {
      "addedInModelVersion" : 1200,
      "ash" : {
        "includeInResource" : "Y"
      },
      "deleteRule" : "EODeleteRuleCascade",
      "destination" : "AvailabilitySegment",
      "isToMany" : "Y",
      "joins" : [
        {
          "destinationAttribute" : "availabilityScheduleID",
          "sourceAttribute" : "availabilityScheduleID"
        }
      ],
      "joinSemantic" : "EOInnerJoin",
      "name" : "segments",
      "ownsDestination" : "Y",
      "purpose" : "The segments are the time ranges of available time for each day.",
      "record" : {
        "allowsRecord" : "Y",
        "isEmbedded" : "N",
        "isInternal" : "N",
        "propagatesUpdates" : "N"
      }
    },
    {
      "addedInModelVersion" : 1200,
      "ash" : {
        "includeInResource" : "Y"
      },
      "deleteRule" : "EODeleteRuleCascade",
      "destination" : "AvailabilityOverride",
      "isToMany" : "Y",
      "joins" : [
        {
          "destinationAttribute" : "availabilityScheduleID",
          "sourceAttribute" : "availabilityScheduleID"
        }
      ],
      "joinSemantic" : "EOInnerJoin",
      "name" : "overrides",
      "ownsDestination" : "Y",
      "purpose" : "The overrides are date-specific and user-specific overrides.",
      "record" : {
        "allowsRecord" : "Y",
        "isEmbedded" : "N",
        "isInternal" : "N",
        "propagatesUpdates" : "N"
      }
    },
    {
      "addedInModelVersion" : 1200,
      "ash" : {
        "includeInResource" : "Y"
      },
      "destination" : "User",
      "isToMany" : "N",
      "joins" : [
        {
          "destinationAttribute" : "userID",
          "sourceAttribute" : "ownerID"
        }
      ],
      "joinSemantic" : "EOInnerJoin",
      "name" : "owner",
      "purpose" : "Set to the user who owns this availability schedule.\n\nInitially set to the user that creates the availability schedule. If `isPersonal` is true, the owner cannot be re-assigned.",
      "record" : {
        "allowsRecord" : "Y",
        "isEmbedded" : "N",
        "isInternal" : "N",
        "propagatesUpdates" : "N"
      }
    },
    {
      "addedInModelVersion" : 1200,
      "ash" : {
        "includeInResource" : "Y"
      },
      "destination" : "User",
      "isToMany" : "N",
      "joins" : [
        {
          "destinationAttribute" : "userID",
          "sourceAttribute" : "archivedByID"
        }
      ],
      "joinSemantic" : "EOInnerJoin",
      "name" : "archivedBy",
      "purpose" : "The user that archived this availability schedule.\n\nThe `archivedBy` relationship and `achivedDate` attribute must be set together.",
      "record" : {
        "allowsRecord" : "Y",
        "isEmbedded" : "N",
        "isInternal" : "N",
        "propagatesUpdates" : "N"
      }
    }
  ],
  "supportsPermissions" : false,
  "uniqueIdentifier" : 221
}