#!/usr/bin/env python3
"""
task-2390 — 모든 신규 브랜드 DESIGN.md 일괄 재생성 스크립트.
다른 프로세스의 파일 삭제로부터 안전하게 한 번에 생성.
"""
from pathlib import Path

DESIGN_MD_DIR = Path("/home/jay/workspace/resources/design-md")

# 74개 신규 브랜드 (slug, primary_hex, accent_hex, bg_hex, text_hex, font, theme_desc, category_tags)
BRANDS = [
    # Batch A — 한국 + 보험/금융 한국 (16)
    ("toss", "#0064FF", "#3182F6", "#FFFFFF", "#191F28", "Toss Product Sans, Pretendard", "한국 핀테크 슈퍼앱 — 미니멀+신뢰 토스블루", ["insurance/finance", "korean"]),
    ("kakao-bank", "#FFE100", "#FFB800", "#FFFFFF", "#1F1F1F", "Pretendard, Apple SD Gothic Neo", "친근한 카카오옐로우 인터넷전문은행", ["insurance/finance", "korean"]),
    ("kakaopay", "#FFCD00", "#FF8C00", "#F8F9FA", "#1F1F1F", "Pretendard, KakaoSans", "결제/송금 카카오페이 옐로우 친근함", ["insurance/finance", "korean"]),
    ("kakaotalk", "#FFCD00", "#FAE100", "#A6C8DC", "#1F1F1F", "Apple SD Gothic Neo, Pretendard", "노란 채팅 메신저 + 라운드 카드", ["b2c", "korean"]),
    ("naver", "#03C75A", "#1EC800", "#FFFFFF", "#202020", "Pretendard, Noto Sans KR", "네이버그린 검색 포털 한국 No.1", ["tech", "korean"]),
    ("naver-pay", "#03C75A", "#1EC800", "#FFFFFF", "#202020", "Pretendard, Noto Sans KR", "네이버 페이먼트 그린 신뢰", ["insurance/finance", "korean"]),
    ("coupang", "#F23B45", "#346AFF", "#FFFFFF", "#1A1A1A", "Pretendard, Roboto", "쿠팡레드 + 로켓블루 이커머스 신뢰", ["b2c", "korean"]),
    ("baemin", "#2AC1BC", "#FBE74A", "#FFFFFF", "#1F2A37", "Baemin 한나, 도현체, Pretendard", "배민민트 친근한 손글씨 음식배달", ["b2c", "korean"]),
    ("daangn", "#FF6F0F", "#FFAB52", "#FFFFFF", "#1A1A1A", "Pretendard, Noto Sans KR", "당근오렌지 따뜻한 동네 중고거래", ["b2c", "korean"]),
    ("lineplus", "#06C755", "#00B900", "#FFFFFF", "#191919", "LINE Seed, Pretendard", "라인 메신저 그린 글로벌 일본 1위", ["b2c", "korean"]),
    ("krafton", "#000000", "#FF6B00", "#0A0A0A", "#FFFFFF", "Krafton Sans, Inter", "다크 게이밍 코퍼레이트 펍지 모회사", ["tech", "korean"]),
    ("insurance-damoa", "#0066CC", "#00A0E9", "#FFFFFF", "#1A1A1A", "Pretendard, Noto Sans KR", "한국 보험비교 신뢰블루 + 비교표", ["insurance/finance", "korean"]),
    ("carrot-insurance", "#FF7A00", "#FFB347", "#FFFFFF", "#1A1A1A", "Pretendard, Noto Sans KR", "캐롯오렌지 디지털 퍼마일 보험", ["insurance/finance", "korean"]),
    ("kb-insurance", "#FFB81C", "#605A52", "#FFFFFF", "#1A1A1A", "KBFG Display, Pretendard", "KB옐로우 코퍼레이트 손해보험", ["insurance/finance", "korean"]),
    ("samsung-life", "#1428A0", "#0066B2", "#FFFFFF", "#000000", "SamsungOne, Pretendard", "삼성블루 코퍼레이트 생명보험 안정감", ["insurance/finance", "korean"]),
    ("miraeasset", "#003B5C", "#F58025", "#FFFFFF", "#000000", "Pretendard, Noto Sans KR", "딥네이비 미래에셋 자산운용/보험", ["insurance/finance", "korean"]),

    # Batch B — 글로벌 핀테크 + SaaS (16)
    ("robinhood", "#00C805", "#1FCE00", "#FFFFFF", "#000000", "Capsule Sans, Inter", "크리미널 그린 미니멀 주식 거래", ["insurance/finance"]),
    ("plaid", "#111111", "#FFFFFF", "#F4F4F4", "#111111", "Söhne, Inter", "모노크롬 핀테크 인프라 신뢰", ["insurance/finance"]),
    ("square", "#000000", "#3E4348", "#FFFFFF", "#000000", "Square Sans, Inter", "흑백 결제 단말기 정체성", ["insurance/finance"]),
    ("brex", "#FF6E2B", "#1A1A1A", "#F8F4EE", "#1A1A1A", "Cooper Light, Inter", "따뜻한 오렌지 B2B 카드", ["insurance/finance"]),
    ("ramp", "#1B1B1B", "#FF7A4A", "#F4F0EC", "#1B1B1B", "Söhne, Sharp Grotesk", "미니멀 코퍼레이트 핀테크 크림", ["insurance/finance"]),
    ("klarna", "#FFA8CD", "#0A0A0A", "#FFFFFF", "#0A0A0A", "Klarna Sans, Inter", "발레 핑크 후불 결제 친근", ["insurance/finance"]),
    ("slack", "#4A154B", "#36C5F0", "#FFFFFF", "#1D1C1D", "Lato, Inter", "이북색 + 멀티컬러 협업툴", ["b2b"]),
    ("atlassian", "#0052CC", "#172B4D", "#FFFFFF", "#172B4D", "Charlie, Atlassian Sans", "코퍼레이트 블루 협업툴 (Jira/Confluence)", ["b2b"]),
    ("asana", "#F06A6A", "#796EFF", "#FFFFFF", "#1E1F21", "Figtree, Inter", "따뜻한 코랄 태스크 매니지먼트", ["b2b"]),
    ("monday", "#FF3D57", "#7FBC2C", "#FFFFFF", "#323338", "Figtree, Roboto", "비비드 멀티컬러 워크 매니지먼트", ["b2b"]),
    ("loom", "#625DF5", "#FAB519", "#FFFFFF", "#1F1F23", "GT Walsheim, Inter", "비디오 메시징 펄플", ["b2b"]),
    ("dropbox", "#0061FF", "#FFFFFF", "#0E1116", "#FFFFFF", "Sharp Grotesk, Atlas Grotesk", "스카이블루 클라우드 스토리지", ["b2b"]),
    ("salesforce", "#00A1E0", "#032E61", "#FFFFFF", "#16325C", "Salesforce Sans, Inter", "코퍼레이트 CRM 블루 엔터프라이즈", ["b2b"]),
    ("hubspot", "#FF7A59", "#33475B", "#FFFFFF", "#33475B", "Lexend Deca, Inter", "따뜻한 마케팅 SaaS 오렌지", ["b2b"]),
    ("mailchimp", "#FFE01B", "#241C15", "#FFFFFF", "#241C15", "Cooper Light, Helvetica", "옐로우 메일 친근 + 일러스트", ["b2b"]),
    ("shopify", "#5A863E", "#004C3F", "#FFFFFF", "#202223", "ShopifySans, Inter", "코머스 그린 이커머스 플랫폼", ["b2b"]),

    # Batch C — 럭셔리 + 소비자 (15)
    ("hermes", "#FF6900", "#000000", "#FFFFFF", "#000000", "Didot, Caslon, Garamond", "마구상품 에르메스 오렌지 럭셔리", ["luxury"]),
    ("rolex", "#127749", "#A37E2C", "#FFFFFF", "#000000", "Garamond, Bodoni", "워치 헤리티지 그린/골드", ["luxury"]),
    ("louis-vuitton", "#C8A47C", "#5B3A29", "#FFFFFF", "#000000", "Futura, Garamond", "LV 모노그램 골드/브라운", ["luxury"]),
    ("gucci", "#000000", "#9C0000", "#FFFFFF", "#000000", "Didot, Bodoni", "패션 굵은 헤드라인 흑백", ["luxury"]),
    ("tiffany", "#0ABAB5", "#000000", "#FFFFFF", "#000000", "Didot, Garamond", "티파니 블루 시그니처 주얼리", ["luxury"]),
    ("chanel", "#000000", "#FFFFFF", "#000000", "#FFFFFF", "Didot, Bodoni", "흑백 미니멀 럭셔리 패션", ["luxury"]),
    ("prada", "#000000", "#8E8B6E", "#FFFFFF", "#000000", "Helvetica, Bodoni", "Avant-garde 미니멀 패션", ["luxury"]),
    ("dior", "#000000", "#A28D6E", "#FFFFFF", "#000000", "Didot, Caslon", "Couture serif 럭셔리", ["luxury"]),
    ("netflix", "#E50914", "#831010", "#000000", "#FFFFFF", "Netflix Sans, Inter", "시네마 다크 레드 스트리밍", ["b2c"]),
    ("reddit", "#FF4500", "#0079D3", "#1A1A1B", "#D7DADC", "IBM Plex Sans, Inter", "커뮤니티 오렌지 다크/라이트", ["b2c"]),
    ("twitch", "#9146FF", "#772CE8", "#0E0E10", "#EFEFF1", "Inter, Roobert", "라이브 스트리밍 트위치 퍼플", ["b2c"]),
    ("tiktok", "#FE2C55", "#25F4EE", "#000000", "#FFFFFF", "TikTok Sans, Proxima Nova", "네온 핑크/시안 다크 비디오", ["b2c"]),
    ("instagram", "#E1306C", "#5851DB", "#FFFFFF", "#262626", "Instagram Sans, SF Pro", "그라디언트 비주얼 SNS", ["b2c"]),
    ("youtube", "#FF0000", "#282828", "#FFFFFF", "#0F0F0F", "Roboto, YouTube Sans", "유튜브 레드 비디오 플랫폼", ["b2c"]),
    ("discord", "#5865F2", "#404EED", "#36393F", "#FFFFFF", "Whitney, Inter", "디스코드 블러플 게이밍 다크", ["b2c"]),

    # Batch D — AI + Infra (15)
    ("openai", "#10A37F", "#000000", "#FFFFFF", "#202123", "Söhne, Inter", "ChatGPT 미니멀 그린 OpenAI", ["tech"]),
    ("perplexity", "#1FB8CD", "#20808D", "#191A1A", "#F5F5F5", "FK Display, Inter", "검색AI 다크 모노스페이스 시안", ["tech"]),
    ("huggingface", "#FF9D00", "#FFD21E", "#FFFFFF", "#1A1A1A", "Source Sans Pro, Inter", "따뜻한 옐로우 AI 커뮤니티", ["tech"]),
    ("anthropic", "#D97757", "#191919", "#F0EEE5", "#191919", "Tiempos, Söhne", "인문학적 따뜻함 코퍼레이트", ["tech"]),
    ("midjourney", "#000000", "#4D4D4D", "#0A0A0A", "#E5E5E5", "Inter, GT America", "다크 시네마틱 이미지 AI", ["tech"]),
    ("github", "#24292E", "#0969DA", "#FFFFFF", "#1F2328", "Mona Sans, Inter", "옥토캣 코드 호스팅", ["tech"]),
    ("docker", "#2496ED", "#0DB7ED", "#FFFFFF", "#0F1B2D", "Inter, Roboto", "컨테이너 고래 도커블루", ["tech"]),
    ("aws", "#FF9900", "#232F3E", "#FFFFFF", "#16191F", "Amazon Ember, Inter", "AWS 오렌지 + 다크네이비 클라우드", ["tech"]),
    ("azure", "#0078D4", "#50E6FF", "#FFFFFF", "#000000", "Segoe UI, Inter", "MS 클라우드 Azure 블루", ["tech"]),
    ("gcp", "#4285F4", "#34A853", "#FFFFFF", "#202124", "Google Sans, Roboto", "구글 4컬러 멀티 클라우드", ["tech"]),
    ("datadog", "#632CA6", "#774AA4", "#FFFFFF", "#21222C", "Inter, GT America", "모니터링 퍼플 옵저버빌리티", ["tech"]),
    ("snowflake", "#29B5E8", "#11567F", "#FFFFFF", "#000000", "Inter, Roboto", "데이터 클라우드 시안", ["tech"]),
    ("databricks", "#FF3621", "#1B3139", "#FFFFFF", "#1B3139", "DM Sans, Inter", "데이터+AI 통합 레드", ["tech"]),
    ("redis", "#DC382D", "#FFFFFF", "#161F2C", "#FFFFFF", "Space Grotesk, Inter", "인메모리 DB 큐브 레드", ["tech"]),
    ("twilio", "#F22F46", "#0B1727", "#FFFFFF", "#121C2D", "Inter, GT America", "통신 API 트윌리오 레드", ["tech"]),

    # Batch E — 미니멀 + 디자인툴 + 잡지/뉴스레터 (12)
    ("arena", "#000000", "#0096FF", "#FFFFFF", "#000000", "IBM Plex Mono, Söhne", "are.na 큐레이션 모이지구 그리드", ["minimal"]),
    ("readcv", "#000000", "#191919", "#FAFAFA", "#191919", "NeueHaas, Tiempos", "read.cv 미니멀 이력서 serif", ["minimal"]),
    ("linktree", "#43E660", "#1F1F1F", "#F5F5F5", "#1F1F1F", "Linktree Sans, Inter", "링크인바이오 친근 라운드 그린", ["minimal"]),
    ("bento", "#000000", "#FF6B35", "#F8F7F4", "#000000", "Sharp Grotesk, Inter", "bento.me 그리드 모자이크 프로필", ["minimal"]),
    ("ghost", "#15171A", "#FF1A75", "#FFFFFF", "#15171A", "Söhne, Charter, Spectral", "미디어 펍 다크 우아 뉴스레터", ["minimal"]),
    ("substack", "#FF6719", "#1A1A1A", "#FFFFFF", "#1A1A1A", "Charter, Spectral, Söhne", "뉴스레터 따뜻한 오렌지", ["minimal"]),
    ("beehiiv", "#FFD700", "#000000", "#FFFFFF", "#1A1A1A", "Inter, Söhne", "차세대 뉴스레터 골든옐로우", ["minimal"]),
    ("typeform", "#262627", "#FF4949", "#FAFAFA", "#262627", "Apercu, Inter", "대화형 폼 모던 미니멀", ["minimal"]),
    ("dribbble", "#EA4C89", "#0D0C22", "#FFFFFF", "#0D0C22", "Mont, Inter", "디자인 인스피레이션 핑크", ["b2b"]),
    ("calendly", "#006BFF", "#1A1A1A", "#FFFFFF", "#1A1A1A", "Inter, GT America", "일정 예약 미니멀 블루", ["b2b"]),
    ("cartier", "#9E1B32", "#000000", "#FFFFFF", "#000000", "Didot, Bodoni, Garamond", "주얼리 헤리티지 카르티에 레드", ["luxury"]),
    ("bulgari", "#A78538", "#000000", "#FFFFFF", "#000000", "Bodoni, Didot", "이탈리안 럭셔리 불가리 골드", ["luxury"]),
]


