# Data Models - Main This document outlines the database models (tables) used in the Pig Farm Controller application, primarily managed by GORM. ## Overview The `GetAllModels()` function in `internal/infra/models/models.go` provides a comprehensive list of all GORM models, which correspond to the database tables. This ensures that all necessary tables are migrated during database initialization. ## Database Tables Below is a list of all identified database tables: ### Core Models * `User` * `UserActionLog` ### Device Models * `Device` * `AreaController` * `DeviceTemplate` * `SensorData` * `DeviceCommandLog` ### Plan & Task Models * `Plan` * `SubPlan` * `Task` * `PlanExecutionLog` * `TaskExecutionLog` * `PendingTask` * `PendingCollection` ### Farm Asset Models * `PigHouse` * `Pen` ### Pig & Batch Models * `PigBatch` * `PigBatchLog` * `WeighingBatch` * `WeighingRecord` * `PigTransferLog` * `PigSickLog` ### Pig Buy & Sell Models * `PigPurchase` * `PigSale` ### Feed Models * `RawMaterial` * `RawMaterialPurchase` * `RawMaterialStockLog` * `FeedFormula` * `FeedFormulaComponent` * `FeedUsageRecord` ### Medication Models * `Medication` * `MedicationLog` ### Notification Models * `Notification`