<?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="ExpenseService" xmlns="http://docs.oasis-open.org/odata/ns/edm">
      <EntityContainer Name="EntityContainer">
        <EntitySet Name="TravelRequestExpenses" EntityType="ExpenseService.TravelRequestExpenses">
          <NavigationPropertyBinding Path="expenseType" Target="SegmentTypes"/>
          <NavigationPropertyBinding Path="assigned_tmc" Target="Users"/>
          <NavigationPropertyBinding Path="assigned_ca_admin" Target="Users"/>
        </EntitySet>
        <EntitySet Name="Users" EntityType="ExpenseService.Users">
          <NavigationPropertyBinding Path="dependents" Target="UserDependents"/>
        </EntitySet>
        <EntitySet Name="EmployeeApproverMappings" EntityType="ExpenseService.EmployeeApproverMappings">
          <NavigationPropertyBinding Path="employeeId" Target="Users"/>
          <NavigationPropertyBinding Path="approverId" Target="Users"/>
        </EntitySet>
        <EntitySet Name="RequestExpenseTypes" EntityType="ExpenseService.RequestExpenseTypes">
          <NavigationPropertyBinding Path="category" Target="RequestExpenseCategories"/>
        </EntitySet>
        <EntitySet Name="RequestExpenseCategories" EntityType="ExpenseService.RequestExpenseCategories"/>
        <EntitySet Name="ExpenseCategoriesExpense" EntityType="ExpenseService.ExpenseCategoriesExpense"/>
        <EntitySet Name="ExpenseTypesExpense" EntityType="ExpenseService.ExpenseTypesExpense">
          <NavigationPropertyBinding Path="category" Target="ExpenseCategoriesExpense"/>
        </EntitySet>
        <EntitySet Name="SegmentTypes" EntityType="ExpenseService.SegmentTypes"/>
        <EntitySet Name="ExpenseTypes" EntityType="ExpenseService.ExpenseTypes"/>
        <EntitySet Name="Segments" EntityType="ExpenseService.Segments"/>
        <EntitySet Name="ExpenseCoreFields" EntityType="ExpenseService.ExpenseCoreFields"/>
        <EntitySet Name="DefaultExpenseTypesFields" EntityType="ExpenseService.DefaultExpenseTypesFields"/>
        <EntitySet Name="UserRoleMappings" EntityType="ExpenseService.UserRoleMappings"/>
        <EntitySet Name="Roles" EntityType="ExpenseService.Roles"/>
        <EntitySet Name="RequestExpenseTypePolicyMapping" EntityType="ExpenseService.RequestExpenseTypePolicyMapping">
          <NavigationPropertyBinding Path="policy" Target="Policies"/>
          <NavigationPropertyBinding Path="expense_type" Target="RequestExpenseTypes"/>
        </EntitySet>
        <EntitySet Name="RequestGroupPolicyMapping" EntityType="ExpenseService.RequestGroupPolicyMapping">
          <NavigationPropertyBinding Path="policy" Target="Policies"/>
        </EntitySet>
        <EntitySet Name="Policies" EntityType="ExpenseService.Policies"/>
        <EntitySet Name="ExpenseExpenseTypePolicyMapping" EntityType="ExpenseService.ExpenseExpenseTypePolicyMapping">
          <NavigationPropertyBinding Path="policy" Target="Policies"/>
          <NavigationPropertyBinding Path="expense_type" Target="RequestExpenseTypes"/>
        </EntitySet>
        <EntitySet Name="ExpenseGroupPolicyMapping" EntityType="ExpenseService.ExpenseGroupPolicyMapping">
          <NavigationPropertyBinding Path="policy" Target="Policies"/>
        </EntitySet>
        <EntitySet Name="ExpenseTravelAllowance" EntityType="ExpenseService.ExpenseTravelAllowance"/>
        <EntitySet Name="ExpenseRecordEntries" EntityType="ExpenseService.ExpenseRecordEntries">
          <NavigationPropertyBinding Path="userId" Target="Users"/>
          <NavigationPropertyBinding Path="approverId" Target="Users"/>
          <NavigationPropertyBinding Path="policy" Target="Policies"/>
          <NavigationPropertyBinding Path="expenses" Target="ExpenseRecordExpenses"/>
        </EntitySet>
        <EntitySet Name="UserDependents" EntityType="ExpenseService.UserDependents">
          <NavigationPropertyBinding Path="user" Target="Users"/>
        </EntitySet>
        <EntitySet Name="ExpenseRecordExpenses" EntityType="ExpenseService.ExpenseRecordExpenses">
          <NavigationPropertyBinding Path="expenseRecordExpenses" Target="ExpenseRecordEntries"/>
          <NavigationPropertyBinding Path="expenseType" Target="ExpenseTypes"/>
        </EntitySet>
        <ActionImport Name="getFinanceStats" Action="ExpenseService.getFinanceStats"/>
        <ActionImport Name="getExpenseTypeOptions" Action="ExpenseService.getExpenseTypeOptions"/>
        <ActionImport Name="getPlannedExpenses" Action="ExpenseService.getPlannedExpenses" EntitySet="TravelRequestExpenses"/>
        <ActionImport Name="deleteExpenseRecord" Action="ExpenseService.deleteExpenseRecord"/>
        <ActionImport Name="getTravelAllowanceForUser" Action="ExpenseService.getTravelAllowanceForUser" EntitySet="ExpenseTravelAllowance"/>
        <ActionImport Name="checkDuplicateExpenseRecord" Action="ExpenseService.checkDuplicateExpenseRecord"/>
      </EntityContainer>
      <EntityType Name="TravelRequestExpenses">
        <Key>
          <PropertyRef Name="ID"/>
        </Key>
        <Property Name="ID" Type="Edm.Guid" Nullable="false"/>
        <Property Name="travelRequestEntries_ID" Type="Edm.Guid"/>
        <NavigationProperty Name="expenseType" Type="ExpenseService.SegmentTypes">
          <ReferentialConstraint Property="expenseType_ID" ReferencedProperty="ID"/>
        </NavigationProperty>
        <Property Name="expenseType_ID" Type="Edm.Guid"/>
        <Property Name="estimated_amount" Type="Edm.Decimal" Precision="15" Scale="2"/>
        <Property Name="details" Type="Edm.String"/>
        <Property Name="created_at" Type="Edm.DateTimeOffset" Precision="7"/>
        <Property Name="updated_at" Type="Edm.DateTimeOffset" Precision="7"/>
        <Property Name="file_path" Type="Edm.String" MaxLength="2000"/>
        <NavigationProperty Name="assigned_tmc" Type="ExpenseService.Users">
          <ReferentialConstraint Property="assigned_tmc_ID" ReferencedProperty="ID"/>
        </NavigationProperty>
        <Property Name="assigned_tmc_ID" Type="Edm.Guid"/>
        <NavigationProperty Name="assigned_ca_admin" Type="ExpenseService.Users">
          <ReferentialConstraint Property="assigned_ca_admin_ID" ReferencedProperty="ID"/>
        </NavigationProperty>
        <Property Name="assigned_ca_admin_ID" Type="Edm.Guid"/>
      </EntityType>
      <EntityType Name="Users">
        <Key>
          <PropertyRef Name="ID"/>
        </Key>
        <Property Name="ID" Type="Edm.Guid" Nullable="false"/>
        <Property Name="username" Type="Edm.String" MaxLength="100" Nullable="false"/>
        <Property Name="password" Type="Edm.String" MaxLength="100" Nullable="false"/>
        <Property Name="firstName" Type="Edm.String" MaxLength="32"/>
        <Property Name="middleName" Type="Edm.String" MaxLength="32"/>
        <Property Name="lastName" Type="Edm.String" MaxLength="32"/>
        <Property Name="employeeId" Type="Edm.String" MaxLength="48"/>
        <Property Name="position" Type="Edm.String" MaxLength="100"/>
        <Property Name="managerId" Type="Edm.String" MaxLength="100"/>
        <Property Name="managerName" Type="Edm.String" MaxLength="100"/>
        <Property Name="email" Type="Edm.String" MaxLength="255"/>
        <Property Name="passportNumber" Type="Edm.String" MaxLength="100"/>
        <Property Name="passportExpiryDate" Type="Edm.Date"/>
        <Property Name="aadharNumber" Type="Edm.String" MaxLength="100"/>
        <Property Name="created_at" Type="Edm.DateTimeOffset" Precision="7"/>
        <Property Name="updated_at" Type="Edm.DateTimeOffset" Precision="7"/>
        <Property Name="is_active" Type="Edm.Boolean" DefaultValue="true"/>
        <Property Name="isTestUser" Type="Edm.Boolean" DefaultValue="false"/>
        <Property Name="expenseUser" Type="Edm.Boolean" DefaultValue="false"/>
        <Property Name="expenseApprover" Type="Edm.Boolean" DefaultValue="false"/>
        <Property Name="requestUser" Type="Edm.Boolean" DefaultValue="false"/>
        <Property Name="requestApprover" Type="Edm.Boolean" DefaultValue="false"/>
        <Property Name="autoApproval" Type="Edm.Boolean" DefaultValue="false"/>
        <Property Name="oneLevelApproval" Type="Edm.Boolean" DefaultValue="false"/>
        <Property Name="mustChangePassword" Type="Edm.Boolean" DefaultValue="false"/>
        <Property Name="passwordResetToken" Type="Edm.String" MaxLength="255"/>
        <Property Name="passwordResetExpiry" Type="Edm.DateTimeOffset" Precision="7"/>
        <Property Name="cashAdvanceAccountCode" Type="Edm.String" MaxLength="20"/>
        <Property Name="vendorId" Type="Edm.String" MaxLength="20"/>
        <Property Name="sbuId_ID" Type="Edm.Guid"/>
        <Property Name="costCenterId_ID" Type="Edm.Guid"/>
        <Property Name="departmentId_ID" Type="Edm.Guid"/>
        <Property Name="divisionId_ID" Type="Edm.Guid"/>
        <Property Name="designationId_ID" Type="Edm.Guid"/>
        <Property Name="gradeId_ID" Type="Edm.Guid"/>
        <Property Name="companyId_ID" Type="Edm.Guid"/>
        <Property Name="orgLevel1_ID" Type="Edm.Guid"/>
        <Property Name="orgLevel2_ID" Type="Edm.Guid"/>
        <Property Name="orgLevel3_ID" Type="Edm.Guid"/>
        <Property Name="orgLevel4_ID" Type="Edm.Guid"/>
        <Property Name="orgLevel5_ID" Type="Edm.Guid"/>
        <Property Name="orgLevel6_ID" Type="Edm.Guid"/>
        <Property Name="ledgerId_ID" Type="Edm.Guid"/>
        <Property Name="group_ID" Type="Edm.Guid"/>
        <Property Name="currencyId_ID" Type="Edm.Guid"/>
        <Property Name="countryId_ID" Type="Edm.Int32"/>
        <Property Name="endDate" Type="Edm.Date"/>
        <NavigationProperty Name="dependents" Type="Collection(ExpenseService.UserDependents)" Partner="user">
          <OnDelete Action="Cascade"/>
        </NavigationProperty>
      </EntityType>
      <EntityType Name="EmployeeApproverMappings">
        <Key>
          <PropertyRef Name="ID"/>
        </Key>
        <Property Name="ID" Type="Edm.Guid" Nullable="false"/>
        <NavigationProperty Name="employeeId" Type="ExpenseService.Users">
          <ReferentialConstraint Property="employeeId_ID" ReferencedProperty="ID"/>
        </NavigationProperty>
        <Property Name="employeeId_ID" Type="Edm.Guid"/>
        <NavigationProperty Name="approverId" Type="ExpenseService.Users">
          <ReferentialConstraint Property="approverId_ID" ReferencedProperty="ID"/>
        </NavigationProperty>
        <Property Name="approverId_ID" Type="Edm.Guid"/>
        <Property Name="created_at" Type="Edm.DateTimeOffset" Precision="7"/>
        <Property Name="updated_at" Type="Edm.DateTimeOffset" Precision="7"/>
      </EntityType>
      <EntityType Name="RequestExpenseTypes">
        <Key>
          <PropertyRef Name="ID"/>
        </Key>
        <Property Name="ID" Type="Edm.Guid" Nullable="false"/>
        <Property Name="name" Type="Edm.String" MaxLength="100"/>
        <Property Name="description" Type="Edm.String" MaxLength="500"/>
        <Property Name="requires_escalation" Type="Edm.Boolean"/>
        <Property Name="required_fields" Type="Edm.String" MaxLength="5000"/>
        <Property Name="options" Type="Edm.String" MaxLength="5000"/>
        <Property Name="core_fields" Type="Edm.String" MaxLength="5000"/>
        <Property Name="core_field_options" Type="Edm.String" MaxLength="5000"/>
        <NavigationProperty Name="category" Type="ExpenseService.RequestExpenseCategories">
          <ReferentialConstraint Property="category_ID" ReferencedProperty="ID"/>
        </NavigationProperty>
        <Property Name="category_ID" Type="Edm.Guid"/>
        <Property Name="code" Type="Edm.String" MaxLength="100"/>
      </EntityType>
      <EntityType Name="RequestExpenseCategories">
        <Key>
          <PropertyRef Name="ID"/>
        </Key>
        <Property Name="ID" Type="Edm.Guid" Nullable="false"/>
        <Property Name="name" Type="Edm.String" MaxLength="100"/>
        <Property Name="description" Type="Edm.String" MaxLength="500"/>
        <Property Name="code" Type="Edm.String" MaxLength="100"/>
      </EntityType>
      <EntityType Name="ExpenseCategoriesExpense">
        <Key>
          <PropertyRef Name="ID"/>
        </Key>
        <Property Name="ID" Type="Edm.Guid" Nullable="false"/>
        <Property Name="name" Type="Edm.String" MaxLength="100"/>
        <Property Name="description" Type="Edm.String" MaxLength="500"/>
        <Property Name="code" Type="Edm.String" MaxLength="100"/>
      </EntityType>
      <EntityType Name="ExpenseTypesExpense">
        <Key>
          <PropertyRef Name="ID"/>
        </Key>
        <Property Name="ID" Type="Edm.Guid" Nullable="false"/>
        <Property Name="name" Type="Edm.String" MaxLength="100"/>
        <Property Name="description" Type="Edm.String" MaxLength="500"/>
        <Property Name="requires_escalation" Type="Edm.Boolean"/>
        <Property Name="required_fields" Type="Edm.String" MaxLength="5000"/>
        <Property Name="options" Type="Edm.String" MaxLength="5000"/>
        <Property Name="core_fields" Type="Edm.String" MaxLength="5000"/>
        <Property Name="core_field_options" Type="Edm.String" MaxLength="5000"/>
        <NavigationProperty Name="category" Type="ExpenseService.ExpenseCategoriesExpense">
          <ReferentialConstraint Property="category_ID" ReferencedProperty="ID"/>
        </NavigationProperty>
        <Property Name="category_ID" Type="Edm.Guid"/>
        <Property Name="code" Type="Edm.String" MaxLength="100"/>
      </EntityType>
      <EntityType Name="SegmentTypes">
        <Key>
          <PropertyRef Name="ID"/>
        </Key>
        <Property Name="ID" Type="Edm.Guid" Nullable="false"/>
        <Property Name="name" Type="Edm.String" MaxLength="100"/>
        <Property Name="description" Type="Edm.String" MaxLength="500"/>
        <Property Name="requires_escalation" Type="Edm.Boolean"/>
        <Property Name="required_fields" Type="Edm.String" MaxLength="5000"/>
        <Property Name="options" Type="Edm.String" MaxLength="5000"/>
        <Property Name="core_fields" Type="Edm.String" MaxLength="5000"/>
        <Property Name="core_field_options" Type="Edm.String" MaxLength="5000"/>
        <Property Name="code" Type="Edm.String" MaxLength="100"/>
      </EntityType>
      <EntityType Name="ExpenseTypes">
        <Key>
          <PropertyRef Name="ID"/>
        </Key>
        <Property Name="ID" Type="Edm.Guid" Nullable="false"/>
        <Property Name="name" Type="Edm.String" MaxLength="100"/>
        <Property Name="description" Type="Edm.String" MaxLength="500"/>
        <Property Name="requires_escalation" Type="Edm.Boolean"/>
        <Property Name="required_fields" Type="Edm.String" MaxLength="5000"/>
        <Property Name="options" Type="Edm.String" MaxLength="5000"/>
        <Property Name="core_fields" Type="Edm.String" MaxLength="5000"/>
        <Property Name="core_field_options" Type="Edm.String" MaxLength="5000"/>
        <Property Name="code" Type="Edm.String" MaxLength="100"/>
        <Property Name="isNonTravelPolicy" Type="Edm.Boolean" DefaultValue="false"/>
        <Property Name="isIntracityPolicy" Type="Edm.Boolean" DefaultValue="false"/>
      </EntityType>
      <EntityType Name="Segments">
        <Key>
          <PropertyRef Name="ID"/>
        </Key>
        <Property Name="ID" Type="Edm.Guid" Nullable="false"/>
        <Property Name="name" Type="Edm.String" MaxLength="100"/>
        <Property Name="description" Type="Edm.String" MaxLength="500"/>
        <Property Name="code" Type="Edm.String" MaxLength="100"/>
      </EntityType>
      <EntityType Name="ExpenseCoreFields">
        <Key>
          <PropertyRef Name="ID"/>
        </Key>
        <Property Name="ID" Type="Edm.Guid" Nullable="false"/>
        <Property Name="fieldName" Type="Edm.String" MaxLength="100"/>
        <Property Name="fieldType" Type="Edm.String" MaxLength="50"/>
        <Property Name="displayName" Type="Edm.String" MaxLength="100"/>
        <Property Name="isMandatory" Type="Edm.Boolean"/>
        <Property Name="validationRegex" Type="Edm.String" MaxLength="100"/>
      </EntityType>
      <EntityType Name="DefaultExpenseTypesFields">
        <Key>
          <PropertyRef Name="ID"/>
        </Key>
        <Property Name="ID" Type="Edm.Guid" Nullable="false"/>
        <Property Name="name" Type="Edm.String" MaxLength="100"/>
        <Property Name="required_fields" Type="Edm.String" MaxLength="5000"/>
        <Property Name="options" Type="Edm.String" MaxLength="5000"/>
        <Property Name="core_fields" Type="Edm.String" MaxLength="5000"/>
        <Property Name="core_field_options" Type="Edm.String" MaxLength="5000"/>
      </EntityType>
      <EntityType Name="UserRoleMappings">
        <Key>
          <PropertyRef Name="ID"/>
        </Key>
        <Property Name="ID" Type="Edm.Guid" Nullable="false"/>
        <Property Name="userId" Type="Edm.Guid"/>
        <Property Name="roleId" Type="Edm.Guid"/>
      </EntityType>
      <EntityType Name="Roles">
        <Key>
          <PropertyRef Name="ID"/>
        </Key>
        <Property Name="ID" Type="Edm.Guid" Nullable="false"/>
        <Property Name="name" Type="Edm.String" MaxLength="100" Nullable="false"/>
        <Property Name="created_at" Type="Edm.DateTimeOffset" Precision="7"/>
        <Property Name="updated_at" Type="Edm.DateTimeOffset" Precision="7"/>
      </EntityType>
      <EntityType Name="RequestExpenseTypePolicyMapping">
        <Key>
          <PropertyRef Name="ID"/>
        </Key>
        <Property Name="ID" Type="Edm.Guid" Nullable="false"/>
        <NavigationProperty Name="policy" Type="ExpenseService.Policies">
          <ReferentialConstraint Property="policy_ID" ReferencedProperty="ID"/>
        </NavigationProperty>
        <Property Name="policy_ID" Type="Edm.Guid"/>
        <NavigationProperty Name="expense_type" Type="ExpenseService.RequestExpenseTypes">
          <ReferentialConstraint Property="expense_type_ID" ReferencedProperty="ID"/>
        </NavigationProperty>
        <Property Name="expense_type_ID" Type="Edm.Guid"/>
      </EntityType>
      <EntityType Name="RequestGroupPolicyMapping">
        <Key>
          <PropertyRef Name="ID"/>
        </Key>
        <Property Name="ID" Type="Edm.Guid" Nullable="false"/>
        <NavigationProperty Name="policy" Type="ExpenseService.Policies">
          <ReferentialConstraint Property="policy_ID" ReferencedProperty="ID"/>
        </NavigationProperty>
        <Property Name="policy_ID" Type="Edm.Guid"/>
        <Property Name="group_ID" Type="Edm.Guid"/>
      </EntityType>
      <EntityType Name="Policies">
        <Key>
          <PropertyRef Name="ID"/>
        </Key>
        <Property Name="ID" Type="Edm.Guid" Nullable="false"/>
        <Property Name="name" Type="Edm.String" MaxLength="100"/>
        <Property Name="description" Type="Edm.String" MaxLength="500"/>
        <Property Name="isInternationalPolicy" Type="Edm.Boolean" DefaultValue="false"/>
        <Property Name="created_at" Type="Edm.DateTimeOffset" Precision="7"/>
        <Property Name="updated_at" Type="Edm.DateTimeOffset" Precision="7"/>
        <Property Name="approvers_ID" Type="Edm.Guid"/>
      </EntityType>
      <EntityType Name="ExpenseExpenseTypePolicyMapping">
        <Key>
          <PropertyRef Name="ID"/>
        </Key>
        <Property Name="ID" Type="Edm.Guid" Nullable="false"/>
        <NavigationProperty Name="policy" Type="ExpenseService.Policies">
          <ReferentialConstraint Property="policy_ID" ReferencedProperty="ID"/>
        </NavigationProperty>
        <Property Name="policy_ID" Type="Edm.Guid"/>
        <NavigationProperty Name="expense_type" Type="ExpenseService.RequestExpenseTypes">
          <ReferentialConstraint Property="expense_type_ID" ReferencedProperty="ID"/>
        </NavigationProperty>
        <Property Name="expense_type_ID" Type="Edm.Guid"/>
      </EntityType>
      <EntityType Name="ExpenseGroupPolicyMapping">
        <Key>
          <PropertyRef Name="ID"/>
        </Key>
        <Property Name="ID" Type="Edm.Guid" Nullable="false"/>
        <NavigationProperty Name="policy" Type="ExpenseService.Policies">
          <ReferentialConstraint Property="policy_ID" ReferencedProperty="ID"/>
        </NavigationProperty>
        <Property Name="policy_ID" Type="Edm.Guid"/>
        <Property Name="group_ID" Type="Edm.Guid"/>
      </EntityType>
      <EntityType Name="ExpenseTravelAllowance">
        <Key>
          <PropertyRef Name="ID"/>
        </Key>
        <Property Name="ID" Type="Edm.Guid" Nullable="false"/>
        <Property Name="travelAllowanceName" Type="Edm.String"/>
        <Property Name="group_ID" Type="Edm.Guid"/>
        <Property Name="policy_ID" Type="Edm.Guid"/>
        <Property Name="expenseTypes" Type="Edm.String"/>
      </EntityType>
      <EntityType Name="ExpenseRecordEntries">
        <Key>
          <PropertyRef Name="ID"/>
        </Key>
        <Property Name="ID" Type="Edm.Guid" Nullable="false"/>
        <Property Name="name" Type="Edm.String" MaxLength="100"/>
        <Property Name="reject_comments" Type="Edm.String"/>
        <Property Name="reply_comments" Type="Edm.String"/>
        <Property Name="details" Type="Edm.String"/>
        <Property Name="status" Type="Edm.String" MaxLength="50" DefaultValue="Pending"/>
        <Property Name="created_at" Type="Edm.DateTimeOffset" Precision="7"/>
        <Property Name="updated_at" Type="Edm.DateTimeOffset" Precision="7"/>
        <NavigationProperty Name="userId" Type="ExpenseService.Users">
          <ReferentialConstraint Property="userId_ID" ReferencedProperty="ID"/>
        </NavigationProperty>
        <Property Name="userId_ID" Type="Edm.Guid"/>
        <NavigationProperty Name="approverId" Type="ExpenseService.Users">
          <ReferentialConstraint Property="approverId_ID" ReferencedProperty="ID"/>
        </NavigationProperty>
        <Property Name="approverId_ID" Type="Edm.Guid"/>
        <NavigationProperty Name="policy" Type="ExpenseService.Policies">
          <ReferentialConstraint Property="policy_ID" ReferencedProperty="ID"/>
        </NavigationProperty>
        <Property Name="policy_ID" Type="Edm.Guid"/>
        <Property Name="warnings" Type="Edm.String" MaxLength="1000"/>
        <Property Name="isEscalated" Type="Edm.Boolean"/>
        <Property Name="travelRequestEntries_ID" Type="Edm.Guid"/>
        <Property Name="sap_sent" Type="Edm.Boolean" DefaultValue="false"/>
        <Property Name="sap_sent_date" Type="Edm.DateTimeOffset" Precision="7"/>
        <Property Name="sap_batch_id" Type="Edm.String" MaxLength="100"/>
        <NavigationProperty Name="expenses" Type="Collection(ExpenseService.ExpenseRecordExpenses)" Partner="expenseRecordExpenses">
          <OnDelete Action="Cascade"/>
        </NavigationProperty>
        <Property Name="downloaded" Type="Edm.Boolean" DefaultValue="false"/>
        <Property Name="downloaded_at" Type="Edm.DateTimeOffset"/>
      </EntityType>
      <EntityType Name="UserDependents">
        <Key>
          <PropertyRef Name="ID"/>
        </Key>
        <Property Name="ID" Type="Edm.Guid" Nullable="false"/>
        <NavigationProperty Name="user" Type="ExpenseService.Users" Partner="dependents">
          <ReferentialConstraint Property="user_ID" ReferencedProperty="ID"/>
        </NavigationProperty>
        <Property Name="user_ID" Type="Edm.Guid"/>
        <Property Name="name" Type="Edm.String" MaxLength="255"/>
        <Property Name="relation" Type="Edm.String" MaxLength="50"/>
        <Property Name="passportNumber" Type="Edm.String" MaxLength="100"/>
        <Property Name="passportExpiryDate" Type="Edm.Date"/>
        <Property Name="aadharNumber" Type="Edm.String" MaxLength="100"/>
      </EntityType>
      <EntityType Name="ExpenseRecordExpenses">
        <Key>
          <PropertyRef Name="ID"/>
        </Key>
        <Property Name="ID" Type="Edm.Guid" Nullable="false"/>
        <NavigationProperty Name="expenseRecordExpenses" Type="ExpenseService.ExpenseRecordEntries" Partner="expenses">
          <ReferentialConstraint Property="expenseRecordExpenses_ID" ReferencedProperty="ID"/>
        </NavigationProperty>
        <Property Name="expenseRecordExpenses_ID" Type="Edm.Guid"/>
        <NavigationProperty Name="expenseType" Type="ExpenseService.ExpenseTypes">
          <ReferentialConstraint Property="expenseType_ID" ReferencedProperty="ID"/>
        </NavigationProperty>
        <Property Name="expenseType_ID" Type="Edm.Guid"/>
        <Property Name="estimated_amount" Type="Edm.Decimal" Precision="15" Scale="2"/>
        <Property Name="actual_amount" Type="Edm.Decimal" Precision="15" Scale="2"/>
        <Property Name="details" Type="Edm.String"/>
        <Property Name="comments" Type="Edm.String" MaxLength="500"/>
        <Property Name="created_at" Type="Edm.DateTimeOffset" Precision="7"/>
        <Property Name="updated_at" Type="Edm.DateTimeOffset" Precision="7"/>
        <Property Name="file_path" Type="Edm.String" MaxLength="2000"/>
        <Property Name="Itemization" Type="Edm.String"/>
      </EntityType>
      <ComplexType Name="FinanceStatsType">
        <Property Name="processedExpensesCount" Type="Edm.Int32"/>
        <Property Name="approvedExpensesCount" Type="Edm.Int32"/>
        <Property Name="totalExpenseAmount" Type="Edm.Decimal" Precision="15" Scale="2"/>
        <Property Name="totalApprovers" Type="Edm.Int32"/>
      </ComplexType>
      <ComplexType Name="ExpenseTypeOption">
        <Property Name="field" Type="Edm.String"/>
        <Property Name="options" Type="Collection(Edm.String)" Nullable="false"/>
      </ComplexType>
      <ComplexType Name="return_ExpenseService_checkDuplicateExpenseRecord">
        <Property Name="isDuplicate" Type="Edm.Boolean"/>
        <Property Name="message" Type="Edm.String"/>
        <Property Name="existingRecordID" Type="Edm.Guid"/>
      </ComplexType>
      <Action Name="getFinanceStats" IsBound="false">
        <ReturnType Type="ExpenseService.FinanceStatsType"/>
      </Action>
      <Action Name="getExpenseTypeOptions" IsBound="false">
        <Parameter Name="expenseTypeID" Type="Edm.Guid"/>
        <Parameter Name="rule_type" Type="Edm.String"/>
        <ReturnType Type="Collection(ExpenseService.ExpenseTypeOption)" Nullable="false"/>
      </Action>
      <Action Name="getPlannedExpenses" IsBound="false">
        <Parameter Name="travelRequestId" Type="Edm.Guid"/>
        <ReturnType Type="Collection(ExpenseService.TravelRequestExpenses)"/>
      </Action>
      <Action Name="deleteExpenseRecord" IsBound="false">
        <Parameter Name="expenseID" Type="Edm.Guid"/>
        <ReturnType Type="Edm.Boolean"/>
      </Action>
      <Action Name="getTravelAllowanceForUser" IsBound="false">
        <Parameter Name="policyID" Type="Edm.Guid"/>
        <Parameter Name="userID" Type="Edm.Guid"/>
        <ReturnType Type="ExpenseService.ExpenseTravelAllowance"/>
      </Action>
      <Action Name="checkDuplicateExpenseRecord" IsBound="false">
        <Parameter Name="policy_ID" Type="Edm.Guid"/>
        <Parameter Name="start_date" Type="Edm.Date"/>
        <Parameter Name="end_date" Type="Edm.Date"/>
        <Parameter Name="userId" Type="Edm.Guid"/>
        <ReturnType Type="ExpenseService.return_ExpenseService_checkDuplicateExpenseRecord"/>
      </Action>
      <Annotations Target="ExpenseService.TravelRequestExpenses/ID">
        <Annotation Term="Core.ComputedDefaultValue" Bool="true"/>
      </Annotations>
      <Annotations Target="ExpenseService.Users/ID">
        <Annotation Term="Core.ComputedDefaultValue" Bool="true"/>
      </Annotations>
      <Annotations Target="ExpenseService.EmployeeApproverMappings/ID">
        <Annotation Term="Core.ComputedDefaultValue" Bool="true"/>
      </Annotations>
      <Annotations Target="ExpenseService.RequestExpenseTypes/ID">
        <Annotation Term="Core.ComputedDefaultValue" Bool="true"/>
      </Annotations>
      <Annotations Target="ExpenseService.RequestExpenseCategories/ID">
        <Annotation Term="Core.ComputedDefaultValue" Bool="true"/>
      </Annotations>
      <Annotations Target="ExpenseService.ExpenseCategoriesExpense/ID">
        <Annotation Term="Core.ComputedDefaultValue" Bool="true"/>
      </Annotations>
      <Annotations Target="ExpenseService.ExpenseTypesExpense/ID">
        <Annotation Term="Core.ComputedDefaultValue" Bool="true"/>
      </Annotations>
      <Annotations Target="ExpenseService.SegmentTypes/ID">
        <Annotation Term="Core.ComputedDefaultValue" Bool="true"/>
      </Annotations>
      <Annotations Target="ExpenseService.ExpenseTypes/ID">
        <Annotation Term="Core.ComputedDefaultValue" Bool="true"/>
      </Annotations>
      <Annotations Target="ExpenseService.Segments/ID">
        <Annotation Term="Core.ComputedDefaultValue" Bool="true"/>
      </Annotations>
      <Annotations Target="ExpenseService.ExpenseCoreFields/ID">
        <Annotation Term="Core.ComputedDefaultValue" Bool="true"/>
      </Annotations>
      <Annotations Target="ExpenseService.DefaultExpenseTypesFields/ID">
        <Annotation Term="Core.ComputedDefaultValue" Bool="true"/>
      </Annotations>
      <Annotations Target="ExpenseService.UserRoleMappings/ID">
        <Annotation Term="Core.ComputedDefaultValue" Bool="true"/>
      </Annotations>
      <Annotations Target="ExpenseService.Roles/ID">
        <Annotation Term="Core.ComputedDefaultValue" Bool="true"/>
      </Annotations>
      <Annotations Target="ExpenseService.RequestExpenseTypePolicyMapping/ID">
        <Annotation Term="Core.ComputedDefaultValue" Bool="true"/>
      </Annotations>
      <Annotations Target="ExpenseService.RequestGroupPolicyMapping/ID">
        <Annotation Term="Core.ComputedDefaultValue" Bool="true"/>
      </Annotations>
      <Annotations Target="ExpenseService.Policies/ID">
        <Annotation Term="Core.ComputedDefaultValue" Bool="true"/>
      </Annotations>
      <Annotations Target="ExpenseService.ExpenseExpenseTypePolicyMapping/ID">
        <Annotation Term="Core.ComputedDefaultValue" Bool="true"/>
      </Annotations>
      <Annotations Target="ExpenseService.ExpenseGroupPolicyMapping/ID">
        <Annotation Term="Core.ComputedDefaultValue" Bool="true"/>
      </Annotations>
      <Annotations Target="ExpenseService.ExpenseTravelAllowance/ID">
        <Annotation Term="Core.ComputedDefaultValue" Bool="true"/>
      </Annotations>
      <Annotations Target="ExpenseService.ExpenseRecordEntries/ID">
        <Annotation Term="Core.ComputedDefaultValue" Bool="true"/>
      </Annotations>
      <Annotations Target="ExpenseService.UserDependents/ID">
        <Annotation Term="Core.ComputedDefaultValue" Bool="true"/>
      </Annotations>
      <Annotations Target="ExpenseService.ExpenseRecordExpenses/ID">
        <Annotation Term="Core.ComputedDefaultValue" Bool="true"/>
      </Annotations>
    </Schema>
  </edmx:DataServices>
</edmx:Edmx>