"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.PdfController = void 0;
const api_1 = require("@hed-hog/api");
const common_1 = require("@nestjs/common");
const generate_pdf_dto_1 = require("./dto/generate-pdf.dto");
const pdf_service_1 = require("./pdf.service");
let PdfController = class PdfController {
    constructor(pdfService) {
        this.pdfService = pdfService;
    }
    /**
     * GET /core/pdf/example
     *
     * Generates a sample hcode Institutional PDF using the Design System
     * template with the currently configured area color.
     * Publicly accessible — no auth required.
     */
    async example(query, res) {
        var _a, _b;
        const area = (_a = query.area) !== null && _a !== void 0 ? _a : 'consulting';
        const disposition = (_b = query.disposition) !== null && _b !== void 0 ? _b : 'inline';
        const buffer = await this.pdfService.generatePdfFromTemplate('hcode-institutional', {
            area,
            title: 'Inteligência aplicada.',
            subtitle: 'De diagnóstico a aplicação: consultoria, formação e pesquisa em IA para empresas que querem liderar.',
            description: 'Combinamos diagnóstico estratégico, formação corporativa e pesquisa aplicada para transformar ' +
                'a inteligência artificial em resultado mensurável para o seu negócio.',
            features: [
                {
                    icon: 'discovery',
                    title: 'Discovery & Diagnóstico',
                    description: 'Mapeamento de maturidade, gaps e oportunidades de IA na sua operação atual.',
                },
                {
                    icon: 'strategy',
                    title: 'Estratégia & Roadmap',
                    description: 'Plano de adoção com priorização por impacto, viabilidade e alinhamento cultural.',
                },
                {
                    icon: 'governance',
                    title: 'Governança & Ética',
                    description: 'Frameworks de uso responsável, políticas internas e compliance regulatório.',
                },
            ],
            tableHeaders: ['Fase', 'Entregável', 'Duração', 'Responsável'],
            tableRows: [
                ['01 · Discovery', 'Diagnóstico de maturidade IA', '2 semanas', 'hcode'],
                ['02 · Estratégia', 'Roadmap de adoção e priorização', '3 semanas', 'hcode + Cliente'],
                ['03 · Piloto', 'Implantação de caso de uso prioritário', '6 semanas', 'hcode + TI'],
                ['04 · Scale', 'Expansão e gestão de mudança', 'ongoing', 'Cliente (suporte hcode)'],
            ],
            metadata: [
                { label: 'Área', value: area.charAt(0).toUpperCase() + area.slice(1) },
                { label: 'Versão', value: '1.0' },
                { label: 'Data', value: new Date().toLocaleDateString('pt-BR') },
                { label: 'Design System', value: 'DS v1.0' },
            ],
            signatories: [
                { label: 'Responsável pelo Projeto' },
                { label: 'Aprovado por' },
            ],
        });
        res.set({
            'Content-Type': 'application/pdf',
            'Content-Disposition': `${disposition}; filename="hcode-${area}-example.pdf"`,
            'Content-Length': buffer.length,
        });
        res.end(buffer);
    }
};
exports.PdfController = PdfController;
__decorate([
    (0, api_1.Public)(),
    (0, common_1.Get)('example'),
    __param(0, (0, common_1.Query)()),
    __param(1, (0, common_1.Res)()),
    __metadata("design:type", Function),
    __metadata("design:paramtypes", [generate_pdf_dto_1.GeneratePdfDTO, Object]),
    __metadata("design:returntype", Promise)
], PdfController.prototype, "example", null);
exports.PdfController = PdfController = __decorate([
    (0, api_1.Role)(),
    (0, common_1.Controller)('core/pdf'),
    __param(0, (0, common_1.Inject)((0, common_1.forwardRef)(() => pdf_service_1.PdfService))),
    __metadata("design:paramtypes", [pdf_service_1.PdfService])
], PdfController);
//# sourceMappingURL=pdf.controller.js.map