forked from rDrama/rDrama
Use type aliases for common columns
parent
4dde075509
commit
181a993776
|
@ -1,17 +1,17 @@
|
|||
import time
|
||||
from typing import Optional
|
||||
|
||||
from sqlalchemy import ForeignKey
|
||||
from sqlalchemy.orm import Mapped, mapped_column
|
||||
from sqlalchemy.sql.sqltypes import *
|
||||
|
||||
from files.classes import Base
|
||||
from files.helpers.types import user_id_fk_pk
|
||||
|
||||
class Alt(Base):
|
||||
__tablename__ = "alts"
|
||||
|
||||
user1: Mapped[int] = mapped_column(ForeignKey("users.id"), primary_key=True)
|
||||
user2: Mapped[int] = mapped_column(ForeignKey("users.id"), primary_key=True)
|
||||
user1: Mapped[user_id_fk_pk]
|
||||
user2: Mapped[user_id_fk_pk]
|
||||
is_manual: Mapped[bool] = mapped_column(default=False)
|
||||
created_utc: Mapped[Optional[int]]
|
||||
|
||||
|
|
|
@ -1,13 +1,13 @@
|
|||
import time
|
||||
from typing import Optional, TYPE_CHECKING
|
||||
|
||||
from sqlalchemy import ForeignKey
|
||||
from sqlalchemy.orm import Mapped, mapped_column, relationship
|
||||
from sqlalchemy.sql.sqltypes import *
|
||||
|
||||
from files.classes import Base
|
||||
from files.helpers.config.awards import AWARDS, HOUSE_AWARDS
|
||||
from files.helpers.lazy import lazy
|
||||
from files.helpers.types import comment_id_fk, int_pk, post_id_fk, user_id_fk
|
||||
|
||||
if TYPE_CHECKING:
|
||||
from files.classes import Comment, Post, User
|
||||
|
@ -16,10 +16,10 @@ if TYPE_CHECKING:
|
|||
class AwardRelationship(Base):
|
||||
__tablename__ = "award_relationships"
|
||||
|
||||
id: Mapped[int] = mapped_column(primary_key=True)
|
||||
user_id: Mapped[int] = mapped_column(ForeignKey("users.id"))
|
||||
post_id: Mapped[Optional[int]] = mapped_column(ForeignKey("posts.id"))
|
||||
comment_id: Mapped[Optional[int]] = mapped_column(ForeignKey("comments.id"))
|
||||
id: Mapped[int_pk]
|
||||
user_id: Mapped[user_id_fk]
|
||||
post_id: Mapped[Optional[post_id_fk]]
|
||||
comment_id: Mapped[Optional[comment_id_fk]]
|
||||
kind: Mapped[str]
|
||||
awarded_utc: Mapped[Optional[int]]
|
||||
created_utc: Mapped[Optional[int]]
|
||||
|
|
|
@ -8,6 +8,7 @@ from sqlalchemy.sql.sqltypes import *
|
|||
from files.classes import Base
|
||||
from files.helpers.config.const import *
|
||||
from files.helpers.lazy import lazy
|
||||
from files.helpers.types import int_pk, user_id_fk_pk
|
||||
|
||||
if TYPE_CHECKING:
|
||||
from files.classes import User
|
||||
|
@ -16,7 +17,7 @@ if TYPE_CHECKING:
|
|||
class BadgeDef(Base):
|
||||
__tablename__ = "badge_defs"
|
||||
|
||||
id: Mapped[int] = mapped_column(primary_key=True, autoincrement=True)
|
||||
id: Mapped[int_pk] = mapped_column(autoincrement=True)
|
||||
name: Mapped[str]
|
||||
description: Mapped[Optional[str]]
|
||||
created_utc: Mapped[int]
|
||||
|
@ -37,7 +38,7 @@ class Badge(Base):
|
|||
|
||||
__tablename__ = "badges"
|
||||
|
||||
user_id: Mapped[int] = mapped_column(ForeignKey('users.id'), primary_key=True)
|
||||
user_id: Mapped[user_id_fk_pk]
|
||||
badge_id: Mapped[int] = mapped_column(ForeignKey('badge_defs.id'), primary_key=True)
|
||||
description: Mapped[Optional[str]]
|
||||
url: Mapped[Optional[str]]
|
||||
|
|
|
@ -2,12 +2,12 @@ import json
|
|||
import time
|
||||
from typing import TYPE_CHECKING
|
||||
|
||||
from sqlalchemy import ForeignKey
|
||||
from sqlalchemy.orm import Mapped, mapped_column, relationship
|
||||
from sqlalchemy.sql.sqltypes import *
|
||||
|
||||
from files.classes import Base
|
||||
from files.helpers.lazy import lazy
|
||||
from files.helpers.types import int_pk, user_id_fk
|
||||
|
||||
if TYPE_CHECKING:
|
||||
from files.classes import User
|
||||
|
@ -17,8 +17,8 @@ CASINO_GAME_KINDS = ['blackjack', 'slots', 'roulette']
|
|||
class CasinoGame(Base):
|
||||
__tablename__ = "casino_games"
|
||||
|
||||
id: Mapped[int] = mapped_column(primary_key=True)
|
||||
user_id: Mapped[int] = mapped_column(ForeignKey("users.id"))
|
||||
id: Mapped[int_pk]
|
||||
user_id: Mapped[user_id_fk]
|
||||
created_utc: Mapped[int]
|
||||
active: Mapped[bool] = mapped_column(default=True)
|
||||
currency: Mapped[str]
|
||||
|
|
|
@ -9,6 +9,7 @@ from sqlalchemy.sql.sqltypes import *
|
|||
from files.classes import Base
|
||||
from files.helpers.config.const import *
|
||||
from files.helpers.lazy import lazy
|
||||
from files.helpers.types import int_pk, user_id_fk, user_id_fk_pk
|
||||
|
||||
from .comment import Comment
|
||||
from .post import Post
|
||||
|
@ -20,12 +21,12 @@ if TYPE_CHECKING:
|
|||
class OauthApp(Base):
|
||||
__tablename__ = "oauth_apps"
|
||||
|
||||
id: Mapped[int] = mapped_column(primary_key=True)
|
||||
id: Mapped[int_pk]
|
||||
client_id: Mapped[Optional[Annotated[str, 64]]]
|
||||
app_name: Mapped[str]
|
||||
redirect_uri: Mapped[str]
|
||||
description: Mapped[str]
|
||||
author_id: Mapped[int] = mapped_column(ForeignKey("users.id"))
|
||||
author_id: Mapped[user_id_fk]
|
||||
created_utc: Mapped[Optional[int]]
|
||||
|
||||
author: Mapped["User"] = relationship(back_populates="apps")
|
||||
|
@ -56,7 +57,7 @@ class OauthApp(Base):
|
|||
|
||||
class ClientAuth(Base):
|
||||
__tablename__ = "client_auths"
|
||||
user_id: Mapped[int] = mapped_column(ForeignKey("users.id"), primary_key=True)
|
||||
user_id: Mapped[user_id_fk_pk]
|
||||
oauth_client: Mapped[int] = mapped_column(ForeignKey("oauth_apps.id"), primary_key=True)
|
||||
access_token: Mapped[str]
|
||||
created_utc: Mapped[Optional[int]]
|
||||
|
|
|
@ -18,6 +18,7 @@ from files.helpers.slurs_and_profanities import *
|
|||
from files.helpers.lazy import lazy
|
||||
from files.helpers.regex import *
|
||||
from files.helpers.sorting_and_time import *
|
||||
from files.helpers.types import comment_id_fk, int_pk, post_id_fk, user_id_fk
|
||||
from files.helpers.bleach_body import *
|
||||
|
||||
from .saves import CommentSaveRelationship
|
||||
|
@ -176,10 +177,10 @@ def add_options(self, body, v):
|
|||
class Comment(Base):
|
||||
__tablename__ = "comments"
|
||||
|
||||
id: Mapped[int] = mapped_column(primary_key=True)
|
||||
author_id: Mapped[int] = mapped_column(ForeignKey("users.id"))
|
||||
parent_post: Mapped[Optional[int]] = mapped_column(ForeignKey("posts.id"))
|
||||
wall_user_id: Mapped[Optional[int]] = mapped_column(ForeignKey("users.id"))
|
||||
id: Mapped[int_pk]
|
||||
author_id: Mapped[user_id_fk]
|
||||
parent_post: Mapped[Optional[post_id_fk]]
|
||||
wall_user_id: Mapped[Optional[user_id_fk]]
|
||||
created_utc: Mapped[int]
|
||||
edited_utc: Mapped[int] = mapped_column(default=0)
|
||||
is_banned: Mapped[bool] = mapped_column(default=False)
|
||||
|
@ -188,15 +189,15 @@ class Comment(Base):
|
|||
chuddedfor: Mapped[Optional[str]]
|
||||
distinguish_level: Mapped[int] = mapped_column(default=0)
|
||||
deleted_utc: Mapped[int] = mapped_column(default=0)
|
||||
is_approved: Mapped[Optional[int]] = mapped_column(ForeignKey("users.id"))
|
||||
is_approved: Mapped[Optional[user_id_fk]]
|
||||
level: Mapped[int] = mapped_column(default=1)
|
||||
parent_comment_id: Mapped[Optional[int]] = mapped_column(ForeignKey("comments.id"))
|
||||
parent_comment_id: Mapped[Optional[comment_id_fk]]
|
||||
top_comment_id: Mapped[Optional[int]]
|
||||
is_bot: Mapped[bool] = mapped_column(default=False)
|
||||
stickied: Mapped[Optional[str]]
|
||||
stickied_utc: Mapped[Optional[int]]
|
||||
num_of_pinned_children: Mapped[int] = mapped_column(default=0)
|
||||
sentto: Mapped[Optional[int]] = mapped_column(ForeignKey("users.id"))
|
||||
sentto: Mapped[Optional[user_id_fk]]
|
||||
app_id: Mapped[Optional[int]] = mapped_column(ForeignKey("oauth_apps.id"))
|
||||
upvotes: Mapped[int] = mapped_column(default=1)
|
||||
downvotes: Mapped[int] = mapped_column(default=0)
|
||||
|
|
|
@ -5,10 +5,11 @@ from sqlalchemy.orm import Mapped, mapped_column
|
|||
from sqlalchemy.sql.sqltypes import *
|
||||
|
||||
from files.classes import Base
|
||||
from files.helpers.types import str_pk
|
||||
|
||||
class BannedDomain(Base):
|
||||
__tablename__ = "banneddomains"
|
||||
domain: Mapped[str] = mapped_column(primary_key=True)
|
||||
domain: Mapped[str_pk]
|
||||
reason: Mapped[str]
|
||||
created_utc: Mapped[Optional[int]]
|
||||
|
||||
|
|
|
@ -1,21 +1,21 @@
|
|||
import time
|
||||
from typing import Optional
|
||||
|
||||
from sqlalchemy import ForeignKey
|
||||
from sqlalchemy.orm import Mapped, mapped_column
|
||||
from sqlalchemy.sql.sqltypes import *
|
||||
|
||||
from files.classes import Base
|
||||
from files.helpers.types import str_pk, user_id_fk
|
||||
|
||||
class Emoji(Base):
|
||||
__tablename__ = "emojis"
|
||||
|
||||
name: Mapped[str] = mapped_column(primary_key=True)
|
||||
name: Mapped[str_pk]
|
||||
kind: Mapped[str]
|
||||
author_id: Mapped[int] = mapped_column(ForeignKey("users.id"))
|
||||
author_id: Mapped[user_id_fk]
|
||||
tags: Mapped[str]
|
||||
count: Mapped[int] = mapped_column(default=0)
|
||||
submitter_id: Mapped[Optional[int]] = mapped_column(ForeignKey("users.id"))
|
||||
submitter_id: Mapped[Optional[user_id_fk]]
|
||||
created_utc: Mapped[int]
|
||||
nsfw: Mapped[bool] = mapped_column(default=False)
|
||||
|
||||
|
|
|
@ -6,6 +6,7 @@ from sqlalchemy.orm import Mapped, mapped_column, relationship
|
|||
from sqlalchemy.sql.sqltypes import *
|
||||
|
||||
from files.classes import Base
|
||||
from files.helpers.types import user_id_fk, user_id_fk_pk
|
||||
|
||||
if TYPE_CHECKING:
|
||||
from files.classes import User
|
||||
|
@ -13,9 +14,9 @@ if TYPE_CHECKING:
|
|||
|
||||
class Exile(Base):
|
||||
__tablename__ = "exiles"
|
||||
user_id: Mapped[int] = mapped_column(ForeignKey("users.id"), primary_key=True)
|
||||
user_id: Mapped[user_id_fk_pk]
|
||||
hole: Mapped[str] = mapped_column(ForeignKey("holes.name"), primary_key=True)
|
||||
exiler_id: Mapped[int] = mapped_column(ForeignKey("users.id"))
|
||||
exiler_id: Mapped[user_id_fk]
|
||||
created_utc: Mapped[Optional[int]]
|
||||
|
||||
exiler: Mapped["User"] = relationship(primaryjoin="User.id==Exile.exiler_id")
|
||||
|
|
|
@ -1,11 +1,11 @@
|
|||
import time
|
||||
from typing import TYPE_CHECKING
|
||||
|
||||
from sqlalchemy import ForeignKey
|
||||
from sqlalchemy.orm import Mapped, mapped_column, relationship
|
||||
from sqlalchemy.sql.sqltypes import *
|
||||
|
||||
from files.classes import Base
|
||||
from files.helpers.types import user_id_fk_pk
|
||||
|
||||
if TYPE_CHECKING:
|
||||
from files.classes import User
|
||||
|
@ -13,8 +13,8 @@ if TYPE_CHECKING:
|
|||
|
||||
class Follow(Base):
|
||||
__tablename__ = "follows"
|
||||
target_id: Mapped[int] = mapped_column(ForeignKey("users.id"), primary_key=True)
|
||||
user_id: Mapped[int] = mapped_column(ForeignKey("users.id"), primary_key=True)
|
||||
target_id: Mapped[user_id_fk_pk]
|
||||
user_id: Mapped[user_id_fk_pk]
|
||||
created_utc: Mapped[int]
|
||||
|
||||
user: Mapped["User"] = relationship(uselist=False, primaryjoin="User.id==Follow.user_id", back_populates="following")
|
||||
|
|
|
@ -1,12 +1,12 @@
|
|||
import time
|
||||
from typing import Optional, TYPE_CHECKING
|
||||
|
||||
from sqlalchemy.orm import Mapped, mapped_column, relationship
|
||||
from sqlalchemy.types import Integer
|
||||
from sqlalchemy.orm import Mapped, relationship
|
||||
|
||||
from files.classes import Base
|
||||
from files.helpers.lazy import lazy
|
||||
from files.helpers.config.const import *
|
||||
from files.helpers.types import str_pk, user_id_fk
|
||||
|
||||
from .group_membership import *
|
||||
|
||||
|
@ -16,9 +16,9 @@ if TYPE_CHECKING:
|
|||
|
||||
class Group(Base):
|
||||
__tablename__ = "groups"
|
||||
name: Mapped[str] = mapped_column(primary_key=True)
|
||||
name: Mapped[str_pk]
|
||||
created_utc: Mapped[int]
|
||||
owner_id: Mapped[Optional[int]] = mapped_column(ForeignKey("users.id"))
|
||||
owner_id: Mapped[Optional[user_id_fk]]
|
||||
description: Mapped[Optional[str]]
|
||||
description_html: Mapped[Optional[str]]
|
||||
|
||||
|
|
|
@ -3,9 +3,9 @@ from typing import Optional, TYPE_CHECKING
|
|||
|
||||
from sqlalchemy import ForeignKey
|
||||
from sqlalchemy.orm import Mapped, mapped_column, relationship
|
||||
from sqlalchemy.types import Integer, String, Boolean
|
||||
|
||||
from files.classes import Base
|
||||
from files.helpers.types import user_id_fk_pk
|
||||
|
||||
if TYPE_CHECKING:
|
||||
from files.classes.user import User
|
||||
|
@ -13,7 +13,7 @@ if TYPE_CHECKING:
|
|||
|
||||
class GroupMembership(Base):
|
||||
__tablename__ = "group_memberships"
|
||||
user_id: Mapped[int] = mapped_column(ForeignKey("users.id"), primary_key=True)
|
||||
user_id: Mapped[user_id_fk_pk]
|
||||
group_name: Mapped[str] = mapped_column(ForeignKey("groups.name"), primary_key=True)
|
||||
created_utc: Mapped[int]
|
||||
approved_utc: Mapped[Optional[int]]
|
||||
|
|
|
@ -9,6 +9,7 @@ from flask import g
|
|||
from files.classes import Base
|
||||
from files.helpers.lazy import lazy
|
||||
from files.helpers.slurs_and_profanities import censor_slurs_profanities
|
||||
from files.helpers.types import int_pk, user_id_fk
|
||||
|
||||
if TYPE_CHECKING:
|
||||
from files.classes import User
|
||||
|
@ -17,12 +18,12 @@ if TYPE_CHECKING:
|
|||
class HatDef(Base):
|
||||
__tablename__ = "hat_defs"
|
||||
|
||||
id: Mapped[int] = mapped_column(primary_key=True)
|
||||
id: Mapped[int_pk]
|
||||
name: Mapped[str]
|
||||
description: Mapped[str]
|
||||
author_id: Mapped[int] = mapped_column(ForeignKey('users.id'))
|
||||
price: Mapped[int]
|
||||
submitter_id: Mapped[Optional[int]] = mapped_column(ForeignKey("users.id"))
|
||||
submitter_id: Mapped[Optional[user_id_fk]]
|
||||
created_utc: Mapped[int]
|
||||
|
||||
author: Mapped["User"] = relationship(primaryjoin="HatDef.author_id == User.id", back_populates="designed_hats")
|
||||
|
|
|
@ -11,6 +11,7 @@ from files.helpers.config.const import *
|
|||
from files.helpers.lazy import lazy
|
||||
from files.helpers.slurs_and_profanities import censor_slurs_profanities
|
||||
from files.helpers.sorting_and_time import make_age_string
|
||||
from files.helpers.types import comment_id_fk, int_pk, post_id_fk, user_id_fk
|
||||
|
||||
if TYPE_CHECKING:
|
||||
from files.classes import Comment, Post, User
|
||||
|
@ -18,13 +19,13 @@ if TYPE_CHECKING:
|
|||
|
||||
class HoleAction(Base):
|
||||
__tablename__ = "hole_actions"
|
||||
id: Mapped[int] = mapped_column(primary_key=True)
|
||||
id: Mapped[int_pk]
|
||||
hole: Mapped[str] = mapped_column(ForeignKey("holes.name"))
|
||||
user_id: Mapped[Optional[int]] = mapped_column(ForeignKey("users.id"))
|
||||
user_id: Mapped[Optional[user_id_fk]]
|
||||
kind: Mapped[Optional[str]]
|
||||
target_user_id: Mapped[Optional[int]] = mapped_column(ForeignKey("users.id"))
|
||||
target_post_id: Mapped[Optional[int]] = mapped_column(ForeignKey("posts.id"))
|
||||
target_comment_id: Mapped[Optional[int]] = mapped_column(ForeignKey("comments.id"))
|
||||
target_user_id: Mapped[Optional[user_id_fk]]
|
||||
target_post_id: Mapped[Optional[post_id_fk]]
|
||||
target_comment_id: Mapped[Optional[comment_id_fk]]
|
||||
_note: Mapped[Optional[str]]
|
||||
created_utc: Mapped[int]
|
||||
|
||||
|
|
|
@ -1,11 +1,11 @@
|
|||
import time
|
||||
from typing import TYPE_CHECKING
|
||||
|
||||
from sqlalchemy import ForeignKey
|
||||
from sqlalchemy.orm import Mapped, mapped_column, relationship
|
||||
from sqlalchemy.orm import Mapped, relationship
|
||||
from sqlalchemy.sql.sqltypes import *
|
||||
|
||||
from files.classes import Base
|
||||
from files.helpers.types import str_pk, user_id_fk_pk
|
||||
|
||||
if TYPE_CHECKING:
|
||||
from files.classes import User
|
||||
|
@ -13,8 +13,8 @@ if TYPE_CHECKING:
|
|||
|
||||
class IPLog(Base):
|
||||
__tablename__ = "ip_logs"
|
||||
user_id: Mapped[int] = mapped_column(ForeignKey("users.id"), primary_key=True)
|
||||
ip: Mapped[str] = mapped_column(primary_key=True)
|
||||
user_id: Mapped[user_id_fk_pk]
|
||||
ip: Mapped[str_pk]
|
||||
created_utc: Mapped[int]
|
||||
last_used: Mapped[int]
|
||||
|
||||
|
|
|
@ -1,23 +1,23 @@
|
|||
import time
|
||||
from typing import Optional
|
||||
|
||||
from sqlalchemy import ForeignKey
|
||||
from sqlalchemy.orm import Mapped, mapped_column
|
||||
from sqlalchemy.sql.sqltypes import *
|
||||
|
||||
from files.classes import Base
|
||||
from files.helpers.config.const import *
|
||||
from files.helpers.lazy import lazy
|
||||
from files.helpers.types import int_pk, user_id_fk
|
||||
|
||||
class Lottery(Base):
|
||||
__tablename__ = "lotteries"
|
||||
|
||||
id: Mapped[int] = mapped_column(primary_key=True)
|
||||
id: Mapped[int_pk]
|
||||
is_active: Mapped[bool] = mapped_column(default=False)
|
||||
ends_at: Mapped[int]
|
||||
prize: Mapped[int] = mapped_column(default=0)
|
||||
tickets_sold: Mapped[int] = mapped_column(default=0)
|
||||
winner_id: Mapped[Optional[int]] = mapped_column(ForeignKey("users.id"))
|
||||
winner_id: Mapped[Optional[user_id_fk]]
|
||||
created_utc: Mapped[Optional[int]]
|
||||
|
||||
def __init__(self, *args, **kwargs):
|
||||
|
|
|
@ -1,15 +1,15 @@
|
|||
import time
|
||||
|
||||
from sqlalchemy import ForeignKey
|
||||
from sqlalchemy.orm import Mapped, mapped_column
|
||||
from sqlalchemy.orm import Mapped
|
||||
from sqlalchemy.sql.sqltypes import *
|
||||
from files.classes import Base
|
||||
from files.helpers.types import str_pk, user_id_fk
|
||||
|
||||
class Media(Base):
|
||||
__tablename__ = "media"
|
||||
kind: Mapped[str] = mapped_column(primary_key=True)
|
||||
filename: Mapped[str] = mapped_column(primary_key=True)
|
||||
user_id: Mapped[int] = mapped_column(ForeignKey("users.id"))
|
||||
kind: Mapped[str_pk]
|
||||
filename: Mapped[str_pk]
|
||||
user_id: Mapped[user_id_fk]
|
||||
created_utc: Mapped[int]
|
||||
size: Mapped[int]
|
||||
|
||||
|
|
|
@ -6,10 +6,11 @@ from sqlalchemy.sql.sqltypes import *
|
|||
|
||||
from files.classes import Base
|
||||
from files.helpers.lazy import *
|
||||
from files.helpers.types import user_id_fk_pk
|
||||
|
||||
class Mod(Base):
|
||||
__tablename__ = "mods"
|
||||
user_id: Mapped[int] = mapped_column(ForeignKey("users.id"), primary_key=True)
|
||||
user_id: Mapped[user_id_fk_pk]
|
||||
hole: Mapped[str] = mapped_column(ForeignKey("holes.name"), primary_key=True)
|
||||
created_utc: Mapped[int]
|
||||
|
||||
|
|
|
@ -1,8 +1,7 @@
|
|||
import time
|
||||
from typing import Optional, TYPE_CHECKING
|
||||
|
||||
from sqlalchemy import ForeignKey
|
||||
from sqlalchemy.orm import Mapped, mapped_column, relationship
|
||||
from sqlalchemy.orm import Mapped, relationship
|
||||
from sqlalchemy.sql.sqltypes import *
|
||||
from flask import g
|
||||
|
||||
|
@ -11,6 +10,7 @@ from files.helpers.config.const import *
|
|||
from files.helpers.lazy import lazy
|
||||
from files.helpers.slurs_and_profanities import censor_slurs_profanities
|
||||
from files.helpers.sorting_and_time import make_age_string
|
||||
from files.helpers.types import comment_id_fk, int_pk, post_id_fk, user_id_fk
|
||||
|
||||
if TYPE_CHECKING:
|
||||
from files.classes import Comment, Post, User
|
||||
|
@ -18,12 +18,12 @@ if TYPE_CHECKING:
|
|||
|
||||
class ModAction(Base):
|
||||
__tablename__ = "modactions"
|
||||
id: Mapped[int] = mapped_column(primary_key=True)
|
||||
user_id: Mapped[Optional[int]] = mapped_column(ForeignKey("users.id"))
|
||||
id: Mapped[int_pk]
|
||||
user_id: Mapped[Optional[user_id_fk]]
|
||||
kind: Mapped[Optional[str]]
|
||||
target_user_id: Mapped[Optional[int]] = mapped_column(ForeignKey("users.id"))
|
||||
target_post_id: Mapped[Optional[int]] = mapped_column(ForeignKey("posts.id"))
|
||||
target_comment_id: Mapped[Optional[int]] = mapped_column(ForeignKey("comments.id"))
|
||||
target_user_id: Mapped[Optional[user_id_fk]]
|
||||
target_post_id: Mapped[Optional[post_id_fk]]
|
||||
target_comment_id: Mapped[Optional[comment_id_fk]]
|
||||
_note: Mapped[Optional[str]]
|
||||
created_utc: Mapped[int]
|
||||
|
||||
|
|
|
@ -1,11 +1,11 @@
|
|||
import time
|
||||
from typing import TYPE_CHECKING
|
||||
|
||||
from sqlalchemy import ForeignKey
|
||||
from sqlalchemy.orm import Mapped, mapped_column, relationship
|
||||
from sqlalchemy.sql.sqltypes import *
|
||||
|
||||
from files.classes import Base
|
||||
from files.helpers.types import comment_id_fk_pk, user_id_fk_pk
|
||||
|
||||
if TYPE_CHECKING:
|
||||
from files.classes import Comment, User
|
||||
|
@ -14,8 +14,8 @@ if TYPE_CHECKING:
|
|||
class Notification(Base):
|
||||
__tablename__ = "notifications"
|
||||
|
||||
user_id: Mapped[int] = mapped_column(ForeignKey("users.id"), primary_key=True)
|
||||
comment_id: Mapped[int] = mapped_column(ForeignKey("comments.id"), primary_key=True)
|
||||
user_id: Mapped[user_id_fk_pk]
|
||||
comment_id: Mapped[comment_id_fk_pk]
|
||||
read: Mapped[bool] = mapped_column(default=False)
|
||||
created_utc: Mapped[int]
|
||||
|
||||
|
|
|
@ -3,11 +3,11 @@ from flask import g, abort
|
|||
import requests
|
||||
from typing import Optional
|
||||
|
||||
from sqlalchemy import or_
|
||||
from sqlalchemy.orm import Mapped, mapped_column
|
||||
from sqlalchemy.sql.sqltypes import *
|
||||
|
||||
from files.classes import Base
|
||||
from files.helpers.types import int_pk
|
||||
|
||||
from files.helpers.lazy import lazy
|
||||
from files.helpers.config.const import *
|
||||
|
@ -15,7 +15,7 @@ from files.helpers.config.const import *
|
|||
class Orgy(Base):
|
||||
__tablename__ = "orgies"
|
||||
|
||||
created_utc: Mapped[int] = mapped_column(primary_key=True)
|
||||
created_utc: Mapped[int_pk]
|
||||
type: Mapped[str]
|
||||
data: Mapped[str]
|
||||
title: Mapped[str]
|
||||
|
|
|
@ -7,6 +7,7 @@ from sqlalchemy.sql.sqltypes import *
|
|||
|
||||
from files.classes import Base
|
||||
from files.helpers.lazy import lazy
|
||||
from files.helpers.types import comment_id_fk, int_pk, post_id_fk, user_id_fk_pk
|
||||
|
||||
if TYPE_CHECKING:
|
||||
from files.classes import Comment, Post, User
|
||||
|
@ -15,8 +16,8 @@ if TYPE_CHECKING:
|
|||
class PostOption(Base):
|
||||
__tablename__ = "post_options"
|
||||
|
||||
id: Mapped[int] = mapped_column(primary_key=True)
|
||||
parent_id: Mapped[int] = mapped_column(ForeignKey("posts.id"))
|
||||
id: Mapped[int_pk]
|
||||
parent_id: Mapped[post_id_fk]
|
||||
body_html: Mapped[str] = mapped_column(Text)
|
||||
exclusive: Mapped[int]
|
||||
created_utc: Mapped[Optional[int]]
|
||||
|
@ -46,9 +47,9 @@ class PostOptionVote(Base):
|
|||
__tablename__ = "post_option_votes"
|
||||
|
||||
option_id: Mapped[int] = mapped_column(ForeignKey("post_options.id"), primary_key=True)
|
||||
user_id: Mapped[int] = mapped_column(ForeignKey("users.id"), primary_key=True)
|
||||
user_id: Mapped[user_id_fk_pk]
|
||||
created_utc: Mapped[int]
|
||||
post_id: Mapped[Optional[int]] = mapped_column(ForeignKey("posts.id"))
|
||||
post_id: Mapped[Optional[post_id_fk]]
|
||||
|
||||
user: Mapped["User"] = relationship()
|
||||
|
||||
|
@ -64,8 +65,8 @@ class CommentOption(Base):
|
|||
|
||||
__tablename__ = "comment_options"
|
||||
|
||||
id: Mapped[int] = mapped_column(primary_key=True)
|
||||
parent_id: Mapped[int] = mapped_column(ForeignKey("comments.id"))
|
||||
id: Mapped[int_pk]
|
||||
parent_id: Mapped[comment_id_fk]
|
||||
body_html: Mapped[str] = mapped_column(Text)
|
||||
exclusive: Mapped[int]
|
||||
created_utc: Mapped[Optional[int]]
|
||||
|
@ -95,9 +96,9 @@ class CommentOptionVote(Base):
|
|||
__tablename__ = "comment_option_votes"
|
||||
|
||||
option_id: Mapped[int] = mapped_column(ForeignKey("comment_options.id"), primary_key=True)
|
||||
user_id: Mapped[int] = mapped_column(ForeignKey("users.id"), primary_key=True)
|
||||
user_id: Mapped[user_id_fk_pk]
|
||||
created_utc: Mapped[int]
|
||||
comment_id: Mapped[Optional[int]] = mapped_column(ForeignKey("comments.id"))
|
||||
comment_id: Mapped[Optional[comment_id_fk]]
|
||||
|
||||
user: Mapped["User"] = relationship()
|
||||
|
||||
|
|
|
@ -4,7 +4,7 @@ from typing import Optional, TYPE_CHECKING
|
|||
from urllib.parse import urlparse
|
||||
from flask import g
|
||||
|
||||
from sqlalchemy import FetchedValue, ForeignKey
|
||||
from sqlalchemy import ForeignKey
|
||||
from sqlalchemy.orm import Mapped, mapped_column, relationship
|
||||
from sqlalchemy.sql.sqltypes import *
|
||||
|
||||
|
@ -15,6 +15,7 @@ from files.helpers.slurs_and_profanities import *
|
|||
from files.helpers.lazy import lazy
|
||||
from files.helpers.regex import *
|
||||
from files.helpers.sorting_and_time import make_age_string
|
||||
from files.helpers.types import int_pk, user_id_fk
|
||||
from files.helpers.bleach_body import *
|
||||
|
||||
from .comment import *
|
||||
|
@ -30,8 +31,8 @@ if TYPE_CHECKING:
|
|||
class Post(Base):
|
||||
__tablename__ = "posts"
|
||||
|
||||
id: Mapped[int] = mapped_column(primary_key=True)
|
||||
author_id: Mapped[int] = mapped_column(ForeignKey("users.id"))
|
||||
id: Mapped[int_pk]
|
||||
author_id: Mapped[user_id_fk]
|
||||
edited_utc: Mapped[int] = mapped_column(default=0)
|
||||
created_utc: Mapped[int]
|
||||
thumburl: Mapped[Optional[str]]
|
||||
|
@ -51,7 +52,7 @@ class Post(Base):
|
|||
is_pinned: Mapped[bool] = mapped_column(default=False)
|
||||
private: Mapped[bool] = mapped_column(default=False)
|
||||
comment_count: Mapped[int] = mapped_column(default=0)
|
||||
is_approved: Mapped[Optional[int]] = mapped_column(ForeignKey("users.id"))
|
||||
is_approved: Mapped[Optional[user_id_fk]]
|
||||
is_bot: Mapped[bool] = mapped_column(default=False)
|
||||
upvotes: Mapped[int] = mapped_column(default=1)
|
||||
downvotes: Mapped[int] = mapped_column(default=0)
|
||||
|
|
|
@ -1,15 +1,15 @@
|
|||
import time
|
||||
|
||||
from sqlalchemy import ForeignKey
|
||||
from sqlalchemy.orm import Mapped, mapped_column
|
||||
from sqlalchemy.orm import Mapped
|
||||
from sqlalchemy.sql.sqltypes import *
|
||||
|
||||
from files.classes import Base
|
||||
from files.helpers.types import str_pk, user_id_fk_pk
|
||||
|
||||
class PushSubscription(Base):
|
||||
__tablename__ = "push_subscriptions"
|
||||
user_id: Mapped[int] = mapped_column(ForeignKey("users.id"), primary_key=True)
|
||||
subscription_json: Mapped[str] = mapped_column(primary_key=True)
|
||||
user_id: Mapped[user_id_fk_pk]
|
||||
subscription_json: Mapped[str_pk]
|
||||
created_utc: Mapped[int]
|
||||
|
||||
def __init__(self, *args, **kwargs):
|
||||
|
|
|
@ -1,13 +1,13 @@
|
|||
import time
|
||||
from typing import Optional, TYPE_CHECKING
|
||||
|
||||
from sqlalchemy import ForeignKey
|
||||
from sqlalchemy.orm import Mapped, mapped_column, relationship
|
||||
from sqlalchemy.orm import Mapped, relationship
|
||||
from sqlalchemy.sql.sqltypes import *
|
||||
|
||||
from files.classes import Base
|
||||
from files.helpers.lazy import lazy
|
||||
from files.helpers.slurs_and_profanities import censor_slurs_profanities
|
||||
from files.helpers.types import comment_id_fk_pk, post_id_fk_pk, user_id_fk_pk
|
||||
|
||||
if TYPE_CHECKING:
|
||||
from files.classes import User
|
||||
|
@ -16,8 +16,8 @@ if TYPE_CHECKING:
|
|||
class Report(Base):
|
||||
__tablename__ = "reports"
|
||||
|
||||
post_id: Mapped[int] = mapped_column(ForeignKey("posts.id"), primary_key=True)
|
||||
user_id: Mapped[int] = mapped_column(ForeignKey("users.id"), primary_key=True)
|
||||
post_id: Mapped[post_id_fk_pk]
|
||||
user_id: Mapped[user_id_fk_pk]
|
||||
reason: Mapped[Optional[str]]
|
||||
created_utc: Mapped[int]
|
||||
|
||||
|
@ -44,8 +44,8 @@ class Report(Base):
|
|||
class CommentReport(Base):
|
||||
__tablename__ = "commentreports"
|
||||
|
||||
comment_id: Mapped[int] = mapped_column(ForeignKey("comments.id"), primary_key=True)
|
||||
user_id: Mapped[int] = mapped_column(ForeignKey("users.id"), primary_key=True)
|
||||
comment_id: Mapped[comment_id_fk_pk]
|
||||
user_id: Mapped[user_id_fk_pk]
|
||||
reason: Mapped[Optional[str]]
|
||||
created_utc: Mapped[int]
|
||||
|
||||
|
|
|
@ -1,11 +1,11 @@
|
|||
import time
|
||||
from typing import Optional, TYPE_CHECKING
|
||||
|
||||
from sqlalchemy import ForeignKey
|
||||
from sqlalchemy.orm import Mapped, mapped_column, relationship
|
||||
from sqlalchemy.orm import Mapped, relationship
|
||||
from sqlalchemy.sql.sqltypes import *
|
||||
|
||||
from files.classes import Base
|
||||
from files.helpers.types import comment_id_fk_pk, post_id_fk_pk, user_id_fk_pk
|
||||
|
||||
if TYPE_CHECKING:
|
||||
from files.classes.comment import Comment
|
||||
|
@ -15,8 +15,8 @@ if TYPE_CHECKING:
|
|||
class SaveRelationship(Base):
|
||||
__tablename__ = "save_relationship"
|
||||
|
||||
user_id: Mapped[int] = mapped_column(ForeignKey("users.id"), primary_key=True)
|
||||
post_id: Mapped[int] = mapped_column(ForeignKey("posts.id"), primary_key=True)
|
||||
user_id: Mapped[user_id_fk_pk]
|
||||
post_id: Mapped[post_id_fk_pk]
|
||||
created_utc: Mapped[Optional[int]]
|
||||
|
||||
post: Mapped["Post"] = relationship(uselist=False)
|
||||
|
@ -33,8 +33,8 @@ class CommentSaveRelationship(Base):
|
|||
|
||||
__tablename__ = "comment_save_relationship"
|
||||
|
||||
user_id: Mapped[int] = mapped_column(ForeignKey("users.id"), primary_key=True)
|
||||
comment_id: Mapped[int] = mapped_column(ForeignKey("comments.id"), primary_key=True)
|
||||
user_id: Mapped[user_id_fk_pk]
|
||||
comment_id: Mapped[comment_id_fk_pk]
|
||||
created_utc: Mapped[Optional[int]]
|
||||
|
||||
comment: Mapped["Comment"] = relationship(uselist=False)
|
||||
|
|
|
@ -1,11 +1,11 @@
|
|||
import time
|
||||
from typing import Optional, TYPE_CHECKING
|
||||
|
||||
from sqlalchemy import ForeignKey
|
||||
from sqlalchemy.orm import Mapped, mapped_column, relationship
|
||||
from sqlalchemy.orm import Mapped, relationship
|
||||
from sqlalchemy.sql.sqltypes import *
|
||||
|
||||
from files.classes import Base
|
||||
from files.helpers.types import post_id_fk_pk, user_id_fk_pk
|
||||
|
||||
if TYPE_CHECKING:
|
||||
from files.classes import Post, User
|
||||
|
@ -13,8 +13,8 @@ if TYPE_CHECKING:
|
|||
|
||||
class Subscription(Base):
|
||||
__tablename__ = "subscriptions"
|
||||
user_id: Mapped[int] = mapped_column(ForeignKey("users.id"), primary_key=True)
|
||||
post_id: Mapped[int] = mapped_column(ForeignKey("posts.id"), primary_key=True)
|
||||
user_id: Mapped[user_id_fk_pk]
|
||||
post_id: Mapped[post_id_fk_pk]
|
||||
created_utc: Mapped[Optional[int]]
|
||||
|
||||
user: Mapped["User"] = relationship(uselist=False)
|
||||
|
|
|
@ -1,13 +1,14 @@
|
|||
from typing import Optional
|
||||
|
||||
from sqlalchemy.orm import Mapped, mapped_column
|
||||
from sqlalchemy.orm import Mapped
|
||||
from sqlalchemy.sql.sqltypes import *
|
||||
|
||||
from files.classes import Base
|
||||
from files.helpers.types import str_pk
|
||||
|
||||
class Transaction(Base):
|
||||
__tablename__ = "transactions"
|
||||
id: Mapped[str] = mapped_column(primary_key=True)
|
||||
id: Mapped[str_pk]
|
||||
created_utc: Mapped[int]
|
||||
type: Mapped[str]
|
||||
amount: Mapped[int]
|
||||
|
|
|
@ -3,8 +3,7 @@ from operator import *
|
|||
from typing import Optional
|
||||
|
||||
import pyotp
|
||||
from sqlalchemy import ForeignKey, FetchedValue
|
||||
from sqlalchemy.orm import DynamicMapped, Mapped, Query, aliased, deferred, mapped_column
|
||||
from sqlalchemy.orm import DynamicMapped, Mapped, aliased, mapped_column
|
||||
from sqlalchemy.sql import case, func, literal
|
||||
from sqlalchemy.sql.expression import not_, and_, or_
|
||||
from sqlalchemy.sql.sqltypes import *
|
||||
|
@ -21,6 +20,7 @@ from files.helpers.config.awards import AWARDS_ENABLED, HOUSE_AWARDS
|
|||
from files.helpers.media import *
|
||||
from files.helpers.security import *
|
||||
from files.helpers.sorting_and_time import *
|
||||
from files.helpers.types import int_pk, user_id_fk
|
||||
from files.helpers.can_see import *
|
||||
|
||||
from .alts import Alt
|
||||
|
@ -52,7 +52,7 @@ else:
|
|||
class User(Base):
|
||||
__tablename__ = "users"
|
||||
|
||||
id: Mapped[int] = mapped_column(primary_key=True)
|
||||
id: Mapped[int_pk]
|
||||
username: Mapped[str]
|
||||
namecolor: Mapped[str] = mapped_column(default=DEFAULT_COLOR)
|
||||
background: Mapped[Optional[str]]
|
||||
|
@ -93,8 +93,8 @@ class User(Base):
|
|||
queen: Mapped[Optional[int]] = mapped_column(default=0)
|
||||
chud_phrase: Mapped[Optional[str]]
|
||||
email_verified: Mapped[bool] = mapped_column(default=False)
|
||||
shadowbanned: Mapped[Optional[int]] = mapped_column(ForeignKey("users.id"))
|
||||
chudded_by: Mapped[Optional[int]] = mapped_column(ForeignKey("users.id"))
|
||||
shadowbanned: Mapped[Optional[user_id_fk]]
|
||||
chudded_by: Mapped[Optional[user_id_fk]]
|
||||
slurreplacer: Mapped[int] = mapped_column(default=1)
|
||||
profanityreplacer: Mapped[int] = mapped_column(default=1)
|
||||
flairchanged: Mapped[Optional[int]] = mapped_column(default=0)
|
||||
|
@ -113,7 +113,7 @@ class User(Base):
|
|||
friends_html: Mapped[Optional[str]] = mapped_column(deferred=True)
|
||||
enemies: Mapped[Optional[str]] = mapped_column(deferred=True)
|
||||
enemies_html: Mapped[Optional[str]] = mapped_column(deferred=True)
|
||||
is_banned: Mapped[Optional[int]] = mapped_column(ForeignKey("users.id"))
|
||||
is_banned: Mapped[Optional[user_id_fk]]
|
||||
unban_utc: Mapped[Optional[int]]
|
||||
ban_reason: Mapped[Optional[str]] = mapped_column(deferred=True)
|
||||
shadowban_reason: Mapped[Optional[str]] = mapped_column(deferred=True)
|
||||
|
@ -132,7 +132,7 @@ class User(Base):
|
|||
original_username: Mapped[Optional[str]]
|
||||
extra_username: Mapped[Optional[str]]
|
||||
prelock_username: Mapped[Optional[str]]
|
||||
referred_by: Mapped[Optional[int]] = mapped_column(ForeignKey("users.id"))
|
||||
referred_by: Mapped[Optional[user_id_fk]]
|
||||
currently_held_lottery_tickets: Mapped[int] = mapped_column(default=0)
|
||||
total_held_lottery_tickets: Mapped[int] = mapped_column(default=0)
|
||||
total_lottery_winnings: Mapped[int] = mapped_column(default=0)
|
||||
|
@ -148,7 +148,7 @@ class User(Base):
|
|||
spider: Mapped[Optional[int]] = mapped_column(default=0)
|
||||
lifetimedonated: Mapped[int] = mapped_column(default=0)
|
||||
lifetimedonated_visible: Mapped[bool] = mapped_column(default=False)
|
||||
blacklisted_by: Mapped[Optional[int]] = mapped_column(ForeignKey("users.id"))
|
||||
blacklisted_by: Mapped[Optional[user_id_fk]]
|
||||
grinch: Mapped[bool] = mapped_column(default=SITE_NAME != 'rDrama') #don't put in an if condition, it will cause an error bc it has a not-null constraint
|
||||
group_creation_notifs: Mapped[bool] = mapped_column(default=False)
|
||||
effortpost_notifs: Mapped[bool] = mapped_column(default=False)
|
||||
|
|
|
@ -1,11 +1,11 @@
|
|||
import time
|
||||
from typing import Optional, TYPE_CHECKING
|
||||
|
||||
from sqlalchemy import ForeignKey
|
||||
from sqlalchemy.orm import Mapped, mapped_column, relationship
|
||||
from sqlalchemy.orm import Mapped, relationship
|
||||
from sqlalchemy.sql.sqltypes import *
|
||||
|
||||
from files.classes import Base
|
||||
from files.helpers.types import user_id_fk_pk
|
||||
|
||||
if TYPE_CHECKING:
|
||||
from files.classes import User
|
||||
|
@ -13,8 +13,8 @@ if TYPE_CHECKING:
|
|||
|
||||
class UserBlock(Base):
|
||||
__tablename__ = "userblocks"
|
||||
user_id: Mapped[int] = mapped_column(ForeignKey("users.id"), primary_key=True)
|
||||
target_id: Mapped[int] = mapped_column(ForeignKey("users.id"), primary_key=True)
|
||||
user_id: Mapped[user_id_fk_pk]
|
||||
target_id: Mapped[user_id_fk_pk]
|
||||
created_utc: Mapped[Optional[int]]
|
||||
|
||||
user: Mapped["User"] = relationship(primaryjoin="User.id==UserBlock.user_id", back_populates="blocking")
|
||||
|
|
|
@ -1,11 +1,11 @@
|
|||
import time
|
||||
from typing import Optional, TYPE_CHECKING
|
||||
|
||||
from sqlalchemy import ForeignKey
|
||||
from sqlalchemy.orm import Mapped, mapped_column, relationship
|
||||
from sqlalchemy.orm import Mapped, relationship
|
||||
from sqlalchemy.sql.sqltypes import *
|
||||
|
||||
from files.classes import Base
|
||||
from files.helpers.types import user_id_fk_pk
|
||||
|
||||
if TYPE_CHECKING:
|
||||
from files.classes import User
|
||||
|
@ -13,8 +13,8 @@ if TYPE_CHECKING:
|
|||
|
||||
class UserMute(Base):
|
||||
__tablename__ = "usermutes"
|
||||
user_id: Mapped[int] = mapped_column(ForeignKey("users.id"), primary_key=True)
|
||||
target_id: Mapped[int] = mapped_column(ForeignKey("users.id"), primary_key=True)
|
||||
user_id: Mapped[user_id_fk_pk]
|
||||
target_id: Mapped[user_id_fk_pk]
|
||||
created_utc: Mapped[Optional[int]]
|
||||
|
||||
user: Mapped["User"] = relationship(primaryjoin="User.id==UserMute.user_id")
|
||||
|
|
|
@ -1,13 +1,13 @@
|
|||
import time
|
||||
from typing import Optional, TYPE_CHECKING
|
||||
|
||||
from sqlalchemy import ForeignKey
|
||||
from sqlalchemy.orm import Mapped, mapped_column, relationship
|
||||
from sqlalchemy.orm import Mapped, relationship
|
||||
from sqlalchemy.sql.sqltypes import *
|
||||
|
||||
from files.classes import Base
|
||||
from files.helpers.lazy import *
|
||||
from files.helpers.sorting_and_time import make_age_string
|
||||
from files.helpers.types import user_id_fk_pk
|
||||
|
||||
if TYPE_CHECKING:
|
||||
from files.classes import User
|
||||
|
@ -16,8 +16,8 @@ if TYPE_CHECKING:
|
|||
class ViewerRelationship(Base):
|
||||
__tablename__ = "viewers"
|
||||
|
||||
user_id: Mapped[int] = mapped_column(ForeignKey('users.id'), primary_key=True)
|
||||
viewer_id: Mapped[int] = mapped_column(ForeignKey('users.id'), primary_key=True)
|
||||
user_id: Mapped[user_id_fk_pk]
|
||||
viewer_id: Mapped[user_id_fk_pk]
|
||||
last_view_utc: Mapped[int]
|
||||
created_utc: Mapped[Optional[int]]
|
||||
|
||||
|
|
|
@ -1,12 +1,12 @@
|
|||
import time
|
||||
from typing import TYPE_CHECKING
|
||||
|
||||
from sqlalchemy import ForeignKey
|
||||
from sqlalchemy.orm import Mapped, mapped_column, relationship
|
||||
from sqlalchemy.sql.sqltypes import *
|
||||
|
||||
from files.classes import Base
|
||||
from files.helpers.lazy import lazy
|
||||
from files.helpers.types import comment_id_fk_pk, post_id_fk_pk, user_id_fk_pk
|
||||
|
||||
if TYPE_CHECKING:
|
||||
from files.classes import User
|
||||
|
@ -15,8 +15,8 @@ if TYPE_CHECKING:
|
|||
class Vote(Base):
|
||||
__tablename__ = "votes"
|
||||
|
||||
post_id: Mapped[int] = mapped_column(ForeignKey("posts.id"), primary_key=True)
|
||||
user_id: Mapped[int] = mapped_column(ForeignKey("users.id"), primary_key=True)
|
||||
post_id: Mapped[post_id_fk_pk]
|
||||
user_id: Mapped[user_id_fk_pk]
|
||||
vote_type: Mapped[int]
|
||||
real: Mapped[bool] = mapped_column(default=True)
|
||||
coins: Mapped[int] = mapped_column(default=1)
|
||||
|
@ -45,8 +45,8 @@ class CommentVote(Base):
|
|||
|
||||
__tablename__ = "commentvotes"
|
||||
|
||||
comment_id: Mapped[int] = mapped_column(ForeignKey("comments.id"), primary_key=True)
|
||||
user_id: Mapped[int] = mapped_column(ForeignKey("users.id"), primary_key=True)
|
||||
comment_id: Mapped[comment_id_fk_pk]
|
||||
user_id: Mapped[user_id_fk_pk]
|
||||
vote_type: Mapped[int]
|
||||
real: Mapped[bool] = mapped_column(default=True)
|
||||
coins: Mapped[int] = mapped_column(default=1)
|
||||
|
|
|
@ -0,0 +1,14 @@
|
|||
from typing import Annotated
|
||||
|
||||
from sqlalchemy.sql.schema import ForeignKey
|
||||
from sqlalchemy.orm import mapped_column
|
||||
|
||||
int_pk = Annotated[int, mapped_column(primary_key=True)]
|
||||
str_pk = Annotated[str, mapped_column(primary_key=True)]
|
||||
|
||||
user_id_fk = Annotated[int, mapped_column(ForeignKey("users.id"))]
|
||||
user_id_fk_pk = Annotated[int, mapped_column(ForeignKey("users.id"), primary_key=True)]
|
||||
post_id_fk = Annotated[int, mapped_column(ForeignKey("posts.id"))]
|
||||
post_id_fk_pk = Annotated[int, mapped_column(ForeignKey("posts.id"), primary_key=True)]
|
||||
comment_id_fk = Annotated[int, mapped_column(ForeignKey("comments.id"))]
|
||||
comment_id_fk_pk = Annotated[int, mapped_column(ForeignKey("comments.id"), primary_key=True)]
|
Loading…
Reference in New Issue