insiderNFT / src /types.ts
yonagush's picture
Create types.ts
ad2cbfb verified
export interface UserProgress {
currentStreak: number;
shardsCollected: number;
totalPoints: number;
shibKarma: number; // New Karma metric
referralCount: number; // For "Grow the Army" feature
lastClickDate: string | null;
clickedSponsorIds: string[]; // Track specifically which sponsors were clicked today
hasMintedThisWeek: boolean;
inventory: NFTItem[];
}
export interface NFTItem {
id: string;
name: string;
description: string;
imageUrl: string;
dateMinted: string;
rarity: 'Common' | 'Rare' | 'Legendary';
}
export interface WeekConfig {
theme: string;
description: string;
currentDay: number; // 1-7, where 1 is Monday
isMintingOpen: boolean;
}
export interface GeneratedTheme {
name: string;
storyline: string;
visualStyle: string;
perks: string[];
}
export interface SpotlightSponsor {
id: string;
name: string;
tagline: string;
imageUrl: string;
ctaText: string;
url: string;
}
export enum Tab {
DASHBOARD = 'DASHBOARD',
INVENTORY = 'INVENTORY',
AI_STRATEGIST = 'AI_STRATEGIST',
DEVELOPER = 'DEVELOPER',
}