Created
January 22, 2023 01:09
-
-
Save giovannamoeller/490ff0ad09fa21f50919ecff03d4b577 to your computer and use it in GitHub Desktop.
projeto de implementação de sistemas
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| const axios = require('axios') | |
| const apiKey = '4c9fecf589d34837a7e92b5fc42b6062' | |
| const usuarios = [] | |
| const linhas = [] | |
| const todosOnibus = [] | |
| class Autenticacao { | |
| constructor() {} | |
| static login(email, senha) { | |
| // checagem de credenciais | |
| return new Pessoa() | |
| } | |
| } | |
| class Convidado { | |
| constructor() {} | |
| consultarAtraso(linha) { | |
| linha.consultaAtraso() | |
| } | |
| } | |
| class Pessoa { | |
| constructor(id, email, nome, senha, dataNascimento) { | |
| this.id = id | |
| this.email = email | |
| this.nome = nome | |
| this.senha = senha | |
| this.dataNascimento = dataNascimento | |
| } | |
| } | |
| class Usuario extends Pessoa { | |
| constructor(id, email, nome, senha, dataNascimento) { | |
| super(id, email, nome, senha, dataNascimento) | |
| usuarios.push(this) | |
| } | |
| reportarAtraso(linha, posicaoUsuario, minutos) { | |
| /* se usuário não ativar a localização e inserir o nome da rua em que se encontra | |
| é necessário pegar calcular coordenadas dessa rua */ | |
| linha.requisicaoAtraso(posicaoUsuario, minutos) | |
| } | |
| consultarAtraso(linha) { | |
| linha.consultaAtraso() | |
| } | |
| } | |
| class Prefeitura extends Pessoa { | |
| constructor(id, email, nome, senha, dataNascimento, idAdmin) { | |
| super(id, email, nome, senha, dataNascimento) | |
| this.idAdmin = idAdmin | |
| } | |
| atualizarLinha(linha) { | |
| // alterar determinada linha de onibus | |
| } | |
| adicionarLinha(numero, nome, coordenadaPartida, coordenadaChegada) { | |
| // adicionar determinada linha de onibus | |
| const linha = new Linha(numero, nome, coordenadaPartida, coordenadaChegada) | |
| linhas.push(linha) | |
| return linha | |
| } | |
| removerLinha(linha) { | |
| // remover determinada linha de onibus | |
| } | |
| atualizarOnibus(onibus) { | |
| // alterar determinado onibus | |
| } | |
| adicionarOnibus(id, placa, horarioPartida, localPartida, linhaPertencente) { | |
| // adicionar onibus | |
| const onibus = new Onibus(id, placa, horarioPartida, localPartida, linhaPertencente) | |
| todosOnibus.push(onibus) | |
| return onibus | |
| } | |
| removerOnibus(onibus) { | |
| // remover determinado onibus | |
| } | |
| } | |
| class Linha { | |
| constructor(numero, nome, coordenadaPartida, coordenadaChegada) { | |
| this.numero = numero | |
| this.nome = nome | |
| this.coordenadaPartida = coordenadaPartida | |
| this.coordenadaChegada = coordenadaChegada | |
| this.atrasosReportados = [] | |
| } | |
| consultaAtraso() { | |
| console.log(this.atrasosReportados) | |
| } | |
| requisicaoAtraso(coordenada, minutos) { | |
| // o usuário na coordenada tal reportou x minutos de atraso | |
| // this.atrasosReportados.push() | |
| } | |
| } | |
| class Onibus { | |
| constructor(id, placa, horarioPartida, localPartida, linhaPertencente) { | |
| this.id = id | |
| this.placa = placa | |
| this.horarioPartida = horarioPartida | |
| this.localPartida = localPartida | |
| this.linhaPertencente = linhaPertencente | |
| } | |
| } | |
| class Coordenada { | |
| constructor(latitude, longitude) { | |
| this.latitude = latitude | |
| this.longitude = longitude | |
| } | |
| async obterEndereco() { | |
| const url = `https://api.geoapify.com/v1/geocode/reverse?lat=${this.latitude}&lon=${this.longitude}&format=json&apiKey=${apiKey}` | |
| const response = await axios.get(url) | |
| return await response.data.results[0].address_line1 | |
| } | |
| } | |
| const admin = new Prefeitura(1, 'giovanna@gmail.com', 'gigi', '123', '18/11/2000', 1) | |
| const gaspariniCentro = admin.adicionarLinha(33, 'Gasparini - Centro', new Coordenada(-22.27406, -49.08255), new Coordenada(-22.32528, -49.07429)) | |
| admin.adicionarOnibus(01, 'FXE0202', '5:30', new Coordenada(-22.27406, -49.08255), gaspariniCentro) | |
| admin.adicionarOnibus(02, 'XMD9402', '6:10', new Coordenada(-22.32528, -49.07429), gaspariniCentro) | |
| const usuario = new Usuario(1, 'lucas@gmail.com', 'lucas', '1234', '11/02/2001') | |
| const usuarioLogado = Autenticacao.login('lucas@gmail.com', '1234') |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment