# 智慧停车管理系统 (Smart Parking)

基于 Wails v2 构建的单进程桌面应用，零外部依赖。

## 技术栈

- **桌面框架**：Wails v2.13
- **后端**：Go 1.25 + Gin + GORM + Casbin v3 + JWT
- **前端**：Vue 3 + Vite 4 + Element Plus + Pinia
- **数据库**：SQLite（`%APPDATA%/smart-parking/lc_garage.db`）

## 环境要求

- Go >= 1.25 / Node.js >= 16
- Wails CLI：`go install github.com/wailsapp/wails/v2/cmd/wails@latest`
- Windows 10 build 1809+（WebView2 运行时）

## 快速开始

```bash
# 1. 安装前端依赖
cd frontend && npm install && cd ..

# 2. 启动开发模式
wails dev

# 3. 生产构建
wails build
# 产物：build/bin/smart-parking.exe
```

## 管理员账户

- 账号：`admin` / 密码：`123456`
- 首次启动自动创建系统数据（用户、角色、菜单、权限、字典）

## 数据库

- 文件位置：`%APPDATA%/smart-parking/lc_garage.db`
- `config.yaml` 中 `sqlite.path` 为空时使用默认路径
- 查询工具：[DB Browser for SQLite](https://sqlitebrowser.org/)

## 项目结构

```
lc_garage/
├── main.go                  # Wails 入口
├── wails.json               # Wails 配置
├── go.mod                   # 根模块 (wails-app)
├── config.yaml              # 后端配置
│
├── internal/                # Go 后端
│   ├── api/v1/              #   API 控制器（system/parking/uhf/vehicle/owner）
│   ├── service/             #   业务逻辑（含 UHF TCP/串口硬件驱动）
│   ├── router/              #   路由注册
│   ├── model/               #   数据模型（Request/Response DTO）
│   ├── dao/                 #   数据访问（GORM 实体，25 张表）
│   ├── middleware/           #   中间件（JWT/CORS/Casbin）
│   ├── core/                #   核心（Viper/Zap/Server）
│   ├── config/              #   配置结构体
│   ├── global/              #   全局变量
│   ├── initialize/          #   初始化（GORM/Seed/Timer）
│   ├── plugin/              #   插件（email/ws）
│   ├── utils/               #   工具函数
│   └── pkg/                 #   工具函数（core 层引用）
│
├── frontend/                # Vue 3 前端
│   └── src/
│       ├── api/             #   API 封装（24 文件）
│       ├── view/            #   业务页面
│       │   ├── parking/     #     停车管理（含 Tab 联动）
│       │   ├── dashboard/   #     仪表盘
│       │   ├── superAdmin/  #     系统管理
│       │   └── ...
│       ├── pinia/           #   状态管理
│       └── router/          #   路由配置
│
├── build/bin/               # 构建输出
│   └── smart-parking.exe
│
└── doc/                     # 文档
    ├── PROJECT.md
    └── 代码规划.md          # 目标架构蓝图
```

## 代码规范

- **旧模块**（`internal/api/` `internal/service/` 等）：保持不动，继续维护
- **新模块**（`internal/modules/<module>/`）：自包含 api / service / repository / model 四层
- 详细规范见 [CLAUDE.md](CLAUDE.md)

## 常见问题

**双击 exe 打不开？** 确保 `config.yaml` 与 `smart-parking.exe` 在同一目录。

**超级管理员菜单不显示？** 删除 `%APPDATA%/smart-parking/lc_garage.db` 后重启重建。

**wails dev 卡住？** 确保 `cd frontend && npm install` 已执行过。

**端口 5173 被占用？** 上次 `wails dev` 残留的 node 进程，任务管理器结束即可。
