Application Load
IBlogPost
The physical TypeScript declaration from the Nuxt starter, with linked types and field comments.
IBlogPostBlog preview or full article.
app/interfaces/orionplace/blog/IBlogApi.tsexport interface IBlogPost extends IBlogPostPreview {
// Writer ID, first name and last name.
writer: {
// Post ID used by the detail, comment and reading requests.
id: number;
// Value of first_name.
first_name: string;
// Value of last_name.
last_name: string;
};
// Named `EBlogAccessType` value in `int`, with localized `text`.
access_type: {
// Value of int.
int: EBlogAccessType;
// Value of text.
text: string;
};
// Named `EBlogPublishingState` value and localized label.
publishing_state: {
// Value of int.
int: EBlogPublishingState;
// Value of text.
text: string;
};
// Whether this requester can access the full article. This can be true in a
// preview list.
has_full_access: boolean;
// Whether this particular response includes the full article. It requires an
// ID request and full access.
is_full: boolean;
// Estimated article reading time in minutes.
read_time_min: number;
// Public category IDs attached directly to this post.
category_ids: number[];
// Preview images with ID, URL and display order; missing URLs are skipped.
preview_images: {
// Post ID used by the detail, comment and reading requests.
id: number;
// Value of image_url.
image_url: string;
// Value of display_order.
display_order: number;
}[];
// The same preview image URLs as a plain array.
preview_image_urls: string[];
// Stored approved-comment count.
c_comments: number;
// Publication record creation time.
date_created: IApiDateTime;
// Publication record update time.
date_updated: IApiDateTime;
// Localized title, slug, preview HTML and metadata. `post_view_text` is
// included only for a full response; preview access does not expose it.
locale: Record<
string,
{
// Optional value of post_title; it may be omitted.
post_title?: string;
// Optional value of post_slug; it may be omitted.
post_slug?: string;
// Optional value of post_preview_text; it may be omitted.
post_preview_text?: string;
// Optional value of meta_description; it may be omitted.
meta_description?: string;
// Optional value of meta_keywords; it may be omitted.
meta_keywords?: string;
// Optional value of post_view_text; it may be omitted.
post_view_text?: string;
}
>;
// Tariff IDs offered when full access is unavailable. Omitted when the
// requester has full access; availability to subscribe is checked separately.
premium_tariff_ids?: number[];
// Products linked to the requested post ID, including preview-only responses.
// Omitted in ordinary lists. Uses customer-visible product selection.
related_products?: IProduct[];
// Full-access images with ID, URL, display order and preview flag.
images?: {
// Post ID used by the detail, comment and reading requests.
id: number;
// Value of image_url.
image_url: string;
// Value of display_order.
display_order: number;
// Value of is_preview.
is_preview: boolean;
}[];
// Full-access videos with ID, video URL, preview URL and display order.
videos?: {
// Post ID used by the detail, comment and reading requests.
id: number;
// Value of video_url.
video_url: string | null;
// Value of preview_url.
preview_url: string | null;
// Value of display_order.
display_order: number;
}[];
// Full-response counters: categories, related posts, products, images, videos
// and comments. Counts do not embed those collections.
counts?: {
// Value of c_categories.
c_categories: number;
// Value of c_related_posts.
c_related_posts: number;
// Value of c_products.
c_products: number;
// Value of c_images.
c_images: number;
// Value of c_videos.
c_videos: number;
// Stored approved-comment count.
c_comments: number;
};
}