export interface SharedWithOrg {
  organizationId: string;
  userId: string | null;
  organization: {
    id: string;
    name: string;
  };
  user?: {
    id: string;
    email: string;
  } | null;
}

export interface DownloadRequest {
  id: string;
  assetId: string;
  userId: string;
  status: string;
  createdAt: string;
  user?: {
    id: string;
    email: string;
  };
  asset?: {
    title: string;
  };
}

export interface Asset {
  id: string;
  title: string;
  type: string;
  size: number;
  url: string;
  version: number;
  uploadedBy: string;
  description: string | null;
  categoryId: string | null;
  subcategory: string | null;
  tags: string[];
  downloadsCount: number;
  githubUrl: string | null;
  status: string;
  isDownloadable: boolean;
  thumbnailUrl?: string | null;
  problemStatement?: string | null;
  solution?: string | null;
  createdAt: string;
  sharedWith?: SharedWithOrg[];
  downloadRequests?: DownloadRequest[];
}

export interface OrgUser {
  id: string;
  email: string;
  role: string;
}

export interface Organization {
  id: string;
  name: string;
  status: string;
  users?: OrgUser[];
}

export interface ShareItem {
  organizationId: string;
  userId: string | null;
}
