Files
MABEA/backend/app/models/vorlage.py
T
patrickandClaude Sonnet 5 d7d61f2013
CI / backend-tests (push) Failing after 30s
CI umgebaut: Host-Runner ohne Docker statt Service-Container
Gitea-Actions-Runner läuft im Host-Modus (kein Docker installiert, Nutzerentscheidung
Prompt 19). Service-Container für PostgreSQL funktionieren damit nicht - CI nutzt
stattdessen die auf dem Runner-Host ohnehin laufende System-PostgreSQL und legt sich
eine eigene Test-Datenbank an/räumt sie danach wieder weg.

Hinweis: Runner läuft auf demselben Host wie die Produktionsinstanz (192.168.1.238) -
keine Isolation zwischen CI und Prod, akzeptabler Kompromiss für V1/Einzelserver-Setup.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01L85hmKbvX7Cqkq47KnQhFt
2026-09-03 23:18:16 +02:00

44 lines
1.6 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
import enum
from decimal import Decimal
from sqlalchemy import ForeignKey, Integer, Numeric, String, UniqueConstraint
from sqlalchemy.dialects.postgresql import ENUM as PgEnum
from sqlalchemy.orm import Mapped, mapped_column
from app.db.base import Base
class VorlageStatus(str, enum.Enum):
aktiv = "aktiv"
veraltet = "veraltet"
vorlage_status_pg = PgEnum(VorlageStatus, name="vorlage_status", create_type=False)
class Beladungsvorlage(Base):
"""Prompt 08: Vorlage ist versioniert Änderungen erzeugen eine neue Version
statt die bestehende zu überschreiben (siehe app/services/vorlagen.py)."""
__tablename__ = "beladungsvorlage"
__table_args__ = (UniqueConstraint("objekttyp_id", "name", "version"),)
id: Mapped[int] = mapped_column(primary_key=True)
objekttyp_id: Mapped[int] = mapped_column(ForeignKey("objekttyp.id"), nullable=False)
name: Mapped[str] = mapped_column(String, nullable=False)
version: Mapped[int] = mapped_column(Integer, nullable=False)
status: Mapped[VorlageStatus] = mapped_column(
vorlage_status_pg, nullable=False, default=VorlageStatus.aktiv
)
class Vorlagenposition(Base):
__tablename__ = "vorlagenposition"
__table_args__ = (UniqueConstraint("vorlage_id", "material_id"),)
id: Mapped[int] = mapped_column(primary_key=True)
vorlage_id: Mapped[int] = mapped_column(ForeignKey("beladungsvorlage.id"), nullable=False)
material_id: Mapped[int] = mapped_column(ForeignKey("material.id"), nullable=False)
fach: Mapped[str | None] = mapped_column(String)
sollmenge: Mapped[Decimal] = mapped_column(Numeric, nullable=False)