/**
 * Règles salariales légales et réglementaires
 * Centralisées et évolutives (SMIC, revalorisations, seniors, etc.)
 */

export type SalaryUnit = 'monthly' | 'annual';

export type SalaryContext = {
  isSenior: boolean;
  referenceDate?: Date;
};

export const SALARY_RULES = {
  FR: {
    smic: {
      monthly: 1766,   // valeur de référence actuelle
      annual: 21192,
      lastUpdate: '2024-01-01',
    },

    seniorAdjustment: {
      enabled: true,
      /**
       * Coefficient minimum recommandé JoBBond
       * (ex : +5% pour valorisation de l’expérience)
       */
      coefficient: 1.05,
    },
  },
};

/**
 * Calcule le salaire minimum légal applicable
 */
export function getMinimumLegalSalary(
  unit: SalaryUnit,
  context: SalaryContext,
  country: 'FR' = 'FR'
): number {
  const base = SALARY_RULES[country].smic[unit];

  if (context.isSenior && SALARY_RULES[country].seniorAdjustment.enabled) {
    return Math.round(base * SALARY_RULES[country].seniorAdjustment.coefficient);
  }

  return base;
}
