# 源代码树分析 - 主模块

本文档提供了项目源代码结构的带注释概述，重点关注包含核心应用程序逻辑的 `internal/` 目录。

```
internal/
├── app/                  # 应用层：处理 HTTP 请求、DTO 和协调服务。
│   ├── api/              # API 定义和路由 (Echo 框架)。
│   ├── controller/       # 各领域（用户、设备、计划、猪场、监控）的请求处理器。
│   │   ├── device/       # 设备相关的 API 控制器。
│   │   ├── management/   # 管理相关的 API 控制器（例如，猪群批次）。
│   │   ├── monitor/      # 监控相关的 API 控制器。
│   │   ├── plan/         # 计划相关的 API 控制器。
│   │   └── user/         # 用户相关的 API 控制器。
│   ├── dto/              # 数据传输对象：API 的请求/响应模型。
│   ├── middleware/       # HTTP 中间件（例如，身份验证、审计日志）。
│   ├── service/          # 应用服务：业务逻辑协调。
│   └── webhook/          # Webhook 处理器（例如，ChirpStack）。
├── core/                 # 核心应用组件：初始化和数据设置。
│   ├── application.go    # 主应用程序设置。
│   ├── component_initializers.go # 初始化各种应用程序组件。
│   └── data_initializer.go # 初始化核心数据。
├── domain/               # 领域层：业务逻辑和实体。
│   ├── audit/            # 审计相关的领域服务。
│   ├── device/           # 设备相关的领域服务。
│   ├── notify/           # 通知领域服务。
│   ├── pig/              # 猪只和猪群批次相关的领域服务。
│   ├── scheduler/        # 调度领域服务。
│   ├── task/             # 任务相关的领域服务。
│   └── token/            # 令牌管理领域服务。
└── infra/                # 基础设施层：外部关注点（数据库、日志、配置、外部 API）。
    ├── config/           # 配置管理。
    ├── database/         # 数据库连接和 ORM 设置 (PostgreSQL, SQLite)。
    ├── logs/             # 日志工具。
    ├── models/           # GORM 模型（数据库模式定义）。
    ├── notify/           # 通知实现（Lark、SMTP、微信）。
    ├── repository/       # 数据仓库：数据库交互逻辑。
    ├── transport/        # 外部通信（例如，LoRaWAN ChirpStack）。
    │   ├── lora/         # LoRaWAN 特定传输。
    │   └── proto/        # 协议缓冲区定义。
    └── utils/            # 通用工具。
```
