package gov.nysenate.openleg.dao.spotcheck;
import com.google.common.collect.ImmutableMap;
import gov.nysenate.openleg.model.agenda.AgendaId;
import gov.nysenate.openleg.model.agenda.CommitteeAgendaAddendumId;
import gov.nysenate.openleg.model.base.Version;
import gov.nysenate.openleg.model.entity.Chamber;
import gov.nysenate.openleg.model.entity.CommitteeId;
import org.springframework.stereotype.Repository;
import java.util.Map;
@Repository
public class CommitteeAgendaReportDao extends AbstractSpotCheckReportDao<CommitteeAgendaAddendumId> {
@Override
public CommitteeAgendaAddendumId getKeyFromMap(Map<String, String> keyMap) {
return new CommitteeAgendaAddendumId(
new AgendaId(
Long.parseLong(keyMap.get("agenda_no")),
Integer.parseInt(keyMap.get("year"))
),
new CommitteeId(
Chamber.getValue(keyMap.get("chamber")),
keyMap.get("committee_name")
),
Version.of(keyMap.get("addendum"))
);
}
@Override
public Map<String, String> getMapFromKey(CommitteeAgendaAddendumId addendumId) {
return ImmutableMap.<String, String>builder()
.put("agenda_no", addendumId.getAgendaId().getNumber().toString())
.put("year", Integer.toString(addendumId.getAgendaId().getYear()))
.put("chamber", addendumId.getCommitteeId().getChamber().asSqlEnum())
.put("committee_name", addendumId.getCommitteeId().getName())
.put("addendum", addendumId.getAddendum().name())
.build();
}
}