Domain Event Catalog
Generated from bot.infra.event_payloads; do not edit this file by hand.
Regenerate with PYTHONPATH=backend python -m bot.infra.event_catalog.
Subscribers continue to receive (event_name, dict) payloads. The models below define the flat JSON-compatible dict emitted by core code.
account.email_linked
Заголовок раздела «account.email_linked»Payload model: AccountEmailLinkedPayload
Emitters: backend/bot/app/web/webapp/account.py
Core reactions: CoreEventReactions.on_account_email_linked
| Field | Type | Default |
|---|---|---|
user_id |
int |
required |
email |
str |
required |
first_link |
bool |
required |
telegram_id |
`int | None` |
username |
`str | None` |
first_name |
`str | None` |
account.merged
Заголовок раздела «account.merged»Payload model: AccountMergedPayload
Emitters: backend/db/dal/user_merge_dal.py
Core reactions: CoreEventReactions.on_account_merged
| Field | Type | Default |
|---|---|---|
source_user_id |
int |
required |
target_user_id |
int |
required |
reason |
str |
required |
send_user_email |
bool |
required |
source_panel_user_uuid |
`str | None` |
target_panel_user_uuid |
`str | None` |
email |
`str | None` |
telegram_id |
`int | None` |
username |
`str | None` |
first_name |
`str | None` |
language |
`str | None` |
final_end_date |
`datetime | None` |
account.telegram_linked
Заголовок раздела «account.telegram_linked»Payload model: AccountTelegramLinkedPayload
Emitters: backend/bot/app/web/webapp/account.py
Core reactions: CoreEventReactions.on_account_telegram_linked
| Field | Type | Default |
|---|---|---|
user_id |
int |
required |
telegram_id |
`int | None` |
first_link |
bool |
required |
email |
`str | None` |
username |
`str | None` |
first_name |
`str | None` |
bot.started
Заголовок раздела «bot.started»Payload model: BotStartedPayload
Emitters: backend/bot/services/behavior_events.py
Core reactions: none
| Field | Type | Default |
|---|---|---|
user_id |
int |
required |
returning |
bool |
required |
source |
`‘direct’ | ‘referral’ |
start_param |
`str | None` |
panel.webhook_received
Заголовок раздела «panel.webhook_received»Payload model: PanelWebhookReceivedPayload
Emitters: backend/bot/services/panel_webhook_service.py
Core reactions: none
| Field | Type | Default |
|---|---|---|
event |
str |
required |
panel_user_uuid |
`str | None` |
telegram_id |
`int | str |
payment.canceled
Заголовок раздела «payment.canceled»Payload model: PaymentCanceledPayload
Emitters: backend/bot/app/web/webapp/billing.py, backend/bot/payment_providers/shared/webhooks.py, backend/bot/payment_providers/yookassa.py, backend/bot/services/yookassa_reconciliation_worker.py, backend/main_worker.py
Core reactions: CoreEventReactions.on_payment_canceled
| Field | Type | Default |
|---|---|---|
user_id |
int |
required |
payment_db_id |
`int | None` |
provider |
`str | None` |
provider_payment_id |
`str | None` |
status |
`str | None` |
message_key |
`str | None` |
payment.succeeded
Заголовок раздела «payment.succeeded»Payload model: PaymentSucceededPayload
Emitters: backend/bot/infra/payment_events.py, backend/bot/payment_providers/shared/success.py, backend/bot/payment_providers/yookassa.py
Core reactions: CoreEventReactions.on_payment_succeeded
| Field | Type | Default |
|---|---|---|
user_id |
int |
required |
payment_db_id |
int |
required |
provider |
str |
required |
notification_provider |
str |
required |
amount |
float |
required |
currency |
str |
required |
sale_mode |
str |
required |
tariff_key |
`str | None` |
months |
`int | None` |
traffic_gb |
`float | None` |
purchased_hwid_devices |
`int | None` |
promo_code_id |
`int | None` |
base_amount |
`float | None` |
discount_amount |
`float | None` |
end_date |
`datetime | None` |
is_auto_renew |
bool |
required |
plans.viewed
Заголовок раздела «plans.viewed»Payload model: PlansViewedPayload
Emitters: backend/bot/app/web/webapp/billing_contracts.py, backend/bot/app/web/webapp/billing_options.py, backend/bot/app/web/webapp/payloads.py, backend/bot/services/behavior_events.py
Core reactions: none
| Field | Type | Default |
|---|---|---|
user_id |
int |
required |
source |
`‘webapp’ | ‘bot’` |
plans_count |
int |
required |
tariff_key |
`str | None` |
promo_code.applied
Заголовок раздела «promo_code.applied»Payload model: PromoCodeAppliedPayload
Emitters: backend/bot/services/promo_code_service.py
Core reactions: CoreEventReactions.on_promo_code_applied
| Field | Type | Default |
|---|---|---|
user_id |
int |
required |
code |
str |
required |
bonus_days |
int |
required |
new_end_date |
`datetime | None` |
referral.bonus_granted
Заголовок раздела «referral.bonus_granted»Payload model: ReferralBonusGrantedPayload
Emitters: backend/bot/app/web/webapp/auth.py, backend/bot/handlers/user/start.py, backend/bot/payment_providers/shared/success.py, backend/bot/payment_providers/yookassa.py, backend/bot/services/referral_service.py
Core reactions: CoreEventReactions.on_referral_bonus_granted
| Field | Type | Default |
|---|---|---|
referee_user_id |
int |
required |
referee_bonus_days |
`int | None` |
referee_new_end_date |
`datetime | None` |
inviter_bonus_applied |
bool |
required |
inviter_user_id |
`int | None` |
inviter_bonus_days |
`int | None` |
inviter_bonus_end_date |
`datetime | None` |
inviter_bonus_kind |
`‘extended’ | ‘new_sub’ |
referee_name |
`str | None` |
payment_db_id |
`int | None` |
purchased_subscription_months |
`int | None` |
tariff_key |
`str | None` |
one_bonus_per_referee |
`bool | None` |
reason |
`‘payment’ | ‘welcome’` |
subscription.created
Заголовок раздела «subscription.created»Payload model: SubscriptionCreatedPayload
Emitters: backend/bot/payment_providers/shared/success.py, backend/bot/payment_providers/yookassa.py
Core reactions: none
| Field | Type | Default |
|---|---|---|
user_id |
int |
required |
subscription_id |
`int | None` |
tariff_key |
`str | None` |
end_date |
`datetime | None` |
provider |
`str | None` |
months |
`int | None` |
payment_db_id |
`int | None` |
subscription.expired
Заголовок раздела «subscription.expired»Payload model: SubscriptionExpiredPayload
Emitters: backend/bot/services/subscription_notification_worker.py
Core reactions: none
| Field | Type | Default |
|---|---|---|
user_id |
int |
required |
subscription_id |
`int | None` |
tariff_key |
`str | None` |
end_date |
`datetime | None` |
subscription.extended
Заголовок раздела «subscription.extended»Payload model: SubscriptionExtendedPayload
Emitters: backend/bot/payment_providers/shared/success.py, backend/bot/payment_providers/yookassa.py
Core reactions: none
| Field | Type | Default |
|---|---|---|
user_id |
int |
required |
subscription_id |
`int | None` |
tariff_key |
`str | None` |
end_date |
`datetime | None` |
provider |
`str | None` |
months |
`int | None` |
payment_db_id |
`int | None` |
subscription.lapsed
Заголовок раздела «subscription.lapsed»Payload model: SubscriptionLapsedPayload
Emitters: backend/bot/services/subscription_notification_worker.py
Core reactions: none
| Field | Type | Default |
|---|---|---|
user_id |
int |
required |
subscription_id |
`int | None` |
tariff_key |
`str | None` |
end_date |
`datetime | None` |
support.ticket_created
Заголовок раздела «support.ticket_created»Payload model: SupportTicketCreatedPayload
Emitters: backend/bot/services/support_service.py
Core reactions: none
| Field | Type | Default |
|---|---|---|
user_id |
int |
required |
ticket_id |
int |
required |
category |
str |
required |
priority |
str |
required |
trial.activated
Заголовок раздела «trial.activated»Payload model: TrialActivatedPayload
Emitters: backend/bot/services/subscription_service_impl/trial.py
Core reactions: CoreEventReactions.on_trial_activated
| Field | Type | Default |
|---|---|---|
user_id |
int |
required |
end_date |
`datetime | None` |
days |
int |
required |
traffic_gb |
`float | None` |
user.registered
Заголовок раздела «user.registered»Payload model: UserRegisteredPayload
Emitters: backend/db/dal/user_dal.py
Core reactions: CoreEventReactions.on_user_registered
| Field | Type | Default |
|---|---|---|
user_id |
int |
required |
telegram_id |
`int | None` |
username |
`str | None` |
first_name |
`str | None` |
email |
`str | None` |
language |
`str | None` |
referred_by_id |
`int | None` |
registered_via |
`‘telegram’ | ‘email’ |