#!/usr/bin/env python3
"""
banner_matrix 업데이트 스크립트
작성자: 토르 (개발2팀 백엔드)
날짜: 2026-04-04
"""

import json

CAMPAIGN_JSON = "/home/jay/workspace/dashboard/data/campaign.json"

# 완료된 셀 정의 (6셀)
COMPLETED_CELLS = {
    "incar_fair": {
        "label": "①인카×정당한대우",
        "banners": {
            "meta-feed-sq": {
                "status": "완료",
                "path": "/api/banners/cell-1-incar-fair/meta-feed-1080x1080.png",
                "size": "1080x1080"
            },
            "google-resp-hori": {
                "status": "완료",
                "path": "/api/banners/cell-1-incar-fair/google-resp-1200x628.png",
                "size": "1200x628"
            }
        }
    },
    "incar_leader": {
        "label": "②인카×관리자비전",
        "banners": {
            "meta-feed-sq": {
                "status": "완료",
                "path": "/api/banners/cell-2-incar-leader/meta-feed-1080x1080.png",
                "size": "1080x1080"
            },
            "google-resp-hori": {
                "status": "완료",
                "path": "/api/banners/cell-2-incar-leader/google-resp-1200x628.png",
                "size": "1200x628"
            }
        }
    },
    "ga_fair": {
        "label": "④GA×정당한대우",
        "banners": {
            "meta-feed-sq": {
                "status": "완료",
                "path": "/api/banners/cell-4-ga-fair/meta-feed-1080x1080.png",
                "size": "1080x1080"
            },
            "google-resp-hori": {
                "status": "완료",
                "path": "/api/banners/cell-4-ga-fair/google-resp-1200x628.png",
                "size": "1200x628"
            }
        }
    },
    "ga_leader": {
        "label": "⑤GA×관리자비전",
        "banners": {
            "meta-feed-sq": {
                "status": "완료",
                "path": "/api/banners/cell-5-ga-leader/meta-feed-1080x1080.png",
                "size": "1080x1080"
            },
            "google-resp-hori": {
                "status": "완료",
                "path": "/api/banners/cell-5-ga-leader/google-resp-1200x628.png",
                "size": "1200x628"
            }
        }
    },
    "snu_fair": {
        "label": "⑦서울대보험쌤×정당한대우",
        "banners": {
            "meta-feed-sq": {
                "status": "완료",
                "path": "/api/banners/cell-7-snu-fair/meta-feed-1080x1080.png",
                "size": "1080x1080"
            },
            "google-resp-hori": {
                "status": "완료",
                "path": "/api/banners/cell-7-snu-fair/google-resp-1200x628.png",
                "size": "1200x628"
            }
        }
    },
    "snu_leader": {
        "label": "⑧서울대보험쌤×관리자비전",
        "banners": {
            "meta-feed-sq": {
                "status": "완료",
                "path": "/api/banners/cell-8-snu-leader/meta-feed-1080x1080.png",
                "size": "1080x1080"
            },
            "google-resp-hori": {
                "status": "완료",
                "path": "/api/banners/cell-8-snu-leader/google-resp-1200x628.png",
                "size": "1200x628"
            }
        }
    },
}

# 제작중 셀 (3셀)
IN_PROGRESS_CELLS = {"incar_support", "ga_support", "snu_support"}


def main():
    # 파일 읽기
    with open(CAMPAIGN_JSON, "r", encoding="utf-8") as f:
        data = json.load(f)

    bm = data["banner_matrix"]

    # banner_sets 업데이트
    for cell in bm["banner_sets"]:
        cid = cell["cell_id"]
        if cid in COMPLETED_CELLS:
            info = COMPLETED_CELLS[cid]
            cell["status"] = "완료"
            cell["banners"] = info["banners"]
        elif cid in IN_PROGRESS_CELLS:
            cell["status"] = "제작중"
            cell["banners"] = {}

    # 집계 필드 업데이트
    bm["total_banners_done"] = 12  # 6셀 × 2사이즈
    bm["status_summary"] = {
        "완료": 6,
        "제작중": 3,
        "미제작": 0,
        "승인": 0,
    }
    bm["updated_at"] = "2026-04-04T17:15:00"

    # 저장
    with open(CAMPAIGN_JSON, "w", encoding="utf-8") as f:
        json.dump(data, f, indent=2, ensure_ascii=False)

    print("banner_matrix 업데이트 완료!")
    print(f"  total_banners_done : {bm['total_banners_done']}")
    print(f"  status_summary     : {bm['status_summary']}")
    print(f"  updated_at         : {bm['updated_at']}")
    print("\n셀 별 상태:")
    for cell in bm["banner_sets"]:
        banner_cnt = len(cell["banners"])
        print(f"  [{cell['cell_id']:15s}] status={cell['status']}, banners={banner_cnt}개")


if __name__ == "__main__":
    main()
