from typing import Optional import sqlmodel class MasterPass(sqlmodel.SQLModel, table=True): __tablename__ = "master_passwords" id: Optional[int] = sqlmodel.Field(primary_key=True) user_id: int = sqlmodel.Field(nullable=False, index=True, unique=True) salt: bytes = sqlmodel.Field( sa_column=sqlmodel.Column(sqlmodel.BINARY(64), nullable=False) ) passwd: bytes = sqlmodel.Field( sa_column=sqlmodel.Column(sqlmodel.BINARY(128), nullable=False) ) class Account(sqlmodel.SQLModel, table=True): __tablename__ = "accounts" __table_args__ = (sqlmodel.UniqueConstraint("user_id", "name"),) id: Optional[int] = sqlmodel.Field(primary_key=True) user_id: int = sqlmodel.Field(nullable=False, index=True) name: str = sqlmodel.Field(nullable=False, index=True, 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(500), nullable=False) ) enc_pass: bytes = sqlmodel.Field( sa_column=sqlmodel.Column(sqlmodel.VARBINARY(500), nullable=False) )