export type ArtistDashboardProfile = {
  _id: string;
  coverImage: string;
  avatar: string;
  name: string;
  stageName: string;
  bio: string;
  isVerified: boolean;
};

export type ArtistDashboardStats = {
  followersCount: number;
  followingCount: number;
  postsCount: number;
  collaborationsCount: number;
  viewCount: number;
  playCount: number;
  listenCount: number;
  likesCount: number;
  commentsCount: number;
  savesCount: number;
  sharesCount: number;
  engagementRate: number;
  scorePercentage: number;
  earnings: number;
};

export type ArtistDashboardAudience = {
  followers: number;
  nonFollowers: number;
  newFollowersThisWeek: number;
  newFollowersThisMonth: number;
};

export type ArtistDashboardTopContentItem = {
  _id: string;
  postType: string;
  thumbnailUrl: string;
  displayUrl: string;
  content: string;
  viewCount: number;
  playCount: number;
  likesCount: number;
  commentsCount: number;
  savesCount: number;
  engagementScore: number;
  createdAt: string | Date;
};

export type ArtistDashboardRecentActivityItem = {
  _id: string;
  type: string;
  title: string;
  previewText: string;
  resourceType: string;
  referenceId: string | null;
  deepLink: string;
  createdAt: string | Date;
};

export type ArtistDashboardMeta = {
  generatedAt: string;
  chartAvailable: boolean;
  earningsAvailable: boolean;
  audienceAnalyticsAvailable: boolean;
};

export type ArtistDashboardResponse = {
  profile: ArtistDashboardProfile;
  stats: ArtistDashboardStats;
  audience: ArtistDashboardAudience;
  engagementChart: unknown[];
  topContent: ArtistDashboardTopContentItem[];
  recentActivity: ArtistDashboardRecentActivityItem[];
  meta: ArtistDashboardMeta;
};
