feat: Phase 1 complete – full working application
Backend (FastAPI):
- REST API: auth, plants, beds, plantings
- CRUD layer with CRUDBase
- Pydantic v2 schemas for all entities
- Alembic migration: complete schema + all enums
- Seed data: 28 global plants + 15 compatibilities
Frontend (Vue 3 + PrimeVue):
- Axios client with JWT interceptor + auto-refresh
- Pinia stores: auth, beds, plants
- Views: Login, Beds, BedDetail, PlantLibrary
- Components: AppLayout, BedForm, PlantingForm, PlantForm
Docker:
- docker-compose.yml (production)
- docker-compose.dev.yml (development with hot-reload)
- Nginx config with SPA fallback + API proxy
- Multi-stage frontend Dockerfile
- .env.example, .gitignore
Version: 1.0.0-alpha
2026-04-06 07:45:00 +02:00
|
|
|
from app.schemas.auth import AccessTokenResponse, LoginRequest, RefreshRequest, TokenResponse
|
|
|
|
|
from app.schemas.user import UserCreate, UserRead, UserUpdate
|
|
|
|
|
from app.schemas.tenant import TenantCreate, TenantRead, TenantUpdate
|
|
|
|
|
from app.schemas.plant import PlantCompatibilityRead, PlantCreate, PlantFamilyRead, PlantRead, PlantUpdate
|
|
|
|
|
from app.schemas.bed import BedCreate, BedDetailRead, BedRead, BedUpdate
|
|
|
|
|
from app.schemas.planting import PlantingCreate, PlantingRead, PlantingUpdate
|
|
|
|
|
|
|
|
|
|
__all__ = [
|
|
|
|
|
"AccessTokenResponse", "LoginRequest", "RefreshRequest", "TokenResponse",
|
|
|
|
|
"UserCreate", "UserRead", "UserUpdate",
|
|
|
|
|
"TenantCreate", "TenantRead", "TenantUpdate",
|
|
|
|
|
"PlantCompatibilityRead", "PlantCreate", "PlantFamilyRead", "PlantRead", "PlantUpdate",
|
|
|
|
|
"BedCreate", "BedDetailRead", "BedRead", "BedUpdate",
|
|
|
|
|
"PlantingCreate", "PlantingRead", "PlantingUpdate",
|
|
|
|
|
]
|