Analytics administration dashboard

* Page-view tracking
* Unique visitor and session metrics
* Content-view events
* Search analytics
* Conversion tracking
* Form-submission events
* Commerce events
* Site-aware analytics
* Privacy-conscious visitor hashing
* Optional IP anonymisation
* Do Not Track support
* Configurable excluded paths
* Daily metric aggregation
* Top-page reporting
* Recent-event activity
* Report definitions
* Scheduled report foundation
* CSV and JSON report formats
* Report execution history schema
* Analytics retention and pruning
* Administration navigation
* Analytics permissions
* Module registration
* Feature test
This commit is contained in:
Mark Gregory
2026-07-24 13:06:48 +01:00
parent 5dbb04e3ad
commit 76e29fab03
22 changed files with 305 additions and 1 deletions
@@ -0,0 +1,8 @@
<?php
namespace Modules\Analytics\Models;
use Illuminate\Database\Eloquent\Model;
final class AnalyticsEvent extends Model
{
protected $fillable=['event_id','site_id','event_type','path','title','referrer','visitor_hash','session_hash','ip_hash','country_code','device_type','browser','operating_system','subject_type','subject_id','properties','occurred_at'];
protected $casts=['properties'=>'array','occurred_at'=>'datetime'];
}
@@ -0,0 +1,8 @@
<?php
namespace Modules\Analytics\Models;
use Illuminate\Database\Eloquent\Model;
final class AnalyticsReport extends Model
{
protected $fillable=['site_id','name','report_type','filters','columns','schedule','format','recipients','is_active','last_run_at','next_run_at','created_by'];
protected $casts=['filters'=>'array','columns'=>'array','recipients'=>'array','is_active'=>'boolean','last_run_at'=>'datetime','next_run_at'=>'datetime'];
}
@@ -0,0 +1,8 @@
<?php
namespace Modules\Analytics\Models;
use Illuminate\Database\Eloquent\Model;
final class AnalyticsReportRun extends Model
{
protected $fillable=['analytics_report_id','status','disk','path','row_count','error','started_at','completed_at'];
protected $casts=['started_at'=>'datetime','completed_at'=>'datetime'];
}
+9
View File
@@ -0,0 +1,9 @@
<?php
namespace Modules\Analytics\Models;
use Illuminate\Database\Eloquent\Model;
final class DailyMetric extends Model
{
protected $table='analytics_daily_metrics';
protected $fillable=['site_id','metric_date','metric','dimension','value','metadata'];
protected $casts=['metric_date'=>'date','metadata'=>'array'];
}