pharmacy-pos-qr-system/backend/api/flask_app.py
시골약사 a9041e9c9e feat: 프로젝트 초기 구조 설정
- PyQt5 POS 판매 조회 GUI (Phase 1 완료)
- Flask API 서버 스켈레톤 (Phase 2 준비)
- SQLite 마일리지 DB 스키마 설계
- 프로젝트 문서 및 README 추가
- 기본 디렉터리 구조 생성

Phase 1: POS 판매 내역 조회 GUI 완료
Phase 2: QR 토큰 생성 및 마일리지 적립 (예정)
Phase 3: 카카오 로그인 연동 (예정)
Phase 4: 마일리지 시스템 완성 (예정)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-23 13:59:00 +09:00

88 lines
1.8 KiB
Python

"""
Flask API 서버
QR 토큰 생성 및 마일리지 적립 API
"""
from flask import Flask, request, jsonify
from flask_cors import CORS
import sys
import os
# 프로젝트 루트를 Python 경로에 추가
sys.path.insert(0, os.path.join(os.path.dirname(__file__), '..'))
app = Flask(__name__)
CORS(app)
# TODO: Phase 2에서 구현 예정
@app.route('/health', methods=['GET'])
def health_check():
"""헬스 체크 엔드포인트"""
return jsonify({
'status': 'healthy',
'message': 'Pharmacy POS QR System API'
})
@app.route('/api/claim/token/generate', methods=['POST'])
def generate_claim_token():
"""
영수증 QR 토큰 생성
Request:
{
"transaction_id": "20251024000042",
"total_amount": 50000,
"pharmacy_id": "YANGGU001"
}
Response:
{
"success": true,
"qr_url": "https://pharmacy.example.com/claim?t=...",
"claimable_points": 1500,
"expires_at": "2025-11-23T14:30:00"
}
"""
# TODO: Phase 2에서 구현
return jsonify({
'success': False,
'message': 'Not implemented yet (Phase 2)'
}), 501
@app.route('/api/claim', methods=['GET'])
def validate_claim_token():
"""
토큰 검증 및 정보 조회
Query: ?t={token}
"""
# TODO: Phase 2에서 구현
return jsonify({
'valid': False,
'error': 'not_implemented'
}), 501
@app.route('/api/claim/confirm', methods=['POST'])
def confirm_claim():
"""
마일리지 적립 실행 (로그인 후)
"""
# TODO: Phase 2에서 구현
return jsonify({
'success': False,
'message': 'Not implemented yet (Phase 2)'
}), 501
if __name__ == '__main__':
app.run(
host='0.0.0.0',
port=5000,
debug=True
)