import { Controller, Get, Param } from '@nestjs/common';
import { SobreDoencaEntity } from './entity/sobre-doenca-entity';
import { v4 as uuid } from 'uuid';
import { SobreDoencaRepository } from './repository/sobre-doenca-repository';

@Controller('doencas')
export class SobreDoencaController {
    constructor(
        private readonly _repository: SobreDoencaRepository
    ) {
        this.preCadastrarDoencas()
    }

    private async preCadastrarDoencas() {
        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 SobreDoencaEntity
        )
        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 SobreDoencaEntity
        )
        this._repository.add(
            {
                id: uuid(),
                nome: "Sarampo",
                formasContagio: "A transmissão do vírus do sarampo ocorre de pessoa a pessoa, por via aérea, ao tossir, espirrar, falar ou respirar. O sarampo é tão contagioso que uma pessoa infectada pode transmitir para 90% das pessoas próximas que não estejam imunes. A transmissão pode ocorrer entre 6 dias antes e 4 dias após o aparecimento das manchas vermelhas pelo corpo.",
                prevencao: " O sarampo é uma doença prevenível por vacinação. Os critérios de indicação da vacina são revisados periodicamente pelo Ministério da Saúde e levam em conta: características clínicas da doença, idade, ter adoecido por sarampo durante a vida, ocorrência de surtos, além de outros aspectos epidemiológicos. A prevenção do sarampo está disponível em apresentações diferentes. Todas previnem o sarampo e cabe ao profissional de saúde aplicar a vacina adequada para cada pessoa, de acordo com a idade ou situação epidemiológica.",
                sintomas: "Exantema (manchas vermelhas) no corpo e febre alta (acima de 38,5°) acompanhada de um ou mais dos seguintes sintomas, tosse seca, irritação nos olhos (conjuntivite), nariz escorrendo ou entupido, mal-estar intenso. Em torno de 3 a 5 dias é comum aparecer manchas vermelhas no rosto e atrás das orelhas que, em seguida, se espalham pelo restante do corpo. Após o aparecimento das manchas, a persistência da febre é um sinal de alerta e pode indicar gravidade, principalmente em crianças menores de 5 anos de idade. "
            } as SobreDoencaEntity
        )
        this._repository.add(
            {
                id: uuid(),
                nome: "Febre Amarela",
                formasContagio: "O vírus da febre amarela é transmitido pela picada dos mosquitos transmissores infectados. A doença não é passada de pessoa a pessoa.",
                prevencao: "A vacina é a principal ferramenta de prevenção e controle da febre amarela. O Sistema Único de Saúde (SUS) oferta vacina contra febre amarela para a população. Desde abril de 2017, o Brasil adota o esquema vacinal de apenas uma dose durante toda a vida, medida que está de acordo com as recomendações da Organização Mundial de Saúde (OMS).",
                sintomas: "Os sintomas mais comuns são febre, dores musculares com dor lombar proeminente, dor de cabeça, perda de apetite, náusea ou vômito."
            } as SobreDoencaEntity
        )
        this._repository.add(
            {
                id: uuid(),
                nome: "Poliomelite",
                formasContagio: "A transmissão ocorre por contato direto pessoa a pessoa, pela via fecal-oral (mais frequentemente), por objetos, alimentos e água contaminados com fezes de doentes ou portadores, ou pela via oral-oral, por meio de gotículas de secreções da orofaringe (ao falar, tossir ou espirrar).",
                prevencao: "A vacinação é a única forma de prevenção da Poliomielite. Desde 2016, o esquema vacinal contra a poliomielite passou a ser de três doses da vacina injetável – VIP (2, 4 e 6 meses) e mais duas doses de reforço com a vacina oral bivalente – VOP (gotinha).",
                sintomas: "Os sintomas mais frequentes são febre, mal-estar, dor de cabeça, de garganta e no corpo, vômitos, diarreia, constipação (prisão de ventre), espasmos, rigidez na nuca e até mesmo meningite. Nas formas mais graves instala-se a flacidez muscular, que afeta, em regra, um dos membros inferiores."
            } as SobreDoencaEntity
        )
        this._repository.add(
            {
                id: uuid(),
                nome: "Gripe",
                formasContagio: "A transmissão direta (pessoa a pessoa) é a mais comum e ocorre por meio de gotículas do indivíduo contaminado ao falar, espirrar ou tossir. A incubação da doença é de 1 a 4 dias e a transmissibilidade ocorre, principalmente, entre as primeiras 24 até 72 horas da doença.",
                prevencao: "Evitar aglomerações e o contato com pessoas doentes; Não levar as mãos aos olhos, boca ou nariz depois de ter tocado em objetos de uso coletivo; Utilizar lenço descartável para limpar o nariz; Cobrir sempre o nariz ao tossir e espirrar com um lenço descartável (nunca com as mãos);",
                sintomas: "A gripe normalmente tem início abrupto e provoca febre alta (mais de 38 °C), dores de cabeça e no corpo, mal estar e fraqueza. Outros sintomas possíveis são tosse, inicialmente seca, dor de garganta e coriza."
            } as SobreDoencaEntity
        )
        this._repository.add(
            {
                id: uuid(),
                nome: "AIDS (Síndrome da Imunodeficiência Adquirida)",
                formasContagio: "A principal via de transmissão é através de relações sexuais desprotegidas, compartilhamento de agulhas contaminadas, transmissão vertical (de mãe para filho durante a gravidez, parto ou amamentação) e contato com sangue contaminado.",
                prevencao: "Uso de preservativos durante relações sexuais, não compartilhar agulhas, realização de exames regulares e adoção de práticas seguras em ambientes de saúde.",
                sintomas: "Os sintomas podem variar, mas incluem febre, fadiga, suores noturnos, perda de peso inexplicada e infecções oportunistas."
            } as SobreDoencaEntity
        )
        this._repository.add(
            {
                id: uuid(),
                nome: "Catapora (Varicela)",
                formasContagio: "Contato direto com a pessoa infectada ou através do ar ao tossir ou espirrar.",
                prevencao: "Vacinação é a principal medida preventiva. Evitar contato próximo com pessoas infectadas.",
                sintomas: "Erupção cutânea característica, coceira intensa, febre e mal-estar."
            } as SobreDoencaEntity
        )
        this._repository.add(
            {
                id: uuid(),
                nome: "Ebola",
                formasContagio: "Contato direto com sangue, fluidos corporais ou tecidos de animais infectados ou pessoas doentes.",
                prevencao: "Isolamento de casos, uso de equipamentos de proteção, medidas de higiene rigorosas.",
                sintomas: "Febre, dor muscular, fadiga, dor de cabeça, vômitos, diarreia, hemorragias."
            } as SobreDoencaEntity
        )
        this._repository.add(
            {
                id: uuid(),
                nome: "Hanseníase",
                formasContagio: "Transmitida através do contato prolongado e íntimo com uma pessoa infectada.",
                prevencao: "Tratamento precoce, contato próximo com profissionais de saúde.",
                sintomas: "Lesões na pele, dormência, fraqueza muscular."
            } as SobreDoencaEntity
        )
        this._repository.add(
            {
                id: uuid(),
                nome: "Hepatite B",
                formasContagio: "Contato com sangue, fluidos corporais, relações sexuais desprotegidas, compartilhamento de agulhas.",
                prevencao: "Vacinação, práticas seguras em relação ao sexo e uso de agulhas.",
                sintomas: "Fadiga, dor abdominal, urina escura, icterícia."
            } as SobreDoencaEntity
        )
        this._repository.add(
            {
                id: uuid(),
                nome: "Herpes",
                formasContagio: "Geralmente transmitida por contato direto com lesões ativas, beijos, relações sexuais desprotegidas.",
                prevencao: "Evitar contato próximo durante surtos, uso de preservativos.",
                sintomas: " Lesões na pele ou mucosas, coceira, sensação de queimação."
            } as SobreDoencaEntity
        )
        this._repository.add(
            {
                id: uuid(),
                nome: "HIV (Vírus da Imunodeficiência Humana)",
                formasContagio: " Principalmente por relações sexuais desprotegidas, compartilhamento de agulhas, transmissão de mãe para filho durante a gravidez, parto ou amamentação.",
                prevencao: "Uso de preservativos, práticas seguras com agulhas, terapia antirretroviral, testagem regular.",
                sintomas: "Os sintomas iniciais podem incluir febre, dor de garganta, fadiga; a infecção pode permanecer assintomática por anos."
            } as SobreDoencaEntity
        )
        this._repository.add(
            {
                id: uuid(),
                nome: "Influenza",
                formasContagio: " Transmissão de pessoa para pessoa por meio de gotículas respiratórias.",
                prevencao: "Vacinação anual, lavagem das mãos, evitar contato próximo com pessoas doentes.",
                sintomas: "Febre, calafrios, tosse, dores musculares, fadiga."
            } as SobreDoencaEntity
        )
        this._repository.add(
            {
                id: uuid(),
                nome: "Leptospirose",
                formasContagio: " Entrada da bactéria Leptospira através de água ou solo contaminado, contato com a urina de animais infectados.",
                prevencao: "Evitar águas contaminadas, uso de equipamentos de proteção.",
                sintomas: " Febre, dor de cabeça, dores musculares, icterícia."
            } as SobreDoencaEntity
        )
        this._repository.add(
            {
                id: uuid(),
                nome: "Malária",
                formasContagio: "Transmitida pela picada de mosquitos infectados.",
                prevencao: "Uso de repelentes, mosquiteiros, medicamentos antimaláricos.",
                sintomas: "Febre, calafrios, dores de cabeça, náuseas, vômitos."
            } as SobreDoencaEntity
        )
        this._repository.add(
            {
                id: uuid(),
                nome: "Meningite",
                formasContagio: "Transmissão por gotículas respiratórias, contato próximo com uma pessoa infectada.",
                prevencao: "Vacinação, evitar contato próximo com pessoas infectadas.",
                sintomas: "Rigidez no pescoço, febre, dor de cabeça intensa, vômitos."
            } as SobreDoencaEntity
        )
        this._repository.add(
            {
                id: uuid(),
                nome: "Norovírus",
                formasContagio: "Contato direto com uma pessoa infectada, ingestão de alimentos ou água contaminados.",
                prevencao: " Lavagem das mãos, práticas de higiene alimentar.",
                sintomas: "Diarreia, vômitos, dor abdominal."
            } as SobreDoencaEntity
        )
        this._repository.add(
            {
                id: uuid(),
                nome: "Pneumonia",
                formasContagio: "Geralmente causada por bactérias, vírus ou fungos. Pode ser transmitida por gotículas respiratórias.",
                prevencao: "Vacinação, boa higiene respiratória.",
                sintomas: "Tosse, falta de ar, febre, dor no peito."
            } as SobreDoencaEntity
        )
        this._repository.add(
            {
                id: uuid(),
                nome: "Rubéola",
                formasContagio: "Transmissão de pessoa para pessoa por gotículas respiratórias.",
                prevencao: "Vacinação.",
                sintomas: "Manchas vermelhas na pele, febre baixa, gânglios inchados."
            } as SobreDoencaEntity
        )
        this._repository.add(
            {
                id: uuid(),
                nome: "Sífilis",
                formasContagio: " Transmitida principalmente por contato sexual, mas também pode ser transmitida de mãe para filho durante a gravidez.",
                prevencao: "Uso de preservativos, tratamento adequado.",
                sintomas: "Feridas indolores nas áreas genitais, erupção cutânea, febre."
            } as SobreDoencaEntity
        )
        this._repository.add(
            {
                id: uuid(),
                nome: "Tuberculose",
                formasContagio: "Transmitida por gotículas respiratórias de uma pessoa infectada.",
                prevencao: "Vacinação, tratamento adequado.",
                sintomas: "Tosse persistente, perda de peso, fadiga, febre."
            } as SobreDoencaEntity
        )
    }

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

    @Get('mais-buscadas')
    async getDoencasMaisBuscadas() {
        return (await this._repository.list()).slice(0, 6)
    }

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

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