import type { GaugeType } from '@domain/value-objects/GaugeType';
import { DEFAULT_TARGETS } from '@domain/value-objects/GaugeType';
import type { Gender } from '@domain/value-objects/Gender';

export interface DragodindeStats {
  serenite: number;
  endurance: number;
  maturite: number;
  amour: number;
  xp: number;
}

export interface Dragodinde {
  readonly id: number;
  name: string;
  race: string;
  gender: Gender;
  stats: DragodindeStats;
  targets: Record<GaugeType, number>;
  sereniteTarget: number | null;
  levelTarget: number | null;
  reproducteur: number;
}

export function createDragodinde(id: number): Dragodinde {
  return {
    id,
    name: `Dragodinde ${id}`,
    race: '',
    gender: 'n',
    stats: { serenite: 0, endurance: 0, maturite: 0, amour: 0, xp: 1 },
    targets: { ...DEFAULT_TARGETS },
    sereniteTarget: null,
    levelTarget: null,
    reproducteur: 0,
  };
}
