import WordListPt from "./data/pt_br.json";
import WordListEn from "./data/en_us.json";
import sd from "seedrandom";

export enum Langs {
    ptBr = "pt-br",
    enUs = "en-us"
}

class WordPicker {
    private word: string;
    private words: string[];
    constructor(lang: Langs) {
        this.words = WordPicker.getWordList(lang);
        const index = this.generateIndex();
        this.word = this.words.at(index) ?? "Error";
    }
    public static getWordList(lang: Langs) {
        switch (lang) {
            case Langs.ptBr:
                return WordListPt;
            case Langs.enUs:
                return WordListEn;
            default:
                return WordListEn;
        }
    }
    public getWordList() {
        return this.words;
    }
    public getWord() {
        return this.word;
    }
    private generateIndex() {
        const rng = WordPicker.seed();
        const rand_number = rng();
        return Math.floor(rand_number * this.words.length);
    }
    private static seed() {
        const today = new Date();
        return sd(today.toDateString());
    }
}
export default WordPicker;
