71 lines
1.9 KiB
Python
71 lines
1.9 KiB
Python
# app/repositories/queries/user_queries.py
|
|
"""
|
|
HealthSync AI 사용자 관련 쿼리 모음
|
|
"""
|
|
|
|
|
|
class UserQueries:
|
|
"""사용자 관련 쿼리"""
|
|
|
|
# 사용자 기본 정보 조회
|
|
GET_USER_BASIC_INFO = """
|
|
SELECT
|
|
u.member_serial_number,
|
|
u.google_id,
|
|
u.name,
|
|
u.birth_date,
|
|
u.occupation,
|
|
EXTRACT(YEAR FROM AGE(u.birth_date)) as age,
|
|
u.created_at,
|
|
u.updated_at,
|
|
u.last_login_at
|
|
FROM user_service.user u
|
|
WHERE u.member_serial_number = :user_id
|
|
"""
|
|
|
|
# 사용자 존재 여부 확인
|
|
CHECK_USER_EXISTS = """
|
|
SELECT COUNT(*) as user_count
|
|
FROM user_service.user
|
|
WHERE member_serial_number = :user_id
|
|
"""
|
|
|
|
# Google ID로 사용자 조회
|
|
GET_USER_BY_GOOGLE_ID = """
|
|
SELECT
|
|
u.member_serial_number,
|
|
u.google_id,
|
|
u.name,
|
|
u.birth_date,
|
|
u.occupation,
|
|
EXTRACT(YEAR FROM AGE(u.birth_date)) as age,
|
|
u.created_at,
|
|
u.updated_at,
|
|
u.last_login_at
|
|
FROM user_service.user u
|
|
WHERE u.google_id = :google_id
|
|
"""
|
|
|
|
# 사용자 생성
|
|
INSERT_USER = """
|
|
INSERT INTO user_service.user
|
|
(google_id, name, birth_date, occupation, created_at, updated_at)
|
|
VALUES (:google_id, :name, :birth_date, :occupation, :created_at, :updated_at)
|
|
"""
|
|
|
|
# 사용자 정보 업데이트
|
|
UPDATE_USER_INFO = """
|
|
UPDATE user_service.user
|
|
SET name = :name,
|
|
birth_date = :birth_date,
|
|
occupation = :occupation,
|
|
updated_at = :updated_at
|
|
WHERE member_serial_number = :member_serial_number
|
|
"""
|
|
|
|
# 최근 로그인 시간 업데이트
|
|
UPDATE_LAST_LOGIN = """
|
|
UPDATE user_service.user
|
|
SET last_login_at = :last_login_at
|
|
WHERE member_serial_number = :member_serial_number
|
|
""" |