import { fetchPost } from "#api/posts";
import { IPaySite } from "#entities/paysites";
import {
  IComment,
  IPost,
  IPostAttachment,
  IPostPreview,
  IPostVideo,
} from "#entities/posts";
import { IArtistDetails } from "#entities/profiles";

export interface IPostOverviewProps {
  post: IPost;

  profile: IArtistDetails;
  revisions: Awaited<ReturnType<typeof fetchPost>>["props"]["revisions"];

  flagged: string | null;
  videos?: IPostVideo[];
  attachments?: IPostAttachment[];
  previews?: IPostPreview[];
  archives_enabled?: boolean;
  comments: Promise<IComment[]>;
  postTitle: string;
  paysite: IPaySite;
}

export interface IPostActionsProps extends Pick<IPostOverviewProps, "flagged"> {
  service: string;
  profileID: string;
  postID: string;
}
