diff --git a/reports_media.php b/reports_media.php
new file mode 100644
index 0000000..2e5012b
--- /dev/null
+++ b/reports_media.php
@@ -0,0 +1,226 @@
+= ?";
+ $params[] = $filter_start;
+}
+if ($filter_end) {
+ $where[] = "DATE(a.created_at) <= ?";
+ $params[] = $filter_end;
+}
+
+$where_clause = implode(" AND ", $where);
+
+$query = "
+ SELECT a.*,
+ p.name as project_name,
+ et.name as evidence_type_name
+ FROM attachments a
+ LEFT JOIN labour_entries le ON a.entity_type = 'labour_entry' AND a.entity_id = le.id
+ LEFT JOIN expenses ex ON a.entity_type = 'expense' AND a.entity_id = ex.id
+ LEFT JOIN projects p ON p.id = COALESCE(le.project_id, ex.project_id)
+ LEFT JOIN evidence_types et ON le.evidence_type_id = et.id
+ WHERE $where_clause
+ ORDER BY a.created_at DESC
+";
+
+$stmt = db()->prepare($query);
+$stmt->execute($params);
+$mediaItems = $stmt->fetchAll();
+
+// Get filter options
+$authors = db()->prepare("SELECT DISTINCT uploaded_by FROM attachments WHERE tenant_id = ? AND uploaded_by IS NOT NULL ORDER BY uploaded_by");
+$authors->execute([$tenant_id]);
+$authorList = $authors->fetchAll(PDO::FETCH_COLUMN);
+
+$projects = db()->prepare("SELECT id, name FROM projects WHERE tenant_id = ? AND is_archived = 0 ORDER BY name");
+$projects->execute([$tenant_id]);
+$projectList = $projects->fetchAll();
+
+$evidenceTypes = db()->prepare("SELECT id, name FROM evidence_types WHERE tenant_id = ? ORDER BY name");
+$evidenceTypes->execute([$tenant_id]);
+$evidenceTypeList = $evidenceTypes->fetchAll();
+
+$pageTitle = "SR&ED Manager - Media Gallery";
+include __DIR__ . '/includes/header.php';
+?>
+
+
+
+
+
+
Media Gallery
+
+
+ Total Items: = count($mediaItems) ?>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
No media files found
+
Try adjusting your filters or upload some images/videos.