diff --git a/add_installation.php b/add_installation.php
index d0ade99..ac1a2f8 100644
--- a/add_installation.php
+++ b/add_installation.php
@@ -6,25 +6,19 @@ if ($_SERVER['REQUEST_METHOD'] === 'POST') {
$client_name = trim($_POST['client_name'] ?? '');
$address = trim($_POST['address'] ?? '');
$technician_name = trim($_POST['technician_name'] ?? '');
- $observations = trim($_POST['observations'] ?? '');
$status = trim($_POST['status'] ?? 'ativo');
- $voltage = !empty($_POST['voltage']) ? trim($_POST['voltage']) : null;
- $phase_neutral_ground = !empty($_POST['phase_neutral_ground']) ? trim($_POST['phase_neutral_ground']) : null;
- $breaker_output = !empty($_POST['breaker_output']) ? trim($_POST['breaker_output']) : null;
-
- // Validation removed to allow incomplete forms
+ $installation_date = !empty($_POST['installation_date']) ? trim($_POST['installation_date']) : null;
$pdo = db();
try {
$pdo->beginTransaction();
$stmt = $pdo->prepare(
- "INSERT INTO installations (client_name, address, technician_name, observations, status, voltage, phase_neutral_ground, breaker_output) VALUES (?, ?, ?, ?, ?, ?, ?, ?)"
+ "INSERT INTO installations (client_name, address, technician_name, status, created_at) VALUES (?, ?, ?, ?, ?)"
);
- $stmt->execute([$client_name, $address, $technician_name, $observations, $status, $voltage, $phase_neutral_ground, $breaker_output]);
+ $stmt->execute([$client_name, $address, $technician_name, $status, $installation_date]);
$installation_id = $pdo->lastInsertId();
- // Handle multiple file uploads
if (isset($_FILES['images'])) {
$upload_dir = __DIR__ . '/assets/uploads/';
if (!is_dir($upload_dir)) {
@@ -59,16 +53,122 @@ if ($_SERVER['REQUEST_METHOD'] === 'POST') {
$pdo->commit();
$_SESSION['message'] = 'Instalação registrada com sucesso!';
$_SESSION['message_type'] = 'success';
+ header('Location: index.php');
+ exit;
} catch (Exception $e) {
if ($pdo->inTransaction()) {
$pdo->rollBack();
}
- error_log("Upload/Database error: " . $e->getMessage());
- $_SESSION['message'] = 'Falha ao registrar a instalação: ' . $e->getMessage();
+ $_SESSION['message'] = 'Erro ao registrar a instalação: ' . $e->getMessage();
$_SESSION['message_type'] = 'danger';
+ header('Location: add_installation.php');
+ exit;
}
}
+?>
+
+
+
+
+
+ Adicionar Nova Instalação - iload net Solutions
+
+
+
+
+
-header('Location: index.php');
-exit;
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/assets/css/custom.css b/assets/css/custom.css
index 1e1433f..d00a173 100644
--- a/assets/css/custom.css
+++ b/assets/css/custom.css
@@ -1,75 +1,9 @@
-@import url('https://fonts.googleapis.com/css2?family=Poppins:wght@300;400;600;700&display=swap');
-
-:root {
- --primary-color: #6cc24a;
- --secondary-color: #2c3e50;
- --sidebar-width: 280px;
-}
-
-body {
- font-family: 'Poppins', sans-serif;
- background-color: #f0f2f5;
- color: #495057;
-}
-
-.sidebar {
- position: fixed;
- top: 0;
- left: 0;
- height: 100%;
- width: var(--sidebar-width);
- background-color: var(--secondary-color);
- padding-top: 1rem;
- transition: all 0.3s;
-}
-
-.sidebar .nav-link {
- color: #adb5bd;
- font-weight: 500;
- padding: 0.75rem 1.5rem;
- display: flex;
- align-items: center;
-}
-
-.sidebar .nav-link i {
- margin-right: 0.75rem;
- font-size: 1.1rem;
- width: 20px;
- text-align: center;
-}
-
-.sidebar .nav-link:hover, .sidebar .nav-link.active {
- color: #fff;
- background-color: rgba(255, 255, 255, 0.05);
-}
-
-.sidebar .navbar-brand {
- color: #fff !important;
- font-weight: 700;
- padding: 0.5rem 1.5rem;
- font-size: 1.5rem;
- margin-bottom: 1rem;
-}
-
-.main-content {
- margin-left: var(--sidebar-width);
- padding: 2rem;
- transition: all 0.3s;
-}
-
-.top-navbar {
- background-color: #fff;
- border-radius: 0.5rem;
- margin-bottom: 2rem;
- padding: 0.75rem 1.5rem;
- box-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075);
-}
-
+/* Estilos para os cards de KPI */
.kpi-card {
- border: none;
- border-radius: 0.75rem;
- box-shadow: 0 2px 10px rgba(0, 0, 0, 0.05);
- margin-bottom: 2rem;
+ border: 1px solid #e3e6f0;
+ border-radius: .35rem;
+ transition: all .3s ease;
+ margin-bottom: 1.5rem;
}
.kpi-card .card-body {
@@ -77,55 +11,95 @@ body {
align-items: center;
}
-.kpi-card .kpi-icon {
- font-size: 2.5rem;
- padding: 1rem;
+.kpi-icon {
+ width: 50px;
+ height: 50px;
+ display: flex;
+ align-items: center;
+ justify-content: center;
border-radius: 50%;
- margin-right: 1.5rem;
color: #fff;
+ font-size: 24px;
+ margin-right: 1rem;
}
-.kpi-card .kpi-value {
- font-size: 2rem;
+.kpi-value {
+ font-size: 1.5rem;
font-weight: 700;
+ color: #5a5c69;
}
-.kpi-card .kpi-label {
- font-weight: 500;
- color: #6c757d;
+.kpi-label {
+ font-size: .8rem;
+ font-weight: 700;
+ color: #858796;
+ text-transform: uppercase;
}
-.card {
- border-radius: 0.75rem;
- border: none;
- box-shadow: 0 2px 10px rgba(0, 0, 0, 0.05);
+/* Remove o sublinhado dos links nos cards de KPI */
+a.kpi-link,
+a.kpi-link:hover {
+ text-decoration: none;
+ color: inherit;
}
-.btn-primary {
- background-color: var(--primary-color);
- border-color: var(--primary-color);
- padding: 0.5rem 1.5rem;
- font-weight: 600;
+/* Estilos gerais */
+body {
+ background-color: #f8f9fc;
}
-.btn-primary:hover {
- background-color: #58a83a;
- border-color: #58a83a;
+.sidebar {
+ width: 250px;
+ background-color: #4e73df;
+ position: fixed;
+ height: 100%;
+ padding-top: 1rem;
}
-.table thead th {
- border-bottom: 2px solid #dee2e6;
- font-weight: 600;
+.sidebar .navbar-brand {
+ color: #fff;
+ font-weight: 700;
+ text-align: center;
+ margin-bottom: 1rem;
+ display: block;
}
-.table-hover tbody tr:hover {
- background-color: #f8f9fa;
+.sidebar .nav-link {
+ color: rgba(255,255,255,.8);
+ padding: .75rem 1.5rem;
}
-.modal-header {
- border-bottom: none;
+.sidebar .nav-link.active,
+.sidebar .nav-link:hover {
+ color: #fff;
+ background-color: rgba(255,255,255,.1);
}
-.modal-footer {
- border-top: none;
+.sidebar .nav-link i {
+ margin-right: .5rem;
+}
+
+.main-content {
+ margin-left: 250px;
+}
+
+.top-navbar {
+ background-color: #fff;
+ border-bottom: 1px solid #e3e6f0;
+ padding: .5rem 1.5rem;
+}
+
+.container-fluid {
+ padding: 1.5rem;
+}
+
+/* Estilos para telas pequenas (dispositivos móveis) */
+@media (max-width: 768px) {
+ .sidebar {
+ display: none; /* Esconde o menu lateral */
+ }
+
+ .main-content {
+ margin-left: 0; /* Remove a margem do conteúdo principal */
+ }
}
\ No newline at end of file
diff --git a/assets/uploads/1763754622_6920c27ee4cd9_WhatsApp Image 2025-11-21 at 16.32.20 (1).jpeg b/assets/uploads/1763754622_6920c27ee4cd9_WhatsApp Image 2025-11-21 at 16.32.20 (1).jpeg
new file mode 100644
index 0000000..1b138f3
Binary files /dev/null and b/assets/uploads/1763754622_6920c27ee4cd9_WhatsApp Image 2025-11-21 at 16.32.20 (1).jpeg differ
diff --git a/assets/uploads/1763754622_6920c27ee5fdc_WhatsApp Image 2025-11-21 at 16.32.20 (2).jpeg b/assets/uploads/1763754622_6920c27ee5fdc_WhatsApp Image 2025-11-21 at 16.32.20 (2).jpeg
new file mode 100644
index 0000000..8a286b6
Binary files /dev/null and b/assets/uploads/1763754622_6920c27ee5fdc_WhatsApp Image 2025-11-21 at 16.32.20 (2).jpeg differ
diff --git a/assets/uploads/1763754622_6920c27ee621f_WhatsApp Image 2025-11-21 at 16.32.20.jpeg b/assets/uploads/1763754622_6920c27ee621f_WhatsApp Image 2025-11-21 at 16.32.20.jpeg
new file mode 100644
index 0000000..e2efcc1
Binary files /dev/null and b/assets/uploads/1763754622_6920c27ee621f_WhatsApp Image 2025-11-21 at 16.32.20.jpeg differ
diff --git a/assets/uploads/1763754622_6920c27ee7142_WhatsApp Image 2025-11-21 at 16.32.21 (1).jpeg b/assets/uploads/1763754622_6920c27ee7142_WhatsApp Image 2025-11-21 at 16.32.21 (1).jpeg
new file mode 100644
index 0000000..9570608
Binary files /dev/null and b/assets/uploads/1763754622_6920c27ee7142_WhatsApp Image 2025-11-21 at 16.32.21 (1).jpeg differ
diff --git a/assets/uploads/1763754622_6920c27ee7401_WhatsApp Image 2025-11-21 at 16.32.21 (2).jpeg b/assets/uploads/1763754622_6920c27ee7401_WhatsApp Image 2025-11-21 at 16.32.21 (2).jpeg
new file mode 100644
index 0000000..4f2a654
Binary files /dev/null and b/assets/uploads/1763754622_6920c27ee7401_WhatsApp Image 2025-11-21 at 16.32.21 (2).jpeg differ
diff --git a/assets/uploads/1763754622_6920c27ee75d9_WhatsApp Image 2025-11-21 at 16.32.21 (3).jpeg b/assets/uploads/1763754622_6920c27ee75d9_WhatsApp Image 2025-11-21 at 16.32.21 (3).jpeg
new file mode 100644
index 0000000..abeb4c2
Binary files /dev/null and b/assets/uploads/1763754622_6920c27ee75d9_WhatsApp Image 2025-11-21 at 16.32.21 (3).jpeg differ
diff --git a/assets/uploads/1763754622_6920c27ee7770_WhatsApp Image 2025-11-21 at 16.32.21 (4).jpeg b/assets/uploads/1763754622_6920c27ee7770_WhatsApp Image 2025-11-21 at 16.32.21 (4).jpeg
new file mode 100644
index 0000000..12d46c1
Binary files /dev/null and b/assets/uploads/1763754622_6920c27ee7770_WhatsApp Image 2025-11-21 at 16.32.21 (4).jpeg differ
diff --git a/assets/uploads/1763754622_6920c27ee7919_WhatsApp Image 2025-11-21 at 16.32.21.jpeg b/assets/uploads/1763754622_6920c27ee7919_WhatsApp Image 2025-11-21 at 16.32.21.jpeg
new file mode 100644
index 0000000..ee91c24
Binary files /dev/null and b/assets/uploads/1763754622_6920c27ee7919_WhatsApp Image 2025-11-21 at 16.32.21.jpeg differ
diff --git a/assets/uploads/1763754622_6920c27ee7a96_WhatsApp Image 2025-11-21 at 16.32.22 (1).jpeg b/assets/uploads/1763754622_6920c27ee7a96_WhatsApp Image 2025-11-21 at 16.32.22 (1).jpeg
new file mode 100644
index 0000000..26365d2
Binary files /dev/null and b/assets/uploads/1763754622_6920c27ee7a96_WhatsApp Image 2025-11-21 at 16.32.22 (1).jpeg differ
diff --git a/assets/uploads/1763754622_6920c27ee7bf9_WhatsApp Image 2025-11-21 at 16.32.22 (2).jpeg b/assets/uploads/1763754622_6920c27ee7bf9_WhatsApp Image 2025-11-21 at 16.32.22 (2).jpeg
new file mode 100644
index 0000000..08350dd
Binary files /dev/null and b/assets/uploads/1763754622_6920c27ee7bf9_WhatsApp Image 2025-11-21 at 16.32.22 (2).jpeg differ
diff --git a/assets/uploads/1763754622_6920c27ee7de0_WhatsApp Image 2025-11-21 at 16.32.22 (3).jpeg b/assets/uploads/1763754622_6920c27ee7de0_WhatsApp Image 2025-11-21 at 16.32.22 (3).jpeg
new file mode 100644
index 0000000..59fbe57
Binary files /dev/null and b/assets/uploads/1763754622_6920c27ee7de0_WhatsApp Image 2025-11-21 at 16.32.22 (3).jpeg differ
diff --git a/assets/uploads/1763754622_6920c27ee7f7f_WhatsApp Image 2025-11-21 at 16.32.22 (4).jpeg b/assets/uploads/1763754622_6920c27ee7f7f_WhatsApp Image 2025-11-21 at 16.32.22 (4).jpeg
new file mode 100644
index 0000000..10f7732
Binary files /dev/null and b/assets/uploads/1763754622_6920c27ee7f7f_WhatsApp Image 2025-11-21 at 16.32.22 (4).jpeg differ
diff --git a/assets/uploads/1763754622_6920c27ee8158_WhatsApp Image 2025-11-21 at 16.32.22.jpeg b/assets/uploads/1763754622_6920c27ee8158_WhatsApp Image 2025-11-21 at 16.32.22.jpeg
new file mode 100644
index 0000000..7746bf3
Binary files /dev/null and b/assets/uploads/1763754622_6920c27ee8158_WhatsApp Image 2025-11-21 at 16.32.22.jpeg differ
diff --git a/assets/uploads/1763754622_6920c27ee82f8_WhatsApp Image 2025-11-21 at 16.32.23 (1).jpeg b/assets/uploads/1763754622_6920c27ee82f8_WhatsApp Image 2025-11-21 at 16.32.23 (1).jpeg
new file mode 100644
index 0000000..cf95b94
Binary files /dev/null and b/assets/uploads/1763754622_6920c27ee82f8_WhatsApp Image 2025-11-21 at 16.32.23 (1).jpeg differ
diff --git a/assets/uploads/1763754622_6920c27ee8483_WhatsApp Image 2025-11-21 at 16.32.23 (2).jpeg b/assets/uploads/1763754622_6920c27ee8483_WhatsApp Image 2025-11-21 at 16.32.23 (2).jpeg
new file mode 100644
index 0000000..15d6263
Binary files /dev/null and b/assets/uploads/1763754622_6920c27ee8483_WhatsApp Image 2025-11-21 at 16.32.23 (2).jpeg differ
diff --git a/assets/uploads/1763754622_6920c27ee861d_WhatsApp Image 2025-11-21 at 16.32.23 (3).jpeg b/assets/uploads/1763754622_6920c27ee861d_WhatsApp Image 2025-11-21 at 16.32.23 (3).jpeg
new file mode 100644
index 0000000..15d6263
Binary files /dev/null and b/assets/uploads/1763754622_6920c27ee861d_WhatsApp Image 2025-11-21 at 16.32.23 (3).jpeg differ
diff --git a/assets/uploads/1763754622_6920c27ee8796_WhatsApp Image 2025-11-21 at 16.32.23 (4).jpeg b/assets/uploads/1763754622_6920c27ee8796_WhatsApp Image 2025-11-21 at 16.32.23 (4).jpeg
new file mode 100644
index 0000000..cd8834b
Binary files /dev/null and b/assets/uploads/1763754622_6920c27ee8796_WhatsApp Image 2025-11-21 at 16.32.23 (4).jpeg differ
diff --git a/assets/uploads/1763754622_6920c27ee88f9_WhatsApp Image 2025-11-21 at 16.32.23 (5).jpeg b/assets/uploads/1763754622_6920c27ee88f9_WhatsApp Image 2025-11-21 at 16.32.23 (5).jpeg
new file mode 100644
index 0000000..cf95b94
Binary files /dev/null and b/assets/uploads/1763754622_6920c27ee88f9_WhatsApp Image 2025-11-21 at 16.32.23 (5).jpeg differ
diff --git a/assets/uploads/1763754622_6920c27ee8a6c_WhatsApp Image 2025-11-21 at 16.32.23.jpeg b/assets/uploads/1763754622_6920c27ee8a6c_WhatsApp Image 2025-11-21 at 16.32.23.jpeg
new file mode 100644
index 0000000..cd8834b
Binary files /dev/null and b/assets/uploads/1763754622_6920c27ee8a6c_WhatsApp Image 2025-11-21 at 16.32.23.jpeg differ
diff --git a/assets/uploads/1763760411_6920d91b4e337_WhatsApp Image 2025-11-21 at 18.12.04 (1).jpeg b/assets/uploads/1763760411_6920d91b4e337_WhatsApp Image 2025-11-21 at 18.12.04 (1).jpeg
new file mode 100644
index 0000000..11ea286
Binary files /dev/null and b/assets/uploads/1763760411_6920d91b4e337_WhatsApp Image 2025-11-21 at 18.12.04 (1).jpeg differ
diff --git a/assets/uploads/1763760411_6920d91b4e97f_WhatsApp Image 2025-11-21 at 18.12.04 (2).jpeg b/assets/uploads/1763760411_6920d91b4e97f_WhatsApp Image 2025-11-21 at 18.12.04 (2).jpeg
new file mode 100644
index 0000000..1ec3b55
Binary files /dev/null and b/assets/uploads/1763760411_6920d91b4e97f_WhatsApp Image 2025-11-21 at 18.12.04 (2).jpeg differ
diff --git a/assets/uploads/1763760411_6920d91b4ec05_WhatsApp Image 2025-11-21 at 18.12.04.jpeg b/assets/uploads/1763760411_6920d91b4ec05_WhatsApp Image 2025-11-21 at 18.12.04.jpeg
new file mode 100644
index 0000000..2688c5a
Binary files /dev/null and b/assets/uploads/1763760411_6920d91b4ec05_WhatsApp Image 2025-11-21 at 18.12.04.jpeg differ
diff --git a/assets/uploads/1763760411_6920d91b4ee81_WhatsApp Image 2025-11-21 at 18.12.05 (1).jpeg b/assets/uploads/1763760411_6920d91b4ee81_WhatsApp Image 2025-11-21 at 18.12.05 (1).jpeg
new file mode 100644
index 0000000..7b05a37
Binary files /dev/null and b/assets/uploads/1763760411_6920d91b4ee81_WhatsApp Image 2025-11-21 at 18.12.05 (1).jpeg differ
diff --git a/assets/uploads/1763760411_6920d91b4f1f2_WhatsApp Image 2025-11-21 at 18.12.05 (2).jpeg b/assets/uploads/1763760411_6920d91b4f1f2_WhatsApp Image 2025-11-21 at 18.12.05 (2).jpeg
new file mode 100644
index 0000000..c1846fe
Binary files /dev/null and b/assets/uploads/1763760411_6920d91b4f1f2_WhatsApp Image 2025-11-21 at 18.12.05 (2).jpeg differ
diff --git a/assets/uploads/1763760411_6920d91b4f61a_WhatsApp Image 2025-11-21 at 18.12.05 (3).jpeg b/assets/uploads/1763760411_6920d91b4f61a_WhatsApp Image 2025-11-21 at 18.12.05 (3).jpeg
new file mode 100644
index 0000000..e875a07
Binary files /dev/null and b/assets/uploads/1763760411_6920d91b4f61a_WhatsApp Image 2025-11-21 at 18.12.05 (3).jpeg differ
diff --git a/assets/uploads/1763760411_6920d91b4f80e_WhatsApp Image 2025-11-21 at 18.12.05 (4).jpeg b/assets/uploads/1763760411_6920d91b4f80e_WhatsApp Image 2025-11-21 at 18.12.05 (4).jpeg
new file mode 100644
index 0000000..0632160
Binary files /dev/null and b/assets/uploads/1763760411_6920d91b4f80e_WhatsApp Image 2025-11-21 at 18.12.05 (4).jpeg differ
diff --git a/assets/uploads/1763760411_6920d91b4fa2b_WhatsApp Image 2025-11-21 at 18.12.05.jpeg b/assets/uploads/1763760411_6920d91b4fa2b_WhatsApp Image 2025-11-21 at 18.12.05.jpeg
new file mode 100644
index 0000000..3a85aab
Binary files /dev/null and b/assets/uploads/1763760411_6920d91b4fa2b_WhatsApp Image 2025-11-21 at 18.12.05.jpeg differ
diff --git a/assets/uploads/1763760411_6920d91b4fbc8_WhatsApp Image 2025-11-21 at 18.12.06 (1).jpeg b/assets/uploads/1763760411_6920d91b4fbc8_WhatsApp Image 2025-11-21 at 18.12.06 (1).jpeg
new file mode 100644
index 0000000..1fecc47
Binary files /dev/null and b/assets/uploads/1763760411_6920d91b4fbc8_WhatsApp Image 2025-11-21 at 18.12.06 (1).jpeg differ
diff --git a/assets/uploads/1763760411_6920d91b4fd80_WhatsApp Image 2025-11-21 at 18.12.06 (2).jpeg b/assets/uploads/1763760411_6920d91b4fd80_WhatsApp Image 2025-11-21 at 18.12.06 (2).jpeg
new file mode 100644
index 0000000..e1b8e5d
Binary files /dev/null and b/assets/uploads/1763760411_6920d91b4fd80_WhatsApp Image 2025-11-21 at 18.12.06 (2).jpeg differ
diff --git a/assets/uploads/1763760411_6920d91b4ff25_WhatsApp Image 2025-11-21 at 18.12.06 (3).jpeg b/assets/uploads/1763760411_6920d91b4ff25_WhatsApp Image 2025-11-21 at 18.12.06 (3).jpeg
new file mode 100644
index 0000000..eefbfc9
Binary files /dev/null and b/assets/uploads/1763760411_6920d91b4ff25_WhatsApp Image 2025-11-21 at 18.12.06 (3).jpeg differ
diff --git a/assets/uploads/1763760411_6920d91b500ab_WhatsApp Image 2025-11-21 at 18.12.06 (4).jpeg b/assets/uploads/1763760411_6920d91b500ab_WhatsApp Image 2025-11-21 at 18.12.06 (4).jpeg
new file mode 100644
index 0000000..f58c0d6
Binary files /dev/null and b/assets/uploads/1763760411_6920d91b500ab_WhatsApp Image 2025-11-21 at 18.12.06 (4).jpeg differ
diff --git a/assets/uploads/1763760411_6920d91b50248_WhatsApp Image 2025-11-21 at 18.12.06.jpeg b/assets/uploads/1763760411_6920d91b50248_WhatsApp Image 2025-11-21 at 18.12.06.jpeg
new file mode 100644
index 0000000..1da91ee
Binary files /dev/null and b/assets/uploads/1763760411_6920d91b50248_WhatsApp Image 2025-11-21 at 18.12.06.jpeg differ
diff --git a/assets/uploads/1763760411_6920d91b503ee_WhatsApp Image 2025-11-21 at 18.12.07 (1).jpeg b/assets/uploads/1763760411_6920d91b503ee_WhatsApp Image 2025-11-21 at 18.12.07 (1).jpeg
new file mode 100644
index 0000000..3d1ef50
Binary files /dev/null and b/assets/uploads/1763760411_6920d91b503ee_WhatsApp Image 2025-11-21 at 18.12.07 (1).jpeg differ
diff --git a/assets/uploads/1763760411_6920d91b50560_WhatsApp Image 2025-11-21 at 18.12.07 (2).jpeg b/assets/uploads/1763760411_6920d91b50560_WhatsApp Image 2025-11-21 at 18.12.07 (2).jpeg
new file mode 100644
index 0000000..ba495b7
Binary files /dev/null and b/assets/uploads/1763760411_6920d91b50560_WhatsApp Image 2025-11-21 at 18.12.07 (2).jpeg differ
diff --git a/assets/uploads/1763760411_6920d91b5074a_WhatsApp Image 2025-11-21 at 18.12.07 (3).jpeg b/assets/uploads/1763760411_6920d91b5074a_WhatsApp Image 2025-11-21 at 18.12.07 (3).jpeg
new file mode 100644
index 0000000..be2b642
Binary files /dev/null and b/assets/uploads/1763760411_6920d91b5074a_WhatsApp Image 2025-11-21 at 18.12.07 (3).jpeg differ
diff --git a/assets/uploads/1763760411_6920d91b50924_WhatsApp Image 2025-11-21 at 18.12.07.jpeg b/assets/uploads/1763760411_6920d91b50924_WhatsApp Image 2025-11-21 at 18.12.07.jpeg
new file mode 100644
index 0000000..d9f1e71
Binary files /dev/null and b/assets/uploads/1763760411_6920d91b50924_WhatsApp Image 2025-11-21 at 18.12.07.jpeg differ
diff --git a/assets/uploads/1763760411_6920d91b50b04_WhatsApp Image 2025-11-21 at 18.12.08 (1).jpeg b/assets/uploads/1763760411_6920d91b50b04_WhatsApp Image 2025-11-21 at 18.12.08 (1).jpeg
new file mode 100644
index 0000000..313eb87
Binary files /dev/null and b/assets/uploads/1763760411_6920d91b50b04_WhatsApp Image 2025-11-21 at 18.12.08 (1).jpeg differ
diff --git a/assets/uploads/1763760411_6920d91b50d00_WhatsApp Image 2025-11-21 at 18.12.08 (2).jpeg b/assets/uploads/1763760411_6920d91b50d00_WhatsApp Image 2025-11-21 at 18.12.08 (2).jpeg
new file mode 100644
index 0000000..4ad45d6
Binary files /dev/null and b/assets/uploads/1763760411_6920d91b50d00_WhatsApp Image 2025-11-21 at 18.12.08 (2).jpeg differ
diff --git a/assets/uploads/1763760411_6920d91b50ef8_WhatsApp Image 2025-11-21 at 18.12.08 (3).jpeg b/assets/uploads/1763760411_6920d91b50ef8_WhatsApp Image 2025-11-21 at 18.12.08 (3).jpeg
new file mode 100644
index 0000000..c4245ed
Binary files /dev/null and b/assets/uploads/1763760411_6920d91b50ef8_WhatsApp Image 2025-11-21 at 18.12.08 (3).jpeg differ
diff --git a/assets/uploads/1763765335_6920ec578663d_WhatsApp Image 2025-11-21 at 19.27.18 (1).jpeg b/assets/uploads/1763765335_6920ec578663d_WhatsApp Image 2025-11-21 at 19.27.18 (1).jpeg
new file mode 100644
index 0000000..3a35f4c
Binary files /dev/null and b/assets/uploads/1763765335_6920ec578663d_WhatsApp Image 2025-11-21 at 19.27.18 (1).jpeg differ
diff --git a/assets/uploads/1763765335_6920ec5786ea3_WhatsApp Image 2025-11-21 at 19.27.18.jpeg b/assets/uploads/1763765335_6920ec5786ea3_WhatsApp Image 2025-11-21 at 19.27.18.jpeg
new file mode 100644
index 0000000..67b24a2
Binary files /dev/null and b/assets/uploads/1763765335_6920ec5786ea3_WhatsApp Image 2025-11-21 at 19.27.18.jpeg differ
diff --git a/assets/uploads/1763765335_6920ec5787081_WhatsApp Image 2025-11-21 at 19.27.19 (1).jpeg b/assets/uploads/1763765335_6920ec5787081_WhatsApp Image 2025-11-21 at 19.27.19 (1).jpeg
new file mode 100644
index 0000000..7194c83
Binary files /dev/null and b/assets/uploads/1763765335_6920ec5787081_WhatsApp Image 2025-11-21 at 19.27.19 (1).jpeg differ
diff --git a/assets/uploads/1763765335_6920ec5787252_WhatsApp Image 2025-11-21 at 19.27.19 (2).jpeg b/assets/uploads/1763765335_6920ec5787252_WhatsApp Image 2025-11-21 at 19.27.19 (2).jpeg
new file mode 100644
index 0000000..07e1f39
Binary files /dev/null and b/assets/uploads/1763765335_6920ec5787252_WhatsApp Image 2025-11-21 at 19.27.19 (2).jpeg differ
diff --git a/assets/uploads/1763765335_6920ec578741a_WhatsApp Image 2025-11-21 at 19.27.19 (3).jpeg b/assets/uploads/1763765335_6920ec578741a_WhatsApp Image 2025-11-21 at 19.27.19 (3).jpeg
new file mode 100644
index 0000000..84680b0
Binary files /dev/null and b/assets/uploads/1763765335_6920ec578741a_WhatsApp Image 2025-11-21 at 19.27.19 (3).jpeg differ
diff --git a/assets/uploads/1763765335_6920ec5787597_WhatsApp Image 2025-11-21 at 19.27.19 (4).jpeg b/assets/uploads/1763765335_6920ec5787597_WhatsApp Image 2025-11-21 at 19.27.19 (4).jpeg
new file mode 100644
index 0000000..668c9d0
Binary files /dev/null and b/assets/uploads/1763765335_6920ec5787597_WhatsApp Image 2025-11-21 at 19.27.19 (4).jpeg differ
diff --git a/assets/uploads/1763765335_6920ec5787774_WhatsApp Image 2025-11-21 at 19.27.19.jpeg b/assets/uploads/1763765335_6920ec5787774_WhatsApp Image 2025-11-21 at 19.27.19.jpeg
new file mode 100644
index 0000000..5c38cf6
Binary files /dev/null and b/assets/uploads/1763765335_6920ec5787774_WhatsApp Image 2025-11-21 at 19.27.19.jpeg differ
diff --git a/assets/uploads/1763765335_6920ec57884dd_WhatsApp Image 2025-11-21 at 19.27.20 (1).jpeg b/assets/uploads/1763765335_6920ec57884dd_WhatsApp Image 2025-11-21 at 19.27.20 (1).jpeg
new file mode 100644
index 0000000..91c2405
Binary files /dev/null and b/assets/uploads/1763765335_6920ec57884dd_WhatsApp Image 2025-11-21 at 19.27.20 (1).jpeg differ
diff --git a/assets/uploads/1763765335_6920ec5788787_WhatsApp Image 2025-11-21 at 19.27.20 (2).jpeg b/assets/uploads/1763765335_6920ec5788787_WhatsApp Image 2025-11-21 at 19.27.20 (2).jpeg
new file mode 100644
index 0000000..5ed929a
Binary files /dev/null and b/assets/uploads/1763765335_6920ec5788787_WhatsApp Image 2025-11-21 at 19.27.20 (2).jpeg differ
diff --git a/assets/uploads/1763765335_6920ec5788950_WhatsApp Image 2025-11-21 at 19.27.20 (3).jpeg b/assets/uploads/1763765335_6920ec5788950_WhatsApp Image 2025-11-21 at 19.27.20 (3).jpeg
new file mode 100644
index 0000000..ec67a2b
Binary files /dev/null and b/assets/uploads/1763765335_6920ec5788950_WhatsApp Image 2025-11-21 at 19.27.20 (3).jpeg differ
diff --git a/assets/uploads/1763765335_6920ec5788b2f_WhatsApp Image 2025-11-21 at 19.27.20.jpeg b/assets/uploads/1763765335_6920ec5788b2f_WhatsApp Image 2025-11-21 at 19.27.20.jpeg
new file mode 100644
index 0000000..ccc87d0
Binary files /dev/null and b/assets/uploads/1763765335_6920ec5788b2f_WhatsApp Image 2025-11-21 at 19.27.20.jpeg differ
diff --git a/assets/uploads/1763768588_6920f90cbb679_WhatsApp Image 2025-11-21 at 19.58.53.jpeg b/assets/uploads/1763768588_6920f90cbb679_WhatsApp Image 2025-11-21 at 19.58.53.jpeg
new file mode 100644
index 0000000..71b1fa6
Binary files /dev/null and b/assets/uploads/1763768588_6920f90cbb679_WhatsApp Image 2025-11-21 at 19.58.53.jpeg differ
diff --git a/assets/uploads/1763768588_6920f90cbbe27_WhatsApp Image 2025-11-21 at 19.58.54 (1).jpeg b/assets/uploads/1763768588_6920f90cbbe27_WhatsApp Image 2025-11-21 at 19.58.54 (1).jpeg
new file mode 100644
index 0000000..25cd46b
Binary files /dev/null and b/assets/uploads/1763768588_6920f90cbbe27_WhatsApp Image 2025-11-21 at 19.58.54 (1).jpeg differ
diff --git a/assets/uploads/1763768588_6920f90cbc111_WhatsApp Image 2025-11-21 at 19.58.54 (2).jpeg b/assets/uploads/1763768588_6920f90cbc111_WhatsApp Image 2025-11-21 at 19.58.54 (2).jpeg
new file mode 100644
index 0000000..469e75e
Binary files /dev/null and b/assets/uploads/1763768588_6920f90cbc111_WhatsApp Image 2025-11-21 at 19.58.54 (2).jpeg differ
diff --git a/assets/uploads/1763768588_6920f90cbd047_WhatsApp Image 2025-11-21 at 19.58.54 (3).jpeg b/assets/uploads/1763768588_6920f90cbd047_WhatsApp Image 2025-11-21 at 19.58.54 (3).jpeg
new file mode 100644
index 0000000..3b06050
Binary files /dev/null and b/assets/uploads/1763768588_6920f90cbd047_WhatsApp Image 2025-11-21 at 19.58.54 (3).jpeg differ
diff --git a/assets/uploads/1763768588_6920f90cbd2d5_WhatsApp Image 2025-11-21 at 19.58.54 (4).jpeg b/assets/uploads/1763768588_6920f90cbd2d5_WhatsApp Image 2025-11-21 at 19.58.54 (4).jpeg
new file mode 100644
index 0000000..3d85475
Binary files /dev/null and b/assets/uploads/1763768588_6920f90cbd2d5_WhatsApp Image 2025-11-21 at 19.58.54 (4).jpeg differ
diff --git a/assets/uploads/1763768588_6920f90cbd5db_WhatsApp Image 2025-11-21 at 19.58.54.jpeg b/assets/uploads/1763768588_6920f90cbd5db_WhatsApp Image 2025-11-21 at 19.58.54.jpeg
new file mode 100644
index 0000000..b328fc5
Binary files /dev/null and b/assets/uploads/1763768588_6920f90cbd5db_WhatsApp Image 2025-11-21 at 19.58.54.jpeg differ
diff --git a/assets/uploads/1763768588_6920f90cbdacd_WhatsApp Image 2025-11-21 at 19.58.55 (1).jpeg b/assets/uploads/1763768588_6920f90cbdacd_WhatsApp Image 2025-11-21 at 19.58.55 (1).jpeg
new file mode 100644
index 0000000..964d790
Binary files /dev/null and b/assets/uploads/1763768588_6920f90cbdacd_WhatsApp Image 2025-11-21 at 19.58.55 (1).jpeg differ
diff --git a/assets/uploads/1763768588_6920f90cbdcc0_WhatsApp Image 2025-11-21 at 19.58.55 (2).jpeg b/assets/uploads/1763768588_6920f90cbdcc0_WhatsApp Image 2025-11-21 at 19.58.55 (2).jpeg
new file mode 100644
index 0000000..f125a43
Binary files /dev/null and b/assets/uploads/1763768588_6920f90cbdcc0_WhatsApp Image 2025-11-21 at 19.58.55 (2).jpeg differ
diff --git a/assets/uploads/1763768588_6920f90cbde7b_WhatsApp Image 2025-11-21 at 19.58.55 (3).jpeg b/assets/uploads/1763768588_6920f90cbde7b_WhatsApp Image 2025-11-21 at 19.58.55 (3).jpeg
new file mode 100644
index 0000000..58d5698
Binary files /dev/null and b/assets/uploads/1763768588_6920f90cbde7b_WhatsApp Image 2025-11-21 at 19.58.55 (3).jpeg differ
diff --git a/assets/uploads/1763768588_6920f90cbe0da_WhatsApp Image 2025-11-21 at 19.58.55 (4).jpeg b/assets/uploads/1763768588_6920f90cbe0da_WhatsApp Image 2025-11-21 at 19.58.55 (4).jpeg
new file mode 100644
index 0000000..a301643
Binary files /dev/null and b/assets/uploads/1763768588_6920f90cbe0da_WhatsApp Image 2025-11-21 at 19.58.55 (4).jpeg differ
diff --git a/assets/uploads/1763768588_6920f90cbe25e_WhatsApp Image 2025-11-21 at 19.58.55 (5).jpeg b/assets/uploads/1763768588_6920f90cbe25e_WhatsApp Image 2025-11-21 at 19.58.55 (5).jpeg
new file mode 100644
index 0000000..be3d68b
Binary files /dev/null and b/assets/uploads/1763768588_6920f90cbe25e_WhatsApp Image 2025-11-21 at 19.58.55 (5).jpeg differ
diff --git a/assets/uploads/1763768588_6920f90cbe3b9_WhatsApp Image 2025-11-21 at 19.58.55.jpeg b/assets/uploads/1763768588_6920f90cbe3b9_WhatsApp Image 2025-11-21 at 19.58.55.jpeg
new file mode 100644
index 0000000..7976664
Binary files /dev/null and b/assets/uploads/1763768588_6920f90cbe3b9_WhatsApp Image 2025-11-21 at 19.58.55.jpeg differ
diff --git a/assets/uploads/1763768588_6920f90cbe642_WhatsApp Image 2025-11-21 at 19.58.56.jpeg b/assets/uploads/1763768588_6920f90cbe642_WhatsApp Image 2025-11-21 at 19.58.56.jpeg
new file mode 100644
index 0000000..fb0993e
Binary files /dev/null and b/assets/uploads/1763768588_6920f90cbe642_WhatsApp Image 2025-11-21 at 19.58.56.jpeg differ
diff --git a/assets/uploads/1763768588_6920f90cbe7bf_WhatsApp Image 2025-11-21 at 20.03.55 (1).jpeg b/assets/uploads/1763768588_6920f90cbe7bf_WhatsApp Image 2025-11-21 at 20.03.55 (1).jpeg
new file mode 100644
index 0000000..c1c264e
Binary files /dev/null and b/assets/uploads/1763768588_6920f90cbe7bf_WhatsApp Image 2025-11-21 at 20.03.55 (1).jpeg differ
diff --git a/assets/uploads/1763768588_6920f90cbe9ae_WhatsApp Image 2025-11-21 at 20.03.55.jpeg b/assets/uploads/1763768588_6920f90cbe9ae_WhatsApp Image 2025-11-21 at 20.03.55.jpeg
new file mode 100644
index 0000000..f4a8baf
Binary files /dev/null and b/assets/uploads/1763768588_6920f90cbe9ae_WhatsApp Image 2025-11-21 at 20.03.55.jpeg differ
diff --git a/assets/uploads/1763768588_6920f90cbec07_WhatsApp Image 2025-11-21 at 20.03.56 (1).jpeg b/assets/uploads/1763768588_6920f90cbec07_WhatsApp Image 2025-11-21 at 20.03.56 (1).jpeg
new file mode 100644
index 0000000..5ee6285
Binary files /dev/null and b/assets/uploads/1763768588_6920f90cbec07_WhatsApp Image 2025-11-21 at 20.03.56 (1).jpeg differ
diff --git a/assets/uploads/1763768588_6920f90cbed95_WhatsApp Image 2025-11-21 at 20.03.56 (2).jpeg b/assets/uploads/1763768588_6920f90cbed95_WhatsApp Image 2025-11-21 at 20.03.56 (2).jpeg
new file mode 100644
index 0000000..15e90af
Binary files /dev/null and b/assets/uploads/1763768588_6920f90cbed95_WhatsApp Image 2025-11-21 at 20.03.56 (2).jpeg differ
diff --git a/assets/uploads/1763768588_6920f90cbefd1_WhatsApp Image 2025-11-21 at 20.03.56.jpeg b/assets/uploads/1763768588_6920f90cbefd1_WhatsApp Image 2025-11-21 at 20.03.56.jpeg
new file mode 100644
index 0000000..e4d1878
Binary files /dev/null and b/assets/uploads/1763768588_6920f90cbefd1_WhatsApp Image 2025-11-21 at 20.03.56.jpeg differ
diff --git a/assets/uploads/1763768588_6920f90cbf165_WhatsApp Image 2025-11-21 at 20.03.57 (1).jpeg b/assets/uploads/1763768588_6920f90cbf165_WhatsApp Image 2025-11-21 at 20.03.57 (1).jpeg
new file mode 100644
index 0000000..3fc7595
Binary files /dev/null and b/assets/uploads/1763768588_6920f90cbf165_WhatsApp Image 2025-11-21 at 20.03.57 (1).jpeg differ
diff --git a/assets/uploads/1763768588_6920f90cbf2f8_WhatsApp Image 2025-11-21 at 20.03.57 (2).jpeg b/assets/uploads/1763768588_6920f90cbf2f8_WhatsApp Image 2025-11-21 at 20.03.57 (2).jpeg
new file mode 100644
index 0000000..19be701
Binary files /dev/null and b/assets/uploads/1763768588_6920f90cbf2f8_WhatsApp Image 2025-11-21 at 20.03.57 (2).jpeg differ
diff --git a/assets/uploads/1763772646_692108e6addf9_WhatsApp Image 2025-11-21 at 21.21.08 (1).jpeg b/assets/uploads/1763772646_692108e6addf9_WhatsApp Image 2025-11-21 at 21.21.08 (1).jpeg
new file mode 100644
index 0000000..bef9bd5
Binary files /dev/null and b/assets/uploads/1763772646_692108e6addf9_WhatsApp Image 2025-11-21 at 21.21.08 (1).jpeg differ
diff --git a/assets/uploads/1763772646_692108e6af76e_WhatsApp Image 2025-11-21 at 21.21.08 (2).jpeg b/assets/uploads/1763772646_692108e6af76e_WhatsApp Image 2025-11-21 at 21.21.08 (2).jpeg
new file mode 100644
index 0000000..7f7f058
Binary files /dev/null and b/assets/uploads/1763772646_692108e6af76e_WhatsApp Image 2025-11-21 at 21.21.08 (2).jpeg differ
diff --git a/assets/uploads/1763772646_692108e6afa25_WhatsApp Image 2025-11-21 at 21.21.08.jpeg b/assets/uploads/1763772646_692108e6afa25_WhatsApp Image 2025-11-21 at 21.21.08.jpeg
new file mode 100644
index 0000000..b662415
Binary files /dev/null and b/assets/uploads/1763772646_692108e6afa25_WhatsApp Image 2025-11-21 at 21.21.08.jpeg differ
diff --git a/assets/uploads/1763772646_692108e6afdb0_WhatsApp Image 2025-11-21 at 21.21.09 (1).jpeg b/assets/uploads/1763772646_692108e6afdb0_WhatsApp Image 2025-11-21 at 21.21.09 (1).jpeg
new file mode 100644
index 0000000..9a57812
Binary files /dev/null and b/assets/uploads/1763772646_692108e6afdb0_WhatsApp Image 2025-11-21 at 21.21.09 (1).jpeg differ
diff --git a/assets/uploads/1763772646_692108e6b0074_WhatsApp Image 2025-11-21 at 21.21.09.jpeg b/assets/uploads/1763772646_692108e6b0074_WhatsApp Image 2025-11-21 at 21.21.09.jpeg
new file mode 100644
index 0000000..7e9872f
Binary files /dev/null and b/assets/uploads/1763772646_692108e6b0074_WhatsApp Image 2025-11-21 at 21.21.09.jpeg differ
diff --git a/assets/uploads/1763772646_692108e6b02b5_WhatsApp Image 2025-11-21 at 21.21.11 (1).jpeg b/assets/uploads/1763772646_692108e6b02b5_WhatsApp Image 2025-11-21 at 21.21.11 (1).jpeg
new file mode 100644
index 0000000..c196358
Binary files /dev/null and b/assets/uploads/1763772646_692108e6b02b5_WhatsApp Image 2025-11-21 at 21.21.11 (1).jpeg differ
diff --git a/assets/uploads/1763772646_692108e6b04cd_WhatsApp Image 2025-11-21 at 21.21.11.jpeg b/assets/uploads/1763772646_692108e6b04cd_WhatsApp Image 2025-11-21 at 21.21.11.jpeg
new file mode 100644
index 0000000..a548988
Binary files /dev/null and b/assets/uploads/1763772646_692108e6b04cd_WhatsApp Image 2025-11-21 at 21.21.11.jpeg differ
diff --git a/assets/uploads/1763772646_692108e6b06c7_WhatsApp Image 2025-11-21 at 21.21.12 (1).jpeg b/assets/uploads/1763772646_692108e6b06c7_WhatsApp Image 2025-11-21 at 21.21.12 (1).jpeg
new file mode 100644
index 0000000..8324680
Binary files /dev/null and b/assets/uploads/1763772646_692108e6b06c7_WhatsApp Image 2025-11-21 at 21.21.12 (1).jpeg differ
diff --git a/assets/uploads/1763772646_692108e6b0871_WhatsApp Image 2025-11-21 at 21.21.12 (2).jpeg b/assets/uploads/1763772646_692108e6b0871_WhatsApp Image 2025-11-21 at 21.21.12 (2).jpeg
new file mode 100644
index 0000000..8324680
Binary files /dev/null and b/assets/uploads/1763772646_692108e6b0871_WhatsApp Image 2025-11-21 at 21.21.12 (2).jpeg differ
diff --git a/assets/uploads/1763772646_692108e6b0bfe_WhatsApp Image 2025-11-21 at 21.21.12 (3).jpeg b/assets/uploads/1763772646_692108e6b0bfe_WhatsApp Image 2025-11-21 at 21.21.12 (3).jpeg
new file mode 100644
index 0000000..106cc9b
Binary files /dev/null and b/assets/uploads/1763772646_692108e6b0bfe_WhatsApp Image 2025-11-21 at 21.21.12 (3).jpeg differ
diff --git a/assets/uploads/1763772646_692108e6b1836_WhatsApp Image 2025-11-21 at 21.21.12 (4).jpeg b/assets/uploads/1763772646_692108e6b1836_WhatsApp Image 2025-11-21 at 21.21.12 (4).jpeg
new file mode 100644
index 0000000..ccabdd2
Binary files /dev/null and b/assets/uploads/1763772646_692108e6b1836_WhatsApp Image 2025-11-21 at 21.21.12 (4).jpeg differ
diff --git a/assets/uploads/1763772646_692108e6b1acb_WhatsApp Image 2025-11-21 at 21.21.12.jpeg b/assets/uploads/1763772646_692108e6b1acb_WhatsApp Image 2025-11-21 at 21.21.12.jpeg
new file mode 100644
index 0000000..aea4b5d
Binary files /dev/null and b/assets/uploads/1763772646_692108e6b1acb_WhatsApp Image 2025-11-21 at 21.21.12.jpeg differ
diff --git a/assets/uploads/1763772646_692108e6b1ccd_WhatsApp Image 2025-11-21 at 21.21.13 (1).jpeg b/assets/uploads/1763772646_692108e6b1ccd_WhatsApp Image 2025-11-21 at 21.21.13 (1).jpeg
new file mode 100644
index 0000000..93d8729
Binary files /dev/null and b/assets/uploads/1763772646_692108e6b1ccd_WhatsApp Image 2025-11-21 at 21.21.13 (1).jpeg differ
diff --git a/assets/uploads/1763772646_692108e6b1e94_WhatsApp Image 2025-11-21 at 21.21.13 (2).jpeg b/assets/uploads/1763772646_692108e6b1e94_WhatsApp Image 2025-11-21 at 21.21.13 (2).jpeg
new file mode 100644
index 0000000..93d8729
Binary files /dev/null and b/assets/uploads/1763772646_692108e6b1e94_WhatsApp Image 2025-11-21 at 21.21.13 (2).jpeg differ
diff --git a/assets/uploads/1763772646_692108e6b2029_WhatsApp Image 2025-11-21 at 21.21.13 (3).jpeg b/assets/uploads/1763772646_692108e6b2029_WhatsApp Image 2025-11-21 at 21.21.13 (3).jpeg
new file mode 100644
index 0000000..5e71c1b
Binary files /dev/null and b/assets/uploads/1763772646_692108e6b2029_WhatsApp Image 2025-11-21 at 21.21.13 (3).jpeg differ
diff --git a/assets/uploads/1763772646_692108e6b21a6_WhatsApp Image 2025-11-21 at 21.21.13 (4).jpeg b/assets/uploads/1763772646_692108e6b21a6_WhatsApp Image 2025-11-21 at 21.21.13 (4).jpeg
new file mode 100644
index 0000000..1633cd7
Binary files /dev/null and b/assets/uploads/1763772646_692108e6b21a6_WhatsApp Image 2025-11-21 at 21.21.13 (4).jpeg differ
diff --git a/assets/uploads/1763772646_692108e6b23b2_WhatsApp Image 2025-11-21 at 21.21.13.jpeg b/assets/uploads/1763772646_692108e6b23b2_WhatsApp Image 2025-11-21 at 21.21.13.jpeg
new file mode 100644
index 0000000..f83c389
Binary files /dev/null and b/assets/uploads/1763772646_692108e6b23b2_WhatsApp Image 2025-11-21 at 21.21.13.jpeg differ
diff --git a/assets/uploads/1763772646_692108e6b2550_WhatsApp Image 2025-11-21 at 21.21.14 (1).jpeg b/assets/uploads/1763772646_692108e6b2550_WhatsApp Image 2025-11-21 at 21.21.14 (1).jpeg
new file mode 100644
index 0000000..5f2ca25
Binary files /dev/null and b/assets/uploads/1763772646_692108e6b2550_WhatsApp Image 2025-11-21 at 21.21.14 (1).jpeg differ
diff --git a/assets/uploads/1763772646_692108e6b2724_WhatsApp Image 2025-11-21 at 21.21.14.jpeg b/assets/uploads/1763772646_692108e6b2724_WhatsApp Image 2025-11-21 at 21.21.14.jpeg
new file mode 100644
index 0000000..314d269
Binary files /dev/null and b/assets/uploads/1763772646_692108e6b2724_WhatsApp Image 2025-11-21 at 21.21.14.jpeg differ
diff --git a/assets/uploads/1763772646_692108e6b28d1_WhatsApp Image 2025-11-21 at 21.21.15 (1).jpeg b/assets/uploads/1763772646_692108e6b28d1_WhatsApp Image 2025-11-21 at 21.21.15 (1).jpeg
new file mode 100644
index 0000000..19c0a4c
Binary files /dev/null and b/assets/uploads/1763772646_692108e6b28d1_WhatsApp Image 2025-11-21 at 21.21.15 (1).jpeg differ
diff --git a/db/migrate.php b/db/migrate.php
index ddfb7a3..6e76504 100644
--- a/db/migrate.php
+++ b/db/migrate.php
@@ -1,12 +1,56 @@
exec($sql);
- echo "Migration completed successfully.\n";
-} catch (PDOException $e) {
- die("Migration failed: " . $e->getMessage() . "\n");
+function get_executed_migrations($pdo) {
+ try {
+ $stmt = $pdo->query("SELECT `migration` FROM `migrations`");
+ return $stmt->fetchAll(PDO::FETCH_COLUMN);
+ } catch (PDOException $e) {
+ // If the migrations table doesn't exist, create it.
+ if ($e->getCode() === '42S02') { // Base table or view not found
+ $pdo->exec("CREATE TABLE `migrations` (`migration` VARCHAR(255) PRIMARY KEY, `executed_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP)");
+ return [];
+ }
+ throw $e;
+ }
}
+function mark_migration_as_executed($pdo, $migration_file) {
+ $stmt = $pdo->prepare("INSERT INTO `migrations` (`migration`) VALUES (?)");
+ $stmt->execute([$migration_file]);
+}
+
+try {
+ $pdo = db();
+ echo "Conectado ao banco de dados.\n";
+
+ $executed_migrations = get_executed_migrations($pdo);
+ echo "Migrações já executadas: " . (empty($executed_migrations) ? "Nenhuma" : implode(', ', $executed_migrations)) . "\n";
+
+ $migration_files = glob(__DIR__ . '/migrations/*.sql');
+ sort($migration_files);
+
+ $new_migrations_found = false;
+ foreach ($migration_files as $file) {
+ $filename = basename($file);
+ if (!in_array($filename, $executed_migrations)) {
+ $new_migrations_found = true;
+ echo "Executando migração: $filename...\n";
+
+ $sql = file_get_contents($file);
+ $pdo->exec($sql);
+ mark_migration_as_executed($pdo, $filename);
+
+ echo " -> Migração $filename concluída.\n";
+ }
+ }
+
+ if (!$new_migrations_found) {
+ echo "Nenhuma nova migração para executar. O banco de dados já está atualizado.\n";
+ } else {
+ echo "Todas as novas migrações foram concluídas com sucesso!\n";
+ }
+
+} catch (PDOException $e) {
+ die("Falha na migração: " . $e->getMessage() . "\n");
+}
\ No newline at end of file
diff --git a/delete_installation.php b/delete_installation.php
new file mode 100644
index 0000000..3a58878
--- /dev/null
+++ b/delete_installation.php
@@ -0,0 +1,119 @@
+prepare("DELETE FROM installation_images WHERE installation_id = ?");
+ $stmt->execute([$id]);
+
+ // Delete the installation
+ $stmt = $pdo->prepare("DELETE FROM installations WHERE id = ?");
+ $stmt->execute([$id]);
+
+ $_SESSION['message'] = 'Instalação excluída com sucesso!';
+ $_SESSION['message_type'] = 'success';
+ } catch (Exception $e) {
+ $_SESSION['message'] = 'Erro ao excluir a instalação: ' . $e->getMessage();
+ $_SESSION['message_type'] = 'danger';
+ }
+ }
+ header("Location: index.php");
+ exit;
+}
+
+// Handle the GET request to show the confirmation page
+$id = $_GET['id'] ?? null;
+if (!$id) {
+ header("Location: index.php");
+ exit;
+}
+
+// Fetch installation data for display
+$stmt = $pdo->prepare("SELECT * FROM installations WHERE id = ?");
+$stmt->execute([$id]);
+$installation = $stmt->fetch(PDO::FETCH_ASSOC);
+
+if (!$installation) {
+ $_SESSION['message'] = 'Instalação não encontrada.';
+ $_SESSION['message_type'] = 'danger';
+ header("Location: index.php");
+ exit;
+}
+?>
+
+
+
+
+
+ Confirmar Exclusão - iload net Solutions
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Você tem certeza de que deseja excluir permanentemente a instalação para o cliente no endereço ?
+
Atenção: Esta ação não pode ser desfeita.
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/edit_installation.php b/edit_installation.php
new file mode 100644
index 0000000..ca00815
--- /dev/null
+++ b/edit_installation.php
@@ -0,0 +1,179 @@
+prepare("SELECT * FROM installations WHERE id = ?");
+$stmt->execute([$id]);
+$installation = $stmt->fetch(PDO::FETCH_ASSOC);
+
+if (!$installation) {
+ $_SESSION['message'] = 'Instalação não encontrada.';
+ $_SESSION['message_type'] = 'danger';
+ header("Location: index.php");
+ exit;
+}
+
+// Fetch images for this installation
+$img_stmt = $pdo->prepare("SELECT * FROM installation_images WHERE installation_id = ?");
+$img_stmt->execute([$id]);
+$images = $img_stmt->fetchAll(PDO::FETCH_ASSOC);
+
+?>
+
+
+
+
+
+ Editar Instalação # - iload net Solutions
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/export_html.php b/export_html.php
new file mode 100644
index 0000000..88dce4a
--- /dev/null
+++ b/export_html.php
@@ -0,0 +1,169 @@
+prepare("SELECT * FROM installations WHERE id = :id");
+ $stmt->bindParam(':id', $installation_id, PDO::PARAM_INT);
+ $stmt->execute();
+ $installation = $stmt->fetch(PDO::FETCH_ASSOC);
+
+ if (!$installation) {
+ die("Instalação não encontrada.");
+ }
+
+ // 4. Buscar imagens da instalação
+ $img_stmt = $pdo->prepare("SELECT image_path FROM installation_images WHERE installation_id = :id ORDER BY id ASC");
+ $img_stmt->bindParam(':id', $installation_id, PDO::PARAM_INT);
+ $img_stmt->execute();
+ $images = $img_stmt->fetchAll(PDO::FETCH_ASSOC);
+
+} catch (Exception $e) {
+ die("Erro ao acessar o banco de dados: " . $e->getMessage());
+}
+
+// 5. Gerar o nome do arquivo para download
+$filename = "instalacao_" . $installation['id'] . "_" . str_replace(' ', '_', $installation['client_name']) . ".doc";
+
+// 6. Enviar cabeçalhos para forçar o download
+header("Content-Type: application/vnd.ms-word");
+header("Content-Disposition: attachment; filename=\"" . $filename . "\"");
+header("Expires: 0");
+header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
+
+// 7. Iniciar a geração do conteúdo HTML
+?>
+
+
+
+
+ Relatório de Instalação -
+
+
+
+
+
Relatório de Instalação
+
+
Detalhes do Cliente e Instalação
+
+
+ | ID da Instalação |
+ |
+
+
+ | Cliente |
+ |
+
+
+ | Endereço |
+ |
+
+
+ | Técnico Responsável |
+ |
+
+
+ | Data |
+ |
+
+
+ | Status |
+ |
+
+
+
+
Detalhes Técnicos
+
+
+ | Potência do Carregador (kW) |
+ |
+
+
+ | Tensão da Rede (V) |
+ |
+
+
+ | Tipo de Disjuntor |
+ |
+
+
+ | Número de Série |
+ |
+
+
+
+
Observações
+
+
+
+
Imagens da Instalação
+
+ ';
+ }
+ ?>
+
+
+
+
+
+
diff --git a/index.php b/index.php
index 6a92089..a9d02ae 100644
--- a/index.php
+++ b/index.php
@@ -5,14 +5,63 @@ $message_type = $_SESSION['message_type'] ?? null;
unset($_SESSION['message'], $_SESSION['message_type']);
require_once __DIR__ . '/db/config.php';
+
+// Get status from query string
+$status_filter = $_GET['status'] ?? null;
+$page_title = "Painel de Controle";
+if ($status_filter === 'Manutencao') {
+ $page_title = "Instalações em Manutenção";
+}
+
try {
$pdo = db();
- $stmt = $pdo->query("SELECT * FROM installations ORDER BY created_at DESC LIMIT 10");
+
+ // Base query
+ $query = "
+ SELECT
+ i.*,
+ (SELECT ii.image_path FROM installation_images ii WHERE ii.installation_id = i.id ORDER BY ii.id ASC LIMIT 1) as first_image
+ FROM
+ installations i
+ ";
+
+ // Apply status filter if present
+ if ($status_filter) {
+ $query .= " WHERE i.status = :status";
+ }
+
+ $query .= " ORDER BY i.created_at DESC";
+
+ $stmt = $pdo->prepare($query);
+
+ if ($status_filter) {
+ $stmt->bindParam(':status', $status_filter, PDO::PARAM_STR);
+ }
+
+ $stmt->execute();
$installations = $stmt->fetchAll(PDO::FETCH_ASSOC);
- $total_installations = count($installations);
+
+ // Calculate KPIs
+ $kpi_query = "
+ SELECT
+ (SELECT COUNT(*) FROM installations) as total,
+ (SELECT COUNT(*) FROM installations WHERE status = 'ativo') as active,
+ (SELECT COUNT(*) FROM installations WHERE status = 'Manutencao') as maintenance,
+ (SELECT COUNT(*) FROM installations WHERE status = 'Manutenção Parcial') as partial_maintenance
+ ";
+ $kpi_stmt = $pdo->query($kpi_query);
+ $kpis = $kpi_stmt->fetch(PDO::FETCH_ASSOC);
+
+ $total_installations = $kpis['total'] ?? 0;
+ $active_installations = $kpis['active'] ?? 0;
+ $maintenance_installations = $kpis['maintenance'] ?? 0;
+ $partial_maintenance_installations = $kpis['partial_maintenance'] ?? 0;
+
} catch (Exception $e) {
$installations = [];
$total_installations = 0;
+ $active_installations = 0;
+ $maintenance_installations = 0;
$db_error = "Falha na conexão com o banco de dados ou tabela não encontrada. Por favor, execute a migração.";
}
?>
@@ -21,10 +70,10 @@ try {
- ILOADNET SOLUTIONS - Painel de Controle
+ iload net Solutions -
-
+
@@ -37,26 +86,16 @@ try {