<?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://oasis-tcs.github.io/odata-vocabularies/vocabularies/Org.OData.Capabilities.V1.xml">
    <edmx:Include Alias="Capabilities" Namespace="Org.OData.Capabilities.V1"/>
  </edmx:Reference>
  <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:Reference Uri="https://sap.github.io/odata-vocabularies/vocabularies/UI.xml">
    <edmx:Include Alias="UI" Namespace="com.sap.vocabularies.UI.v1"/>
  </edmx:Reference>
  <edmx:DataServices>
    <Schema Namespace="ReportsService" 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="QuotaMaster" EntityType="ReportsService.QuotaMaster"/>
        <EntitySet Name="QuotaTransaction" EntityType="ReportsService.QuotaTransaction">
          <NavigationPropertyBinding Path="quota" Target="QuotaMaster"/>
        </EntitySet>
        <ActionImport Name="getVisaQuotaReport" Action="ReportsService.getVisaQuotaReport"/>
        <ActionImport Name="exportVisaQuotaReport" Action="ReportsService.exportVisaQuotaReport"/>
      </EntityContainer>
      <EntityType Name="QuotaMaster">
        <Key>
          <PropertyRef Name="ID"/>
        </Key>
        <Property Name="ID" Type="Edm.Guid" Nullable="false"/>
        <Property Name="createdAt" Type="Edm.DateTimeOffset" Precision="7"/>
        <Property Name="createdBy" Type="Edm.String" MaxLength="255"/>
        <Property Name="modifiedAt" Type="Edm.DateTimeOffset" Precision="7"/>
        <Property Name="modifiedBy" Type="Edm.String" MaxLength="255"/>
        <Property Name="VisaType" Type="Edm.String" MaxLength="100"/>
        <Property Name="ProfessionCode" Type="Edm.String" MaxLength="50"/>
        <Property Name="ProfessionName" Type="Edm.String" MaxLength="200"/>
        <Property Name="City" Type="Edm.String" MaxLength="100"/>
        <Property Name="Country" Type="Edm.String" MaxLength="100"/>
        <Property Name="CompanyCode" Type="Edm.String" MaxLength="50"/>
        <Property Name="Department" Type="Edm.String" MaxLength="200"/>
        <Property Name="GradeType" Type="Edm.String" MaxLength="50"/>
        <Property Name="SponsorID" Type="Edm.String" MaxLength="100"/>
        <Property Name="AgencyID_ID" Type="Edm.Guid"/>
        <Property Name="PurchasedQty" Type="Edm.Int32" DefaultValue="0"/>
        <Property Name="AvailableQty" Type="Edm.Int32" DefaultValue="0"/>
        <Property Name="FirstPurchaseDate" Type="Edm.Date"/>
        <Property Name="LastPurchaseDate" Type="Edm.Date"/>
        <Property Name="TransactionDate" Type="Edm.Date"/>
        <Property Name="PaymentAmount" Type="Edm.Decimal" Precision="15" Scale="2"/>
        <Property Name="Comments" Type="Edm.String" MaxLength="1000"/>
        <Property Name="Status" Type="Edm.String" MaxLength="20" DefaultValue="Active"/>
      </EntityType>
      <EntityType Name="QuotaTransaction">
        <Key>
          <PropertyRef Name="ID"/>
        </Key>
        <Property Name="ID" Type="Edm.Guid" Nullable="false"/>
        <Property Name="createdAt" Type="Edm.DateTimeOffset" Precision="7"/>
        <Property Name="createdBy" Type="Edm.String" MaxLength="255"/>
        <Property Name="modifiedAt" Type="Edm.DateTimeOffset" Precision="7"/>
        <Property Name="modifiedBy" Type="Edm.String" MaxLength="255"/>
        <NavigationProperty Name="quota" Type="ReportsService.QuotaMaster">
          <ReferentialConstraint Property="quota_ID" ReferencedProperty="ID"/>
        </NavigationProperty>
        <Property Name="quota_ID" Type="Edm.Guid"/>
        <Property Name="ActionType" Type="Edm.String" MaxLength="30"/>
        <Property Name="Source" Type="Edm.String" MaxLength="30" DefaultValue="MANUAL"/>
        <Property Name="VisaType" Type="Edm.String" MaxLength="100"/>
        <Property Name="ProfessionCode" Type="Edm.String" MaxLength="50"/>
        <Property Name="ProfessionName" Type="Edm.String" MaxLength="200"/>
        <Property Name="City" Type="Edm.String" MaxLength="100"/>
        <Property Name="Country" Type="Edm.String" MaxLength="100"/>
        <Property Name="CompanyCode" Type="Edm.String" MaxLength="50"/>
        <Property Name="Department" Type="Edm.String" MaxLength="200"/>
        <Property Name="GradeType" Type="Edm.String" MaxLength="50"/>
        <Property Name="AgencyName" Type="Edm.String" MaxLength="200"/>
        <Property Name="Quantity" Type="Edm.Int32"/>
        <Property Name="BalanceAfterTxn" Type="Edm.Int32"/>
        <Property Name="CandidateName" Type="Edm.String" MaxLength="200"/>
        <Property Name="CandidateNationality" Type="Edm.String" MaxLength="100"/>
        <Property Name="CaseNo" Type="Edm.String" MaxLength="100"/>
        <Property Name="Remarks" Type="Edm.String" MaxLength="500"/>
      </EntityType>
      <ComplexType Name="ReportRow">
        <Property Name="ID" Type="Edm.String"/>
        <Property Name="sponsorId" Type="Edm.String"/>
        <Property Name="visaNumber" Type="Edm.String"/>
        <Property Name="visaIssuedDate" Type="Edm.String"/>
        <Property Name="nationality" Type="Edm.String"/>
        <Property Name="stampingLocation" Type="Edm.String"/>
        <Property Name="visaProfession" Type="Edm.String"/>
        <Property Name="gender" Type="Edm.String"/>
        <Property Name="qty" Type="Edm.Int32"/>
        <Property Name="authorizedAgency" Type="Edm.String"/>
        <Property Name="assignedCandidate" Type="Edm.String"/>
        <Property Name="deptClientName" Type="Edm.String"/>
        <Property Name="ewakalaNumber" Type="Edm.String"/>
        <Property Name="ewakalaIssueDate" Type="Edm.String"/>
        <Property Name="visaStampedDate" Type="Edm.String"/>
        <Property Name="visaType" Type="Edm.String"/>
        <Property Name="reportYear" Type="Edm.Int32"/>
      </ComplexType>
      <ComplexType Name="ReportKpis">
        <Property Name="totalVisaTypes" Type="Edm.Int32"/>
        <Property Name="totalQuota" Type="Edm.Int32"/>
        <Property Name="approvedVisas" Type="Edm.Int32"/>
        <Property Name="remainingQuota" Type="Edm.Int32"/>
        <Property Name="utilization" Type="Edm.Decimal" Scale="variable"/>
      </ComplexType>
      <ComplexType Name="ReportOptions">
        <Property Name="visaType" Type="Collection(Edm.String)" Nullable="true"/>
        <Property Name="nationality" Type="Collection(Edm.String)" Nullable="true"/>
        <Property Name="client" Type="Collection(Edm.String)" Nullable="true"/>
        <Property Name="year" Type="Collection(Edm.String)" Nullable="true"/>
        <Property Name="status" Type="Collection(Edm.String)" Nullable="true"/>
      </ComplexType>
      <ComplexType Name="return_ReportsService_getVisaQuotaReport">
        <Property Name="issued" Type="Collection(ReportsService.ReportRow)" Nullable="true"/>
        <Property Name="stamped" Type="Collection(ReportsService.ReportRow)" Nullable="true"/>
        <Property Name="kpis" Type="ReportsService.ReportKpis"/>
        <Property Name="options" Type="ReportsService.ReportOptions"/>
      </ComplexType>
      <ComplexType Name="return_ReportsService_exportVisaQuotaReport">
        <Property Name="success" Type="Edm.Boolean"/>
        <Property Name="fileName" Type="Edm.String"/>
        <Property Name="fileBase64" Type="Edm.String"/>
      </ComplexType>
      <Action Name="getVisaQuotaReport" IsBound="false">
        <Parameter Name="year" Type="Edm.Int32"/>
        <Parameter Name="visaType" Type="Edm.String"/>
        <Parameter Name="nationality" Type="Edm.String"/>
        <Parameter Name="client" Type="Edm.String"/>
        <Parameter Name="status" Type="Edm.String"/>
        <ReturnType Type="ReportsService.return_ReportsService_getVisaQuotaReport"/>
      </Action>
      <Action Name="exportVisaQuotaReport" IsBound="false">
        <Parameter Name="year" Type="Edm.Int32"/>
        <Parameter Name="visaType" Type="Edm.String"/>
        <Parameter Name="nationality" Type="Edm.String"/>
        <Parameter Name="client" Type="Edm.String"/>
        <Parameter Name="status" Type="Edm.String"/>
        <Parameter Name="tab" Type="Edm.String"/>
        <ReturnType Type="ReportsService.return_ReportsService_exportVisaQuotaReport"/>
      </Action>
      <Annotations Target="ReportsService.EntityContainer/QuotaMaster">
        <Annotation Term="Capabilities.DeleteRestrictions">
          <Record Type="Capabilities.DeleteRestrictionsType">
            <PropertyValue Property="Deletable" Bool="false"/>
          </Record>
        </Annotation>
        <Annotation Term="Capabilities.InsertRestrictions">
          <Record Type="Capabilities.InsertRestrictionsType">
            <PropertyValue Property="Insertable" Bool="false"/>
          </Record>
        </Annotation>
        <Annotation Term="Capabilities.UpdateRestrictions">
          <Record Type="Capabilities.UpdateRestrictionsType">
            <PropertyValue Property="Updatable" Bool="false"/>
          </Record>
        </Annotation>
      </Annotations>
      <Annotations Target="ReportsService.QuotaMaster/ID">
        <Annotation Term="Core.ComputedDefaultValue" Bool="true"/>
      </Annotations>
      <Annotations Target="ReportsService.QuotaMaster/createdAt">
        <Annotation Term="UI.HiddenFilter" Bool="true"/>
        <Annotation Term="UI.ExcludeFromNavigationContext" Bool="true"/>
        <Annotation Term="Core.Immutable" Bool="true"/>
        <Annotation Term="Core.Computed" Bool="true"/>
        <Annotation Term="Common.Label" String="Created On"/>
      </Annotations>
      <Annotations Target="ReportsService.QuotaMaster/createdBy">
        <Annotation Term="UI.HiddenFilter" Bool="true"/>
        <Annotation Term="UI.ExcludeFromNavigationContext" Bool="true"/>
        <Annotation Term="Core.Immutable" Bool="true"/>
        <Annotation Term="Core.Computed" Bool="true"/>
        <Annotation Term="Core.Description" String="User's unique ID"/>
        <Annotation Term="Common.Label" String="Created By"/>
      </Annotations>
      <Annotations Target="ReportsService.QuotaMaster/modifiedAt">
        <Annotation Term="UI.HiddenFilter" Bool="true"/>
        <Annotation Term="UI.ExcludeFromNavigationContext" Bool="true"/>
        <Annotation Term="Core.Computed" Bool="true"/>
        <Annotation Term="Common.Label" String="Changed On"/>
      </Annotations>
      <Annotations Target="ReportsService.QuotaMaster/modifiedBy">
        <Annotation Term="UI.HiddenFilter" Bool="true"/>
        <Annotation Term="UI.ExcludeFromNavigationContext" Bool="true"/>
        <Annotation Term="Core.Computed" Bool="true"/>
        <Annotation Term="Core.Description" String="User's unique ID"/>
        <Annotation Term="Common.Label" String="Changed By"/>
      </Annotations>
      <Annotations Target="ReportsService.QuotaMaster/VisaType">
        <Annotation Term="Common.FieldControl" EnumMember="Common.FieldControlType/Mandatory"/>
      </Annotations>
      <Annotations Target="ReportsService.QuotaMaster/ProfessionCode">
        <Annotation Term="Common.FieldControl" EnumMember="Common.FieldControlType/Mandatory"/>
      </Annotations>
      <Annotations Target="ReportsService.QuotaMaster/ProfessionName">
        <Annotation Term="Common.FieldControl" EnumMember="Common.FieldControlType/Mandatory"/>
      </Annotations>
      <Annotations Target="ReportsService.QuotaMaster/City">
        <Annotation Term="Common.FieldControl" EnumMember="Common.FieldControlType/Mandatory"/>
      </Annotations>
      <Annotations Target="ReportsService.QuotaMaster/Country">
        <Annotation Term="Common.FieldControl" EnumMember="Common.FieldControlType/Mandatory"/>
      </Annotations>
      <Annotations Target="ReportsService.QuotaMaster/CompanyCode">
        <Annotation Term="Common.FieldControl" EnumMember="Common.FieldControlType/Mandatory"/>
      </Annotations>
      <Annotations Target="ReportsService.QuotaMaster/Department">
        <Annotation Term="Common.FieldControl" EnumMember="Common.FieldControlType/Mandatory"/>
      </Annotations>
      <Annotations Target="ReportsService.EntityContainer/QuotaTransaction">
        <Annotation Term="Capabilities.DeleteRestrictions">
          <Record Type="Capabilities.DeleteRestrictionsType">
            <PropertyValue Property="Deletable" Bool="false"/>
          </Record>
        </Annotation>
        <Annotation Term="Capabilities.InsertRestrictions">
          <Record Type="Capabilities.InsertRestrictionsType">
            <PropertyValue Property="Insertable" Bool="false"/>
          </Record>
        </Annotation>
        <Annotation Term="Capabilities.UpdateRestrictions">
          <Record Type="Capabilities.UpdateRestrictionsType">
            <PropertyValue Property="Updatable" Bool="false"/>
          </Record>
        </Annotation>
      </Annotations>
      <Annotations Target="ReportsService.QuotaTransaction/ID">
        <Annotation Term="Core.ComputedDefaultValue" Bool="true"/>
      </Annotations>
      <Annotations Target="ReportsService.QuotaTransaction/createdAt">
        <Annotation Term="UI.HiddenFilter" Bool="true"/>
        <Annotation Term="UI.ExcludeFromNavigationContext" Bool="true"/>
        <Annotation Term="Core.Immutable" Bool="true"/>
        <Annotation Term="Core.Computed" Bool="true"/>
        <Annotation Term="Common.Label" String="Created On"/>
      </Annotations>
      <Annotations Target="ReportsService.QuotaTransaction/createdBy">
        <Annotation Term="UI.HiddenFilter" Bool="true"/>
        <Annotation Term="UI.ExcludeFromNavigationContext" Bool="true"/>
        <Annotation Term="Core.Immutable" Bool="true"/>
        <Annotation Term="Core.Computed" Bool="true"/>
        <Annotation Term="Core.Description" String="User's unique ID"/>
        <Annotation Term="Common.Label" String="Created By"/>
      </Annotations>
      <Annotations Target="ReportsService.QuotaTransaction/modifiedAt">
        <Annotation Term="UI.HiddenFilter" Bool="true"/>
        <Annotation Term="UI.ExcludeFromNavigationContext" Bool="true"/>
        <Annotation Term="Core.Computed" Bool="true"/>
        <Annotation Term="Common.Label" String="Changed On"/>
      </Annotations>
      <Annotations Target="ReportsService.QuotaTransaction/modifiedBy">
        <Annotation Term="UI.HiddenFilter" Bool="true"/>
        <Annotation Term="UI.ExcludeFromNavigationContext" Bool="true"/>
        <Annotation Term="Core.Computed" Bool="true"/>
        <Annotation Term="Core.Description" String="User's unique ID"/>
        <Annotation Term="Common.Label" String="Changed By"/>
      </Annotations>
      <Annotations Target="ReportsService.QuotaTransaction/ActionType">
        <Annotation Term="Common.FieldControl" EnumMember="Common.FieldControlType/Mandatory"/>
      </Annotations>
    </Schema>
  </edmx:DataServices>
</edmx:Edmx>