Type Alias WholesaleFeedEvent
WholesaleFeedEvent: {
event_id: string;
event_type:
| "product.created"
| "product.updated"
| "product.priced"
| "product.removed"
| "signal.created"
| "signal.updated"
| "signal.priced"
| "signal.removed"
| "wholesale_feed.bulk_change";
entity_type: "product"
| "signal"
| "feed";
entity_id: string;
created_at: string;
payload: {};
} & (
| {
event_type: "product.created";
entity_type?: "product";
payload?: {
product_id: string;
product?: Product;
canonical_product?: CanonicalProduct;
applies_to: CacheLayerScope;
};
}
| {
event_type: "product.updated";
entity_type?: "product";
payload?: {
product_id: string;
product?: Product1;
canonical_product?: CanonicalProduct;
changed_fields?: string[];
applies_to: CacheLayerScope;
};
}
| {
event_type: "product.priced";
entity_type?: "product";
payload?: {
product_id: string;
pricing_options?: PricingOption[];
canonical_pricing_options?: CanonicalPricingOption[];
previous_pricing_option_ids?: string[];
effective_at?: string;
retracts_event_id?: string;
applies_to: CacheLayerScope;
};
}
| {
event_type: "product.removed";
entity_type?: "product";
payload?: {
product_id: string;
removal_reason?: RemovalReason;
applies_to: CacheLayerScope;
};
}
| {
event_type: "signal.created";
entity_type?: "signal";
payload?: {
signal_agent_segment_id: string;
signal_ref?: SignalRef;
applies_to: CacheLayerScope;
signal: WholesaleSignalObject;
};
}
| {
event_type: "signal.updated";
entity_type?: "signal";
payload?: {
signal_agent_segment_id: string;
signal_ref?: SignalRef;
changed_fields?: string[];
applies_to: CacheLayerScope;
signal: WholesaleSignalObject;
};
}
| {
event_type: "signal.priced";
entity_type?: "signal";
payload?: {
signal_agent_segment_id: string;
signal_ref?: SignalRef;
pricing_options: VendorPricingOption[];
previous_pricing_option_ids?: string[];
effective_at?: string;
retracts_event_id?: string;
applies_to: CacheLayerScope;
};
}
| {
event_type: "signal.removed";
entity_type?: "signal";
payload?: {
signal_agent_segment_id: string;
signal_ref?: SignalRef;
removal_reason?: RemovalReason;
applies_to: CacheLayerScope;
};
}
| {
event_type: "wholesale_feed.bulk_change";
entity_type?: "feed";
payload?: {
summary: string;
affected_count: number;
recommendation?: "wholesale_resync";
applies_to: CacheLayerScope;
affected_entity_type: "product"
| "signal";
};
}
)
Type Declaration
-
event_id: string
-
event_type:
| "product.created"
| "product.updated"
| "product.priced"
| "product.removed"
| "signal.created"
| "signal.updated"
| "signal.priced"
| "signal.removed"
| "wholesale_feed.bulk_change"
-
entity_type: "product" | "signal" | "feed"
-
entity_id: string
-
created_at: string
-
payload: {}
- {
event_type: "product.created";
entity_type?: "product";
payload?: {
product_id: string;
product?: Product;
canonical_product?: CanonicalProduct;
applies_to: CacheLayerScope;
};
}
- {
event_type: "product.updated";
entity_type?: "product";
payload?: {
product_id: string;
product?: Product1;
canonical_product?: CanonicalProduct;
changed_fields?: string[];
applies_to: CacheLayerScope;
};
}
- {
event_type: "product.priced";
entity_type?: "product";
payload?: {
product_id: string;
pricing_options?: PricingOption[];
canonical_pricing_options?: CanonicalPricingOption[];
previous_pricing_option_ids?: string[];
effective_at?: string;
retracts_event_id?: string;
applies_to: CacheLayerScope;
};
}
- {
event_type: "product.removed";
entity_type?: "product";
payload?: {
product_id: string;
removal_reason?: RemovalReason;
applies_to: CacheLayerScope;
};
}
- {
event_type: "signal.created";
entity_type?: "signal";
payload?: {
signal_agent_segment_id: string;
signal_ref?: SignalRef;
applies_to: CacheLayerScope;
signal: WholesaleSignalObject;
};
}
- {
event_type: "signal.updated";
entity_type?: "signal";
payload?: {
signal_agent_segment_id: string;
signal_ref?: SignalRef;
changed_fields?: string[];
applies_to: CacheLayerScope;
signal: WholesaleSignalObject;
};
}
- {
event_type: "signal.priced";
entity_type?: "signal";
payload?: {
signal_agent_segment_id: string;
signal_ref?: SignalRef;
pricing_options: VendorPricingOption[];
previous_pricing_option_ids?: string[];
effective_at?: string;
retracts_event_id?: string;
applies_to: CacheLayerScope;
};
}
- {
event_type: "signal.removed";
entity_type?: "signal";
payload?: {
signal_agent_segment_id: string;
signal_ref?: SignalRef;
removal_reason?: RemovalReason;
applies_to: CacheLayerScope;
};
}
- {
event_type: "wholesale_feed.bulk_change";
entity_type?: "feed";
payload?: {
summary: string;
affected_count: number;
recommendation?: "wholesale_resync";
applies_to: CacheLayerScope;
affected_entity_type: "product" | "signal";
};
}
A single change event emitted by an AdCP agent's wholesale product feed or wholesale signals feed and delivered inside wholesale-feed-webhook payloads. Events are denormalized so consumers can update local state without polling list_products / get_signals. This is distinct from buyer-provided feeds managed by sync_catalogs. The discriminator is event_type; each branch defines the payload shape.