/**
 * Clinic workspace types — 유저 워크스페이스 (계약된 병원 전용) 뷰 모델.
 *
 * 백엔드 RunSummary는 메타데이터만 담고 있어서, 분석 대상 플랫폼/URL을 함께
 * 표시하려면 추가 데이터가 필요합니다. 현재는 mock 단으로 구성하고,
 * 향후 API에서 같은 형태로 받을 수 있도록 타입을 고정합니다.
 */

export type PlatformKey =
  | 'website'
  | 'instagram'
  | 'youtube'
  | 'facebook'
  | 'tiktok'
  | 'gangnamUnni'
  | 'naverPlace'
  | 'naverBlog';

export interface PlatformTarget {
  platform: PlatformKey;
  /** 표시용 핸들 또는 도메인. 예: '@view_clinic', 'view.co.kr' */
  handle: string;
  /** 실제 URL (선택). 예: 'https://instagram.com/view_clinic' */
  url?: string;
}

export type WorkspaceRunStatus = 'completed' | 'running' | 'failed' | 'queued';

export interface WorkspaceRun {
  runId: string;
  startedAt: string;
  completedAt: string | null;
  status: WorkspaceRunStatus;
  overallScore: number | null;
  /** 분석 대상 (플랫폼별 핸들) */
  targets: PlatformTarget[];
}

export type WorkspacePlanStatus = 'draft' | 'active' | 'archived';

export interface WorkspacePlan {
  planId: string;
  /** 베이스 리포트 run id (어떤 리포트에서 파생됐는지) */
  baseRunId: string;
  createdAt: string;
  status: WorkspacePlanStatus;
  /** 워크플로우 진척률 0-100. null = 미시작/없음 */
  workflowProgress: number | null;
  /** 플랜이 다루는 채널 (요약 표시용) */
  channels: PlatformTarget[];
}

export interface WorkspaceClinicProfile {
  clinicId: string;
  name: string;
  nameEn?: string;
  location?: string;
  logoUrl?: string;
  brandColor?: string;
  /** 현재 등록된 분석 대상 (설정 탭에서 편집) */
  defaultTargets: PlatformTarget[];
}

export interface WorkspaceData {
  clinic: WorkspaceClinicProfile;
  runs: WorkspaceRun[];
  plans: WorkspacePlan[];
}
