Add database code. Starting with birthday table.

This commit is contained in:
2025-03-17 17:40:21 -04:00
parent 7fd3fb8458
commit 3a4ac066a2
3 changed files with 32 additions and 0 deletions
+1
View File
@@ -0,0 +1 @@
"""Package for database interaction."""
+11
View File
@@ -0,0 +1,11 @@
"""Simple file to set up the sqlmodel connection to database."""
from sqlmodel import SQLModel, create_engine
from . import models # noqa: F401 - Need this import for creating the models.
url = "sqlite:///database.db"
engine = create_engine(url)
# Don't need to create all when connected to prod.
SQLModel.metadata.create_all(engine)
+20
View File
@@ -0,0 +1,20 @@
"""File holds all model definitions of SQL tables."""
from sqlalchemy.dialects.mysql import BIGINT, SMALLINT
from sqlmodel import Column, Field, SQLModel
class UserBirthday(SQLModel, table=True):
"""
Represents a user's birthday.
Attributes:
user_id: The user's discord id. Primary key.
month: The month the user was born.
day: The day the user was born.
"""
user_id: int = Field(sa_column=Column(BIGINT(unsigned=True), primary_key=True, nullable=False))
month: int = Field(sa_column=Column(SMALLINT(unsigned=True), nullable=False))
day: int = Field(sa_column=Column(SMALLINT(unsigned=True), nullable=False))