Interface Documentation
Overview
Domain Interfaces
IExpense
import {IBaseEntityBeeoClockTenantId} from '@beeoclock/common/core/entities/i.base.entity.beeoclock.tenant.id';
import {ExpenseValueRootValueObject} from '../value-objects/expense-value.value-object';
import {ExpenseItemValueObject} from '../value-objects/expense-item.value-object';
export interface IExpense extends IBaseEntityBeeoClockTenantId {
totalValue: ExpenseValueRootValueObject; // Total monetary value of the expense
expensedAt: Date; // Date when the expense occurred
description?: string; // Optional description of the expense
items?: ExpenseItemValueObject[]; // Array of individual expense line items
}IExpenseCategory
IExpenseRepository
IExpenseCategoryRepository
Value Objects
ExpenseValueRootValueObject
ExpenseItemValueObject
ExpenseSourceValueObject
Enumerations
ExpenseSourceTypeEnum
Data Transfer Objects (DTOs)
ExpenseDto
ExpenseValueDto
ExpenseItemDto
ExpenseSourceDto
ExpenseCategoryDto
ExpensePaginationDto
Mappers
ExpenseMapperToDto
ExpenseMapperToDomain
Use Case Interfaces
ICreateExpenseUseCase
IGetPagedExpensesUseCase
Architecture Integration
Dependency Injection
Module Configuration
Design Patterns
Repository Pattern
Value Object Pattern
Domain-Driven Design
Command Query Responsibility Segregation (CQRS)
Validation Rules
Domain Validation
DTO Validation
Repository Validation
Error Handling
Domain Exceptions
Repository Exceptions
Testing Interfaces
Mock Repositories
Test Builders
Last updated