import { Connection } from 'typeorm'; import moment from 'moment'; import { BaseRepository } from '@leal.api/api_utils'; import { ResponseModel, ComercioPremios } from '@leal.api/api_models'; import { IComercioPremioRepository } from '../interfaces'; import { ConsultaComercioPremioViewModel } from "../models"; export class ComercioPremioRepository extends BaseRepository implements IComercioPremioRepository { constructor(connection: Connection) { super(connection, ComercioPremios); } //Traer los registros de los premios por comercios async consulta_comercio_premio(idComercio: number, limitPremios: number): Promise> { try { //Consultar premioc del comercio let resultPremios: any = await this.connection .getRepository(ComercioPremios) .createQueryBuilder("premio") .where("premio.fechaFin >= :fechaFin AND premio.idComercio = :idComercio AND premio.estado = :estado", { idComercio: idComercio, fechaFin: moment().subtract("5", "hours").format("YYYY-MM-DD HH:mm:ss"), estado: "activo" }) .select(["premio.id", "premio.imagen", "premio.premio", "premio.descripcion", "premio.estado", "premio.puntos"]) .orderBy("premio.puntos", "ASC") .limit(limitPremios) .getMany(); if (resultPremios.length > 0) { return new ResponseModel(100, resultPremios); } else { return new ResponseModel(104, undefined, "No se encontraron resultados de premios"); } } catch (error) { return new ResponseModel(105, undefined, error); } } }