<?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="ApplicationService" 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="Applications" EntityType="ApplicationService.Applications"/>
        <EntitySet Name="Dependents" EntityType="ApplicationService.Dependents"/>
        <EntitySet Name="Candidates" EntityType="ApplicationService.Candidates"/>
        <ActionImport Name="createApplication" Action="ApplicationService.createApplication"/>
        <ActionImport Name="updateApplication" Action="ApplicationService.updateApplication"/>
        <ActionImport Name="deleteApplication" Action="ApplicationService.deleteApplication"/>
        <ActionImport Name="addDependents" Action="ApplicationService.addDependents"/>
        <ActionImport Name="updateDependents" Action="ApplicationService.updateDependents"/>
        <ActionImport Name="getDependents" Action="ApplicationService.getDependents"/>
        <ActionImport Name="deleteDependents" Action="ApplicationService.deleteDependents"/>
        <ActionImport Name="markAsAppointment" Action="ApplicationService.markAsAppointment"/>
        <ActionImport Name="getAllDependents" Action="ApplicationService.getAllDependents"/>
        <ActionImport Name="bulkUploadApplications" Action="ApplicationService.bulkUploadApplications"/>
        <ActionImport Name="bulkUploadDependents" Action="ApplicationService.bulkUploadDependents"/>
      </EntityContainer>
      <EntityType Name="Applications">
        <Key>
          <PropertyRef Name="ID"/>
        </Key>
        <Property Name="ID" Type="Edm.Guid" Nullable="false"/>
        <Property Name="visaType" Type="Edm.String" MaxLength="50"/>
        <Property Name="candidate" Type="Edm.Guid"/>
        <Property Name="destinationCountry" Type="Edm.String" MaxLength="50"/>
        <Property Name="category" Type="Edm.String" MaxLength="50"/>
        <Property Name="sponsorCompanyId" Type="Edm.String" MaxLength="50"/>
        <Property Name="status" Type="Edm.String" MaxLength="30"/>
        <Property Name="targetJoinDate" Type="Edm.Date"/>
        <Property Name="notes" Type="Edm.String" MaxLength="500"/>
        <Property Name="createdAt" Type="Edm.DateTimeOffset" Precision="7"/>
        <Property Name="applicationId" Type="Edm.String" MaxLength="100"/>
        <Property Name="isDependentsAdded" Type="Edm.Boolean" DefaultValue="false"/>
        <Property Name="blockVisaID" Type="Edm.Guid"/>
      </EntityType>
      <EntityType Name="Dependents">
        <Key>
          <PropertyRef Name="ID"/>
        </Key>
        <Property Name="ID" Type="Edm.Guid" Nullable="false"/>
        <Property Name="applicationID" Type="Edm.Guid"/>
        <Property Name="applicationCustomId" Type="Edm.String"/>
        <Property Name="candidateID" Type="Edm.Guid"/>
        <Property Name="spouseIncluded" Type="Edm.Boolean"/>
        <Property Name="spouseName" Type="Edm.String"/>
        <Property Name="childrenCount" Type="Edm.Int32" DefaultValue="0"/>
        <Property Name="childNames" Type="Collection(Edm.String)" Nullable="true"/>
        <Property Name="createdAt" Type="Edm.DateTimeOffset"/>
      </EntityType>
      <EntityType Name="Candidates">
        <Key>
          <PropertyRef Name="ID"/>
        </Key>
        <Property Name="ID" Type="Edm.Guid" Nullable="false"/>
        <Property Name="userId" Type="Edm.Guid"/>
        <Property Name="candidateType" Type="Edm.String" MaxLength="50"/>
        <Property Name="fullName" Type="Edm.String" MaxLength="150"/>
        <Property Name="email" Type="Edm.String" MaxLength="100"/>
        <Property Name="phone" Type="Edm.String" MaxLength="30"/>
        <Property Name="country" Type="Edm.String" MaxLength="50"/>
        <Property Name="nationalId" Type="Edm.String" MaxLength="50"/>
        <Property Name="passportNo" Type="Edm.String" MaxLength="30"/>
        <Property Name="passportExpiry" Type="Edm.Date"/>
        <Property Name="category" Type="Edm.String" MaxLength="50"/>
        <Property Name="createdAt" Type="Edm.DateTimeOffset" Precision="7"/>
        <Property Name="blockVisaID" Type="Edm.Guid"/>
      </EntityType>
      <ComplexType Name="DependentResult">
        <Property Name="ID" Type="Edm.String"/>
        <Property Name="applicationID" Type="Edm.String"/>
        <Property Name="applicationCustomId" Type="Edm.String"/>
        <Property Name="candidateID" Type="Edm.String"/>
        <Property Name="spouseIncluded" Type="Edm.Boolean"/>
        <Property Name="spouseName" Type="Edm.String"/>
        <Property Name="childrenCount" Type="Edm.Int32"/>
        <Property Name="childNames" Type="Collection(Edm.String)" Nullable="true"/>
        <Property Name="createdAt" Type="Edm.DateTimeOffset" Precision="7"/>
      </ComplexType>
      <ComplexType Name="return_ApplicationService_createApplication">
        <Property Name="success" Type="Edm.Boolean"/>
        <Property Name="message" Type="Edm.String"/>
      </ComplexType>
      <ComplexType Name="return_ApplicationService_updateApplication">
        <Property Name="success" Type="Edm.Boolean"/>
        <Property Name="message" Type="Edm.String"/>
      </ComplexType>
      <ComplexType Name="return_ApplicationService_deleteApplication">
        <Property Name="success" Type="Edm.Boolean"/>
        <Property Name="message" Type="Edm.String"/>
      </ComplexType>
      <ComplexType Name="return_ApplicationService_addDependents">
        <Property Name="success" Type="Edm.Boolean"/>
        <Property Name="message" Type="Edm.String"/>
      </ComplexType>
      <ComplexType Name="return_ApplicationService_updateDependents">
        <Property Name="success" Type="Edm.Boolean"/>
        <Property Name="message" Type="Edm.String"/>
      </ComplexType>
      <ComplexType Name="return_ApplicationService_deleteDependents">
        <Property Name="success" Type="Edm.Boolean"/>
        <Property Name="message" Type="Edm.String"/>
      </ComplexType>
      <ComplexType Name="return_ApplicationService_markAsAppointment">
        <Property Name="success" Type="Edm.Boolean"/>
        <Property Name="message" Type="Edm.String"/>
      </ComplexType>
      <ComplexType Name="return_ApplicationService_bulkUploadApplications">
        <Property Name="success" Type="Edm.Boolean"/>
        <Property Name="message" Type="Edm.String"/>
        <Property Name="results" Type="Edm.String"/>
      </ComplexType>
      <ComplexType Name="return_ApplicationService_bulkUploadDependents">
        <Property Name="success" Type="Edm.Boolean"/>
        <Property Name="message" Type="Edm.String"/>
        <Property Name="results" Type="Edm.String"/>
      </ComplexType>
      <Action Name="createApplication" IsBound="false">
        <Parameter Name="visaType" Type="Edm.String"/>
        <Parameter Name="candidate" Type="Edm.String"/>
        <Parameter Name="destinationCountry" Type="Edm.String"/>
        <Parameter Name="category" Type="Edm.String"/>
        <Parameter Name="sponsorCompanyId" Type="Edm.String"/>
        <Parameter Name="status" Type="Edm.String"/>
        <Parameter Name="targetJoinDate" Type="Edm.Date"/>
        <Parameter Name="notes" Type="Edm.String"/>
        <Parameter Name="applicationId" Type="Edm.String"/>
        <Parameter Name="isDependentsAdded" Type="Edm.Boolean"/>
        <Parameter Name="blockVisaID" Type="Edm.Guid"/>
        <ReturnType Type="ApplicationService.return_ApplicationService_createApplication"/>
      </Action>
      <Action Name="updateApplication" IsBound="false">
        <Parameter Name="ID" Type="Edm.String"/>
        <Parameter Name="visaType" Type="Edm.String"/>
        <Parameter Name="candidate" Type="Edm.String"/>
        <Parameter Name="destinationCountry" Type="Edm.String"/>
        <Parameter Name="category" Type="Edm.String"/>
        <Parameter Name="sponsorCompanyId" Type="Edm.String"/>
        <Parameter Name="status" Type="Edm.String"/>
        <Parameter Name="targetJoinDate" Type="Edm.Date"/>
        <Parameter Name="notes" Type="Edm.String"/>
        <Parameter Name="applicationId" Type="Edm.String"/>
        <Parameter Name="createdAt" Type="Edm.DateTimeOffset" Precision="7"/>
        <Parameter Name="isDependentsAdded" Type="Edm.Boolean"/>
        <Parameter Name="blockVisaID" Type="Edm.Guid"/>
        <Parameter Name="updatedAt" Type="Edm.DateTimeOffset" Precision="7"/>
        <ReturnType Type="ApplicationService.return_ApplicationService_updateApplication"/>
      </Action>
      <Action Name="deleteApplication" IsBound="false">
        <Parameter Name="ID" Type="Edm.String"/>
        <ReturnType Type="ApplicationService.return_ApplicationService_deleteApplication"/>
      </Action>
      <Action Name="addDependents" IsBound="false">
        <Parameter Name="applicationID" Type="Edm.String"/>
        <Parameter Name="applicationCustomId" Type="Edm.String"/>
        <Parameter Name="candidateID" Type="Edm.String"/>
        <Parameter Name="spouseIncluded" Type="Edm.Boolean"/>
        <Parameter Name="spouseName" Type="Edm.String"/>
        <Parameter Name="childrenCount" Type="Edm.Int32"/>
        <Parameter Name="childNames" Type="Collection(Edm.String)" Nullable="true"/>
        <Parameter Name="createdAt" Type="Edm.DateTimeOffset" Precision="7"/>
        <ReturnType Type="ApplicationService.return_ApplicationService_addDependents"/>
      </Action>
      <Action Name="updateDependents" IsBound="false">
        <Parameter Name="applicationID" Type="Edm.String"/>
        <Parameter Name="applicationCustomId" Type="Edm.String"/>
        <Parameter Name="candidateID" Type="Edm.String"/>
        <Parameter Name="spouseIncluded" Type="Edm.Boolean"/>
        <Parameter Name="spouseName" Type="Edm.String"/>
        <Parameter Name="childrenCount" Type="Edm.Int32"/>
        <Parameter Name="childNames" Type="Collection(Edm.String)" Nullable="true"/>
        <Parameter Name="createdAt" Type="Edm.DateTimeOffset" Precision="7"/>
        <ReturnType Type="ApplicationService.return_ApplicationService_updateDependents"/>
      </Action>
      <Action Name="getDependents" IsBound="false">
        <Parameter Name="applicationID" Type="Edm.String"/>
        <ReturnType Type="Collection(ApplicationService.DependentResult)" Nullable="true"/>
      </Action>
      <Action Name="deleteDependents" IsBound="false">
        <Parameter Name="applicationID" Type="Edm.String"/>
        <ReturnType Type="ApplicationService.return_ApplicationService_deleteDependents"/>
      </Action>
      <Action Name="markAsAppointment" IsBound="false">
        <Parameter Name="applicationId" Type="Edm.String"/>
        <ReturnType Type="ApplicationService.return_ApplicationService_markAsAppointment"/>
      </Action>
      <Action Name="getAllDependents" IsBound="false">
        <ReturnType Type="Collection(ApplicationService.DependentResult)" Nullable="true"/>
      </Action>
      <Action Name="bulkUploadApplications" IsBound="false">
        <Parameter Name="applications" Type="Edm.String"/>
        <ReturnType Type="ApplicationService.return_ApplicationService_bulkUploadApplications"/>
      </Action>
      <Action Name="bulkUploadDependents" IsBound="false">
        <Parameter Name="dependents" Type="Edm.String"/>
        <ReturnType Type="ApplicationService.return_ApplicationService_bulkUploadDependents"/>
      </Action>
      <Annotations Target="ApplicationService.Applications/ID">
        <Annotation Term="Core.ComputedDefaultValue" Bool="true"/>
      </Annotations>
      <Annotations Target="ApplicationService.Dependents/ID">
        <Annotation Term="Core.ComputedDefaultValue" Bool="true"/>
      </Annotations>
      <Annotations Target="ApplicationService.Candidates/ID">
        <Annotation Term="Core.ComputedDefaultValue" Bool="true"/>
      </Annotations>
    </Schema>
  </edmx:DataServices>
</edmx:Edmx>