All checks were successful
Docker Build & Deploy / Build Docker Image (push) Successful in 26s
Docker Build & Deploy / Deploy to Production (push) Successful in 7s
Docker Build & Deploy / Cleanup Dangling Images (push) Successful in 2s
Docker Build & Deploy / WeChat Notification (push) Successful in 2s
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 |