ea40e5c002
TaxBaik CI/CD / build-and-deploy (push) Successful in 50s
Domain Layer (SOLID Foundation): - 5 New Entities: TaxProfile, TaxFilingSchedule, ConsultingActivity, Contract, RevenueTracking - Client entity extended with tax-specific fields - Multi-tenant support (company_id) Database Migration (V015): - Create tax_profiles table for detailed tax info - Create tax_filing_schedules for deadline tracking - Create consulting_activities for CRM (activity history) - Create contracts for contract management - Create revenue_tracking for invoice and payment tracking - Add indexes for performance optimization Repository Interfaces: - ITaxProfileRepository (tax profile CRUD + risk analysis) - ITaxFilingScheduleRepository (schedule management + deadline tracking) - IConsultingActivityRepository (CRM activity tracking) - IContractRepository (contract lifecycle + MRR calculation) - IRevenueTrackingRepository (invoice + payment tracking + revenue analysis) Architecture: - Follows Repository Pattern with clear separation of concerns - SOLID principles: each repo = one responsibility - Extensible design for multi-tenant support - Supports specialized tax accounting and CRM workflows
13 lines
708 B
C#
13 lines
708 B
C#
namespace TaxBaik.Domain.Interfaces;
|
|
|
|
using TaxBaik.Domain.Entities;
|
|
|
|
public interface IConsultingActivityRepository
|
|
{
|
|
Task<int> CreateAsync(ConsultingActivity activity, CancellationToken cancellationToken = default);
|
|
Task<IEnumerable<ConsultingActivity>> GetByClientIdAsync(int clientId, CancellationToken cancellationToken = default);
|
|
Task<IEnumerable<ConsultingActivity>> GetPendingFollowupsAsync(CancellationToken cancellationToken = default);
|
|
Task<IEnumerable<ConsultingActivity>> GetByConsultantAsync(int consultantId, DateTime fromDate, CancellationToken cancellationToken = default);
|
|
Task UpdateAsync(ConsultingActivity activity, CancellationToken cancellationToken = default);
|
|
}
|