bmad初始化

This commit is contained in:
2025-11-01 19:22:39 +08:00
parent 5b21dc0bd5
commit 426ae41f54
447 changed files with 80633 additions and 0 deletions

View File

@@ -0,0 +1,85 @@
# Component Inventory - Main
This document provides an inventory of key software components within the Pig Farm Controller application, categorized by their primary function and layer.
## 1. Application Layer Components (`internal/app`)
### 1.1. API and Controllers
These components handle incoming HTTP requests, route them to appropriate handlers, and manage the request/response cycle.
* **`api.go`**: Initializes the Echo web framework and sets up global middleware and controllers.
* **`router.go`**: Defines all API routes, mapping HTTP methods and paths to specific controller functions. Includes public and authenticated routes.
* **`controller/user`**: Handles user-related API endpoints (e.g., registration, login, notifications).
* **`controller/device`**: Manages device-related API endpoints (e.g., CRUD for devices, area controllers, device templates, manual control).
* **`controller/management`**: Manages pig batch related API endpoints (e.g., pig houses, pens, pig batches, transfers, sales, health records).
* **`controller/monitor`**: Provides API endpoints for monitoring various logs and sensor data.
* **`controller/plan`**: Handles plan-related API endpoints (e.g., CRUD for plans, start/stop plans).
* **`controller/response.go`**: Utility for standardized API response formatting.
### 1.2. DTOs (Data Transfer Objects)
Located in `internal/app/dto/`, these define the structures for request and response payloads, ensuring clear data contracts for the API.
* `device_dto.go`
* `monitor_dto.go`
* `notification_dto.go`
* `pig_batch_dto.go`
* `pig_farm_dto.go`
* `plan_dto.go`
* `user_dto.go`
### 1.3. Middleware
Located in `internal/app/middleware/`, these components process requests before they reach the main handlers.
* `audit.go`**: Implements audit logging for authenticated requests.
* **`auth.go`**: Handles JWT-based authentication for protected routes.
### 1.4. Application Services
Located in `internal/app/service/`, these orchestrate business logic and interact with domain services and repositories.
* `device_service.go`
* `monitor_service.go`
* `pig_batch_service.go`
* `pig_farm_service.go`
* `pig_service.go`
* `plan_service.go`
* `user_service.go`
### 1.5. Webhook Handlers
Located in `internal/app/webhook/`, these handle incoming webhooks from external systems.
* `chirp_stack.go`**: Processes webhooks from ChirpStack LoRaWAN Network Server.
* `chirp_stack_types.go`**: Defines data structures for ChirpStack webhooks.
* `placeholder_listener.go`**: Placeholder for other webhook listeners.
* `transport.go`**: Generic webhook transport interface.
## 2. Domain Layer Components (`internal/domain`)
These components encapsulate the core business logic and domain rules.
* **`audit/service.go`**: Defines audit logging operations.
* **`device/device_service.go`**: Core business logic for device management.
* **`notify/notify.go`**: Defines notification interfaces.
* **`pig/`**: Contains business logic related to pig management (e.g., `pen_transfer_manager.go`, `pig_batch_service.go`, `pig_sick_manager.go`, `pig_trade_manager.go`).
* **`scheduler/`**: Manages task scheduling and execution.
* **`task/`**: Defines various background tasks (e.g., `delay_task.go`, `full_collection_task.go`).
* **`token/token_service.go`**: Handles JWT token creation and validation.
## 3. Infrastructure Layer Components (`internal/infra`)
These components deal with external concerns and technical details.
* **`config/config.go`**: Manages application configuration loading.
* **`database/`**: Handles database connection, migration, and GORM setup.
* **`logs/logs.go`**: Provides logging utilities (using Zap).
* **`models/`**: Defines GORM models that map to database tables.
* **`notify/`**: Implements various notification channels (e.g., `lark.go`, `smtp.go`, `wechat.go`).
* **`repository/`**: Provides data access logic for different entities (e.g., `user_repository.go`, `device_repository.go`, `pig_batch_repository.go`).
* **`transport/`**: Handles communication with external systems, particularly LoRaWAN.
* `lora/`**: LoRaWAN specific transport implementation.
* `proto/`**: Protocol Buffer definitions for external communication.
* **`utils/`**: General utility functions.