Some checks failed
ci/woodpecker/push/ci Pipeline failed
Banner Ad System: - BannerAd model with scheduling (starts_at, ends_at) - BannerAdEvent model for impression/click tracking - BannerAdDailyStat model for analytics rollups - BannerAdZone enum (6 zones: hero, leaderboard, sidebar, inline, brand, deals) - BannerAdStatus enum (draft, active, scheduled, paused, expired) Service & Controller: - BannerAdService with weighted random rotation, caching - BannerAdController for click tracking and image serving - Routes for /ads/click, /ads/impression, /images/banner-ad Filament Admin: - Full CRUD resource at /admin/banner-ads - Image upload to MinIO - Status/zone filters - Analytics display (impressions, clicks, CTR) Display Components: - <x-banner-ad zone="..." /> Blade component - Automatic impression tracking - Click tracking via redirect - Sponsored badge overlay View Placements: - Marketplace homepage: leaderboard + sidebar - Brand page: banner below breadcrumbs - Deals page: hero banner Background Jobs: - UpdateBannerAdStatuses: activate scheduled, expire ended (every minute) - RollupBannerAdStats: daily aggregation + event cleanup