import { ServiceResponse } from './response';
import { ServiceRequestPage } from './pageInput'
import { PageResponse } from './pageResponse'
import { ProjectUser, ProjectPrincipal } from './projectUserType'

// 过滤条件
export interface ProjectFilter {
  /** 关键字搜索 */
  keyWord?: string | null
  /** 部门ID */
  departmentId?: number | null
}

// 项目DTO
export interface ProjectDto {
  /** 主键Id */
  id?: number
  /** 部门ID */
  departmentId?: number
  /** 部门名称 */
  departmentName?: string | null
  /** 项目编号 */
  projectNo?: string | null
  /** 项目名称 */
  projectName?: string | null
  /** 责任人ID */
  principalId?: number
  /** 责任人姓名 */
  principalName?: string | null
  /** 状态 */
  status?: boolean
  /** 创建时间 */
  createdTime?: string | null

  /** 创建人姓名 */
  createdUserName?: string | null

  /** 修改时间 */
  modifiedTime?: string | null

  /** 项目成员 */
  projectUsers?: ProjectUser[]

  /** 项目负责人 */
  projectPrincipals?: ProjectPrincipal[]
}

/** 项目添加和更新输入接口 */
export interface ProjectAddInputAndUpdateInput {
  /** 主键Id */
  id?: number
  /** 部门ID */
  departmentId?: number
  /** 项目编号 */
  projectNo?: string | null
  /** 项目名称 */
  projectName?: string | null
  /** 责任人ID */
  principalId?: number
  /** 状态 */
  status?: boolean

  /** 项目成员 */
  projectUsers?: ProjectUser[]

  /** 项目负责人 */
  projectPrincipals?: ProjectPrincipal[]
}

// API 类型定义
export type ProjectPageInput = ServiceRequestPage<ProjectFilter>;
export type ProjectPageResponse = ServiceResponse<PageResponse<ProjectDto>>;
export type ProjectOutput = ServiceResponse<ProjectDto>;
export type ProjectAddInput = ProjectAddInputAndUpdateInput;
export type ProjectUpdateInput = ProjectAddInputAndUpdateInput; 