export const LEVEL_THRESHOLDS = [
    0,      // Level 1: 0-99
    100,    // Level 2: 100-249
    250,    // Level 3: 250-499
    500,    // Level 4: 500-999
    1000,   // Level 5: 1000-1999
    2000,   // Level 6: 2000-3499
    3500,   // Level 7: 3500-4999
    5000,   // Level 8: 5000-7499
    7500,   // Level 9: 7500-9999
    10000   // Level 10: 10000+
];

export function getLevelFromXP(xp: number): number {
    for (let i = LEVEL_THRESHOLDS.length - 1; i >= 0; i--) {
        if (xp >= LEVEL_THRESHOLDS[i]) {
            return i + 1;
        }
    }
    return 1;
}

export function getNextLevelXP(level: number): number {
    if (level >= LEVEL_THRESHOLDS.length) {
        return LEVEL_THRESHOLDS[LEVEL_THRESHOLDS.length - 1] * 1.5; // Scale indefinitely
    }
    return LEVEL_THRESHOLDS[level];
}

export function getLevelProgress(xp: number): number {
    const currentLevel = getLevelFromXP(xp);
    const currentLevelStart = LEVEL_THRESHOLDS[currentLevel - 1];
    const nextLevelStart = getNextLevelXP(currentLevel);

    if (xp >= nextLevelStart) return 100;

    const progress = ((xp - currentLevelStart) / (nextLevelStart - currentLevelStart)) * 100;
    return Math.min(100, Math.max(0, progress));
}

export function getRankKey(level: number): string {
    if (level >= 50) return 'master';
    if (level >= 20) return 'architect';
    if (level >= 10) return 'planner';
    if (level >= 5) return 'builder';
    return 'novice';
}
