"use strict";
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
    if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
    return c > 3 && r && Object.defineProperty(target, key, r), r;
};
var __metadata = (this && this.__metadata) || function (k, v) {
    if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};
var __param = (this && this.__param) || function (paramIndex, decorator) {
    return function (target, key) { decorator(target, key, paramIndex); }
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.BannerService = void 0;
const common_1 = require("@nestjs/common");
const typeorm_1 = require("typeorm");
const typeorm_2 = require("@nestjs/typeorm");
const banner_entity_1 = require("../../common/banner/banner.entity");
const status_enum_1 = require("../../common/columntype/status.enum");
let BannerService = class BannerService {
    constructor(bannerRepository) {
        this.bannerRepository = bannerRepository;
    }
    async findActive(type, lang = 'en') {
        const banners = await this.bannerRepository.find({
            where: { status: status_enum_1.Status.ACTIVE, banner_type: type },
            order: { createdAt: 'DESC' },
        });
        return banners.map((banner) => {
            const langMap = {
                en: 'image',
                ar: 'image_ar',
                urd: 'image_urd',
            };
            const imageKey = langMap[lang] || 'image';
            return {
                id: banner.id,
                shopId: banner.shopId,
                title: banner.title,
                image: banner[imageKey],
                start_date: banner.start_date,
                end_date: banner.end_date,
                address: banner.address,
                latitude: banner.latitude,
                longitude: banner.longitude,
                all_address: banner.all_address,
                banner_type: banner.banner_type,
                link_type: banner.link_type,
                createdAt: banner.createdAt,
                updatedAt: banner.updatedAt,
            };
        });
    }
    async findOfferBanner() {
        return this.bannerRepository.find({
            where: { status: status_enum_1.Status.ACTIVE, banner_type: 1 },
            order: { createdAt: 'DESC' },
        });
    }
    async findOne(id) {
        const banner = await this.bannerRepository.findOneBy({ id });
        if (!banner) {
            throw new common_1.NotFoundException(`Banner with ID ${id} not found`);
        }
        return banner;
    }
};
exports.BannerService = BannerService;
exports.BannerService = BannerService = __decorate([
    (0, common_1.Injectable)(),
    __param(0, (0, typeorm_2.InjectRepository)(banner_entity_1.Banner)),
    __metadata("design:paramtypes", [typeorm_1.Repository])
], BannerService);
//# sourceMappingURL=banner.service.js.map