mrpunkdasilva / mkt-fin-log

Repositório para o grupo Marketing & Finanças & Logística
MIT License
1 stars 0 forks source link

Sprint #37

Closed mrpunkdasilva closed 11 months ago

mrpunkdasilva commented 11 months ago
<?php

class Sprint
{
    private $mysqli;
    private $tabela = 'sprints';

    public function __construct(mysqli $mysqli)
    {
        $this->mysqli = $mysqli;
    }

    public function cadastrar($dados)
    {
        $query = "
            INSERT INTO 
                {$this->tabela} 
                    (titulo, descricao, data_de_inicio, data_de_fim, status_sprint)
            VALUES 
                    (?, ?, ?, ?, ?)
        ";

        $stmt = $this->mysqli->prepare($query);
        $stmt->bind_param(
            "sssss",
            $dados['titulo'],
            $dados['descricao'],
            $dados['data_de_inicio'],
            $dados['data_de_fim'],
            $dados['status_sprint']
        );

        if (!$stmt->execute()) {
            die("Erro ao criar sprint: " . $stmt->error);
        }

        $stmt->close();
    }

    public function atualizar($dados)
    {
        $query = "
            UPDATE {$this->tabela}
            SET 
                titulo = ?,
                descricao = ?,
                data_de_inicio = ?,
                data_de_fim = ?,
                status_sprint = ?
            WHERE 
                id = ?
        ";
        $stmt = $this->mysqli->prepare($query);

        if (!$stmt) {
            die('Erro na preparação da query: ' . $this->mysqli->error);
        }

        $stmt->bind_param(
            'sssssi',
            $dados['titulo'],
            $dados['descricao'],
            $dados['data_de_inicio'],
            $dados['data_de_fim'],
            $dados['status_sprint'],
            $dados['id']
        );

        if ($stmt->execute()) {
            return true;
        } else {
            die('Erro na execução da query: ' . $stmt->error);
        }
    }

    public function buscar($id)
    {
        $sql = $this->mysqli->query("
            SELECT 
                * 
            FROM 
                {$this->tabela} 
            WHERE 
                id = '" . $id . "' 
                    AND 
                status_sprint = 'ativa'
        ");

        if ($sql->num_rows === 0) {
            return null;
        }

        $sprint = $sql->fetch_assoc();

        return $sprint;
    }

    public function desativarSprint($sprintId)
    {
        $query = "
            UPDATE {$this->tabela}
            SET 
                status_sprint = 'desativada'
            WHERE 
                id = ?
        ";
        $stmt = $this->mysqli->prepare($query);

        if (!$stmt) {
            die('Erro na preparação da query: ' . $this->mysqli->error);
        }

        $stmt->bind_param('i', $sprintId);

        if ($stmt->execute()) {
            return true;
        } else {
            die('Erro na execução da query: ' . $stmt->error);
        }
    }

    public function listarSprints()
    {
        $query = "
            SELECT 
                * 
            FROM 
                {$this->tabela}     
            WHERE
                status_sprint = 'ativa'
        ";
        $result = $this->mysqli->query($query);

        if ($result->num_rows === 0) {
            return null;
        }

        $sprints = [];
        while ($linha = mysqli_fetch_array($result, MYSQLI_ASSOC)) {
            $sprints[] = $linha;
        }

        return $sprints;
    }

    public function concluirSprint($sprintId)
    {
        $query = "
            UPDATE {$this->tabela}
            SET 
                status_sprint = 'ativa'
            WHERE 
                id = ?
        ";
        $stmt = $this->mysqli->prepare($query);

        if (!$stmt) {
            die('Erro na preparação da query: ' . $this->mysqli->error);
        }

        $stmt->bind_param('i', $sprintId);

        if ($stmt->execute()) {
            return true;
        } else {
            die('Erro na execução da query: ' . $stmt->error);
        }
    }

    public function listarSprintsAtivas()
    {
        $query = "
            SELECT * 
            FROM {$this->tabela} 
            WHERE status_sprint = 'ativa'
        ";
        $result = $this->mysqli->query($query);

        if ($result->num_rows === 0) {
            return null;
        }

        $sprintsAtivas = [];
        while ($linha = mysqli_fetch_array($result, MYSQLI_ASSOC)) {
            $sprintsAtivas[] = $linha;
        }

        return $sprintsAtivas;
    }
}