class RequestViewMapper implements BaseMapper<RequestDto, RequestView> {

    @Override
    public RequestView map(final RequestDto r) {
        if (r == null) {
            return null;
        }

        return RequestView.builder()
                          .id(r.getId())
                          .icon("https://github.com/" + r.getIssueInformation().getOwner() + ".png")
                          .owner(r.getIssueInformation().getOwner())
                          .repo(r.getIssueInformation().getRepo())
                          .issueNumber(r.getIssueInformation().getNumber())
                          .platform(r.getIssueInformation().getPlatform().name())
                          .title(r.getIssueInformation().getTitle())
                          .status(enumToCapitalizedStringMapper.map(r.getStatus()))
                          .phase(enumToCapitalizedStringMapper.map(r.getStatus().getPhase()))
                          .starred(r.isLoggedInUserIsWatcher())
                          .technologies(r.getTechnologies())
                          .funds(r.getFunds())
                          .creationDate(r.getCreationDate() != null ? r.getCreationDate().atZone(ZoneId.systemDefault()) : null)
                          .lastModifiedDate(r.getLastModifiedDate() != null ? r.getLastModifiedDate().atZone(ZoneId.systemDefault()) : null)
                          .build();
    }

    public  RequestViewMapper(final EnumToCapitalizedStringMapper enumToCapitalizedStringMapper);

}