import { Connection } from "typeorm"; import { BaseRepository, Utils } from "@leal.api/api_utils"; import { Usuario, ResponseModel } from "@leal.api/api_models"; import { ICategoriaRepository } from "../interfaces"; import { CategoriaViewModel } from "../models"; export class CategoriaRepository extends BaseRepository implements ICategoriaRepository { private baseUrl: string; constructor(connection: Connection, env: string = "test") { super(connection, Usuario); this.baseUrl = Utils.BASE_URL(env); } //Consulta la informacion de las 6 categorias recomendadas async categoriasRecomendados(limit: number = 6): Promise> { try { const result = (await this.repo.query( ` SELECT count(*) as count, t1.id_categoria as id, t1.categoria, CONCAT('${this.baseUrl}', 'images/app/categorias/', t1.id_categoria, '-bg.png') as fondo, CONCAT('${this.baseUrl}', 'images/app/categorias/', t1.id_categoria, '-bg-sm.png') as fondo_sm, CONCAT('${this.baseUrl}', 'images/app/categorias/', t1.id_categoria, '-icon-yellow.png') as icono FROM com_categorias as t1 INNER JOIN com_comercios as t2 on t2.id_categoria = t1.id_categoria WHERE t2.estado = 'activo' and t1.estado = 'activa' GROUP BY t2.id_categoria ORDER BY count DESC LIMIT ${limit}` )) as CategoriaViewModel[]; // console.log(result); if (result.length > 0) { console.log("categoriaViewModel:result:", result) return new ResponseModel(100, result); } else { return new ResponseModel(104, undefined, "No se encontraron resultados"); } } catch (error) { return new ResponseModel(105, undefined, error); } } }