smtpbiz-exporter/internal/models/smtp.go

89 lines
5.6 KiB
Go
Raw Normal View History

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"` // Дата и время отправки сообщения
}