declare interface ApiRequestPageParams {
	pagination: {
		page: number;
		limit: number;
	};
	request_time?: number;
}

declare interface ApiArticleSearchParams extends ApiRequestPageParams{
	// 1级标签id
	tag_level_1_id?: number;
	// 2级标签id 没有则为0
	tag_level_2_id?: number;
	tags?: {
		level1: Id;
		level2: Id;
	}[];
	// 标题
	title?: string;
	time_flag?: number;
}

declare interface DataList<T> {
	pagination: {
		page: number;
		limit: number;
		total: number;
	}

	list: T[];
}

interface BaseArticleCategory {
	//标签id
	tag_id: number;
	//标签名称
	tag_name: string;
}

interface ArticleCategory extends BaseArticleCategory {
	sons: BaseArticleCategory[];
}

declare interface VideoInfo1 {
	id: number;
	title: string;
	cover: string;
	duration: number;
	width: number;
	height: number;
	play_url: string;
	description: string;
	tags: string[];
	create_time: number;
	checked?: boolean
}

interface BasicArticleInfo {
	id: number;
	title: string;
	summary: string;
	publish_time: string;
	media_name: string;
	column_name?: string;
	img_num?: number;
	content_word_count?: number;
	media_id: number;
	fanwen_column_id: number;
}

/**
 * 文章
 */
declare interface ListArticleItem extends BasicArticleInfo {
}

/**
 * 爬虫新闻
 */
declare interface ListCrawlerNewsItem extends BasicArticleInfo {
	cover: string;
	// 新闻来源
	data_source_name: string;
	// 内部文章关联id
	internal_article_id: number;
}
declare interface VideoSearchParams extends ApiRequestPageParams{
	// 标题
	title?: string;
	time_flag?: number;
}
declare interface VideoInfo {
	id: number;
	video_title: string;
	title: string;
	cover: string;
	oss_video_url: string;
	duration: number;
	article_id: number;
	status: number;
	publish_time?: number|string;
	ctime?: number|string;
}
// room live
declare interface LiveVideoInfo {
	id: number;
	title: string;
	video_id: number;
	video_title: string;
	cover: string;
	video_duration: number;
	video_oss_url: string;
	status: number;
	order_no: string;
	publish_time?: number|string;
	ctime?: number|string;
}

declare interface LiveState{
	id: number;
	live_start_time: number;
}
