Uecko_ERP/packages/rdx-criteria/src/critera.ts

40 lines
1.0 KiB
TypeScript
Raw Normal View History

2025-05-26 14:45:03 +00:00
import { Criteria as BaseCriteria, Filters, FiltersPrimitives, Order } from "@codelytv/criteria";
import { INITIAL_PAGE_INDEX, INITIAL_PAGE_SIZE } from './defaults';
export class Criteria extends BaseCriteria {
/**
* Creates a new Criteria instance.
*
* @param filters - The filters to apply.
* @param order - The order to apply.
* @param pageSize - The size of the page.
* @param pageNumber - The number of the page.
*/
constructor(
public readonly filters: Filters,
public readonly order: Order,
public readonly pageSize: number,
public readonly pageNumber: number
) {
super(filters, order, pageSize, pageNumber);
}
static fromPrimitives(
filters: FiltersPrimitives[],
orderBy: string | null,
orderType: string | null,
pageSize: number | null,
pageNumber: number | null,
): Criteria {
return new Criteria(
Filters.fromPrimitives(filters),
Order.fromPrimitives(orderBy, orderType),
pageSize ?? INITIAL_PAGE_SIZE,
pageNumber ?? INITIAL_PAGE_INDEX,
);
}
}