/**
 * @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='Requires Draft Mode'
        description='When true, the envelope is created in draft (created) status instead of being sent immediately. Used when the primary recipient has no email address and SMS delivery must be configured manually in the Docusign Sender View. The result will contain a senderViewUrl the user should open to complete sending.'
        required=false
    )
    global Boolean requiresDraftMode;
}
