package com.iqser.red.service.persistence.v1.internal.api.controller;

import static com.knecon.fforesight.databasetenantcommons.providers.utils.MagicConverter.convert;

import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RestController;

import com.iqser.red.service.persistence.management.v1.processor.service.DossierTemplateImportService;
import com.iqser.red.service.persistence.management.v1.processor.service.persistence.DossierTemplatePersistenceService;
import com.iqser.red.service.persistence.service.v1.api.internal.resources.DossierTemplateResource;
import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.DossierTemplate;
import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.importexport.ImportDossierTemplateRequest;

import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;

@Slf4j
@RestController
@RequiredArgsConstructor
public class DossierTemplateInternalController implements DossierTemplateResource {

    private final DossierTemplateImportService dossierTemplateImportService;
    private final DossierTemplatePersistenceService dossierTemplatePersistenceService;


    @Override
    public DossierTemplate importDossierTemplate(@RequestBody ImportDossierTemplateRequest request) {

        String dossierTemplateId = dossierTemplateImportService.importDossierTemplate(request);
        return convert(dossierTemplatePersistenceService.getDossierTemplate(dossierTemplateId), DossierTemplate.class);
    }

    @Override
    public DossierTemplate getDossierTemplateById(String dossierTemplateId) {

        return convert(dossierTemplatePersistenceService.getDossierTemplate(dossierTemplateId), DossierTemplate.class);
    }

}
