3M/cef_3M/sql_generated.py
2025-01-18 22:17:21 +00:00

114 lines
4.3 KiB
Python

from typing import List, Optional
from sqlalchemy import CHAR, Computed, ForeignKeyConstraint, Index, LargeBinary, String, TIMESTAMP, VARBINARY, text
from sqlalchemy.dialects.mysql import BIGINT, INTEGER, TINYINT
from sqlalchemy.orm import DeclarativeBase, Mapped, mapped_column, relationship
import datetime
class Base(DeclarativeBase):
pass
class AccountMessages(Base):
__tablename__ = 'account_messages'
__table_args__ = (
Index('account', 'account', 'history_id'),
)
history_id: Mapped[int] = mapped_column(BIGINT(20), primary_key=True)
account: Mapped[bytes] = mapped_column(VARBINARY(64))
class AlertEndpoints(Base):
__tablename__ = 'alert_endpoints'
__table_args__ = (
Index('ix_alert_endpoints_username', 'username'),
Index('url', 'url', unique=True)
)
id: Mapped[int] = mapped_column(INTEGER(11), primary_key=True)
username: Mapped[Optional[str]] = mapped_column(String(64))
url: Mapped[Optional[str]] = mapped_column(String(2048))
auth: Mapped[Optional[str]] = mapped_column(String(2048))
p256dh: Mapped[Optional[str]] = mapped_column(String(2048))
created_at: Mapped[Optional[datetime.datetime]] = mapped_column(TIMESTAMP, server_default=text('current_timestamp()'))
class Forget(Base):
__tablename__ = 'forget'
id: Mapped[int] = mapped_column(BIGINT(20), primary_key=True)
account: Mapped[bytes] = mapped_column(VARBINARY(64))
class History(Base):
__tablename__ = 'history'
__table_args__ = (
Index('msgid', 'msgid'),
)
msgid: Mapped[int] = mapped_column(BIGINT(20), primary_key=True)
data: Mapped[bytes] = mapped_column(LargeBinary)
target: Mapped[bytes] = mapped_column(VARBINARY(64))
sender: Mapped[bytes] = mapped_column(VARBINARY(64))
nanotime: Mapped[int] = mapped_column(BIGINT(20))
pm: Mapped[Optional[int]] = mapped_column(TINYINT(1), Computed("(substr(`target`,1,1) <> '#')", persisted=True))
class Metadata(Base):
__tablename__ = 'metadata'
key_name: Mapped[str] = mapped_column(String(32), primary_key=True)
value: Mapped[str] = mapped_column(String(32))
class Uploads(Base):
__tablename__ = 'uploads'
hash: Mapped[str] = mapped_column(CHAR(64), primary_key=True)
expiry: Mapped[Optional[datetime.datetime]] = mapped_column(TIMESTAMP, server_default=text('(current_timestamp()'))
class Users(Base):
__tablename__ = 'users'
username: Mapped[str] = mapped_column(String(64), primary_key=True)
password: Mapped[str] = mapped_column(String(128))
created_at: Mapped[Optional[datetime.datetime]] = mapped_column(TIMESTAMP, server_default=text('current_timestamp()'))
temporary: Mapped[Optional[int]] = mapped_column(TINYINT(1), server_default=text('1'))
invite_code: Mapped[Optional[str]] = mapped_column(String(32))
invited_by: Mapped[Optional[str]] = mapped_column(String(64))
sessions: Mapped[List['Sessions']] = relationship('Sessions', back_populates='users')
tokens: Mapped[List['Tokens']] = relationship('Tokens', back_populates='users')
class Sessions(Base):
__tablename__ = 'sessions'
__table_args__ = (
ForeignKeyConstraint(['username'], ['users.username'], ondelete='CASCADE', name='sessions_ibfk_1'),
Index('ix_sessions_username', 'username')
)
id: Mapped[int] = mapped_column(INTEGER(11), primary_key=True)
username: Mapped[Optional[str]] = mapped_column(String(64))
hash: Mapped[Optional[str]] = mapped_column(String(128))
expiry: Mapped[Optional[datetime.datetime]] = mapped_column(TIMESTAMP)
users: Mapped['Users'] = relationship('Users', back_populates='sessions')
class Tokens(Base):
__tablename__ = 'tokens'
__table_args__ = (
ForeignKeyConstraint(['username'], ['users.username'], ondelete='CASCADE', name='token_username_fk'),
Index('ix_tokens_username', 'username')
)
id: Mapped[int] = mapped_column(INTEGER(11), primary_key=True)
username: Mapped[Optional[str]] = mapped_column(String(64))
hash: Mapped[Optional[str]] = mapped_column(String(128))
name: Mapped[Optional[str]] = mapped_column(String(128))
created_at: Mapped[Optional[datetime.datetime]] = mapped_column(TIMESTAMP, server_default=text('current_timestamp()'))
users: Mapped['Users'] = relationship('Users', back_populates='tokens')