import { TextObjectFilterResult } from "../../Models/TextObjectFilter.model";
import { PartidosAdapterMongoose } from "./Partidos.Adapter.Mongoose";
import { FindPartidosParams, IPartidosManager } from "./Partidos.interface";

class PartidosManager implements IPartidosManager {
    partidos: PartidosAdapterMongoose;

    constructor() {
        this.partidos = new PartidosAdapterMongoose();
    }

    public async filterAll(data: FindPartidosParams): Promise<TextObjectFilterResult[]> {
        const partidos = await this.partidos.find(data);
        const returnData: TextObjectFilterResult[] = [];

        for (const partido of partidos) {
            returnData.push({
                id: partido.name,
                name: partido.name.toLowerCase(),
            });
        }
        return returnData;
    }
}

const PartidosList = new PartidosManager();

export default PartidosList;
