Files
kontor/gui/database/metadata.py
T
2025-01-14 15:35:53 +01:00

50 lines
1.6 KiB
Python

from sqlalchemy import Column, String, ForeignKey, DateTime, Integer, Boolean
from sqlalchemy.orm import relationship
from database import Base
class MetaDataTable(Base):
__tablename__ = 'meta_data_table'
id = Column(String, primary_key=True)
created_date = Column(DateTime)
last_modified_date = Column(DateTime)
version = Column(Integer)
table_name = Column(String(255), unique=True)
table_columns = relationship("MetaDataColumn")
def __repr__(self):
print(f'MetaDataTable({self.id} {self.table_name})')
def __str__(self):
print(f'{self.table_name}({self.id})')
class MetaDataColumn(Base):
__tablename__ = 'meta_data_column'
id = Column(String, primary_key=True)
created_date = Column(DateTime)
last_modified_date = Column(DateTime)
version = Column(Integer)
column_modifier = Column(String(255), nullable=True)
column_name = Column(String(255))
column_order = Column(Integer)
column_sync_name = Column(String(255))
column_type = Column(String(255))
table_id = Column(String, ForeignKey('meta_data_table.id'))
table = relationship("MetaDataTable", back_populates="table_columns")
column_label = Column(String(255))
filter_label = Column(String(255))
is_shown = Column(Boolean)
show_filter = Column(Boolean)
def __repr__(self):
if self.column_name is None:
print(f'MetaDataColumn({self.id} {self.table.table_name}.__)')
else:
print(f'MetaDataColumn({self.id} {self.table.table_name}.{self.column_name})')
def __str__(self):
print(f'{self.column_name}({self.id})')