import { Component, inject, OnInit } from '@angular/core';
import { LoadingService } from '@iqser/common-ui';
import { ContextComponent, getParam } from '@iqser/common-ui/lib/utils';
import { DOSSIER_TEMPLATE_ID, type DossierTemplate, type DossierTemplateStats } from '@red/domain';
import { DossierTemplatesService } from '@services/dossier-templates/dossier-templates.service';
import { DossierTemplateStatsService } from '@services/entity-services/dossier-template-stats.service';
import { dossierTemplateStatusTranslations } from '@translations/dossier-template-status-translations';

interface Context {
    readonly dossierTemplate: DossierTemplate;
    readonly stats: DossierTemplateStats;
}

@Component({
    templateUrl: './dossier-template-info-screen.component.html',
    styleUrls: ['./dossier-template-info-screen.component.scss'],
})
export class DossierTemplateInfoScreenComponent extends ContextComponent<Context> implements OnInit {
    readonly #loadingService = inject(LoadingService);
    readonly translations = dossierTemplateStatusTranslations;

    constructor(dossierTemplatesService: DossierTemplatesService, dossierTemplateStatsService: DossierTemplateStatsService) {
        super();
        const dossierTemplateId = getParam(DOSSIER_TEMPLATE_ID);
        super._initContext({
            dossierTemplate: dossierTemplatesService.getEntityChanged$(dossierTemplateId),
            stats: dossierTemplateStatsService.watch$(dossierTemplateId),
        });
    }

    ngOnInit() {
        this.#loadingService.stop();
    }
}
