import { Sequelize } from "sequelize"; import Schedule from "../../models/Schedule"; interface Request { searchParam?: string; pageNumber?: string; } interface Response { schedules: Schedule[]; count: number; hasMore: boolean; } const ListSchedulingService = async ({ searchParam = "", pageNumber = "1" }: Request): Promise<Response> => { const whereCondition = { message: Sequelize.where( Sequelize.fn("LOWER", Sequelize.col("name")), "LIKE", `%${searchParam.toLowerCase().trim()}%`) }; const limit = 20; const offset = limit * (+pageNumber - 1); const { count, rows: schedules } = await Schedule.findAndCountAll({ where: whereCondition, attributes: ['id', 'name'], limit, offset, order: [["id", "ASC"]] }); const hasMore = count > offset + schedules.length; return { schedules, count, hasMore }; }; export default ListSchedulingService;