// Path: treinamento_1/src/main/java/br/com/gamas/treinamento/model/Inscricao.java
// public class Inscricao {
// 
// 	private Long id;
// 
// 	@NotNull
// 	@Size(max=30)
// 	private String nome;
// 
// 	@NotNull
// 	@Size(max=30)
// 	private String email;
// 
// 	@Min(18)
// 	@NotNull
// 	private Integer idade;
// 	
// 	private Date dataInscricao;
// 
// 	private Situacao situacao;
// 
// 	public Inscricao() {
// 		setSituacao(Situacao.PENDENTE);
// 	}
// 
// 	public Long getId() {
// 		return id;
// 	}
// 
// 	public void setId(Long id) {
// 		this.id = id;
// 	}
// 
// 	public String getNome() {
// 		return nome;
// 	}
// 
// 	public void setNome(String nome) {
// 		this.nome = nome;
// 	}
// 
// 	public String getEmail() {
// 		return email;
// 	}
// 
// 	public void setEmail(String email) {
// 		this.email = email;
// 	}
// 
// 	public Integer getIdade() {
// 		return idade;
// 	}
// 
// 	public void setIdade(Integer idade) {
// 		this.idade = idade;
// 	}
// 
// 	public Situacao getSituacao() {
// 		return situacao;
// 	}
// 
// 	public void setSituacao(Situacao situacao) {
// 		this.situacao = situacao;
// 	}
// 
// 	public Date getDataInscricao() {
// 		return dataInscricao;
// 	}
// 
// 	public void setDataInscricao(Date dataInscricao) {
// 		this.dataInscricao = dataInscricao;
// 	}
// }
// 
// Path: treinamento_5/src/main/java/br/com/gamas/treinamento/model/Situacao.java
// public enum Situacao {
// 	PENDENTE(1, "Pendente de avaliação"), 
// 	APROVADO(2, "Aprovado"), 
// 	REPROVADO(3, "Reprovado");
// 
// 	private int codigo;
// 	private String descricao;
// 
// 	Situacao(int codigo, String descricao) {
// 		this.codigo = codigo;
// 		this.descricao = descricao;
// 	}
// 
// 	public int getCodigo() {
// 		return codigo;
// 	}
// 
// 	public String getDescricao() {
// 		return descricao;
// 	}
// 
// }
// 
// Path: treinamento_5/src/main/java/br/com/gamas/treinamento/repository/InscricaoRepository.java
// @Repository
// public interface InscricaoRepository extends JpaRepository<Inscricao, Long> {
// }
// 
// Path: treinamento_5/src/main/java/br/com/gamas/treinamento/service/mail/MailService.java
// @Service
// public class MailService {
// 	
// 	@Autowired
// 	private JavaMailSender javaMailSender;
// 	
// 	//@Async
// 	public void sendMail(String to, String subject, String msg){
// 		SimpleMailMessage smm = new SimpleMailMessage();
// 		smm.setTo(to);
// 		smm.setSubject(subject);
// 		smm.setText(msg);
// 		javaMailSender.send(smm);
// 	}
// }


import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import br.com.gamas.treinamento.model.Inscricao;
import br.com.gamas.treinamento.model.Situacao;
import br.com.gamas.treinamento.repository.InscricaoRepository;
import br.com.gamas.treinamento.service.mail.MailService;
package br.com.gamas.treinamento.service;




@Service
public class InscricaoService {
	
	@Autowired
	private InscricaoRepository inscricaoRepository; 

	@Autowired
	private MailService mailService;
	
	public Inscricao buscarInscricaoPorId(Long id) {
		return inscricaoRepository.findOne(id);
	}

