"""
Social Media Posts
Read social media posts posted by a profile (e.g. posts published by a Facebook page, LinkedIn organization, or Twitter profile).
"""

name = "social-media/posts"
version = "1.0.1"

"""
Get Profile's Posts
Retrieve a paginated list of posts from a social media profile.
"""
usecase GetProfilePosts safe {
  input {
    """
    Profile ID
    Identifier of a profile to retrieve posts from. May be optional with some providers.
    """
    profileId string
    """
    Before date
    Filter posts that have been created before the date in ISO 8601 date and time format.
    """
    beforeDate string
    """
    After date
    Filter posts that have been created after the date in ISO 8601 date and time format.
    """
    afterDate string
    """
    Page
    Pagination cursor (obtained from `previousPage` or `nextPage`).
    """
    page string
  } 

  result {
    """
    Previous page
    Previous page cursor.
    """
    previousPage string
    """
    Next page
    Next page cursor.
    """
    nextPage string
    """
    Posts
    List of posts ordered by creation date. Latest posts are on the top of the list.
    """
    posts [
      {
      """
      ID
      Identifier of the post.
      """
      id string
      """
      URL
      Permanent URL to the post.
      """
      url string
      """
      Created at
      Date and time the post was published at.
      """
      createdAt string
      """
      Text
      Text of the post.
      """
      text string
      """
      Attachments
      List of attachments.
      """
      attachments [
          {
            """
            Type
            Attachment type (e.g. image, video).
            """
            type string
            """
            URL
            Attachment URL.
            """
            url string

            """
            Preview URL
            Thumbnail or another preview of the attachment.
            """
            preview

            """
            Title
            Attachment title.
            """
            title string
            """
            Description
            Attachment description.
            """
            description string
            """
            Alternative text
            Alternative text of the attachment.
            """
            altText string
            """
            Duration
            Duration of the attached video.
            """
            duration number
            """
            Width
            Widht of the attached image.
            """
            width number
            """
            Height
            Height of the attached image.
            """
            height number
          }
        ]
      }
    ]
  }

  error {
    """
    Title
    A short, human-readable summary of the problem type.
    """
    title!

    """
    A human-readable explanation specific to this occurrence of the problem.
    """
    detail
  }
}