ProductAreaResponse.java
package no.nav.data.team.po.dto;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonPropertyOrder;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import no.nav.data.common.rest.ChangeStampResponse;
import no.nav.data.team.member.dto.MemberResponse;
import no.nav.data.team.po.domain.AreaType;
import no.nav.data.team.shared.dto.Links;
import no.nav.data.team.shared.domain.DomainObjectStatus;
import no.nav.data.team.team.domain.Role;
import java.util.ArrayList;
import java.util.List;
import java.util.Optional;
import java.util.UUID;
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@JsonPropertyOrder({"id", "name", "avdelingNomId", "avdelingNavn", "nomId", "areaType", "description", "slackChannel", "tags", "members", "locations", "status", "changeStamp", "links", "paOwnerGroupNavIdentList","isDefaultArea"})
public class ProductAreaResponse {
private UUID id;
private String name;
private String avdelingNomId;
private String avdelingNavn;
private String nomId;
private AreaType areaType;
private String description;
private String slackChannel;
private List<String> tags;
private List<MemberResponse> members;
private List<String> ownerGroupNavidentList;
private DomainObjectStatus status;
@Builder.Default
private boolean isDefaultArea = false;
private ChangeStampResponse changeStamp;
private Links links;
@JsonIgnore
public List<MemberResponse> getOwnerGroupMembers(){
return this.members.stream().filter(MemberResponse::hasLeaderRole).toList();
}
@JsonIgnore
public Optional<MemberResponse> getOwnergroupLeaderMember(){
return this.members.stream().filter(x -> x.getRoles().stream().anyMatch(r -> r.equals(Role.LEADER))).findFirst();
}
}