ad_account_id = test_config.account_id
page_id = test_config.page_id
url = test_config.app_url

# _DOC open [ADACCOUNT_GET_PREVIEWS_MAIA_WITH_OBJECT_STORY_SPEC]
# _DOC vars [ad_account_id:s, page_id]
from facebookads.objects import AdAccount, AdPreview, AdCreative

link_data = LinkData()
link_data.update({
    LinkData.Field.link: url,
    LinkData.Field.message: "Message",
    LinkData.Field.name: "Name",
    LinkData.Field.caption: "Caption",
    LinkData.Field.description: "My description",
    LinkData.Field.call_to_action: {
        "type": "USE_APP",
        "value": {
            "link": url,
            "link_caption": "CTA caption",
        },
    },
})

story = ObjectStorySpec()
story.update({
    ObjectStorySpec.Field.link_data: link_data,
    ObjectStorySpec.Field.page_id: page_id,
})

creative = AdCreative()
creative.update({
image_hash = fixtures.create_image().get_hash()
app_id, app_store_url = fixtures.get_promotable_ios_app()

# _DOC oncall [pruno]
# _DOC open [ADCREATIVE_CREATE_MAIA]
# _DOC vars [ad_account_id:s, image_hash:s, app_store_url:s, page_id]
from facebookads.objects import AdCreative
from facebookads.specs import ObjectStorySpec, LinkData

link_data = LinkData()
link_data.update(
    {
        LinkData.Field.message: "Message",
        LinkData.Field.link: app_store_url,
        LinkData.Field.image_hash: image_hash,
        LinkData.Field.call_to_action: {
            "type": "INSTALL_MOBILE_APP",
            "value": {"link": app_store_url, "link_title": "Link title"},
        },
    }
)

story = ObjectStorySpec()
story.update({ObjectStorySpec.Field.page_id: page_id, ObjectStorySpec.Field.link_data: link_data})

creative = AdCreative(parent_id=ad_account_id)
creative[AdCreative.Field.object_story_spec] = story
creative.remote_create()
# _DOC close [ADCREATIVE_CREATE_MAIA]

creative.remote_delete()