Tools/src/main/java/de/ph87/tools/tools/numbers/NumbersDto.java
2024-11-06 14:52:02 +01:00

43 lines
1.2 KiB
Java

package de.ph87.tools.tools.numbers;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import de.ph87.tools.common.uuid.UuidSerializer;
import de.ph87.tools.group.dto.GroupDto;
import de.ph87.tools.tools.numbers.lot.NumberLotDto;
import de.ph87.tools.tools.numbers.uuid.NumbersAbstract;
import de.ph87.tools.tools.numbers.uuid.NumbersUuid;
import jakarta.persistence.ElementCollection;
import lombok.Getter;
import lombok.NonNull;
import lombok.ToString;
import java.time.ZonedDateTime;
import java.util.List;
@Getter
@ToString(callSuper = true)
public class NumbersDto extends NumbersAbstract {
@NonNull
@JsonSerialize(using = UuidSerializer.class)
private final NumbersUuid uuid;
@NonNull
private final ZonedDateTime date;
@NonNull
@ElementCollection
private final List<NumberLotDto> lots;
@NonNull
private final GroupDto group;
public NumbersDto(@NonNull final NumbersAccess lotAccess, @NonNull final GroupDto group) {
this.uuid = lotAccess.numbers.getUuid();
this.date = lotAccess.numbers.getDate();
this.lots = lotAccess.numbers.getLots().stream().map(lot -> new NumberLotDto(lot, lotAccess.principal)).toList();
this.group = group;
}
}