51 lines
1.5 KiB
Python
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
|