from database import db_connection class File(db_connection.Model): __tablename__ = 'files' id = db_connection.Column(db_connection.Integer, primary_key=True, index=True) file_handle = db_connection.Column(db_connection.String, unique=True, nullable=True) document_handle = db_connection.Column(db_connection.String, unique=True, nullable=False) name = db_connection.Column(db_connection.String, nullable=False) created_at = db_connection.Column(db_connection.Integer, nullable=False) acl = db_connection.Column(db_connection.JSON, nullable=False, default=dict) deleter_id = db_connection.Column(db_connection.Integer, nullable=True) key = db_connection.Column(db_connection.String, nullable=False) alg = db_connection.Column(db_connection.String, nullable=False) org_id = db_connection.Column(db_connection.Integer, db_connection.ForeignKey('organizations.id'), nullable=False) creator_id = db_connection.Column(db_connection.Integer, db_connection.ForeignKey('users.id'), nullable=False) org = db_connection.relationship('Organization', backref=db_connection.backref('org_files', uselist=False)) creator = db_connection.relationship('User', backref=db_connection.backref('created_files', uselist=False)) def to_dict(self): return { "id": self.id, "file_handle": self.file_handle, "document_handle": self.document_handle, "name": self.name, "created_at": self.created_at, "acl": self.acl, "key": self.key, "alg": self.alg, "org": {"id": self.org.id, "name": self.org.name}, "creator": {"id": self.creator.id, "username": self.creator.username}, "deleter": {"id": self.deleter.id, "username": self.deleter.username} if self.deleter else None }