67 lines
1.7 KiB
Python
67 lines
1.7 KiB
Python
import uuid
|
|
|
|
import sqlmodel
|
|
|
|
from app.core.config import config
|
|
from app.models.user import User
|
|
|
|
engine = sqlmodel.create_engine(config.DATABASE_URL)
|
|
|
|
|
|
class UserFactory:
|
|
@staticmethod
|
|
def new_user(
|
|
id: int,
|
|
username: str,
|
|
events: list['Event'] = None,
|
|
items: list['Item'] = None,
|
|
transactions: list['Transaction'] = None,
|
|
):
|
|
with sqlmodel.Session(engine) as session:
|
|
user = User(
|
|
id=id,
|
|
username=username,
|
|
events=events if events else [],
|
|
items=items if items else [],
|
|
transactions=transactions if transactions else [],
|
|
)
|
|
session.add(user)
|
|
session.commit()
|
|
|
|
@staticmethod
|
|
def bulk_new_users(users: list[dict]):
|
|
with sqlmodel.Session(engine) as session:
|
|
print(session.exec(sqlmodel.select(User)).all())
|
|
|
|
for user in users:
|
|
UserFactory.new_user(**user)
|
|
|
|
|
|
class EventFactory:
|
|
@staticmethod
|
|
def new_event(
|
|
id: int,
|
|
owner_id: int,
|
|
invite: uuid.UUID = None,
|
|
users: list['User'] = None,
|
|
transactions: list['Transaction'] = None,
|
|
):
|
|
with sqlmodel.Session(engine) as session:
|
|
user = User(
|
|
id=id,
|
|
username=username,
|
|
events=events,
|
|
items=items,
|
|
transactions=transactions,
|
|
)
|
|
session.add(user)
|
|
session.commit()
|
|
|
|
@staticmethod
|
|
def bulk_new_users(users: list[dict]):
|
|
with sqlmodel.Session(engine) as session:
|
|
print(session.exec(sqlmodel.select(User)).all())
|
|
|
|
for user in users:
|
|
UserFactory.new_user(**user)
|