Application Load

IBlogPost

The physical TypeScript declaration from the Nuxt starter, with linked types and field comments.

IBlogPost

Blog preview or full article.

interfaces/orionplace/blog/IBlogApi.ts
TypeScript
export 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;
  };
}