# ============================================================
# 출자공고 알림 서버 (announcement_server.py)
# combined_monitor.py 와 같은 폴더에 두고 실행하세요
#
# 실행 방법: python announcement_server.py
# 접속 주소: http://localhost:5000
# ============================================================

from flask import Flask, jsonify
from flask_cors import CORS
import json, os
from datetime import datetime

app = Flask(__name__)
CORS(app)  # HTML 대시보드에서 접근 허용

ANNOUNCEMENT_FILE = "announcements.json"  # combined_monitor.py 와 같은 폴더

# ── 공고 불러오기 ──────────────────────────────────────────
def 공고_불러오기():
    if not os.path.exists(ANNOUNCEMENT_FILE):
        return []
    with open(ANNOUNCEMENT_FILE, "r", encoding="utf-8") as f:
        return json.load(f)

# ── API 엔드포인트 ─────────────────────────────────────────
@app.route("/announcements")
def get_announcements():
    """HTML 대시보드가 30초마다 여기에 요청"""
    data = 공고_불러오기()
    return jsonify({
        "count": len(data),
        "updated_at": datetime.now().strftime("%Y-%m-%d %H:%M:%S"),
        "items": data
    })

@app.route("/ping")
def ping():
    """연결 확인용"""
    return jsonify({"status": "ok", "time": datetime.now().strftime("%H:%M:%S")})

# ── 실행 ──────────────────────────────────────────────────
if __name__ == "__main__":
    print("=" * 50)
    print("  출자공고 알림 서버 시작")
    print("  주소: http://localhost:5000")
    print("  종료: Ctrl + C")
    print("=" * 50)
    app.run(host="0.0.0.0", port=5000, debug=False)
