import { injectable } from "inversify"; import { IJsonApiResponse, IJsonApiResource, IJsonApiRelationship, } from "../../interfaces"; export const blogPostType = "blog-post"; export const blogPostCategoryType = "category"; export interface IBlogPostAttributes { attribution: { name: string, title: string }[]; publication_date: string; excerpt: string; featured_image: { [key: string]: string, url: string, }; featured_product: { [key: string]: string, image_url: string, content: string, }; content: { text: string }[]; seo_metadata: { [key: string]: string, slug: string, title: string, description: string, }; title: string; } export type IBlogPostRelationships = { categories: IJsonApiRelationship }; export interface IBlogPostResource extends IJsonApiResource {} export interface IUserResponse extends IJsonApiResponse {} // export interface IUserSResponse extends IJsonApiCollection {} export interface IBlogPost { id: string; attribution: { name: string, title: string }[]; publicationDate: Date; excerpt: string; featuredImage: { [key: string]: string, url: string, }; featuredProduct: { [key: string]: string, image_url: string, content: string, }; image: string; content: string; metadata: { [key: string]: string, slug: string, title: string, description: string, }; title: string; categories: { id: string, name: string, slug: string }[]; } @injectable() export default class BlogPost implements IBlogPost { static relationships = { categories: "categories", }; id: string; attribution: { name: string, title: string }[]; publicationDate: Date; image: string; excerpt: string; featuredImage: { [key: string]: string, url: string, }; featuredProduct: { [key: string]: string, image_url: string, content: string, }; content: string; metadata: { [key: string]: string, slug: string, title: string, description: string, }; title: string; categories: { id: string, name: string, slug: string }[]; }