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>
This commit is contained in:
87
backend/api/flask_app.py
Normal file
87
backend/api/flask_app.py
Normal file
@@ -0,0 +1,87 @@
|
||||
"""
|
||||
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
|
||||
)
|
||||
Reference in New Issue
Block a user