import { TextObjectFilterResult } from "../../Models/TextObjectFilter.model";
import { ProvinciasAdapterMongoose } from "./Provincias.Adapter.Mongoose";
import { FindProvinciasParams, IProvinciasManager } from "./Provincias.interface";

class ProvinciasManager implements IProvinciasManager {
    provincias: ProvinciasAdapterMongoose;

    constructor() {
        this.provincias = new ProvinciasAdapterMongoose();
    }

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

        for (const provincia of provincias) {
            returnData.push({
                id: provincia.name,
                name: provincia.name.toLowerCase(),
            });
        }

        return returnData;
    }
}

const ProvinciasList = new ProvinciasManager();

export default ProvinciasList;
