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>
19 lines
527 B
Python
19 lines
527 B
Python
"""Calendar/accounting period models for ROA2WEB applications."""
|
|
|
|
from typing import List, Optional
|
|
from pydantic import BaseModel
|
|
|
|
|
|
class CalendarPeriod(BaseModel):
|
|
"""Model for an accounting period."""
|
|
an: int # Year
|
|
luna: int # Month (1-12)
|
|
display_name: str # Format: "Decembrie 2025"
|
|
|
|
|
|
class CalendarPeriodsResponse(BaseModel):
|
|
"""Response model for calendar periods list."""
|
|
periods: List[CalendarPeriod]
|
|
current_period: Optional[CalendarPeriod] = None
|
|
total_count: int
|