package de.ph87.home.knx.group; import de.ph87.home.property.State; import de.ph87.home.web.IWebSocketMessage; import jakarta.annotation.Nullable; import lombok.Getter; import lombok.NonNull; import lombok.ToString; import java.time.ZonedDateTime; import java.util.List; @Getter @ToString public class GroupDto implements IWebSocketMessage { @ToString.Exclude private final List websocketTopic = List.of("Knx", "Group"); @NonNull @ToString.Exclude private final String id; @NonNull private final String address; @NonNull private final String name; @NonNull @ToString.Exclude private final String description; @NonNull private final String dpt; @ToString.Exclude private final long puid; @Nullable private final State state; @Nullable private final ZonedDateTime lastValueChange; public GroupDto(@NonNull final Group group) { this.id = group.getId(); this.address = group.getAddress().toString(); this.name = group.getName(); this.description = group.getDescription(); this.dpt = group.getDpt().toString(); this.puid = group.getPuid(); this.state = group.getState(); this.lastValueChange = group.getLastValueChange(); } }