/**
 * @description Input parameters for DocusignCompositeEnvelopeBuilder invocable method
 * @author Paul Huliganga
 * @date 2026-02-25
 */
global class DocusignEnvelopeRequest {
    
    @InvocableVariable(
        label='Template IDs' 
        description='List of Docusign template IDs to combine' 
        required=true
    )
    global List<String> templateIds;
    
    @InvocableVariable(
        label='Salesforce Record ID' 
        description='ID of the Salesforce record to attach documents to' 
        required=true
    )
    global String recordId;
    
    @InvocableVariable(
        label='Language' 
        description='Language code (en or es)' 
        required=false
    )
    global String language;
    
    @InvocableVariable(
        label='Email Subject' 
        description='Subject line for envelope email' 
        required=false
    )
    global String emailSubject;

    @InvocableVariable(
        label='Authorization to Release Form Copies'
        description='Number of times to include the Authorization to Release Information template (1-3). Only used when that template is selected.'
        required=false
    )
    global Integer authReleaseFormCopies;

    @InvocableVariable(
        label='Recipient SMS Phone'
        description='Mobile phone number for SMS delivery when the primary recipient (Docusign Recipient #1) has no email address. Uses dfsle Recipient.withSmsDelivery(). A placeholder email is substituted automatically so the envelope can be created. Format: +15551234567 (E.164 preferred).'
        required=false
    )
    global String recipientSmsPhone;
}
