# 数据模型 - 主模块

本文档概述了猪场控制器应用程序中使用的数据库模型（表），主要由 GORM 管理。

## 概述

`internal/infra/models/models.go` 中的 `GetAllModels()` 函数提供了所有 GORM 模型的完整列表，这些模型对应于数据库表。这确保了在数据库初始化期间迁移所有必要的表。

## 数据库表

以下是所有已识别的数据库表列表：

### 核心模型

*   `User` (用户)
*   `UserActionLog` (用户操作日志)

### 设备模型

*   `Device` (设备)
*   `AreaController` (区域控制器)
*   `DeviceTemplate` (设备模板)
*   `SensorData` (传感器数据)
*   `DeviceCommandLog` (设备命令日志)

### 计划与任务模型

*   `Plan` (计划)
*   `SubPlan` (子计划)
*   `Task` (任务)
*   `PlanExecutionLog` (计划执行日志)
*   `TaskExecutionLog` (任务执行日志)
*   `PendingTask` (待处理任务)
*   `PendingCollection` (待处理采集)

### 农场资产模型

*   `PigHouse` (猪舍)
*   `Pen` (猪圈)

### 猪只与批次模型

*   `PigBatch` (猪群批次)
*   `PigBatchLog` (猪群批次日志)
*   `WeighingBatch` (称重批次)
*   `WeighingRecord` (称重记录)
*   `PigTransferLog` (猪只转栏日志)
*   `PigSickLog` (病猪日志)

### 猪只买卖模型

*   `PigPurchase` (猪只采购)
*   `PigSale` (猪只销售)

### 饲料模型

*   `RawMaterial` (原材料)
*   `RawMaterialPurchase` (原材料采购)
*   `RawMaterialStockLog` (原材料库存日志)
*   `FeedFormula` (饲料配方)
*   `FeedFormulaComponent` (饲料配方成分)
*   `FeedUsageRecord` (饲料使用记录)

### 用药模型

*   `Medication` (药物)
*   `MedicationLog` (用药记录)

### 通知模型

*   `Notification` (通知)
