Files
EmailBill/Service/AGENTS.md
SunCheng b71eadd4f9
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
重构账单查询sql
2026-01-28 10:58:15 +08:00

2.1 KiB

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