# 项目目录结构规范

## 核心目录

| 目录 | 职责 | 禁止事项 |
|------|------|----------|
| `/api` 或 `/internal/handler` | GIN Handler 层，解析请求、调用 service、返回响应 | 禁止写业务逻辑 |
| `/internal/service` | 业务逻辑核心，编排 dao 完成功能 | - |
| `/internal/dao` 或 `/internal/repository` | 数据访问层，封装 GORM 操作 | 禁止引用 service |
| `/internal/model/entity` | 数据库表结构对应的持久化对象 | - |
| `/internal/model/dto` | API 数据传输对象（请求/响应） | - |
| `/pkg/common` | 统一响应、错误码、公共工具 | - |
| `/configs` | 配置文件 | - |
| `/cmd` | main.go 入口 | - |

## 依赖规则

```
handler → service → dao
    ↓         ↓        ↓
         pkg/common (任意层可引用)
```

**严禁反向或跨层依赖**

## go.mod 内部模块引用

```go
module my-project

go 1.24

require (
    wdd.io/TonyCommon v1.0.0
)

// 本地开发使用 replace
replace wdd.io/TonyCommon => ../TonyCommon
```
