export type Sponsor = {
	login: string;
	name: string;
	avatarUrl: string;
	url: string;
};

export type Publication = {
	uri: string;
	name: string;
	description: string;
	href: string;
	image: string | null;
};

export type LatestPost = {
	uri: string; // the document's at-uri, used as the recommend-count target/key
	title: string;
	description: string;
	publishedAt: string | null;
	postUrl: string; // publication.url + document.path
	coverImage: string | null;
	publicationName: string;
	recommendCount: number;
};

export type CurrentlyReading = {
	title: string;
	authors: string;
	bookUrl: string;
	cover: string | null;
};

export type NowPlaying = {
	trackName: string;
	artists: string;
	releaseName: string | null;
	url: string | null;
	coverArt: string | null;
	// null when this is a live "now playing" status; set to the play's time when
	// we've fallen back to the most recently listened track instead.
	playedTime: string | null;
};

export type RecentPlay = {
	trackName: string;
	artists: string;
	releaseName: string | null;
	url: string | null;
	coverArt: string | null;
	playedTime: string | null;
};

export type FinishedBook = {
	title: string;
	authors: string;
	bookUrl: string;
	cover: string | null;
	finishedAt: string | null;
	startedAt: string | null;
	stars: number | null;
};
