// codeberg.org/mapleopentech/monorepo/cloud/maplefile-backend/internal/service/blockedemail/dto.go
package blockedemail

import (
	"time"

	"github.com/gocql/gocql"
)

// CreateBlockedEmailRequestDTO represents the request to add a blocked email
type CreateBlockedEmailRequestDTO struct {
	Email  string `json:"email"`
	Reason string `json:"reason,omitempty"`
}

// BlockedEmailResponseDTO represents a blocked email in the response
type BlockedEmailResponseDTO struct {
	UserID        gocql.UUID `json:"user_id"`
	BlockedEmail  string     `json:"blocked_email"`
	BlockedUserID gocql.UUID `json:"blocked_user_id,omitempty"`
	Reason        string     `json:"reason,omitempty"`
	CreatedAt     time.Time  `json:"created_at"`
}

// ListBlockedEmailsResponseDTO represents the response for listing blocked emails
type ListBlockedEmailsResponseDTO struct {
	BlockedEmails []*BlockedEmailResponseDTO `json:"blocked_emails"`
	Count         int                        `json:"count"`
}

// DeleteBlockedEmailResponseDTO represents the response for deleting a blocked email
type DeleteBlockedEmailResponseDTO struct {
	Success bool   `json:"success"`
	Message string `json:"message"`
}
