2024-10-10 07:49:26 -07:00
|
|
|
from sqlalchemy import select
|
|
|
|
|
|
2019-02-22 11:26:44 +00:00
|
|
|
from app import db
|
2021-04-14 07:11:01 +01:00
|
|
|
from app.dao.dao_utils import autocommit
|
2025-08-28 11:12:49 -07:00
|
|
|
from app.enums import UserState
|
2019-03-11 15:01:22 +00:00
|
|
|
from app.models import ServiceUser, User
|
2019-02-22 11:26:44 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
def dao_get_service_user(user_id, service_id):
|
2024-12-19 11:10:03 -08:00
|
|
|
stmt = select(ServiceUser).where(
|
|
|
|
|
ServiceUser.user_id == user_id, ServiceUser.service_id == service_id
|
|
|
|
|
)
|
2024-10-10 07:49:26 -07:00
|
|
|
return db.session.execute(stmt).scalars().one_or_none()
|
2019-02-22 11:26:44 +00:00
|
|
|
|
|
|
|
|
|
2019-03-11 15:01:22 +00:00
|
|
|
def dao_get_active_service_users(service_id):
|
2024-10-10 07:49:26 -07:00
|
|
|
|
|
|
|
|
stmt = (
|
|
|
|
|
select(ServiceUser)
|
2023-08-29 14:54:30 -07:00
|
|
|
.join(User, User.id == ServiceUser.user_id)
|
2025-08-28 11:12:49 -07:00
|
|
|
.where(User.state == UserState.ACTIVE, ServiceUser.service_id == service_id)
|
2019-03-11 15:01:22 +00:00
|
|
|
)
|
2024-10-10 07:49:26 -07:00
|
|
|
return db.session.execute(stmt).scalars().all()
|
2019-03-11 15:01:22 +00:00
|
|
|
|
|
|
|
|
|
2019-05-21 15:53:48 +01:00
|
|
|
def dao_get_service_users_by_user_id(user_id):
|
2024-11-18 10:59:38 -08:00
|
|
|
return (
|
2024-12-19 11:10:03 -08:00
|
|
|
db.session.execute(select(ServiceUser).where(ServiceUser.user_id == user_id))
|
2024-11-18 10:59:38 -08:00
|
|
|
.scalars()
|
|
|
|
|
.all()
|
|
|
|
|
)
|
2019-05-21 15:53:48 +01:00
|
|
|
|
|
|
|
|
|
2021-04-14 07:11:01 +01:00
|
|
|
@autocommit
|
2019-02-22 11:26:44 +00:00
|
|
|
def dao_update_service_user(service_user):
|
|
|
|
|
db.session.add(service_user)
|