Modern ERP Reports Application with microservices architecture Tech Stack: - Backend: FastAPI + python-oracledb (Oracle DB integration) - Frontend: Vue.js 3 + PrimeVue + Vite - Telegram Bot: python-telegram-bot + SQLite - Infrastructure: Shared database pool, JWT authentication, SSH tunnel Features: - FastAPI backend with async Oracle connection pool - Vue.js 3 responsive frontend with PrimeVue components - Telegram bot alternative interface - Microservices architecture with shared components - Complete deployment support (Linux Docker + Windows IIS) - Comprehensive testing (Playwright E2E + pytest) Repository Structure: - reports-app/ - Main application (backend, frontend, telegram-bot) - shared/ - Shared components (database pool, auth, utils) - deployment/ - Deployment scripts (Linux & Windows) - docs/ - Project documentation - security/ - Security scanning and git hooks
37 lines
1011 B
Python
37 lines
1011 B
Python
from pydantic import BaseModel
|
|
from decimal import Decimal
|
|
from datetime import datetime
|
|
from typing import Optional, List
|
|
|
|
class BankCashRegister(BaseModel):
|
|
"""Model pentru Registrul de Casă și Bancă"""
|
|
nume: str
|
|
nract: int
|
|
dataact: datetime
|
|
nume_cont_bancar: str # din vbalanta_parteneri.nume
|
|
incasari: Decimal
|
|
plati: Decimal
|
|
sold: Decimal
|
|
valuta: str
|
|
tip_registru: str # "BANCA LEI", "CASA VALUTA" etc
|
|
explicatia: str
|
|
|
|
class RegisterFilter(BaseModel):
|
|
"""Filtre pentru registrul de casă și bancă"""
|
|
company: str
|
|
date_from: Optional[datetime] = None
|
|
date_to: Optional[datetime] = None
|
|
partner_name: Optional[str] = None
|
|
page: int = 1
|
|
page_size: int = 50
|
|
|
|
class RegisterListResponse(BaseModel):
|
|
"""Răspuns pentru lista din registru"""
|
|
registers: List[BankCashRegister]
|
|
total_count: int
|
|
filtered_count: int
|
|
total_incasari: Decimal
|
|
total_plati: Decimal
|
|
page: int
|
|
page_size: int
|
|
has_more: bool |