Add rest of docstrings.
This commit is contained in:
@@ -41,6 +41,9 @@ class CategoryGroup(SQLModel, table=True):
|
||||
pad_length (int): The padding length for the category group, default is 12.
|
||||
username_length (int): The username length for the category group, default is 12.
|
||||
guild (Guild | None): The guild relationship back-populated from the Guild model.
|
||||
|
||||
Table Constraints:
|
||||
__table_args__: Unique constraint on guild_id and name to ensure unique category groups within a guild.
|
||||
"""
|
||||
|
||||
__tablename__: str = "CategoryGroups"
|
||||
@@ -66,9 +69,28 @@ class CategoryGroup(SQLModel, table=True):
|
||||
|
||||
|
||||
class Category(SQLModel, table=True):
|
||||
"""
|
||||
Represents a category in the database.
|
||||
|
||||
Attributes:
|
||||
id (int): The unique identifier for the category. Primary key.
|
||||
name (str): The name of the category with a maximum length of 30 characters.
|
||||
group_id (int): The identifier of the group to which the category belongs.
|
||||
Foreign key referencing CategoryGroups.id.
|
||||
size (int): The size attribute of the category, default is 3.
|
||||
is_ascending (bool): Indicates if the category is in ascending order. Default is True.
|
||||
is_time_record (bool): Indicates if the category is a time record. Default is False.
|
||||
is_validated (bool): Indicates if the category is validated. Default is True.
|
||||
category_group (CategoryGroup | None): The relationship to the CategoryGroup model.
|
||||
scores (list["Score"] | None): The relationship to the Score model with cascade delete enabled.
|
||||
|
||||
Table Constraints:
|
||||
__table_args__: Unique constraint on group_id and name to ensure unique category names within a group.
|
||||
"""
|
||||
|
||||
__tablename__: str = "Categories"
|
||||
|
||||
id: int | None = Field(default=None, primary_key=True)
|
||||
id: int = Field(default=None, primary_key=True)
|
||||
name: str = Field(max_length=30)
|
||||
group_id: int = Field(
|
||||
sa_column=Column(
|
||||
@@ -89,6 +111,18 @@ class Category(SQLModel, table=True):
|
||||
|
||||
|
||||
class Score(SQLModel, table=True):
|
||||
"""
|
||||
Represents a score entry in the database.
|
||||
|
||||
Attributes:
|
||||
username (str): The username associated with the score. This is a primary key.
|
||||
score (float): The score value.
|
||||
category_id (int): The ID of the category this score belongs to. This is a primary key and a foreign key
|
||||
referencing the Categories table.
|
||||
category (Category | None): The relationship to the Category model, back-populated by the scores attribute
|
||||
in the Category model.
|
||||
"""
|
||||
|
||||
__tablename__: str = "Scores"
|
||||
|
||||
username: str = Field(max_length=30, nullable=False, primary_key=True)
|
||||
@@ -106,6 +140,19 @@ class Score(SQLModel, table=True):
|
||||
|
||||
|
||||
class Submission(SQLModel, table=True):
|
||||
"""
|
||||
Represents a submission in the database.
|
||||
|
||||
Attributes:
|
||||
category_id (int): The ID of the category. This is a primary key.
|
||||
group_id (int): The ID of the group.
|
||||
guild_id (int): The ID of the guild.
|
||||
message_id (int): The ID of the message.
|
||||
score (str): The score of the submission, with a maximum length of 30 characters.
|
||||
user_id (int): The ID of the user.
|
||||
username (str): The username of the user. This is a primary key.
|
||||
"""
|
||||
|
||||
__tablename__: str = "Submissions"
|
||||
|
||||
category_id: int = Field(
|
||||
|
||||
Reference in New Issue
Block a user