DomainTemplateFindByIdService.java

package fr.tiogars.inception.domains.domaintemplate.services;

import java.util.Optional;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import fr.tiogars.inception.domains.domaintemplate.entities.DomainTemplateEntity;
import fr.tiogars.inception.domains.domaintemplate.models.DomainTemplate;
import fr.tiogars.inception.domains.domaintemplate.repositories.DomainTemplateRepository;

/** Retrieves a DomainTemplate by its persistent identifier. */
@Service
public class DomainTemplateFindByIdService {

    private final DomainTemplateRepository repository;

    @Autowired
    public DomainTemplateFindByIdService(DomainTemplateRepository repository) {
        this.repository = repository;
    }

    /**
     * Finds a DomainTemplate by identifier.
     *
     * @param id persistent identifier
     * @return matching template, or an empty optional when none exists
     */
    public Optional<DomainTemplate> findById(Long id) {
        return repository.findById(id)
                .map(DomainTemplateFindByIdService::toRecord);
    }

    private static DomainTemplate toRecord(DomainTemplateEntity entity) {
        return new DomainTemplate(
                entity.getId(),
                entity.getCode(),
                entity.getLabel(),
                entity.getDescription(),
                entity.getCreatedDate(),
                entity.getLastModifiedDate(),
                entity.getCreatedBy(),
                entity.getLastModifiedBy());
    }
}