/** * SmartyMeet Dev03 API REST * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) * * The version of the OpenAPI document: 1.0.1 * Contact: developer@smartymeet.com * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). * https://openapi-generator.tech * Do not edit the class manually. */ import type { EmailAttributesSchemaAttachmentsInner } from './EmailAttributesSchemaAttachmentsInner'; import type { ResourceTimestampsSchema } from './ResourceTimestampsSchema'; /** * * @export * @interface EmailAttributesSchema */ export interface EmailAttributesSchema { /** * * @type {string} * @memberof EmailAttributesSchema */ name?: string; /** * Lifecycle status. draft = composing, scheduled = workflow owns the send, sent = outbound delivered to SES, received = inbound accepted by broker (replaces the legacy `sent` value used for inbound), suppressed = SES bounce/complaint, archived = user explicitly archived (kept indefinitely, hidden from inbox view), trashed = user moved to Trash bin (default soft DELETE; recoverable, candidate for periodic permanent purge), failed = internal error, pending = transitional. * @type {EmailAttributesSchemaStatusEnum} * @memberof EmailAttributesSchema */ status?: EmailAttributesSchemaStatusEnum; /** * Whether the email was received from an external sender (inbound, populated by the broker) or composed by the tenant/system and sent out (outbound). Populated at create time; never changes. * @type {EmailAttributesSchemaDirectionEnum} * @memberof EmailAttributesSchema */ direction?: EmailAttributesSchemaDirectionEnum; /** * * @type {string} * @memberof EmailAttributesSchema */ emailFrom?: string; /** * * @type {string} * @memberof EmailAttributesSchema */ emailTo?: string; /** * CC recipients. Each entry is an RFC 5322 address string. * @type {Array} * @memberof EmailAttributesSchema */ emailCc?: Array; /** * BCC recipients. Each entry is an RFC 5322 address string. * @type {Array} * @memberof EmailAttributesSchema */ emailBcc?: Array; /** * Multilingual subject keyed by IETF BCP 47 locale code (e.g. `en-US`, `pl-PL`). The DAL writes per-locale entries from the AI analyze + translate steps; the UI picks the right key based on `conversationLanguageCode`. * @type {{ [key: string]: string; }} * @memberof EmailAttributesSchema */ subject?: { [key: string]: string; }; /** * Multilingual HTML body keyed by IETF BCP 47 locale code. Same shape as `subject`. Body values are HTML strings; plain-text fallback is derived on send. * @type {{ [key: string]: string; }} * @memberof EmailAttributesSchema */ body?: { [key: string]: string; }; /** * * @type {string} * @memberof EmailAttributesSchema */ shortCode?: string; /** * * @type {string} * @memberof EmailAttributesSchema */ source?: string; /** * * @type {boolean} * @memberof EmailAttributesSchema */ isReply?: boolean; /** * * @type {boolean} * @memberof EmailAttributesSchema */ isSendable?: boolean; /** * * @type {boolean} * @memberof EmailAttributesSchema */ isExternalSender?: boolean; /** * Attachments on the email. For user-uploaded attachments: frontend creates a File via POST /v1/files (which returns a presigned PUT URL), uploads to S3, then references the File here with `type: "files"` and the returned `url`/`fileId`. For system-generated attachments (job/persona/report PDFs) the eventbus / outbound path populates these automatically. * @type {Array} * @memberof EmailAttributesSchema */ attachments?: Array; /** * Denormalised copy of the related conversation's languageCode (e.g. `pl-PL`, `en-US`). Avoids an N+1 fetch when the list/detail view needs to pick the right locale for the multilingual subject/body dicts. Source of truth is the conversation row; read-only from the email's perspective. * @type {string} * @memberof EmailAttributesSchema */ conversationLanguageCode?: string; /** * Application-layer pointer to the email this one replies to. Used by the UI to render an 'in reply to' link in thread views. Set by the compose flow (frontend passes the parent on Reply) and by the broker when an inbound email matches an outbound via RFC 5322 In-Reply-To. Separate from meta.reference which carries the raw SMTP header chain. * @type {string} * @memberof EmailAttributesSchema */ parentEmailId?: string | null; /** * Denormalised user id of the sender for outbound emails (the boe workflow user, or the human composer). Frontend joins this against its local user cache to render avatar + display name without a per-row API call. Null on inbound mail. * @type {string} * @memberof EmailAttributesSchema */ fromUserId?: string | null; /** * Denormalised candidate id of the sender for inbound replies from a candidate in an active conversation. Frontend joins this against its local candidate cache to render initials and the candidate name. Null on outbound mail and on anonymous inbound that didn't match a candidate. * @type {string} * @memberof EmailAttributesSchema */ fromCandidateId?: string | null; /** * System-level spam verdict on this email. Set by the broker (or a future classifier) at inbound time; never reflects a single user's opinion. Distinct from `status=suppressed`, which is SES reporting we cannot deliver on OUTBOUND. Frontend's Spam folder unions (my states where isSpam=true) with (emails where isSystemSpam=true). * @type {boolean} * @memberof EmailAttributesSchema */ isSystemSpam?: boolean | null; /** * Foreign key to the Schedule resource driving this email's send. Populated by the wait:process workflow action right after it creates the Schedule. Null when no delayed send is pending (drafts, already-sent rows, inbound mail). To cancel the scheduled send, call DELETE /v1/schedules/{scheduleId} - the email eventbus handler listens for SCHEDULE_CANCELLED and reverts the row back to draft automatically. * @type {string} * @memberof EmailAttributesSchema */ scheduleId?: string | null; /** * Denormalised copy of the owning Schedule's `fireAt` timestamp (ISO 8601). The scheduled-send banner reads this directly so the UI never has to round-trip to /v1/schedules just to render 'Send scheduled for X'. Source of truth is the Schedule; this field stays stable because Schedule.fireAt is immutable post-create. * @type {string} * @memberof EmailAttributesSchema */ scheduledFireAt?: string | null; /** * * @type {string} * @memberof EmailAttributesSchema */ ttl?: string; /** * Legacy field from the retired CRUD-scheduler path. Kept as read-only metadata on old rows. New emails do not populate it; scheduling is owned by the workflow engine's wait:process action via the Schedule resource. * @type {string} * @memberof EmailAttributesSchema * @deprecated */ sendScheduleDate?: string; /** * * @type {{ [key: string]: any; }} * @memberof EmailAttributesSchema */ meta?: { [key: string]: any; }; /** * * @type {ResourceTimestampsSchema} * @memberof EmailAttributesSchema */ timestamps?: ResourceTimestampsSchema; } /** * @export */ export declare const EmailAttributesSchemaStatusEnum: { readonly Draft: "draft"; readonly Scheduled: "scheduled"; readonly Sent: "sent"; readonly Received: "received"; readonly Suppressed: "suppressed"; readonly Archived: "archived"; readonly Trashed: "trashed"; readonly Failed: "failed"; readonly Pending: "pending"; }; export type EmailAttributesSchemaStatusEnum = typeof EmailAttributesSchemaStatusEnum[keyof typeof EmailAttributesSchemaStatusEnum]; /** * @export */ export declare const EmailAttributesSchemaDirectionEnum: { readonly Inbound: "inbound"; readonly Outbound: "outbound"; }; export type EmailAttributesSchemaDirectionEnum = typeof EmailAttributesSchemaDirectionEnum[keyof typeof EmailAttributesSchemaDirectionEnum]; /** * Check if a given object implements the EmailAttributesSchema interface. */ export declare function instanceOfEmailAttributesSchema(value: object): value is EmailAttributesSchema; export declare function EmailAttributesSchemaFromJSON(json: any): EmailAttributesSchema; export declare function EmailAttributesSchemaFromJSONTyped(json: any, ignoreDiscriminator: boolean): EmailAttributesSchema; export declare function EmailAttributesSchemaToJSON(json: any): EmailAttributesSchema; export declare function EmailAttributesSchemaToJSONTyped(value?: EmailAttributesSchema | null, ignoreDiscriminator?: boolean): any; //# sourceMappingURL=EmailAttributesSchema.d.ts.map