import logging
import pakfire
import sqlalchemy
+import sqlmodel
from sqlalchemy import Column, ForeignKey
from sqlalchemy import DateTime, Integer, Numeric, Text
return key
-class Key(database.Base, database.BackendMixin, database.SoftDeleteMixin):
+class Key(sqlmodel.SQLModel, database.BackendMixin, database.SoftDeleteMixin, table=True):
__tablename__ = "keys"
# ID
- id = Column(Integer, primary_key=True)
+ id : int = sqlmodel.Field(primary_key=True, exclude=True)
# Created At
- created_at = Column(DateTime(timezone=False), nullable=False,
- server_default=sqlalchemy.func.current_timestamp())
+ created_at : datetime.datetime = sqlmodel.Field(
+ sa_column_kwargs = {"server_default" : sqlalchemy.text("CURRENT_TIMESTAMP")}
+ )
# Created By ID
- created_by_id = Column(Integer, ForeignKey("users.id"))
+ created_by_id: int = sqlmodel.Field(foreign_key="users.id", exclude=True)
# Created By
- created_by = sqlalchemy.orm.relationship(
- "User", foreign_keys=[created_by_id], lazy="selectin",
- )
+ created_by: "User" = sqlmodel.Relationship()
# Deleted By ID
- deleted_by_id = Column(Integer, ForeignKey("users.id"))
+ #deleted_by_id: int = sqlmodel.Field(foreign_key="users.id", exclude=True)
# Deleted By
- deleted_by = sqlalchemy.orm.relationship(
- "User", foreign_keys=[deleted_by_id], lazy="selectin",
- )
+ #deleted_by: "User" = sqlmodel.Relationship()
# Public Key
- public_key = Column(Text, nullable=False)
+ public_key: str
# Secret Key
- secret_key = Column(Text, nullable=False)
+ secret_key: str = sqlmodel.Field(exclude=True)
# Key ID
- key_id = Column(Numeric, nullable=False)
+ key_id: int = sqlmodel.Field(sa_column=sqlalchemy.Column(sqlalchemy.Numeric, nullable=False))
# Comment
- comment = Column(Text)
+ comment: str
def _make_key(self, pakfire):
"""