CreateCampaign models

DataSet models for CreateCampaign.

These typed dataclass models represent the tables and columns within the DataSet parameters for the CreateCampaign HQ operation.

IMPORTANT: Update operations require a GET first to populate the original_record field. HQ uses the unchanged row for optimistic concurrency checking.

Usage:

from q2_sdk.hq.hq_api.backoffice import CreateCampaign

q2_marketing_message = CreateCampaign.Q2MarketingMessage(
    marketing_campaign_id=1,
    description="...",
    marketing_message_type_id=1,
)

q2v_marketing_ui_selection = CreateCampaign.Q2vMarketingUiSelection(
)

q2_marketing_campaign = CreateCampaign.Q2MarketingCampaign(
    campaign_name="...",
    start_date="...",
    end_date="...",
    enabled=True,
    marketing_campaign_type_id=1,
)

q2v_marketing_campaign_target = CreateCampaign.Q2vMarketingCampaignTarget(
    marketing_campaign_id=1,
    short_name="...",
    description="...",
    marketing_campaign_type_id=1,
    marketing_campaign_type_short_name="...",
)
class q2_sdk.hq.hq_api.backoffice.CreateCampaign_models.Q2MarketingMessage(marketing_message_id=-1, marketing_campaign_id=0, payload=None, target_url=None, in_new_window=None, alignment=None, content_type=None, height=None, width=None, description='', marketing_message_type_id=0, original_record=None)[source]

Bases: object

Represents a row in the Q2_MarketingMessage table.

marketing_message_id: int = -1
marketing_campaign_id: int = 0
payload: str | None = None
target_url: str | None = None
in_new_window: bool | None = None
alignment: str | None = None
content_type: str | None = None
height: int | None = None
width: int | None = None
description: str = ''
marketing_message_type_id: int = 0
original_record: Q2MarketingMessage | None = None
static get_columns()[source]

Returns [[HqColumnName, pythonAttrName], …] mapping.

Return type:

list[list[str]]

to_row_values()[source]

Returns column values in get_columns() order.

Return type:

list[Any]

classmethod from_hq_response(row_elem)[source]

Parse an lxml row element into this model with original_record set.

Return type:

Q2MarketingMessage

class q2_sdk.hq.hq_api.backoffice.CreateCampaign_models.Q2vMarketingUiSelection(enabled=None, marketing_campaign_id=None, ui_selection_id=None, short_name=None, description=None, is_uux=None, marketing_campaign_type_id=None, marketing_campaign_type_short_name=None, original_record=None)[source]

Bases: object

Represents a row in the Q2_vMarketingUiSelection table.

enabled: bool | None = None
marketing_campaign_id: int | None = None
ui_selection_id: int | None = None
short_name: str | None = None
description: str | None = None
is_uux: bool | None = None
marketing_campaign_type_id: int | None = None
marketing_campaign_type_short_name: str | None = None
original_record: Q2vMarketingUiSelection | None = None
static get_columns()[source]

Returns [[HqColumnName, pythonAttrName], …] mapping.

Return type:

list[list[str]]

to_row_values()[source]

Returns column values in get_columns() order.

Return type:

list[Any]

classmethod from_hq_response(row_elem)[source]

Parse an lxml row element into this model with original_record set.

Return type:

Q2vMarketingUiSelection

class q2_sdk.hq.hq_api.backoffice.CreateCampaign_models.Q2MarketingCampaign(marketing_campaign_id=-1, campaign_name='', start_date='', end_date='', enabled=False, marketing_campaign_type_id=0, zone_id=None, original_record=None)[source]

Bases: object

Represents a row in the Q2_MarketingCampaign table.

marketing_campaign_id: int = -1
campaign_name: str = ''
start_date: str = ''
end_date: str = ''
enabled: bool = False
marketing_campaign_type_id: int = 0
zone_id: int | None = None
original_record: Q2MarketingCampaign | None = None
static get_columns()[source]

Returns [[HqColumnName, pythonAttrName], …] mapping.

Return type:

list[list[str]]

to_row_values()[source]

Returns column values in get_columns() order.

Return type:

list[Any]

classmethod from_hq_response(row_elem)[source]

Parse an lxml row element into this model with original_record set.

Return type:

Q2MarketingCampaign

class q2_sdk.hq.hq_api.backoffice.CreateCampaign_models.Q2vMarketingCampaignTarget(enabled=None, marketing_campaign_id=0, ui_page_name_id=None, marketing_page_name_id=None, short_name='', description='', marketing_campaign_type_id=0, marketing_campaign_type_short_name='', original_record=None)[source]

Bases: object

Represents a row in the Q2_vMarketingCampaignTarget table.

enabled: bool | None = None
marketing_campaign_id: int = 0
ui_page_name_id: int | None = None
marketing_page_name_id: int | None = None
short_name: str = ''
description: str = ''
marketing_campaign_type_id: int = 0
marketing_campaign_type_short_name: str = ''
original_record: Q2vMarketingCampaignTarget | None = None
static get_columns()[source]

Returns [[HqColumnName, pythonAttrName], …] mapping.

Return type:

list[list[str]]

to_row_values()[source]

Returns column values in get_columns() order.

Return type:

list[Any]

classmethod from_hq_response(row_elem)[source]

Parse an lxml row element into this model with original_record set.

Return type:

Q2vMarketingCampaignTarget

q2_sdk.hq.hq_api.backoffice.CreateCampaign_models.build_mcv_dataset(q2_marketing_message=None, q2v_marketing_ui_selection=None, q2_marketing_campaign=None, q2v_marketing_campaign_target=None)[source]

Build the mcv DataSet parameter for CreateCampaign.

For update operations, each model instance should have its original_record set to the pre-modification state (from a prior GET call).

For add operations, set auto-increment ID fields to negative values.

Return type:

DataSetBuilder

Returns:

DataSetBuilder ready to pass as the ‘mcv’ parameter