feat: Add shared components, refactor stores, improve data-entry workflow
Shared Components: - Add CompanySelector.vue and PeriodSelector.vue components - Add AppHeader.vue and SlideMenu.vue layout components - Add shared stores factories (companies.js, accountingPeriod.js) - Add shared routes factories (companies.py, calendar.py) - Add shared models (company.py, calendar.py) - Add shared layout styles (header.css, navigation.css) Data Entry App: - Update CLAUDE.md with prod/test server documentation - Improve nomenclature sync service with better error handling - Update receipts router and CRUD operations - Add company/period stores using shared factories - Update App.vue layout with shared components - Fix OCRUploadZone file handling Reports App: - Refactor stores to use shared factories - Update App.vue to use shared layout components Infrastructure: - Replace start-data-entry.sh with separate dev/test scripts - Add .claude/rules for authentication, backend patterns, etc. - Add implementation plan for OCR receipt improvements - Clean up old documentation files 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
31
.claude/rules/frontend-stores.md
Normal file
31
.claude/rules/frontend-stores.md
Normal file
@@ -0,0 +1,31 @@
|
||||
---
|
||||
paths: {reports-app,data-entry-app}/frontend/src/stores/**/*.js
|
||||
---
|
||||
|
||||
# Frontend Store Rules
|
||||
|
||||
## Factory Pattern (MANDATORY)
|
||||
All stores MUST use shared factories:
|
||||
|
||||
```javascript
|
||||
// Correct - use factory
|
||||
import { createAuthStore } from '@shared/frontend/stores/auth';
|
||||
export const useAuthStore = createAuthStore(apiService);
|
||||
|
||||
// Correct - use factory
|
||||
import { createCompaniesStore } from '@shared/frontend/stores/companies';
|
||||
export const useCompaniesStore = createCompaniesStore(apiService, useAuthStore);
|
||||
|
||||
// WRONG - custom implementation
|
||||
export const useCompaniesStore = defineStore('companies', () => { ... });
|
||||
```
|
||||
|
||||
## Available Factories
|
||||
- `createAuthStore(apiService)` - Authentication state
|
||||
- `createCompaniesStore(apiService, useAuthStore)` - Company selection
|
||||
- `createAccountingPeriodStore(apiService, useAuthStore, useCompanyStore)` - Period selection
|
||||
|
||||
## LocalStorage Keys (RESERVED)
|
||||
- `access_token`, `refresh_token`, `user` - Auth
|
||||
- `selected_company_id` - Company selection
|
||||
- `selected_period_id` - Period selection
|
||||
Reference in New Issue
Block a user