package ${basePackageName}.pagination;

import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;

import static org.youngmonkeys.ezyplatform.pagination.PaginationParameters.makeOrderByAsc;
import static org.youngmonkeys.ezyplatform.pagination.PaginationParameters.makePaginationConditionAsc;
import static org.youngmonkeys.ezyplatform.util.Values.isAllNull;

@Getter
@Setter
@NoArgsConstructor
@AllArgsConstructor
public class IdAsc${entityClassName}PaginationParameter
    implements ${entityClassName}PaginationParameter {

    public Long id;

    @Override
    public String paginationCondition(boolean nextPage) {
        return isEmpty()
            ? null
            : makePaginationConditionAsc(
                nextPage,
                "id"
            );
    }

    @Override
    public String orderBy(boolean nextPage) {
        return makeOrderByAsc(nextPage, "id");
    }

    @Override
    public boolean isEmpty() {
        return isAllNull(id);
    }

    @Override
    public String sortOrder() {
        return ${entityClassName}PaginationSortOrder
            .ID_DESC
            .toString();
    }
}