DESIGN_MD_TEMPLATE = """# Design System Inspiration of {brand_title}

> **카테고리**: {categories}
> **출처**: Inspired by {brand}.com / brand identity, abstracted by Insuro Design System
> **추출 범위**: 디자인 토큰 (color/typography/spacing) + 레이아웃 영감 (코드 직접 복제 0%)

---

## 1. Visual Theme & Atmosphere

**전체 테마**: {theme_desc}

**키 특징**:
- Primary 색상은 `{primary}` — 브랜드의 시그니처
- 배경 `{bg}` 위에 텍스트 `{text}`로 충분한 대비 확보
- 폰트는 `{font}` — 브랜드 정체성과 정합
- 컴포넌트 라운딩과 그림자는 브랜드 톤 유지
- Accent `{accent}`는 CTA / 상태 표시에 한정 사용

---

## 2. Color Palette & Roles

### Primary
- **Brand Primary** (`{primary}`): 브랜드 메인 — CTA, 로고, 핵심 강조
- **Brand Accent** (`{accent}`): 보조 강조 — 호버, 활성 상태

### Neutral
- **Background** (`{bg}`): 페이지 기본 배경
- **Surface** (`#F5F5F5` 또는 `#1A1A1A` 라이트/다크 분기): 카드/패널 배경
- **Text Primary** (`{text}`): 기본 텍스트
- **Text Secondary** (`#6B7280` 라이트 / `#9CA3AF` 다크): 보조 텍스트
- **Border** (`#E5E7EB` 라이트 / `#27272A` 다크): 구분선

### Semantic
- **Success** (`#10B981`): 성공 / 완료
- **Error** (`#EF4444`): 에러 / 위험
- **Warning** (`#F59E0B`): 경고
- **Info** (`#3B82F6`): 정보 안내

---

## 3. Typography Rules

**Font Family**: `font-family: {font}, sans-serif;`
**Display Font**: `font-family: {font}, serif;` (헤드라인 강조 시)

### 크기 체계
- H1: 48px / weight 700 / line-height 1.2 / letter-spacing -0.02em
- H2: 36px / weight 700 / line-height 1.3
- H3: 24px / weight 600 / line-height 1.4
- Body: 16px / weight 400 / line-height 1.6
- Caption: 14px / weight 400 / line-height 1.5

---

## 4. Component Stylings

### Button
- **Primary**: `background: {primary}; color: {bg}; border-radius: 8px; padding: 12px 24px; font-weight: 600;`
- **Secondary**: `background: transparent; color: {primary}; border: 1.5px solid {primary}; border-radius: 8px;`
- **Ghost**: `background: transparent; color: {text}; padding: 8px 16px;`

### Card
- `background: {bg}; border: 1px solid #E5E7EB; border-radius: 12px; padding: 24px; box-shadow: 0 1px 3px rgba(0,0,0,0.06);`

### Input
- `background: {bg}; border: 1px solid #D1D5DB; border-radius: 8px; padding: 12px 16px; font-size: 16px;`
- Focus ring: `box-shadow: 0 0 0 3px {primary}33;`

### Badge / Tag
- `background: {accent}1A; color: {accent}; padding: 4px 10px; border-radius: 6px; font-size: 12px; font-weight: 500;`

---

## 5. Layout Principles

**Max Width**: `1200px` (desktop) / `100%` (mobile)
**Grid**: 12 columns, gap `24px`
**Spacing Scale**: `4, 8, 12, 16, 24, 32, 48, 64, 96px`
**Section Padding**: `96px 0` (desktop) / `48px 0` (mobile)

---

## 6. Depth & Elevation

### Shadow Scale
- sm: `0 1px 2px rgba(0,0,0,0.05)`
- md: `0 4px 6px rgba(0,0,0,0.07), 0 2px 4px rgba(0,0,0,0.06)`
- lg: `0 10px 15px rgba(0,0,0,0.10), 0 4px 6px rgba(0,0,0,0.05)`
- xl: `0 20px 25px rgba(0,0,0,0.10), 0 10px 10px rgba(0,0,0,0.04)`

### Z-index
- Base: 0
- Dropdown: 10
- Sticky: 20
- Modal: 30
- Toast: 40

---

## 7. Do's and Don'ts

### Do's
- [x] Primary `{primary}`는 페이지당 1~2회만 사용
- [x] 충분한 대비 확보 (WCAG AA 4.5:1 이상)
- [x] 폰트 `{font}` 패밀리 통일
- [x] 8px 그리드 기반 spacing 준수

### Don'ts
- [x] Primary 색상을 본문 텍스트에 사용 금지
- [x] 그림자 5단계 이상 중첩 금지
- [x] 폰트 패밀리 3개 이상 동시 사용 금지
- [x] 임의의 spacing 값 (예: 13px, 27px) 사용 금지

---

## 8. Agent Prompt Guide

**핵심 지시**: "이 프로젝트는 {brand_title} 스타일입니다. Primary 색상 `{primary}`을 메인으로 사용하고, `{font}`를 기본 폰트로 사용하세요. 배경은 `{bg}`, 본문 텍스트는 `{text}`로 통일하세요."

**참고 사이트**: {brand_title} ({brand}.com 또는 공식 브랜드 자료)

**카테고리 매칭**: {categories}
"""


def main():
    DESIGN_MD_DIR.mkdir(parents=True, exist_ok=True)
    created = []
    for brand, primary, accent, bg, text, font, theme_desc, categories in BRANDS:
        brand_dir = DESIGN_MD_DIR / brand
        brand_dir.mkdir(parents=True, exist_ok=True)
        design_md = brand_dir / "DESIGN.md"
        design_md.write_text(
            DESIGN_MD_TEMPLATE.format(
                brand=brand,
                brand_title=brand.replace("-", " ").title(),
                primary=primary,
                accent=accent,
                bg=bg,
                text=text,
                font=font,
                theme_desc=theme_desc,
                categories=", ".join(categories),
            ),
            encoding="utf-8",
        )
        created.append(brand)
    print(f"Created {len(created)} brand DESIGN.md files")
    return len(created)


if __name__ == "__main__":
    main()
