Initial commit
This commit is contained in:
@@ -0,0 +1,80 @@
|
||||
from sqlalchemy import Boolean, Column, ForeignKey, Integer, String, DateTime, Float
|
||||
from sqlalchemy.types import TypeDecorator, VARCHAR, Integer
|
||||
from sqlalchemy_utils import EmailType
|
||||
from sqlalchemy.orm import relationship, Mapped
|
||||
from geoalchemy2 import Geometry
|
||||
from database import Base
|
||||
import datetime
|
||||
from coordinates_class import EasyGeometry
|
||||
|
||||
class NullCatchingString(TypeDecorator):
|
||||
impl = VARCHAR
|
||||
|
||||
def process_result_value(self, value, dialect):
|
||||
if value is None:
|
||||
return ''
|
||||
return value
|
||||
|
||||
class NullCatchingInteger(TypeDecorator):
|
||||
impl = Integer
|
||||
|
||||
def process_result_value(self, value, dialect):
|
||||
if value is None:
|
||||
return ''
|
||||
return value
|
||||
|
||||
class Members(Base):
|
||||
__tablename__ = 'members'
|
||||
|
||||
id = Column(Integer, primary_key=True, index=True)
|
||||
member_count = Column(Integer)
|
||||
member_firstname = Column(String, index=True)
|
||||
member_firstname_spouse = Column(NullCatchingString())
|
||||
member_surname = Column(String, index=True)
|
||||
member_suffix = Column(NullCatchingString(), nullable=True)
|
||||
member_street = Column(NullCatchingString(), index=True)
|
||||
member_streetnumber = Column(NullCatchingString(), nullable=True)
|
||||
member_email = Column(EmailType, index=True)
|
||||
member_zip = Column(NullCatchingInteger(), index=True)
|
||||
member_city = Column(NullCatchingString(), index=True)
|
||||
member_active = Column(Boolean, default=True)
|
||||
member_gender = Column(String, nullable=True)
|
||||
member_connected = Column(Integer, ForeignKey("members.id"), nullable=True)
|
||||
created_date = Column(DateTime, default=datetime.datetime.utcnow)
|
||||
updated_date = Column(DateTime, default=datetime.datetime.utcnow)
|
||||
member_died = Column(DateTime)
|
||||
member_printed = Column(Boolean, default=False)
|
||||
#member_coordinates = Column(Geometry(geometry_type='POINT'))
|
||||
member_geo_latitude = Column(Float, nullable=True)
|
||||
member_geo_longitude = Column(Float, nullable=True)
|
||||
member_deliveries = relationship('Deliveries', backref='members')
|
||||
#member_deliveries: Mapped[List["Deliveries"]] = relationship()
|
||||
|
||||
def __repr__(self):
|
||||
return f'<Comment "{self.content[:20]}...">'
|
||||
|
||||
class Payments(Base):
|
||||
__tablename__ = 'payments'
|
||||
|
||||
id = Column(Integer, primary_key=True, index=True)
|
||||
payment_date = Column(String, index=True)
|
||||
member_id = Column(Integer, ForeignKey("members.id"))
|
||||
|
||||
def __repr__(self):
|
||||
return f'<Comment "{self.content[:20]}...">'
|
||||
|
||||
class Deliveries(Base):
|
||||
__tablename__ = 'deliveries'
|
||||
|
||||
id = Column(Integer, primary_key=True, index=True)
|
||||
delivery_date = Column(DateTime, index=True)
|
||||
member_id = Column(Integer, ForeignKey("members.id"))
|
||||
delivered_by_id = Column(Integer)
|
||||
delivery_year = Column(DateTime, index=True)
|
||||
|
||||
def __repr__(self):
|
||||
return f'<Comment "{self.content[:20]}...">'
|
||||
|
||||
""" delivered_by_id = Column(Integer, ForeignKey("members.id" ))
|
||||
member = relationship("Members", foreign_keys=[member_id])
|
||||
delivering_member = relationship("Members", foreign_keys=[member_id]) """
|
||||
Reference in New Issue
Block a user