// Path: Frontend/src/components/dashboard/shared/dashboard-types.ts

export type AccentTone = "yellow" | "pink" | "teal" | "blue";
type SpotlightTone = "purple" | "yellow" | "blue";
export type PerformanceTone = "blue" | "purple" | "teal" | "pink" | "yellow";
type UsageTone = "blue" | "purple" | "teal" | "yellow";

export type SidebarLink = {
	label: string;
	detail?: string;
	icon: string;
	href?: string;
	active?: boolean;
};

type SpotlightStat = {
	label: string;
	value: string;
	tone: SpotlightTone;
};

type QuickStat = {
	label: string;
	value: string;
};

export type AssignmentCard = {
	title: string;
	badge: string;
	lessons: string;
	accent: AccentTone;
	cta: string;
	href: string;
};

type TopbarNotificationItem = {
	title: string;
	description: string;
	timestamp: string;
	href: string;
	tone: "blue" | "yellow" | "teal";
};

export type TopbarMessageItem = {
	sender: string;
	initials: string;
	preview: string;
	timestamp: string;
	actionHref: string;
};

export type StudentSupportCard = {
	name: string;
	meta: string;
	initials: string;
	actionLabel: string;
	href: string;
};

type HighlightCard = {
	value: string;
	label: string;
	note: string;
	tone: "yellow" | "pink";
};

export type PerformanceBar = {
	label: string;
	value: number;
	tone: PerformanceTone;
};

export type UsageItem = {
	label: string;
	value: number;
	tone: UsageTone;
};

export type DashboardHomeShellData = {
	classroomSummary: {
		name: string;
		targetLevel?: number;
		inviteCode?: string;
		tutorName: string;
		tutorRole: string;
		tutorInitials: string;
	};
	sidebarLinks: SidebarLink[];
	sidebarSupport: {
		avatars: string[];
		title: string;
		description: string;
		buttonLabel: string;
		buttonHref: string;
	};
	topbarSummary: {
		searchPlaceholder: string;
		profileName: string;
		profileRole: string;
		profileBadge: string;
		notificationCount: number;
		messageCount: number;
	};
	topbarNotifications: TopbarNotificationItem[];
	topbarMessages: TopbarMessageItem[];
};

export type DashboardHeroData = {
	heroSummary: {
		eyebrow: string;
		title: string;
		description: string;
		visualBadges: string[];
	};
	spotlightStats: SpotlightStat[];
	heroSideCard: {
		title: string;
		description: string;
		buttonLabel: string;
		buttonHref: string;
	};
	quickStats: QuickStat[];
};

export type DashboardActivityData = {
	activitySummary: {
		title: string;
		note: string;
		badge: string;
	};
	progressLabels: string[];
	progressPoints: number[];
	highlightCards: HighlightCard[];
};

export type DashboardInsightsData = {
	masteryTitle: string;
	overallTitle: string;
	overallLabel: string;
	usageTitle: string;
	overallPassRate: number;
	topicMasteryBars: PerformanceBar[];
	solveModeUsage: UsageItem[];
	usageSummary: {
		note: string;
	};
};

export type DashboardHomeData = {
	shell: DashboardHomeShellData;
	hero: DashboardHeroData;
	assignmentCards: AssignmentCard[];
	activity: DashboardActivityData;
	studentSupportList: StudentSupportCard[];
	insights: DashboardInsightsData;
};
