package message

var (
	SupportedFromAddresses = []string{
		"deal-management@pingcap.com",
		"no-reply@tidbcloud.com",
		"resilience-team-no-reply@pingcap.com",
	}
)

type EmailTargetTenant struct {
	TenantID string `json:"tenant_id"`
	Role     string `json:"role"`
}

type EmailTargetUsers struct {
	Emails []string `json:"emails"`
}

type EmailTarget struct {
	Tenant *EmailTargetTenant `json:"tenant,omitempty"`
	Users  *EmailTargetUsers  `json:"users,omitempty"`
}

type EmailTemplate struct {
	ID        string            `json:"id"`
	Variables map[string]string `json:"variables"`
}

type EmailRecord struct {
	ID            uint64        `json:"id"`
	Name          string        `json:"name"` // Name of the email record to indentify or group it
	CreatedAt     int64         `json:"created_at"`
	Reason        string        `json:"reason"`
	Applicant     string        `json:"applicant"`
	ToTarget      *EmailTarget  `json:"to_target"`
	CCTarget      *EmailTarget  `json:"cc_target"`
	EmailTemplate EmailTemplate `json:"email_template"`
	FromAddress   string        `json:"from_address"`
	ToAddresses   []string      `json:"to_addresses"`
	CCAddresses   []string      `json:"cc_addresses"`
	BCCAddresses  []string      `json:"bcc_addresses"`
} // @name message.EmailRecord