	public void save(Inscricao inscricao) {
		inscricaoRepository.save(inscricao);
		mailService.sendMail(inscricao.getEmail(), "Cadastro realizado", "Seu cadastro foi criado com sucesso, aguarde parecer.");
	}

// Path: treinamento_1/src/main/java/br/com/gamas/treinamento/model/Inscricao.java
// public class Inscricao {
// 
// 	private Long id;
// 
// 	@NotNull
// 	@Size(max=30)
// 	private String nome;
// 
// 	@NotNull
// 	@Size(max=30)
// 	private String email;
// 
// 	@Min(18)
// 	@NotNull
// 	private Integer idade;
// 	
// 	private Date dataInscricao;
// 
// 	private Situacao situacao;
// 
// 	public Inscricao() {
// 		setSituacao(Situacao.PENDENTE);
// 	}
// 
// 	public Long getId() {
// 		return id;
// 	}
// 
// 	public void setId(Long id) {
// 		this.id = id;
// 	}
// 
// 	public String getNome() {
// 		return nome;
// 	}
// 
// 	public void setNome(String nome) {
// 		this.nome = nome;
// 	}
// 
// 	public String getEmail() {
// 		return email;
// 	}
// 
// 	public void setEmail(String email) {
// 		this.email = email;
// 	}
// 
// 	public Integer getIdade() {
// 		return idade;
// 	}
// 
// 	public void setIdade(Integer idade) {
// 		this.idade = idade;
// 	}
// 
// 	public Situacao getSituacao() {
// 		return situacao;
// 	}
// 
// 	public void setSituacao(Situacao situacao) {
// 		this.situacao = situacao;
// 	}
// 
// 	public Date getDataInscricao() {
// 		return dataInscricao;
// 	}
// 
// 	public void setDataInscricao(Date dataInscricao) {
// 		this.dataInscricao = dataInscricao;
// 	}
// }
// 
// Path: treinamento_5/src/main/java/br/com/gamas/treinamento/model/Situacao.java
// public enum Situacao {
// 	PENDENTE(1, "Pendente de avaliação"), 
// 	APROVADO(2, "Aprovado"), 
// 	REPROVADO(3, "Reprovado");
// 
// 	private int codigo;
// 	private String descricao;
// 
// 	Situacao(int codigo, String descricao) {
// 		this.codigo = codigo;
// 		this.descricao = descricao;
// 	}
// 
// 	public int getCodigo() {
// 		return codigo;
// 	}
// 
// 	public String getDescricao() {
// 		return descricao;
// 	}
// 
// }
// 
// Path: treinamento_5/src/main/java/br/com/gamas/treinamento/repository/InscricaoRepository.java
// @Repository
// public interface InscricaoRepository extends JpaRepository<Inscricao, Long> {
// }
// 
// Path: treinamento_5/src/main/java/br/com/gamas/treinamento/service/mail/MailService.java
// @Service
// public class MailService {
// 	
// 	@Autowired
// 	private JavaMailSender javaMailSender;
// 	
// 	//@Async
// 	public void sendMail(String to, String subject, String msg){
// 		SimpleMailMessage smm = new SimpleMailMessage();
// 		smm.setTo(to);
// 		smm.setSubject(subject);
// 		smm.setText(msg);
// 		javaMailSender.send(smm);
// 	}
// }


// Path: treinamento_5/src/main/java/br/com/gamas/treinamento/service/InscricaoService.java
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import br.com.gamas.treinamento.model.Inscricao;
import br.com.gamas.treinamento.model.Situacao;
import br.com.gamas.treinamento.repository.InscricaoRepository;
import br.com.gamas.treinamento.service.mail.MailService;

package br.com.gamas.treinamento.service;




@Service
public class InscricaoService {
	
	@Autowired
	private InscricaoRepository inscricaoRepository; 

	@Autowired
	private MailService mailService;
	
	public Inscricao buscarInscricaoPorId(Long id) {
		return inscricaoRepository.findOne(id);
	}

	public void save(Inscricao inscricao) {
		inscricaoRepository.save(inscricao);
		mailService.sendMail(inscricao.getEmail(), "Cadastro realizado", "Seu cadastro foi criado com sucesso, aguarde parecer.");
	}

	public List<Inscricao> findAll() {