/**
 * Core Services Index
 *
 * Exports core business logic services shared across modules.
 * These services provide multi-tenant support via ServiceContext.
 *
 * @module Core
 */

// Export shared interfaces
export { ServiceContext, PaginatedResult } from './sequence.service';

// Sequence Service - Document number generation
export {
  SequenceService,
  CreateSequenceDto,
  UpdateSequenceDto,
  SequenceFilters,
} from './sequence.service';

// Currency Service - Currency and exchange rate management
export {
  CurrencyService,
  CreateCurrencyRateDto,
  CurrencyRateFilters,
  ConversionResult,
} from './currency.service';

// UoM Service - Unit of measure management
export {
  UomService,
  CreateUomCategoryDto,
  UpdateUomCategoryDto,
  CreateUomDto,
  UpdateUomDto,
  UomFilters,
  ConversionResult as UomConversionResult,
} from './uom.service';

// Payment Term Service - Payment terms and due date calculations
export {
  PaymentTermService,
  CreatePaymentTermDto,
  UpdatePaymentTermDto,
  CreatePaymentTermLineDto,
  PaymentTermFilters,
  PaymentScheduleItem,
} from './payment-term.service';

// Geography Service - Country and state management
export {
  GeographyService,
  StateFilters,
} from './geography.service';

// Product Category Service - Hierarchical category management
export {
  ProductCategoryService,
  CreateProductCategoryDto,
  UpdateProductCategoryDto,
  ProductCategoryFilters,
  CategoryTreeNode,
} from './product-category.service';

// Discount Rule Service - Discount management and calculations
// Added: 2026-02-03 - GAP-CORE-001 remediation
export {
  DiscountRuleService,
  CreateDiscountRuleDto,
  UpdateDiscountRuleDto,
  DiscountRuleFilters,
  DiscountCalculation,
  ApplicabilityContext,
} from './discount-rule.service';
