package net.gepafin.tendermanagement.service.impl; import java.util.List; import java.util.Map; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import jakarta.servlet.http.HttpServletRequest; import net.gepafin.tendermanagement.dao.CompanyDao; import net.gepafin.tendermanagement.dao.VatCheckDao; import net.gepafin.tendermanagement.entities.CompanyEntity; import net.gepafin.tendermanagement.entities.UserEntity; import net.gepafin.tendermanagement.entities.UserWithCompanyEntity; import net.gepafin.tendermanagement.model.request.CompanyRequest; import net.gepafin.tendermanagement.model.response.CompanyResponse; import net.gepafin.tendermanagement.service.CompanyService; import net.gepafin.tendermanagement.util.Validator; @Service public class CompanyServiceImpl implements CompanyService { @Autowired private Validator validator; @Autowired private CompanyDao companyDao; @Autowired private VatCheckDao vatCheckDao; @Override @Transactional(rollbackFor = Exception.class) public CompanyResponse createCompany(HttpServletRequest request, CompanyRequest companyRequest) { UserEntity userEntity =validator.validateUser(request); return companyDao.createCompany(userEntity, companyRequest); } @Override @Transactional(rollbackFor = Exception.class) public CompanyResponse updateCompany(HttpServletRequest request, Long companyId, CompanyRequest companyRequest) { UserEntity userEntity =validator.validateUser(request); return companyDao.updateCompany(userEntity, companyId, companyRequest); } @Override @Transactional(readOnly = true) public CompanyResponse getCompany(HttpServletRequest request, Long companyId) { UserEntity userEntity =validator.validateUser(request); return companyDao.getCompany(userEntity, companyId); } @Override @Transactional(rollbackFor = Exception.class) public void deleteCompany(HttpServletRequest request, Long companyId) { UserEntity userEntity =validator.validateUser(request); companyDao.deleteCompany(userEntity, companyId); } @Override @Transactional(readOnly = true) public List getCompanyByUserId(HttpServletRequest request, Long userId) { UserEntity userEntity = validator.validateUser(request); return companyDao.getCompanyByUserId(userId); } @Override @Transactional(readOnly = true) public Map checkVatNumber(HttpServletRequest request, String vatNumber) { return vatCheckDao.checkVatNumber(vatNumber); } @Override public CompanyEntity validateCompany(Long companyId) { return companyDao.validateCompany(companyId); } @Override public UserWithCompanyEntity validateUserWithCompny(Long userId, Long companyId) { return companyDao.validateUserWithCompny(userId, companyId); } }