35 lines
1.1 KiB
Python
35 lines
1.1 KiB
Python
import sqlmodel
|
|
|
|
|
|
class MasterPass(sqlmodel.SQLModel, table=True):
|
|
__tablename__ = "master_passwords"
|
|
user_id: int = sqlmodel.Field(
|
|
sa_column=sqlmodel.Column(
|
|
sqlmodel.INT(),
|
|
primary_key=True,
|
|
autoincrement=False,
|
|
)
|
|
)
|
|
salt: bytes = sqlmodel.Field(
|
|
sa_column=sqlmodel.Column(sqlmodel.BINARY(64), nullable=False)
|
|
)
|
|
password_hash: bytes = sqlmodel.Field(
|
|
sa_column=sqlmodel.Column(sqlmodel.BINARY(128), nullable=False)
|
|
)
|
|
|
|
|
|
class Account(sqlmodel.SQLModel, table=True):
|
|
__tablename__ = "accounts"
|
|
__table_args__ = (sqlmodel.PrimaryKeyConstraint("user_id", "name"),)
|
|
user_id: int = sqlmodel.Field()
|
|
name: str = sqlmodel.Field(max_length=255)
|
|
salt: bytes = sqlmodel.Field(
|
|
sa_column=sqlmodel.Column(sqlmodel.BINARY(64), nullable=False)
|
|
)
|
|
enc_login: bytes = sqlmodel.Field(
|
|
sa_column=sqlmodel.Column(sqlmodel.VARBINARY(256), nullable=False)
|
|
)
|
|
enc_password: bytes = sqlmodel.Field(
|
|
sa_column=sqlmodel.Column(sqlmodel.VARBINARY(256), nullable=False)
|
|
)
|