feat: 반려동물 정보 표시 기능 추가

API:
- /api/admin/pos-live에 pets 배열 추가
- 적립된 회원의 반려동물 정보 조회 (이름, 종류, 품종, 사진)

테이블 (바깥):
- 적립 열에 반려동물 아이콘 표시 (🐕🐈)

상세 패널:
- 반려동물 카드 섹션 추가
- 사진 + 이름 + 품종 표시
- 노란색 그라데이션 카드 스타일
This commit is contained in:
thug0bin
2026-03-02 16:11:59 +09:00
parent 695c1f707f
commit a7b3d5b7e0
3 changed files with 136 additions and 4 deletions

View File

@@ -4933,9 +4933,9 @@ def api_admin_pos_live():
qr_record = sqlite_cursor.fetchone()
qr_issued = bool(qr_record)
# SQLite에서 적립 사용자 조회
# SQLite에서 적립 사용자 조회 (user_id 포함)
sqlite_cursor.execute("""
SELECT u.nickname, u.phone, ct.claimable_points
SELECT u.id as user_id, u.nickname, u.phone, ct.claimable_points
FROM claim_tokens ct
LEFT JOIN users u ON ct.claimed_by_user_id = u.id
WHERE ct.transaction_id = ? AND ct.claimed_at IS NOT NULL
@@ -4943,7 +4943,9 @@ def api_admin_pos_live():
claimed_user = sqlite_cursor.fetchone()
# 적립 사용자 정보 분리
claimed_user_id = None
if claimed_user and claimed_user['nickname'] and claimed_user['phone']:
claimed_user_id = claimed_user['user_id']
claimed_name = claimed_user['nickname']
claimed_phone = claimed_user['phone']
claimed_points = claimed_user['claimable_points']
@@ -4952,6 +4954,23 @@ def api_admin_pos_live():
claimed_phone = ""
claimed_points = 0
# 반려동물 정보 조회
pets_list = []
if claimed_user_id:
sqlite_cursor.execute("""
SELECT name, species, breed, photo_url
FROM pets
WHERE user_id = ? AND is_active = 1
""", (claimed_user_id,))
pets_rows = sqlite_cursor.fetchall()
for pet in pets_rows:
pets_list.append({
'name': pet['name'],
'species': pet['species'], # dog, cat
'breed': pet['breed'] or '',
'photo_url': pet['photo_url'] or ''
})
# 결제수단 판별
card_amt = float(card_total) if card_total else 0.0
cash_amt = float(cash_total) if cash_total else 0.0
@@ -4989,7 +5008,8 @@ def api_admin_pos_live():
'claimed_name': claimed_name,
'claimed_phone': claimed_phone,
'claimed_points': claimed_points,
'qr_issued': qr_issued
'qr_issued': qr_issued,
'pets': pets_list # 반려동물 정보
})
return jsonify({