package org.texttechnologylab.project.gruppe_05_1.database.domainimpl.mdb;

import org.bson.Document;
import org.texttechnologylab.project.gruppe_05_1.database.MongoDBHandler;
import org.texttechnologylab.project.gruppe_05_1.database.MongoOperations;
import org.texttechnologylab.project.gruppe_05_1.domain.mdb.BiografischeAngaben;
import org.texttechnologylab.project.gruppe_05_1.util.GeneralUtils;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class BiografischeAngaben_Mongo_Impl extends BiografischeAngaben implements MongoOperations<BiografischeAngaben> {
    @Override
    public Document createEntity(BiografischeAngaben entity) {
        Map<String, Object> fields = new HashMap<>();
        fields.put("geburtsdatum",         GeneralUtils.formatDate(entity.getSterbedatum()));
        fields.put("geburtsort",           entity.getGeburtsort());
        fields.put("geburtsland",          entity.getGeburtsland());
        fields.put("sterbedatum",          GeneralUtils.formatDate(entity.getSterbedatum()));
        fields.put("gender",               entity.getGender());
        fields.put("maritalStatus",        entity.getFamilienstand());
        fields.put("religion",             entity.getReligion());
        fields.put("beruf",                entity.getBeruf());
        fields.put("parteiKuerzel",        entity.getParteiKuerzel());
        fields.put("vitaKurz",            entity.getVitaKurz());
        fields.put("veroeffentlichungspflichtiges",  entity.getVeroeffentlichungspflichtiges());

        return MongoDBHandler.createDocument(false, fields);
    }

    @Override
    public List<Document> createList(List<BiografischeAngaben> list) {
        List<Document> result = new ArrayList<>();
        for (BiografischeAngaben bio : list) {
            result.add(createEntity(bio));
        }
        return result;
    }
}
