feat: Initialize frontend and backend structure with essential configurations
Some checks failed
Backend CI / lint-and-test (push) Failing after 2m15s
Frontend CI / lint-and-build (push) Successful in 1m1s

- Added TypeScript build info for frontend.
- Created Vite configuration for React application.
- Implemented pre-commit hook to run checks before commits.
- Set up PostgreSQL Dockerfile with PostGIS support and initialization scripts.
- Added database creation script for PostgreSQL with necessary extensions.
- Established Python project configuration with dependencies and development tools.
- Developed pre-commit script to enforce code quality checks for backend and frontend.
- Created PowerShell script to set up Git hooks path.
This commit is contained in:
2025-10-11 15:25:32 +02:00
commit fc1e874309
74 changed files with 9477 additions and 0 deletions

View File

@@ -0,0 +1,39 @@
from __future__ import annotations
import sqlalchemy as sa
from typing import Generic, Iterable, Optional, Sequence, Type, TypeVar
from sqlalchemy.orm import Session
from backend.app.db.models import Base
ModelT = TypeVar("ModelT", bound=Base)
class BaseRepository(Generic[ModelT]):
"""Provide common CRUD helpers for SQLAlchemy models."""
model: Type[ModelT]
def __init__(self, session: Session) -> None:
self.session = session
def get(self, identifier: object) -> Optional[ModelT]:
return self.session.get(self.model, identifier)
def list(self) -> Sequence[ModelT]:
statement = sa.select(self.model)
return list(self.session.scalars(statement))
def add(self, instance: ModelT) -> ModelT:
self.session.add(instance)
return instance
def add_all(self, instances: Iterable[ModelT]) -> None:
self.session.add_all(instances)
def delete(self, instance: ModelT) -> None:
self.session.delete(instance)
def flush(self) -> None:
self.session.flush()