55 lines
2.1 KiB
Markdown
55 lines
2.1 KiB
Markdown
|
|
# SERVICE LAYER KNOWLEDGE BASE
|
||
|
|
|
||
|
|
**Generated:** 2026-01-28
|
||
|
|
**Parent:** EmailBill/AGENTS.md
|
||
|
|
|
||
|
|
## OVERVIEW
|
||
|
|
Business logic layer with job scheduling, email processing, and application services.
|
||
|
|
|
||
|
|
## STRUCTURE
|
||
|
|
```
|
||
|
|
Service/
|
||
|
|
├── GlobalUsings.cs # Common imports
|
||
|
|
├── Jobs/ # Background jobs
|
||
|
|
│ ├── BudgetArchiveJob.cs # Budget archiving
|
||
|
|
│ ├── DbBackupJob.cs # Database backups
|
||
|
|
│ ├── EmailSyncJob.cs # Email synchronization
|
||
|
|
│ └── PeriodicBillJob.cs # Periodic bill processing
|
||
|
|
├── EmailServices/ # Email processing
|
||
|
|
│ ├── EmailHandleService.cs # Email handling logic
|
||
|
|
│ ├── EmailFetchService.cs # Email fetching
|
||
|
|
│ ├── EmailSyncService.cs # Email synchronization
|
||
|
|
│ └── EmailParse/ # Email parsing services
|
||
|
|
├── AppSettingModel/ # Configuration models
|
||
|
|
├── Budget/ # Budget services
|
||
|
|
└── [Various service classes] # Core business services
|
||
|
|
```
|
||
|
|
|
||
|
|
## WHERE TO LOOK
|
||
|
|
| Task | Location | Notes |
|
||
|
|
|------|----------|-------|
|
||
|
|
| Background jobs | Jobs/ | Scheduled tasks, cron patterns |
|
||
|
|
| Email processing | EmailServices/ | Email parsing, handling, sync |
|
||
|
|
| Budget logic | Budget/ | Budget calculations, stats |
|
||
|
|
| Configuration | AppSettingModel/ | Settings models, validation |
|
||
|
|
| Core services | *.cs | Main business logic |
|
||
|
|
|
||
|
|
## CONVENTIONS
|
||
|
|
- Service classes end with "Service" suffix
|
||
|
|
- Jobs inherit from appropriate base job classes
|
||
|
|
- Use IDateTimeProvider for time operations
|
||
|
|
- Async/await for I/O operations
|
||
|
|
- Dependency injection via constructor
|
||
|
|
|
||
|
|
## ANTI-PATTERNS (THIS LAYER)
|
||
|
|
- Never access database directly (use repositories)
|
||
|
|
- Don't return domain entities to controllers (use DTOs)
|
||
|
|
- Avoid long-running operations in main thread
|
||
|
|
- No hardcoded configuration values
|
||
|
|
- Don't mix service responsibilities
|
||
|
|
|
||
|
|
## UNIQUE STYLES
|
||
|
|
- Email parsing with multiple format handlers
|
||
|
|
- Background job patterns with error handling
|
||
|
|
- Configuration models with validation attributes
|
||
|
|
- Service composition patterns
|