// 프로젝트 도메인 타입 — 백엔드 ProjectService 응답 / DTO 와 1:1

import type { ApiMember } from '@/types/repo'

// 프로젝트(API 원시) — 백엔드 ProjectResponse 와 1:1
export interface ApiProject {
  id: string // UUID (라우팅 식별자)
  name: string
  description: string | null
  members: ApiMember[]
  memberCount: number
  doneCount: number
  totalCount: number
  updatedAt: string
  // 단건 조회에서만 — 현재 사용자 권한
  canManage?: boolean // admin (설정 변경/탭 노출)
  isOwner?: boolean // 소유자 (프로젝트 삭제)
}

// 프로젝트 목록 정렬 — 최근 업데이트순/이름순/최근 생성순 (백엔드 sort 쿼리와 1:1)
export type ProjectSort = 'recent' | 'name' | 'created'

// 프로젝트 목록 필터 — 검색/정렬 (백엔드 findAll 쿼리와 1:1)
export interface ProjectListQuery {
  q?: string
  sort?: ProjectSort
}

// 프로젝트 생성 요청
export interface CreateProjectPayload {
  name: string
  description?: string
}

// 프로젝트 수정 요청
export interface UpdateProjectPayload {
  name?: string
  description?: string
}
