# scripts/scheduled_runner.py

from apscheduler.schedulers.background import BackgroundScheduler  # ✅ 변경
from services.motie_parser import parse_motie_organization_posts
from services.motie_org_service import update_motie_org_table
from services.motie_vip_service import update_motie_vip_table
from services.motie_service import is_article_processed, mark_article_as_processed
from services.telegram_service import send_motie_alert_to_all

import time

def scheduled_job():
    print(f"\n🕒 실행 시간: {time.strftime('%Y-%m-%d %H:%M:%S')}")

    posts = parse_motie_organization_posts()

    for post in posts:
        article_id = post["articleId"]
        if is_article_processed(article_id):
            print(f"🔁 이미 처리된 게시물: {article_id}")
            continue

        print(f"🚨 새로운 인사발령 발견: {article_id} - {post['title']}")
        mark_article_as_processed(article_id)
        send_motie_alert_to_all(post)

        print("🔄 조직도 및 VIP 정보 업데이트 시작...")
        update_motie_org_table()
        update_motie_vip_table()

def start_scheduler():
    scheduler = BackgroundScheduler()
    scheduler.add_job(scheduled_job, 'cron', minute=0)  # 매 정시
    scheduler.start()
    print("📆 MOTIE 스케줄러가 백그라운드에서 실행 중입니다.")
    scheduled_job()  # ✅ 시작 직후 1회 즉시 실행 (선택)
