import {getStandeeSet, type AvatarDefinition} from "../../standee-sets";

export type VoicevoxVoice = Readonly<{
  speakerName: string;
  styleName: string;
}>;

export type CharacterDefinition = Readonly<{
  displayName: string;
  voicevox: VoicevoxVoice;
  avatar: AvatarDefinition;
}>;

export const characters = {
  zundamon: {
    displayName: "ずんだもん",
    voicevox: {
      speakerName: "ずんだもん",
      styleName: "ノーマル",
    },
    avatar: {
      ...getStandeeSet("zundamon_ohnegus_ai"),
      accentColor: "#79d36f",
      nameplatePosition: "none",
      idleAnimationType: "none",
      speakingAnimationType: "rhubarbLipSync",
    },
  },
  sayo: {
    displayName: "小夜",
    voicevox: {
      speakerName: "小夜/SAYO",
      styleName: "ノーマル",
    },
    avatar: {
      ...getStandeeSet("sayo_ohnegus_ai"),
      accentColor: "#6b5f83",
      nameplatePosition: "none",
      idleAnimationType: "none",
      speakingAnimationType: "rhubarbLipSync",
    },
  },
} as const satisfies Record<string, CharacterDefinition>;

export type CharacterId = keyof typeof characters;

export const initialVisibleCharacters: CharacterId[] = ["zundamon"];
