models.py 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. from datetime import datetime
  2. from sqlalchemy import (
  3. Column,
  4. Date,
  5. DateTime,
  6. ForeignKey,
  7. Integer,
  8. Numeric,
  9. String,
  10. Text,
  11. )
  12. from sqlalchemy.orm import relationship
  13. from .db import Base
  14. class Kunde(Base):
  15. __tablename__ = "kunden"
  16. id = Column(Integer, primary_key=True, index=True)
  17. name = Column(String, nullable=False)
  18. historie = Column(Text, default="")
  19. class Forderung(Base):
  20. __tablename__ = "forderungen"
  21. id = Column(Integer, primary_key=True, index=True)
  22. kunde_id = Column(Integer, ForeignKey("kunden.id"))
  23. verkaeufer_id = Column(Integer, index=True)
  24. fahrzeug = Column(String, nullable=True)
  25. fahrgestellnummer = Column(String, nullable=True)
  26. rechnungsnummer = Column(String, unique=True, nullable=False, index=True)
  27. betrag = Column(Numeric(12, 2), nullable=False)
  28. faelligkeit = Column(Date, nullable=True)
  29. status = Column(String, default="offen")
  30. kunde = relationship("Kunde", backref="forderungen")
  31. zahlungen = relationship("Zahlung", backref="forderung")
  32. bemerkungen = relationship("Bemerkung", backref="forderung")
  33. class Zahlung(Base):
  34. __tablename__ = "zahlungen"
  35. id = Column(Integer, primary_key=True, index=True)
  36. forderung_id = Column(Integer, ForeignKey("forderungen.id"))
  37. betrag = Column(Numeric(12, 2), nullable=False)
  38. datum = Column(Date, nullable=False)
  39. class Bemerkung(Base):
  40. __tablename__ = "bemerkungen"
  41. id = Column(Integer, primary_key=True, index=True)
  42. forderung_id = Column(Integer, ForeignKey("forderungen.id"))
  43. benutzer = Column(String, nullable=False)
  44. bemerkung = Column(Text, nullable=True)
  45. wiedervorlage_datum = Column(Date, nullable=True)
  46. zeitstempel = Column(DateTime, default=datetime.utcnow)