import { Controller,Get, Param } from '@nestjs/common';
import { TabDoencaEntity } from './entity/tab-doenca-entity';
import {v4 as uuid} from 'uuid';
import { TabDoencaRepository } from './repository/tab-doenca-repository';

@Controller('doencasSP')
export class TabGraficoController {
    constructor(
        private readonly _repository: TabDoencaRepository
    ) {
        this.preCadastrarDoencas()
    }

    private async preCadastrarDoencas() {
        this._repository.add(
            {
                id: uuid(),
                nome: "Influenza (Gripe)",
                formasContagio: "Espalha-se principalmente de pessoa para pessoa através de gotículas respiratórias.",
                prevencao: "Vacinação anual, boa higiene pessoal, evitar contato próximo com pessoas doentes.",
                sintomas: "Febre, tosse, dor de garganta, dores no corpo, fadiga."
            } as TabDoencaEntity
        )
        this._repository.add(
            {
                id: uuid(),
                nome: "Dengue",
                formasContagio: "A doença é transmitida pela picada da fêmea do mosquito Aedes aegypti. Não há transmissão pelo contato direto com um doente ou suas secreções, nem por meio de fontes de água ou alimento.",
                prevencao: "A melhor forma de se evitar a dengue é combater os focos de acúmulo de água, locais propícios para a criação do mosquito transmissor da doença. Para isso, é importante não acumular água em latas, embalagens, copos plásticos, tampinhas de refrigerantes, pneus velhos, vasinhos de plantas, jarros de flores, garrafas, caixas d´água, tambores, latões, cisternas, sacos plásticos e lixeiras, entre outros.",
                sintomas: "O doente pode apresentar sintomas como febre, dor de cabeça, dores pelo corpo, náuseas ou até mesmo não apresentar qualquer sintoma. O aparecimento de manchas vermelhas na pele, sangramentos (nariz, gengivas), dor abdominal intensa e contínua e vômitos persistentes podem indicar um sinal de alarme para dengue hemorrágica. Esse é um quadro grave que necessita de imediata atenção médica, pois pode ser fatal."
            } as TabDoencaEntity
        )
        this._repository.add(
            {
                id: uuid(),
                nome: "Covid-19",
                formasContagio: "A transmissão pode ocorrer de forma continuada, ou seja, um infectado pelo vírus pode passá-lo para alguém que ainda não foi infectado. A transmissão costuma ocorrer pelo ar ou por contato pessoal com secreções contaminadas, como gotículas de saliva, espirro, tosse, catarro, contato pessoal próximo (como toque ou aperto de mão com a pessoa infectada) ou contato com objetos ou superfícies contaminadas, seguido de contato com a boca, nariz ou olhos.",
                prevencao: "Lavar bem as mãos e com frequência, usando álcool em gel ou água e sabão. Manter uma distância mínima de 1 metro entre você e qualquer pessoa que tosse ou espirra. Evitar tocar nos olhos, nariz e boca. Cobrir a boca e o nariz com o cotovelo dobrado ou com um lenço de papel quando tossir ou espirrar. Manter-se informado sobre as últimas notícias sobre a COVID-19 em canais oficiais e siga as orientações sobre como se proteger e a outras pessoas da COVID-19.",
                sintomas: "Febre (temperatura axilar > 37,8ºC) ou sensação febril, calafrios, tosse, dor de garganta, dor de cabeça, congestão nasal (coriza), problemas no olfato ou no paladar."
            } as TabDoencaEntity
        )
        this._repository.add(
            {
                id: uuid(),
                nome: "Hepatite A",
                formasContagio: "Contato fecal-oral, geralmente por ingestão de água ou alimentos contaminados.",
                prevencao: "Vacinação, boa higiene pessoal, consumo de água e alimentos seguros.",
                sintomas: "Febre, fadiga, náuseas, icterícia."
            } as TabDoencaEntity
        )
        this._repository.add(
            {
                id: uuid(),
                nome: "Chikungunya",
                formasContagio: "Transmitida pela picada do mosquito Aedes aegypti.",
                prevencao: "Eliminação de criadouros de mosquitos, uso de repelentes.",
                sintomas: "Febre, dor nas articulações, dor de cabeça, erupção cutânea."
            } as TabDoencaEntity
        )
        this._repository.add(
            {
                id: uuid(),
                nome: "Hepatite C",
                formasContagio: "Principalmente por contato direto com sangue infectado (compartilhamento de agulhas), transmissão sexual é possível. Procedimentos de higiene pessoal compartilhados também representam risco.",
                prevencao: "Evitar compartilhamento de agulhas, práticas sexuais seguras, evitar exposição ao sangue.",
                sintomas: "Pode ser assintomática, mas inclui fadiga, febre, náuseas e icterícia."
            } as TabDoencaEntity
        )
    }

    @Get()
    getDoencas() {
        return this._repository.list()
    }

    @Get(':id')
    getDoenca(@Param() param) {
        return this._repository.search(param.id)
    }

    @Get('nome/:nome')
    buscarDoencaPorNome(@Param() param) {
        return this._repository.searchByTitle(param.nome)
    }
}