from ..extensions import db from .user import User, Tenant class Document(db.Model): id = db.Column(db.Integer, primary_key=True) name = db.Column(db.String(100), nullable=False) tenant_id = db.Column(db.Integer, db.ForeignKey(Tenant.id), nullable=False) valid_from = db.Column(db.DateTime, nullable=True) valid_to = db.Column(db.DateTime, nullable=True) # Versioning Information created_at = db.Column(db.DateTime, nullable=False, server_default=db.func.now()) created_by = db.Column(db.Integer, db.ForeignKey(User.id), nullable=False) updated_at = db.Column(db.DateTime, nullable=False, server_default=db.func.now(), onupdate=db.func.now()) updated_by = db.Column(db.Integer, db.ForeignKey(User.id)) class DocumentLanguage(db.Model): id = db.Column(db.Integer, primary_key=True) document_id = db.Column(db.Integer, db.ForeignKey(Document.id), nullable=False) language = db.Column(db.String(2), nullable=False) # Versioning Information created_at = db.Column(db.DateTime, nullable=False, server_default=db.func.now()) created_by = db.Column(db.Integer, db.ForeignKey(User.id), nullable=False) class DocumentVersion(db.Model): id = db.Column(db.Integer, primary_key=True) doc_lang_id = db.Column(db.Integer, db.ForeignKey(DocumentLanguage.id), nullable=False) url = db.Column(db.String(200), nullable=True) embeddings = db.Column(db.PickleType, nullable=True) # Versioning Information created_at = db.Column(db.DateTime, nullable=False, server_default=db.func.now()) created_by = db.Column(db.Integer, db.ForeignKey(User.id))