diff --git a/desafio.kt b/desafio.kt index f2ebe619..befc2890 100644 --- a/desafio.kt +++ b/desafio.kt @@ -1,21 +1,59 @@ +import kotlin.random.Random + // [Template no Kotlin Playground](https://pl.kotl.in/WcteahpyN) enum class Nivel { BASICO, INTERMEDIARIO, DIFICIL } -class Usuario +class Usuario(val id: Int = Random.nextInt(), val name: String) data class ConteudoEducacional(var nome: String, val duracao: Int = 60) -data class Formacao(val nome: String, var conteudos: List) { +data class Formacao(val nome: String, val nivel: Nivel, var conteudos: List) { + private val inscritos = mutableListOf() + + fun matricular(vararg usuario: Usuario) { + usuario.forEach { + inscritos.add(it) + println("${it.name}(${it.id}) foi cadastrado com sucesso no curso $nome") + } + } - val inscritos = mutableListOf() - - fun matricular(usuario: Usuario) { - TODO("Utilize o parâmetro $usuario para simular uma matrícula (usar a lista de $inscritos).") + fun mostrarTotalMatriculas() { + println("Há um total de ${inscritos.size} de matriculas na formação $nome") } } fun main() { - TODO("Analise as classes modeladas para este domínio de aplicação e pense em formas de evoluí-las.") - TODO("Simule alguns cenários de teste. Para isso, crie alguns objetos usando as classes em questão.") + val kotlinFormacao = createKotlinFormacao() + val luaFormacao = createLuaFormacao() + + kotlinFormacao.matricular(Usuario(name = "Fulano")) + luaFormacao.matricular( + Usuario(name = "Carlos"), + Usuario(name = "Maria"), + Usuario(name = "João"), + Usuario(name = "Aline") + ) + println("---------------------------") + kotlinFormacao.mostrarTotalMatriculas() + luaFormacao.mostrarTotalMatriculas() } + +fun createKotlinFormacao() = Formacao( + "Formação em Kotlin", + Nivel.BASICO, + listOf( + ConteudoEducacional("Aprendendo Kotlin na prática", 13), + ConteudoEducacional("Kotlin no backend com Spring 3", 9), + ) +) + +fun createLuaFormacao() = Formacao( + "Formação Lua Developer", + Nivel.INTERMEDIARIO, + listOf( + ConteudoEducacional("Primeiros passos com a linguagem Lua", 6), + ConteudoEducacional("Avançando na linguagem Lua", 10), + ConteudoEducacional("Além da Lua", 9), + ) +)