api/app/seeders/user_seeder.py

51 lines
1.5 KiB
Python

from app.factories.user_factory import UserFactory
from app.models.user import User
from app.models.user_profile import UserProfile
from app.security import hash_password
def seed_users(db, count: int = 5, tenant_ids: list[str] | None = None):
result = []
for i in range(count):
kwargs = {}
if tenant_ids:
kwargs["tenant_id"] = tenant_ids[i % len(tenant_ids)]
user = UserFactory().create(db, **kwargs)
profile = UserProfile(
user_id=user.id,
full_name="User Default",
phone="081234567890",
timezone="Asia/Jakarta",
)
db.add(profile)
result.append(user)
admin = db.query(User).filter(
(User.email == "project.pangestuyoga@gmail.com") | (User.username == "pangestu")
).first()
from datetime import datetime, timezone
if not admin:
admin = User(
email="project.pangestuyoga@gmail.com",
username="pangestu",
password=hash_password("Minimal8@"),
status="ACTIVE",
email_verified_at=datetime.now(timezone.utc),
)
db.add(admin)
db.flush()
admin_profile = UserProfile(
user_id=admin.id,
full_name="Pangestu Yoga",
phone="081234567890",
timezone="Asia/Jakarta",
)
db.add(admin_profile)
else:
admin.password = hash_password("Minimal8@")
result.append(admin)
return result