25 lines
880 B
Python
25 lines
880 B
Python
from typing import Optional
|
|
|
|
from sqlalchemy import CHAR, String, TIMESTAMP, text
|
|
from sqlalchemy.dialects.mysql import TINYINT
|
|
from sqlalchemy.orm import DeclarativeBase, Mapped, mapped_column
|
|
import datetime
|
|
|
|
class Base(DeclarativeBase):
|
|
pass
|
|
|
|
|
|
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'))
|