package com.hepl.tunefortwo.service.impl;

import java.util.List;

import org.springframework.http.HttpStatus;
import org.springframework.stereotype.Service;
import org.springframework.web.server.ResponseStatusException;

import com.hepl.tunefortwo.dto.FiledDto;
import com.hepl.tunefortwo.dto.IsMandatory;
import com.hepl.tunefortwo.entity.Filed;
import com.hepl.tunefortwo.repository.FiledRepository;
import com.hepl.tunefortwo.service.FiledService;
import com.hepl.tunefortwo.utils.AppMessages;

import lombok.extern.slf4j.Slf4j;

@Service
@Slf4j
public class FiledServiceImpl implements FiledService{
	
	private final FiledRepository filedRepository;
	
	public FiledServiceImpl(FiledRepository filedRepository) {
		this.filedRepository = filedRepository;
	}
	@Override
	public void addFiled(FiledDto dto) {
		log.info("add filed");
		Filed filed = new Filed();
		filed.setIsMandatory(dto.getIsMandatory().toString());
		filed.setName(dto.getName());
		filedRepository.save(filed);
	}
	@Override
	public void updateFiled(IsMandatory dto, String id) {
		log.info("update filed");
		Filed filed = filedRepository.findById(id).orElseThrow(()->new ResponseStatusException(HttpStatus.NOT_FOUND,AppMessages.RESOURCE_NOT_FOUND));
//		if(filed.getName().equals(dto.getName())) {
//			new ResponseStatusException(HttpStatus.BAD_REQUEST,AppMessages.FILED_NAME_ALEADY_EXISTED);
//		}
		filed.setIsMandatory(dto.toString());
		filedRepository.save(filed);
	}
	@Override
	public List<Filed> getAllFiled() {
		log.info("get All filed");
		return filedRepository.findAll();
	}
	@Override
	public Filed getFiledById( String id ) {
		log.info("get filed by id :" +id);
		return filedRepository.findById(id).orElseThrow(()->new ResponseStatusException(HttpStatus.NOT_FOUND,AppMessages.RESOURCE_NOT_FOUND));
	}
	

}
