namespace OficinaMecanica;
internal class Veiculo
{
public string Marca { get; private set; }
public string Modelo { get; private set; }
public int Ano { get; private set; }
public string Placa { get; private set; }
public Cliente Proprietario { get; private set; }
public Veiculo(string marca, string modelo, int ano, string placa, Cliente proprietario)
{
Marca = marca;
Modelo = modelo;
Ano = ano;
Placa = placa;
Proprietario = proprietario;
}
}
internal class Cliente
{
public string Nome { get; private set; }
public string Contato { get; private set; }
public Cliente(string nome, string contato)
{
Nome = nome;
Contato = contato;
}
}
internal class Mecanico
{
public string Nome { get; private set; }
public string Especialidade { get; private set; }
public Mecanico(string nome, string especialidade)
{
Nome = nome;
Especialidade = especialidade;
}
}
public class Oficina
{
private List<Veiculo> veiculos;
public Oficina()
{
veiculos = new();
}
internal void AgendarServico(Veiculo veiculo, Mecanico mecanico, string dataAgendamento)
{
veiculos.Add(veiculo);
// Lógica para agendar o serviço (pode ser expandida conforme necessário)
Console.WriteLine($"Serviço agendado para {veiculo.Placa} em {dataAgendamento} com o mecânico {mecanico.Nome}.");
}
internal void RealizarServico(Veiculo veiculo, Mecanico mecanico)
{
if (veiculos.Contains(veiculo))
{
Console.WriteLine($"Serviço realizado em {veiculo.Placa} pelo mecânico {mecanico.Nome}.");
veiculos.Remove(veiculo);
}
else
{
Console.WriteLine($"O veículo {veiculo.Placa} não está na oficina para realizar o serviço.");
}
}
}
using OficinaMecanica;
Cliente cliente = new Cliente("Joao", "41785214752");
Veiculo meuCarro = new Veiculo("Chevrolet", "Onyx", 2025, "UTH1J08", cliente);
Mecanico mecanico = new Mecanico("José", "Mecânica Geral");
Oficina oficina = new Oficina();
oficina.AgendarServico(meuCarro, mecanico, "2026-04-05");
oficina.RealizarServico(meuCarro, mecanico);