<?xml version="1.0" encoding="utf-8"?>
<edmx:Edmx Version="4.0" xmlns:edmx="http://docs.oasis-open.org/odata/ns/edmx">
  <edmx:Reference Uri="https://sap.github.io/odata-vocabularies/vocabularies/Common.xml">
    <edmx:Include Alias="Common" Namespace="com.sap.vocabularies.Common.v1"/>
  </edmx:Reference>
  <edmx:Reference Uri="https://oasis-tcs.github.io/odata-vocabularies/vocabularies/Org.OData.Core.V1.xml">
    <edmx:Include Alias="Core" Namespace="Org.OData.Core.V1"/>
  </edmx:Reference>
  <edmx:DataServices>
    <Schema Namespace="AppointmentService" xmlns="http://docs.oasis-open.org/odata/ns/edm">
      <Annotation Term="Core.Links">
        <Collection>
          <Record>
            <PropertyValue Property="rel" String="author"/>
            <PropertyValue Property="href" String="https://cap.cloud.sap"/>
          </Record>
        </Collection>
      </Annotation>
      <EntityContainer Name="EntityContainer">
        <EntitySet Name="Appointments" EntityType="AppointmentService.Appointments"/>
        <ActionImport Name="createAppointment" Action="AppointmentService.createAppointment"/>
        <ActionImport Name="updateAppointment" Action="AppointmentService.updateAppointment"/>
        <ActionImport Name="deleteAppointment" Action="AppointmentService.deleteAppointment"/>
        <ActionImport Name="getAppointment" Action="AppointmentService.getAppointment" EntitySet="Appointments"/>
        <ActionImport Name="getAllAppointments" Action="AppointmentService.getAllAppointments" EntitySet="Appointments"/>
        <ActionImport Name="uploadAppointmentFile" Action="AppointmentService.uploadAppointmentFile"/>
      </EntityContainer>
      <EntityType Name="Appointments">
        <Key>
          <PropertyRef Name="ID"/>
        </Key>
        <Property Name="ID" Type="Edm.Guid" Nullable="false"/>
        <Property Name="applicationID" Type="Edm.String"/>
        <Property Name="dependent" Type="Edm.String"/>
        <Property Name="type" Type="Edm.String" MaxLength="100"/>
        <Property Name="scheduledAt" Type="Edm.DateTimeOffset"/>
        <Property Name="provider" Type="Edm.String" MaxLength="200"/>
        <Property Name="location" Type="Edm.String" MaxLength="200"/>
        <Property Name="status" Type="Edm.String" MaxLength="50"/>
        <Property Name="result" Type="Edm.String" MaxLength="500"/>
        <Property Name="resultFile" Type="Edm.String" MaxLength="255"/>
        <Property Name="confirmationRef" Type="Edm.String" MaxLength="100"/>
        <Property Name="remarks" Type="Edm.String" MaxLength="500"/>
        <Property Name="createdAt" Type="Edm.DateTimeOffset" Precision="7"/>
        <Property Name="updatedAt" Type="Edm.DateTimeOffset" Precision="7"/>
        <Property Name="owner" Type="Edm.String" MaxLength="100"/>
        <Property Name="channel" Type="Edm.String" MaxLength="100"/>
        <Property Name="whenDate" Type="Edm.Date"/>
        <Property Name="agencyID" Type="Edm.Guid"/>
        <Property Name="agencyName" Type="Edm.String" MaxLength="255"/>
        <Property Name="medicalResult" Type="Edm.String" MaxLength="500"/>
        <Property Name="iqamaNumber" Type="Edm.String" MaxLength="50"/>
        <Property Name="dependentName" Type="Edm.String" MaxLength="255"/>
        <Property Name="iqamaExpiry" Type="Edm.Date"/>
      </EntityType>
      <ComplexType Name="return_AppointmentService_createAppointment">
        <Property Name="success" Type="Edm.Boolean"/>
        <Property Name="message" Type="Edm.String"/>
      </ComplexType>
      <ComplexType Name="return_AppointmentService_updateAppointment">
        <Property Name="success" Type="Edm.Boolean"/>
        <Property Name="message" Type="Edm.String"/>
      </ComplexType>
      <ComplexType Name="return_AppointmentService_deleteAppointment">
        <Property Name="success" Type="Edm.Boolean"/>
        <Property Name="message" Type="Edm.String"/>
      </ComplexType>
      <ComplexType Name="return_AppointmentService_uploadAppointmentFile">
        <Property Name="success" Type="Edm.Boolean"/>
        <Property Name="message" Type="Edm.String"/>
        <Property Name="file" Type="Edm.String"/>
      </ComplexType>
      <Action Name="createAppointment" IsBound="false">
        <Parameter Name="applicationID" Type="Edm.String"/>
        <Parameter Name="dependent" Type="Edm.String"/>
        <Parameter Name="type" Type="Edm.String"/>
        <Parameter Name="scheduledAt" Type="Edm.Date"/>
        <Parameter Name="provider" Type="Edm.String"/>
        <Parameter Name="location" Type="Edm.String"/>
        <Parameter Name="status" Type="Edm.String"/>
        <Parameter Name="result" Type="Edm.String"/>
        <Parameter Name="resultFile" Type="Edm.String"/>
        <Parameter Name="confirmationRef" Type="Edm.String"/>
        <Parameter Name="remarks" Type="Edm.String"/>
        <Parameter Name="applicationCustomId" Type="Edm.String"/>
        <Parameter Name="owner" Type="Edm.String"/>
        <Parameter Name="agencyID" Type="Edm.Guid"/>
        <Parameter Name="agencyName" Type="Edm.String"/>
        <Parameter Name="channel" Type="Edm.String"/>
        <Parameter Name="whenDate" Type="Edm.Date"/>
        <Parameter Name="medicalResult" Type="Edm.String"/>
        <Parameter Name="iqamaNumber" Type="Edm.String"/>
        <Parameter Name="dependentName" Type="Edm.String"/>
        <Parameter Name="iqamaExpiry" Type="Edm.Date"/>
        <ReturnType Type="AppointmentService.return_AppointmentService_createAppointment"/>
      </Action>
      <Action Name="updateAppointment" IsBound="false">
        <Parameter Name="ID" Type="Edm.String"/>
        <Parameter Name="applicationID" Type="Edm.String"/>
        <Parameter Name="dependent" Type="Edm.String"/>
        <Parameter Name="type" Type="Edm.String"/>
        <Parameter Name="scheduledAt" Type="Edm.Date"/>
        <Parameter Name="provider" Type="Edm.String"/>
        <Parameter Name="location" Type="Edm.String"/>
        <Parameter Name="status" Type="Edm.String"/>
        <Parameter Name="result" Type="Edm.String"/>
        <Parameter Name="resultFile" Type="Edm.String"/>
        <Parameter Name="confirmationRef" Type="Edm.String"/>
        <Parameter Name="remarks" Type="Edm.String"/>
        <Parameter Name="applicationCustomId" Type="Edm.String"/>
        <Parameter Name="owner" Type="Edm.String"/>
        <Parameter Name="agencyID" Type="Edm.Guid"/>
        <Parameter Name="agencyName" Type="Edm.String"/>
        <Parameter Name="channel" Type="Edm.String"/>
        <Parameter Name="whenDate" Type="Edm.Date"/>
        <Parameter Name="medicalResult" Type="Edm.String"/>
        <Parameter Name="iqamaNumber" Type="Edm.String"/>
        <Parameter Name="dependentName" Type="Edm.String"/>
        <Parameter Name="iqamaExpiry" Type="Edm.Date"/>
        <Parameter Name="createdAt" Type="Edm.DateTimeOffset" Precision="7"/>
        <Parameter Name="updatedAt" Type="Edm.DateTimeOffset" Precision="7"/>
        <ReturnType Type="AppointmentService.return_AppointmentService_updateAppointment"/>
      </Action>
      <Action Name="deleteAppointment" IsBound="false">
        <Parameter Name="ID" Type="Edm.String"/>
        <ReturnType Type="AppointmentService.return_AppointmentService_deleteAppointment"/>
      </Action>
      <Action Name="getAppointment" IsBound="false">
        <Parameter Name="ID" Type="Edm.String"/>
        <ReturnType Type="AppointmentService.Appointments"/>
      </Action>
      <Action Name="getAllAppointments" IsBound="false">
        <ReturnType Type="Collection(AppointmentService.Appointments)"/>
      </Action>
      <Action Name="uploadAppointmentFile" IsBound="false">
        <Parameter Name="ID" Type="Edm.String"/>
        <Parameter Name="resultFile" Type="Edm.String"/>
        <Parameter Name="fileName" Type="Edm.String"/>
        <ReturnType Type="AppointmentService.return_AppointmentService_uploadAppointmentFile"/>
      </Action>
      <Annotations Target="AppointmentService.Appointments/ID">
        <Annotation Term="Core.ComputedDefaultValue" Bool="true"/>
      </Annotations>
      <Annotations Target="AppointmentService.Appointments/createdAt">
        <Annotation Term="Core.ComputedDefaultValue" Bool="true"/>
      </Annotations>
      <Annotations Target="AppointmentService.Appointments/updatedAt">
        <Annotation Term="Core.Computed" Bool="true"/>
      </Annotations>
    </Schema>
  </edmx:DataServices>
</edmx:Edmx>