package cvt

import (
	ubent "github.com/tidbcloud/devops/entity/userbehavior"
	ubmod "github.com/tidbcloud/devops/models/userbehavior"
)

func (cvt e2m) GTMSentEmail(e *ubent.GTMSentEmail) *ubmod.GTMSentEmail {
	if e == nil {
		return nil
	}
	return &ubmod.GTMSentEmail{
		ID:                 e.ID,
		CreatedAt:          e.CreatedAt,
		LeadID:             e.LeadID,
		TenantID:           e.TenantID,
		ToAddress:          e.ToAddress,
		Subject:            e.Subject,
		Body:               e.Body,
		CCAddresses:        e.CCAddresses,
		UseCaseProfile:     e.UseCaseProfile,
		CustomerReferences: e.CustomerReferences,
		ScheduledAt:        e.ScheduledAt,
		SentAt:             e.SentAt,
		Status:             e.Status,
		AttemptCount:       e.AttemptCount,
		LastAttemptAt:      e.LastAttemptAt,
		MessageID:          e.MessageID,
		ErrorMessage:       e.ErrorMessage,
	}
}

func (cvt m2e) GTMSentEmail(m *ubmod.GTMSentEmail) *ubent.GTMSentEmail {
	if m == nil {
		return nil
	}
	return &ubent.GTMSentEmail{
		ID:                 m.ID,
		CreatedAt:          m.CreatedAt,
		LeadID:             m.LeadID,
		TenantID:           m.TenantID,
		ToAddress:          m.ToAddress,
		Subject:            m.Subject,
		Body:               m.Body,
		CCAddresses:        m.CCAddresses,
		UseCaseProfile:     m.UseCaseProfile,
		CustomerReferences: m.CustomerReferences,
		ScheduledAt:        m.ScheduledAt,
		SentAt:             m.SentAt,
		Status:             m.Status,
		AttemptCount:       m.AttemptCount,
		LastAttemptAt:      m.LastAttemptAt,
		MessageID:          m.MessageID,
		ErrorMessage:       m.ErrorMessage,
	}
}

func (cvt m2e) GTMSentEmails(ms []ubmod.GTMSentEmail) []*ubent.GTMSentEmail {
	entities := make([]*ubent.GTMSentEmail, len(ms))
	for i, m := range ms {
		entities[i] = cvt.GTMSentEmail(&m)
	}
	return entities
}
