/** * The category interface */ export interface Category { id: number; order: number; name: string; color: string | null; } /** * The author interface */ export interface Author { id: number; name: string; title: string; order: number; photo: string; intro: string; } /** * The permissions interface */ export interface Permissions { favorite: boolean; rate: boolean; } /** * The tag interface */ export interface Tag { id: number; name: string; } /** * The Article interface for the Redux store. */ export interface StoreArticle { id: string; category: Category; slug: string; title: string; metaDescription: string; summary: string; overallScoreText: string; image: string; author: Author; publishDate: Array; avgRating: number; tags: Array; permissions: Permissions; result: string; snpRelevance: number; myRating: number; } /** * The Article interface for the API server. */ export interface APIArticle { id?: number; category: Category; slug: string; title: string; meta_description: string; summary: string; overall_score_text: string; image: string; author: Author; publish_date: Array; avg_rating: number; tags: Array; permissions: Permissions; result: string; snp_relevance: number; my_rating: number; } export interface CompleteAPIArticle { id?: number; category: { id: number; order: number; name: string; color: string | null; }; slug: string; title: string; meta_description: string; summary: string; overall_score_text: string; image: string; author: { id: number; name: string; title: string; order: number; photo: string; intro: string; }; reviewer: { id: number; name: string; title: string; order: number; photo: string; intro: string; } | null; medical_reviewer: { id: number; name: string; title: string; order: number; photo: string; intro: string; } | null; publish_date: Array; avg_rating: number; tags: Array<{ id: number; name: string; }>; permissions: { favorite: boolean; rate: boolean; }; result: string; snp_relevance: number; my_rating: number; }