diff --git a/src/main/java/com/mangkyu/employment/interview/app/common/pagination/CursorPageable.java b/src/main/java/com/mangkyu/employment/interview/app/common/pagination/CursorPageable.java new file mode 100644 index 0000000..6b5e23c --- /dev/null +++ b/src/main/java/com/mangkyu/employment/interview/app/common/pagination/CursorPageable.java @@ -0,0 +1,26 @@ +package com.mangkyu.employment.interview.app.common.pagination; + +import lombok.Builder; +import lombok.Getter; +import lombok.RequiredArgsConstructor; +import lombok.ToString; + +@Getter +@Builder +@RequiredArgsConstructor +@ToString +public class CursorPageable { + + private final T response; + private final ResponseMetaData responseMetaData; + + private CursorPageable(final T response, final boolean hasNext, final int page, final int size) { + this.response = response; + this.responseMetaData = new ResponseMetaData(hasNext, page, size); + } + + public static CursorPageable of(final T response, final boolean hasNext, final int page, final int size) { + return new CursorPageable<>(response, hasNext, page, size); + } + +} \ No newline at end of file diff --git a/src/main/java/com/mangkyu/employment/interview/app/common/pagination/ResponseMetaData.java b/src/main/java/com/mangkyu/employment/interview/app/common/pagination/ResponseMetaData.java new file mode 100644 index 0000000..4745e5d --- /dev/null +++ b/src/main/java/com/mangkyu/employment/interview/app/common/pagination/ResponseMetaData.java @@ -0,0 +1,16 @@ +package com.mangkyu.employment.interview.app.common.pagination; + +import lombok.Getter; +import lombok.RequiredArgsConstructor; +import lombok.ToString; + +@Getter +@RequiredArgsConstructor +@ToString +public class ResponseMetaData { + + private final boolean hasNext; + private final int page; + private final int size; + +} \ No newline at end of file