Data Classes Examples

This section provides examples of how to use the data classes defined in the sage_meta package and how they arrange values.

Category

The Category class represents a category with an ID and a name.

Example:

from sage_meta.models import Category

# Creating a Category instance
category = Category(id="1", name="Technology")
print(category.id)  # Output: 1
print(category.name)  # Output: Technology

Insight

The Insight class represents an insight with various attributes such as ID, name, period, values, title, and description.

Example:

from sage_meta.models import Insight

# Creating an Insight instance
insight = Insight(
    id="insight1",
    name="Audience Insight",
    period="day",
    values=[{"metric": "reach", "value": "1000"}],
    title="Daily Audience Insight",
    description="Insights about daily audience reach."
)
print(insight.id)  # Output: insight1
print(insight.values)  # Output: [{'metric': 'reach', 'value': '1000'}]

Comment

The Comment class represents a comment with attributes such as ID, text, username, like count, timestamp, and additional data.

Example:

from sage_meta.models import Comment

# Creating a Comment instance
comment = Comment(
    id="comment1",
    text="Nice post!",
    username="user123",
    like_count=5,
    timestamp="2023-07-28T12:34:56Z",
    additional_data={"location": "New York"}
)
print(comment.text)  # Output: Nice post!
print(comment.additional_data)  # Output: {'location': 'New York'}

Media

The Media class represents media with attributes such as ID, caption, media type, media URLs, timestamp, like count, comments count, comments, and additional data.

Example:

from sage_meta.models import Media, Comment

# Creating a Media instance with comments
comment1 = Comment(id="comment1", text="Great photo!", username="user123")
comment2 = Comment(id="comment2", text="Love it!", username="user456")
media = Media(
    id="media1",
    caption="Beautiful sunset",
    media_type="image",
    media_url=["http://example.com/sunset.jpg"],
    timestamp="2023-07-28T18:00:00Z",
    like_count=100,
    comments_count=2,
    comments=[comment1, comment2],
    additional_data={"location": "Beach"}
)
print(media.caption)  # Output: Beautiful sunset
print(media.comments[0].text)  # Output: Great photo!

InstagramAccount

The InstagramAccount class represents an Instagram account with various attributes such as ID, username, follower counts, media, insights, stories, and additional data.

Example:

from sage_meta.models import InstagramAccount, Media, Insight, Story

# Creating an InstagramAccount instance
media_item = Media(id="media1", caption="A post", media_type="image", media_url=["http://example.com/image.jpg"])
insight = Insight(id="insight1", name="Profile Views", period="day", values=[{"metric": "views", "value": "100"}])
story = Story(id="story1", media_type="image", media_url="http://example.com/story.jpg")

instagram_account = InstagramAccount(
    id="account1",
    username="my_account",
    follows_count=300,
    followers_count=1500,
    media_count=50,
    profile_picture_url="http://example.com/profile.jpg",
    website="http://example.com",
    biography="This is my bio.",
    media=[media_item],
    insights=[insight],
    stories=[story],
    additional_data={"business_account": True}
)
print(instagram_account.username)  # Output: my_account
print(instagram_account.media[0].caption)  # Output: A post

FacebookPageData

The FacebookPageData class represents a Facebook page with attributes such as ID, name, category, access token, category list, tasks, Instagram business account, and additional data.

Example:

from sage_meta.models import FacebookPageData, Category, InstagramAccount

# Creating a FacebookPageData instance
category = Category(id="cat1", name="Tech")
instagram_account = InstagramAccount(id="account1", username="my_instagram", follows_count=300, followers_count=1500, media_count=50)

facebook_page = FacebookPageData(
    id="page1",
    name="My Facebook Page",
    category="Business",
    access_token="my_access_token",
    category_list=[category],
    tasks=["MANAGE"],
    instagram_business_account=instagram_account,
    additional_data={"verified": True}
)
print(facebook_page.name)  # Output: My Facebook Page
print(facebook_page.instagram_business_account.username)  # Output: my_instagram

UserData

The UserData class represents user data with attributes such as ID, name, email, pages, and additional data.

Example:

from sage_meta.models import UserData, FacebookPageData

# Creating a UserData instance
facebook_page = FacebookPageData(id="page1", name="My Facebook Page", category="Business", access_token="my_access_token")

user_data = UserData(
    id="user1",
    name="John Doe",
    email="john.doe@example.com",
    pages=[facebook_page],
    additional_data={"premium_member": True}
)
print(user_data.name)  # Output: John Doe
print(user_data.pages[0].name)  # Output: My Facebook Page