smtpbiz-exporter/internal/models/smtp.go

101 lines
6.1 KiB
Go
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

package models
type UserDataResponse struct {
HSent int64 `json:"hsent"` // Количество писем, отправленных за последний час
HLimit int64 `json:"hlimit"` // Лимит на количество писем, которые можно отправить за час
DSent int64 `json:"dsent"` // Количество писем, отправленных за текущий день
DLimit int64 `json:"dlimit"` // Лимит на количество писем, которые можно отправить за день
Quota int64 `json:"quota"` // Оставшееся количество писем, которые можно отправить в рамках текущего тарифа
Validate int64 `json:"validate"` // Лимит на количество проверок наверное емейл адресов
Tariff string `json:"tarif"` // Название текущего тарифа
ExpiresQuota string `json:"expires_quota"` // Дата окончания квоты
TariffQuota int64 `json:"tarif_quota"` // Общая квота на отправку писем, предоставляемая по тарифу
Balance float64 `json:"balance"` // Баланс bucks
TariffPrice float64 `json:"tarif_price"` // Тарифный план, в месяц
}
type UserStatsResponse struct {
Sent int64 `json:"sent"` // Общее количество отправленных писем
Open int64 `json:"open"` // Количество открытых писем
Spam int64 `json:"spam"` // Количество писем, попавших в спам
Bounce int64 `json:"bounce"` // Количество писем, которые вернулись как недоставленные
Unsub int64 `json:"unsub"` // Количество отписавшихся пользователей
Tracking TrackingStats `json:"tracking"`
}
type TrackingStats struct {
Device DeviceStats `json:"device"` // Статистика по устройствам
Activity ActivityStats `json:"activity"` // Активность пользователей в разное время суток
Country map[string]int64 `json:"country"` // Статистика по странам (код страны и количество взаимодействий)
}
type DeviceStats struct {
Computer int64 `json:"computer"` // Количество взаимодействий с компьютеров
Tablet int64 `json:"tablet"` // Количество взаимодействий с планшетов
Mobile int64 `json:"mobile"` // Количество взаимодействий с мобильных устройств
}
type ActivityStats struct {
Morning int64 `json:"morning"` // Взаимодействия утром
Day int64 `json:"day"` // Взаимодействия днем
Evening int64 `json:"evening"` // Взаимодействия вечером
Night int64 `json:"night"` // Взаимодействия ночью
}
type DomainsResponse []DomainInfo
type DomainInfo struct {
Domain string `json:"domain"` // Имя домена
SPF bool `json:"spf"` // SPF запись
DKIM bool `json:"dkim"` // DKIM запись
CNAME bool `json:"cname"` // CNAME запись
IsModeration bool `json:"isModeration"` // Статус модерации
IsActive bool `json:"isActive"` // Статус активности домена
}
// один из возможных ответов - {"result":false}
// стоит чекать на длину массив
type IpsResponse []IPInfo
type IPInfo struct {
Sent int64 `json:"sent"` // Количество отправленных писем
Bounce int64 `json:"bounce"` // Количество возвратов
IP string `json:"ip"` // IP адрес
IsInstall bool `json:"isInstall"` // Установлен ли IP
IsActive bool `json:"isActive"` // Активен ли IP
ExpiresDate string `json:"expiresDate"` // Дата окончания
CreateDate string `json:"createDate"` // Дата создания
}
type LogMsgResponse struct {
Data []LogMsgData `json:"data"`
TotalPages int64 `json:"totalPages"` // Всего страниц
TotalCount int64 `json:"totalCount"` // Всего записей
PerPagesCount int64 `json:"perPagesCount"` // Количество записей на странице
}
type LogMsgData struct {
MailFrom string `json:"mailfrom"` // От кого отправлено письмо
MailTo string `json:"mailto"` // Кому отправлено письмо
Status string `json:"status"` // Статус письма
IsOpen bool `json:"is_open"` // Было ли письмо открыто
Subject string `json:"subject"` // Тема письма
IsUnsubscribe bool `json:"is_unsubscribe"` // Является ли письмо отпиской
Tag string `json:"tag"` // Тег сообщения
Response string `json:"response"` // Ответ от сервера
MessageID string `json:"messageid"` // Уникальный идентификатор сообщения
Date string `json:"date"` // Дата и время отправки сообщения
}
type UnsubscribeResponse struct {
Data []UnsubscribeData `json:"data"` // Список данных отписки
TotalPages int64 `json:"totalPages"` // Всего страниц
TotalCount int64 `json:"totalCount"` // Всего записей
}
type UnsubscribeData struct {
MailTo string `json:"mailto"` // Адрес электронной почты
Reason string `json:"reason"` // Причина отписки
Date string `json:"date"` // Дата события
}