// Generated by alef. Do not edit by hand.
@file:Suppress(
    "ktlint:standard:trailing-comma-on-call-site",
    "ktlint:standard:trailing-comma-on-declaration-site",
    "ktlint:standard:spacing-between-declarations-with-comments",
    "ktlint:standard:spacing-between-declarations-with-annotations",
    "ktlint:standard:when-entry-bracing",
    "ktlint:standard:blank-line-between-when-conditions",
    "ktlint:standard:blank-line-before-declaration",
    "ktlint:standard:chain-method-continuation",
    "ktlint:standard:annotation",
    "ktlint:standard:max-line-length",
    "ktlint:standard:no-semi",
    "ktlint:standard:statement-wrapping",
    "MaxLineLength",
    "TooManyFunctions",
    "FunctionParameterNaming",
    "LongParameterList",
    "CyclomaticComplexMethod",
    "LongMethod",
)

package dev.kreuzberg

/**
 * Email extraction result.
 *
 * Complete representation of an extracted email message (.eml or .msg)
 * including headers, body content, and attachments.
 */
data class EmailExtractionResult(
    /** Email subject line */
    val subject: String? = null,
    /** Sender email address */
    val fromEmail: String? = null,
    /** Primary recipient email addresses */
    val toEmails: List<String> = emptyList(),
    /** CC recipient email addresses */
    val ccEmails: List<String> = emptyList(),
    /** BCC recipient email addresses */
    val bccEmails: List<String> = emptyList(),
    /** Email date/timestamp */
    val date: String? = null,
    /** Message-ID header value */
    val messageId: String? = null,
    /** Plain text version of the email body */
    val plainText: String? = null,
    /** HTML version of the email body */
    val htmlContent: String? = null,
    /** Cleaned/processed text content. Aliased as `cleaned_text` for back-compat. */
    val content: String,
    /** List of email attachments */
    val attachments: List<EmailAttachment> = emptyList(),
    /** Additional email headers and metadata */
    val metadata: Map<String, String> = emptyMap(),
)
