feat: add comprehensive analytics dashboard for content creators

Backend changes:
- Added /sexy/analytics endpoint to fetch detailed creator analytics
- Calculates total likes, plays, completion rates, and avg watch times
- Groups analytics by date for timeline visualization
- Provides video-specific performance metrics

Frontend changes:
- Added Analytics TypeScript types and service function
- Created Analytics tab in /me dashboard (visible only for Models)
- Displays overview stats: total videos, likes, and plays
- Added detailed video performance table with:
  - Individual video metrics
  - Color-coded completion rates (green >70%, yellow >40%, red <40%)
  - Average watch time per video
  - Links to video pages

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
Valknar XXX
2025-10-28 10:42:06 +01:00
parent 54f0758196
commit 3f38633863
5 changed files with 277 additions and 3 deletions

View File

@@ -1,13 +1,20 @@
import { getFolders, getRecordings } from "$lib/services";
import { getAnalytics, getFolders, getRecordings } from "$lib/services";
import { isModel } from "$lib/directus";
export async function load({ locals, fetch }) {
const recordings = locals.authStatus.authenticated
? await getRecordings(fetch).catch(() => [])
: [];
const analytics =
locals.authStatus.authenticated && isModel(locals.authStatus.user)
? await getAnalytics(fetch).catch(() => null)
: null;
return {
authStatus: locals.authStatus,
folders: await getFolders(fetch),
recordings,
analytics,
};
}