feat: add customer-owned frontend, device config, pricing (v1.2.0)

- Add frontend/ at root (customer's own React app, all pages)
- Add customers/tianpu/devices.json (17 devices, 375kW PV)
- Add customers/tianpu/pricing.json (Beijing TOU 4-tier)
- Add customers/tianpu/hooks/__init__.py
- Add .githooks/pre-commit to block core/ modifications
- Add CLAUDE.md, .gitignore
- Update docker-compose.override.yml frontend -> ./frontend
- Pin bcrypt==4.0.1 in requirements.txt

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
Du Wenbo
2026-04-05 23:42:42 +08:00
parent f19e30e84e
commit fe53bf6319
121 changed files with 21699 additions and 1 deletions

30
CLAUDE.md Normal file
View File

@@ -0,0 +1,30 @@
# TP-EMS (天普大兴园区) Development Guidelines
## Overview
Customer project for Tianpu Daxing Zero-Carbon Park. Uses ems-core via git subtree in `core/`.
## CRITICAL: Do NOT modify core/ directly
The `core/` directory is a git subtree from ems-core. All core changes must be made in the ems-core repository first, then pulled via:
```
git subtree pull --prefix=core ems-core main --squash
```
## Project Structure
- `core/` — git subtree from ems-core (READ-ONLY in this repo)
- `customers/tianpu/` — Customer configuration (config.yaml, devices.json, pricing.json, hooks/)
- `scripts/` — Seeding and admin tools
- `docker-compose.override.yml` — Customer-specific Docker overrides
## Commit Conventions
- Follow Conventional Commits: `<type>(<scope>): <description>`
- Scopes: config, docker, dashboard, monitoring, alarm, hooks
## Deployment
```bash
cp .env.example .env # Edit settings
docker compose -f core/docker-compose.yml -f docker-compose.override.yml up -d
docker compose -f core/docker-compose.yml -f docker-compose.override.yml exec backend python scripts/seed_data.py
```
## Default Login
- admin / admin123