package models

import "go.mongodb.org/mongo-driver/v2/bson"

type ReportEmailStatus string

const (
	EmailPending           ReportEmailStatus = "PENDING"
	EmailReportGenerating  ReportEmailStatus = "EMAIL_REPORT_GENERATING"
	EmailReportRegenerated ReportEmailStatus = "REPORT_REGENERATED"
	EmailSending           ReportEmailStatus = "SENDING"
	EmailSent              ReportEmailStatus = "SENT"
	EmailFailed            ReportEmailStatus = "FAILED"
)

type ReportEamilQueue struct {
	ID                  bson.ObjectID     `bson:"_id,omitempty" json:"id"`
	DivisionId          string            `bson:"division_id" json:"division_id"`
	Path                string            `bson:"path" json:"path"`
	DeviceTypeId        int64             `bson:"device_type_id" json:"device_type_id"`
	ReportDate          int64             `bson:"report_date" json:"report_date"`
	ReportEndTime       int64             `bson:"report_end_time" json:"report_end_time"`
	ReportExtendedTime  int64             `bson:"report_extended_time" json:"report_extended_time"`
	Sent                bool              `bson:"sent" json:"sent"`
	SentAt              int64             `bson:"sent_at" json:"sent_at"`
	Status              ReportEmailStatus `bson:"status" json:"status"`
	ProcessingStartedAt int64             `bson:"processing_started_at" json:"processing_started_at"`
	RetryCount          int64             `bson:"retry_count" json:"retry_count"`
	ErrorMessage        string            `bson:"error_message" json:"error_message"`
	ErrorAt             int64             `bson:"error_at" json:"error_at"`
	TriggeredBy         string            `bson:"triggered_by" json:"triggered_by"`
	CreatedAt           int64             `bson:"created_at" json:"created_at"`
	UpdatedAt           int64             `bson:"updated_at" json:"updated_at"`
}
