diff --git a/src/main/java/org/patinanetwork/patchats/api/match/dto/cycle/CreateMatchCycleRequest.java b/src/main/java/org/patinanetwork/patchats/api/match/dto/cycle/CreateMatchCycleRequest.java new file mode 100644 index 0000000..1b675cc --- /dev/null +++ b/src/main/java/org/patinanetwork/patchats/api/match/dto/cycle/CreateMatchCycleRequest.java @@ -0,0 +1,6 @@ +package org.patinanetwork.patchats.api.match.dto.cycle; + +import jakarta.validation.constraints.NotNull; +import java.time.Instant; + +public record CreateMatchCycleRequest(@NotNull Instant runAt, String period) {} diff --git a/src/main/java/org/patinanetwork/patchats/api/match/dto/cycle/MatchCycleDetailQuery.java b/src/main/java/org/patinanetwork/patchats/api/match/dto/cycle/MatchCycleDetailQuery.java new file mode 100644 index 0000000..b9a1b4b --- /dev/null +++ b/src/main/java/org/patinanetwork/patchats/api/match/dto/cycle/MatchCycleDetailQuery.java @@ -0,0 +1,3 @@ +package org.patinanetwork.patchats.api.match.dto.cycle; + +public record MatchCycleDetailQuery(String memberIndustry, String status) {} diff --git a/src/main/java/org/patinanetwork/patchats/api/match/dto/cycle/MatchCycleListQuery.java b/src/main/java/org/patinanetwork/patchats/api/match/dto/cycle/MatchCycleListQuery.java new file mode 100644 index 0000000..a066296 --- /dev/null +++ b/src/main/java/org/patinanetwork/patchats/api/match/dto/cycle/MatchCycleListQuery.java @@ -0,0 +1,5 @@ +package org.patinanetwork.patchats.api.match.dto.cycle; + +import java.time.Instant; + +public record MatchCycleListQuery(String period, Instant startTime, Instant endTime) {} diff --git a/src/main/java/org/patinanetwork/patchats/api/match/dto/cycle/MatchCycleResponse.java b/src/main/java/org/patinanetwork/patchats/api/match/dto/cycle/MatchCycleResponse.java new file mode 100644 index 0000000..8809368 --- /dev/null +++ b/src/main/java/org/patinanetwork/patchats/api/match/dto/cycle/MatchCycleResponse.java @@ -0,0 +1,45 @@ +package org.patinanetwork.patchats.api.match.dto.cycle; + +import io.swagger.v3.oas.annotations.media.Schema; +import java.time.Instant; +import lombok.Builder; +import lombok.EqualsAndHashCode; +import lombok.Getter; +import lombok.ToString; +import org.patinanetwork.patchats.api.match.db.models.MatchCycle; + +@Getter +@Builder +@ToString +@EqualsAndHashCode +public class MatchCycleResponse { + + @Schema(requiredMode = Schema.RequiredMode.REQUIRED) + private final Integer matchCycleId; + + @Schema(requiredMode = Schema.RequiredMode.REQUIRED, nullable = true) + private final String period; + + @Schema(requiredMode = Schema.RequiredMode.REQUIRED) + private final Instant runAt; + + @Schema(requiredMode = Schema.RequiredMode.REQUIRED) + private final boolean isDraft; + + @Schema(requiredMode = Schema.RequiredMode.REQUIRED) + private final Integer totalMembers; + + @Schema(requiredMode = Schema.RequiredMode.REQUIRED) + private final Integer totalMatched; + + public static MatchCycleResponse from(final MatchCycle cycle) { + return MatchCycleResponse.builder() + .matchCycleId(cycle.getId()) + .period(cycle.getPeriod()) + .runAt(cycle.getRunAt()) + .isDraft(cycle.isDraft()) + .totalMembers(cycle.getTotalMembers()) + .totalMatched(cycle.getTotalMatched()) + .build(); + } +} diff --git a/src/main/java/org/patinanetwork/patchats/api/match/dto/cycle/UpdateMatchCycleRequest.java b/src/main/java/org/patinanetwork/patchats/api/match/dto/cycle/UpdateMatchCycleRequest.java new file mode 100644 index 0000000..12289e6 --- /dev/null +++ b/src/main/java/org/patinanetwork/patchats/api/match/dto/cycle/UpdateMatchCycleRequest.java @@ -0,0 +1,5 @@ +package org.patinanetwork.patchats.api.match.dto.cycle; + +import java.time.Instant; + +public record UpdateMatchCycleRequest(Instant runAt, String period, Boolean isDraft) {}