회기 무발화 0턴 분리, 자기예측 락 불변식 및 TDD 회귀 검증 완료
Some checks failed
API contract / OpenAPI type drift (push) Failing after 3m27s

This commit is contained in:
Yun Chan 2026-09-08 23:28:06 +09:00
parent a479db7a5a
commit a0311c5957
100 changed files with 4884 additions and 11210 deletions

View file

@ -1564,39 +1564,44 @@ async def upsert_managed_user(data: ManagedUserUpsertInput) -> ManagedUser:
)
_MANAGED_USER_SELECT_SQL = """
SELECT
user_id,
email,
display_name,
role,
admin_access,
learner_feedback_enabled,
account_status,
cohort,
affiliation,
legal_name,
department,
grade_level,
phone,
contact_address,
nickname,
self_introduction,
avatar_url,
consent_at,
profile_completed_at,
terms_agreed_at,
privacy_agreed_at,
terms_version,
privacy_version,
created_at,
last_seen_at
FROM app.app_user
"""
async def get_managed_user(user_id: str) -> ManagedUser | None:
try:
pool = get_pool()
async with pool.acquire() as conn:
row = await conn.fetchrow(
"""
SELECT
user_id,
email,
display_name,
role,
admin_access,
learner_feedback_enabled,
account_status,
cohort,
affiliation,
legal_name,
department,
grade_level,
phone,
contact_address,
nickname,
self_introduction,
avatar_url,
consent_at,
profile_completed_at,
terms_agreed_at,
privacy_agreed_at,
terms_version,
privacy_version,
created_at,
last_seen_at
FROM app.app_user
f"""
{_MANAGED_USER_SELECT_SQL}
WHERE user_id = $1::uuid AND is_active
""",
user_id,
@ -1619,34 +1624,8 @@ async def get_managed_user_by_email(email: str) -> ManagedUser | None:
pool = get_pool()
async with pool.acquire() as conn:
row = await conn.fetchrow(
"""
SELECT
user_id,
email,
display_name,
role,
admin_access,
learner_feedback_enabled,
account_status,
cohort,
affiliation,
legal_name,
department,
grade_level,
phone,
contact_address,
nickname,
self_introduction,
avatar_url,
consent_at,
profile_completed_at,
terms_agreed_at,
privacy_agreed_at,
terms_version,
privacy_version,
created_at,
last_seen_at
FROM app.app_user
f"""
{_MANAGED_USER_SELECT_SQL}
WHERE lower(email) = $1 AND is_active
ORDER BY
CASE WHEN external_id = $2 THEN 0 ELSE 1 END,