Files
ai-showcase-platform/types/competition.ts

100 lines
2.6 KiB
TypeScript

export interface Judge {
id: string
name: string
title: string
department: string
expertise: string[]
avatar?: string
}
export interface JudgeScore {
judgeId: string
appId: string
scores: {
innovation: number // 創新性 (1-10)
technical: number // 技術性 (1-10)
usability: number // 實用性 (1-10)
presentation: number // 展示效果 (1-10)
impact: number // 影響力 (1-10)
}
comments: string
submittedAt: string
}
// 新增團隊成員接口
export interface TeamMember {
id: string
user_id?: string // 添加可選的 user_id 字段
name: string
department: string
role: string // 角色:隊長、成員等
}
// 新增團隊接口
export interface Team {
id: string
name: string
members: TeamMember[]
leader: string // 隊長ID
department: string // 主要部門
contactEmail: string
apps: string[] // 團隊提交的應用ID列表
totalLikes: number // 所有應用的總按讚數
}
export interface CompetitionRule {
id: string
name: string
description: string
weight: number // 權重百分比 (0-100)
}
export interface CompetitionAwardType {
id: string
name: string
description: string
icon: string
color: string
}
// 擴展競賽接口以支持不同類型,包括混合類型
export interface Competition {
id: string
name: string
year: number
month: number
startDate: string
endDate: string
status: "upcoming" | "active" | "judging" | "completed"
description: string
type: "individual" | "team" | "mixed" // 新增混合類型
judges: string[] // judge IDs
participatingApps: string[] // app IDs (個人賽使用)
participatingTeams: string[] // team IDs (團隊賽使用)
rules: CompetitionRule[] // 評比規則
awardTypes: CompetitionAwardType[] // 可頒發的獎項類型
evaluationFocus: string // 評比重點描述
maxTeamSize?: number // 最大團隊人數限制
}
export interface Award {
id: string
competitionId: string
appId?: string // 個人賽和團隊賽使用
teamId?: string // 團隊賽和提案賽使用
appName?: string
teamName?: string
proposalTitle?: string
creator: string
awardType: "gold" | "silver" | "bronze" | "popular" | "innovation" | "technical" | "custom"
awardName: string
score: number
year: number
month: number
icon: string
customAwardTypeId?: string // 如果是自定義獎項類型
competitionType: "individual" | "team" | "proposal" // 競賽類型
rank: number // 0 for non-ranking awards, 1-3 for top 3
category: "innovation" | "technical" | "practical" | "popular" | "teamwork" | "solution" | "creativity"
}