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

23
frontend/eslint.config.js Normal file
View File

@@ -0,0 +1,23 @@
import js from '@eslint/js'
import globals from 'globals'
import reactHooks from 'eslint-plugin-react-hooks'
import reactRefresh from 'eslint-plugin-react-refresh'
import tseslint from 'typescript-eslint'
import { defineConfig, globalIgnores } from 'eslint/config'
export default defineConfig([
globalIgnores(['dist']),
{
files: ['**/*.{ts,tsx}'],
extends: [
js.configs.recommended,
tseslint.configs.recommended,
reactHooks.configs.flat.recommended,
reactRefresh.configs.vite,
],
languageOptions: {
ecmaVersion: 2020,
globals: globals.browser,
},
},
])