syntax = "proto3";

package com.wixpress.appservice.api;

import "google/protobuf/wrappers.proto";
import "wix/api/annotations.proto";
import "wix/api/validations.proto";

message PricingPlansFormConfiguration {
  reserved 1, 2;
  // **Plan preview** section configuration.
  PlanFormPreviewSection plan_preview = 3;
  // **Plan info** section configuration.
  PlanFormInfoSection info_section = 4;
  // **Settings** section configuration.
  PlanFormPlanSettingsSection settings_section = 5;
  // **Benefits** section configuration.
  PlanFormBenefitsSection benefits_section = 6;
  // **Pricing options** section configuration.
  // DEPRECATED: Use pricing_section and duration_section instead. Will be removed in future versions.
  PlanFormPricingAndDurationSection pricing_and_duration_section = 7 [deprecated = true, (.wix.api.field_deprecated) = {
    replaced_by: "pricing_section & duration_section";
    target_removal_date: "2025-11-30"
  }];
  // Custom sections for the form.
  repeated PlanFormCustomSection custom_sections = 8 [(wix.api.maxSize) = 99];
  // Order in which sections will be rendered. Can include default section IDs or custom section component IDs.
  // Visible sections that don't exist in this array are displayed below others in default oder.
  repeated PlanFormSection section_order = 9 [(wix.api.maxSize) = 99];
  // Custom plan form metadata. 
  PlanFormTypeMetadata metadata = 10;

  reserved 11;

  // **Page permissions** section configuration.
  PlanFormPagePermissionsSection page_permissions = 12;
  // Initial plan data for form defaults.
  PlanFormInitialValue initial_plan_value = 13;
  // Unique custom form name.
  string form_name = 14 [(wix.api.minLength) = 1, (wix.api.maxLength) = 100];

  // **Pricing** section configuration.
  PlanFormPricingSection pricing_section = 15;
  // **Duration** section configuration. 
  PlanFormDurationSection duration_section = 16;

  // **Custom pricing rules** Functions based pricing rules section configuration.
  PlanFormCustomPricingRulesSection custom_pricing_rules_section = 17;
  // **Start date** functions based start date rules section configuration.
  PlanFormStartDateRulesSection start_date_rules_section = 18;

  message PlanFormPreviewSection {
    // Whether to hide the **Preview** section.
    bool hide = 1;

    reserved 2;

    // Preview card title.
    TextWithTooltip title = 3;
    // Preview card subtitle.
    TextWithSuffix subtitle = 4;
    // Placeholders for previewed plan.
    PreviewCardPlaceholders placeholders = 5;
    // Stick **Preview** section to the right while scrolling. As a result, all other sections will be narrower.
    google.protobuf.BoolValue is_sticky = 6;

    message PreviewCardPlaceholders {
      // Placeholder plan name for preview.
      string name = 1 [(wix.api.translatable) = {
        type: SHORT_TEXT,
        grouping: ""
      }];
    };
  }

  message PlanFormInfoSection {
    // Whether to hide the **Info** section. If `true`, remaining fields are ignored.
    bool hide = 1;
    // Tooltip title.
    TextWithTooltip title = 2;
    // Tooltip subtitle.
    TextWithSuffix subtitle = 3;
    // Plan name input configuration.
    InputWithPlaceholder name = 4;
    // Plan tagline input configuration.
    InputWithPlaceholder tagline = 5;
    // Cover image configuration.
    CoverImageConfiguration cover_image = 6;
    // Plan perks configuration.
    PerksConfiguration perks = 7;

    message CoverImageConfiguration {
      // Whether to hide the cover image input.
      bool hide = 1;
      // Cover image input label.
      TextWithTooltip label = 2;
    }

    message PerksConfiguration {
      // Whether to hide the **Perks** subsection.
      bool hide = 1;
      // **Perks** subsection title.
      TextWithTooltip title = 2;
      // Perks input placeholder.
      string placeholder = 3 [(wix.api.translatable) = {
        type: SHORT_TEXT
        grouping: ""
      }];
    }
  }

  message PlanFormPlanSettingsSection {
    // Whether to hide the **Advanced settings** section.
    bool hide = 1;
    // Section title configuration.
    TextWithTooltip title = 2;
    // Section subtitle configuration.
    TextWithSuffix subtitle = 3;
    // Configuration for "Limit to 1 purchase per person" plan setting.
    PlanSettingsRowConfiguration single_purchase = 4;
    // Configuration for "Allow plan cancellation" plan setting.
    PlanSettingsRowConfiguration allow_cancellation = 5;
    // Configuration for "Let people set start date" plan setting.
    PlanSettingsRowConfiguration custom_start_date = 6;
    // Configuration for "Add a policy" plan setting.
    TermsAndConditionsConfiguration terms_and_conditions = 7;
    // Configuration for "Collect additional info" plan setting.
    PlanSettingsRowConfiguration custom_forms = 8;
    // Configuration for "Customize a Thank You page" plan setting.
    ThankYouPageConfiguration thank_you_page = 9;

    message PlanSettingsRowConfiguration {
      // Whether to hide the row.  
      bool hide = 1;
      // Row title.
      TextWithTooltip title = 2;
      // Row subtitle.
      TextWithTooltip subtitle = 3;
    }

    message TermsAndConditionsConfiguration {
      // Whether to hide the row.  
      bool hide = 1;
      // Row title.
      TextWithTooltip title = 2;
      // Row subtitle.
      TextWithTooltip subtitle = 3;
      // "Plan policies" modal configuration.
      TermsModalConfiguration modal = 4;
      message TermsModalConfiguration {
        // Modal title.
        string title = 1 [(wix.api.translatable) = {
          type: SHORT_TEXT,
          grouping: ""
        }];   
        // Modal subtitle.
        string subtitle = 2 [(wix.api.translatable) = {
          type: SHORT_TEXT,
          grouping: ""
        }];   
        // Save button text.
        string primary_button_text = 3 [(wix.api.translatable) = {
          type: SHORT_TEXT,
          grouping: ""
        }];   
        // Cancel button text.
        string secondary_button_text = 4 [(wix.api.translatable) = {
          type: SHORT_TEXT,
          grouping: ""
        }];
        // Terms and conditions input configuration.
        InputWithPlaceholder input = 5;
        // Policy agreement checkbox input configuration.
        CheckboxConfiguration checkbox = 6;
        // Terms and conditions preview configuration.
        PreviewConfiguration preview = 7;
        // Modal footer text.
        string footer = 8 [(wix.api.translatable) = {
          type: SHORT_TEXT,
          grouping: ""
        }];

        message CheckboxConfiguration {
          // Policy agreement checkbox input label.
          string label = 1 [(wix.api.translatable) = {
            type: SHORT_TEXT,
            grouping: ""
          }];
          // Policy checkbox toggle configuration.
          TextWithTooltip accept_required_toggle = 2;
          // Checked by default toggle configuration.
          TextWithTooltip accepted_by_default_toggle = 3;
        }

        message PreviewConfiguration {
          // Preview card title.
          string title = 1 [(wix.api.translatable) = {
            type: SHORT_TEXT,
            grouping: ""
          }];
          // Preview card subtitle.
          string subtitle = 2 [(wix.api.translatable) = {
            type: SHORT_TEXT,
            grouping: ""
          }];
          // Label for checkbox in preview.
          string checkbox_label = 3 [(wix.api.translatable) = {
            type: SHORT_TEXT,
            grouping: ""
          }];
          // Text for **Buy now** in preview.
          string button_text = 4 [(wix.api.translatable) = {
            type: SHORT_TEXT,
            grouping: ""
          }];
        }
      }
    }

    message ThankYouPageConfiguration {
      // Whether to hide the row.  
      bool hide = 1;
      // Row title.
      TextWithTooltip title = 2;
      // Row subtitle.
      TextWithTooltip subtitle = 3;
      // "\Thank you page modal configuration.
      ThankYouPageModalConfiguration modal = 4;

      message ThankYouPageModalConfiguration {
        // Modal title.
        string title = 1 [(wix.api.translatable) = {
          type: SHORT_TEXT,
          grouping: ""
        }];
        // Modal subtitle.
        TextWithSuffix subtitle = 2;
        // Save button text.
        string primary_button_text = 3 [(wix.api.translatable) = {
          type: SHORT_TEXT,
          grouping: ""
        }];
        // Cancel button text.
        string secondary_button_text = 4 [(wix.api.translatable) = {
          type: SHORT_TEXT,
          grouping: ""
        }];
        // Reset default button text.
        string reset_button_text = 5 [(wix.api.translatable) = {
          type: SHORT_TEXT,
          grouping: ""
        }];
        // Thank you page title input configuration.
        ThankYouPageInputConfig title_input = 6;
        // Thank you page content input configuration.
        ThankYouPageInputConfig message_input = 7;
        // Thank you page button text input configuration.
        ThankYouPageInputConfig button_text_input = 8;
        // Thank you page button action field configuration.
        ThankYouPageRedirectsConfiguration redirects = 9;
        // Thank you page preview configuration.
        ThankYouPagePreviewConfiguration preview = 10;

        message ThankYouPageRedirectsConfiguration {
          // Whether to hide redirects.  
          bool hide = 1;
          // Redirects field label.
          TextWithTooltip label = 2;
          // Home Page option label.
          string home_page_option = 3 [(wix.api.translatable) = {
            type: SHORT_TEXT,
            grouping: ""
          }];
          // Other Page option label.
          string redirect_url_option = 4 [(wix.api.translatable) = {
            type: SHORT_TEXT,
            grouping: ""
          }];
        }

        message ThankYouPagePreviewConfiguration {
          // Preview card title.
          string title = 1 [(wix.api.translatable) = {
            type: SHORT_TEXT,
            grouping: ""
          }];
          // Preview card subtitle.
          string subtitle = 2 [(wix.api.translatable) = {
            type: SHORT_TEXT,
            grouping: ""
          }];
        }

        message ThankYouPageInputConfig {
          // Whether to hide input.  
          bool hide = 1;
          // Label config.
          TextWithTooltip label = 2;
        }
      }
    }
  }

  message PlanFormBenefitsSection {
    // Hide **Benefits** section.  
    bool hide = 1;
    // **Benefits** section title.
    TextWithTooltip title = 2;
    // **Benefits** section subtitle.
    TextWithSuffix subtitle = 3;
    // Suffix link configuration. Rendered at the right side of section header.
    LinkSuffix suffix = 4;
    // Hide specific benefits from the section.
    repeated string hidden_benefits = 5 [(wix.api.maxSize) = 99];
  }

  message PlanFormPricingAndDurationSection {
    // Whether to hide **Pricing and Duration** section.  
    bool hide = 1;
    // Section title.
    TextWithTooltip title = 2;
    // Section subtitle.
    TextWithSuffix subtitle = 3;
    // Free pricing option configuration.
    FreeOptionConfiguration free_pricing_option = 4;
    // One-time payment pricing option configuration.
    OneTimeOptionConfiguration one_time_option = 5;
    // Recurring pricing option configuration.
    RecurringOptionConfiguration recurring_option = 6;
    // Order in which pricing options should be displayed.
    repeated PlanFormPricingOption pricing_option_order = 7 [(wix.api.maxSize) = 99];

    message FreeOptionConfiguration {
      // Whether to hide the **Free** option.  
      bool hide = 1;
      // Option title.
      string title = 2 [(wix.api.translatable) = {
        type: SHORT_TEXT
        grouping: ""
      }];
      // Option subtitle.
      string subtitle = 3 [(wix.api.translatable) = {
        type: SHORT_TEXT
        grouping: ""
      }];
      // Plan duration dropdown configuration.
      DurationInputConfiguration duration = 4;
      // Custom duration period dropdown configuration.
      InputConfiguration custom_duration_period = 5;
      // Custom  duration input configuration.
      InputConfiguration custom_duration_input = 6;

      reserved 7;
    }

    message OneTimeOptionConfiguration {
      // Whether to hide the One-time payment option.  
      bool hide = 1;
      // Option title.
      string title = 2 [(wix.api.translatable) = {
        type: SHORT_TEXT
        grouping: ""
      }];
      // Option subtitle.
      string subtitle = 3 [(wix.api.translatable) = {
        type: SHORT_TEXT
        grouping: ""
      }];
      // Plan duration dropdown configuration.
      DurationInputConfiguration duration = 4;
      // Custom duration period dropdown configuration.
      InputConfiguration custom_duration_period = 5;
      // Custom  duration input configuration.
      InputConfiguration custom_duration_input = 6;
      // Price input configuration.
      InputWithPlaceholder price = 7;
      // Setup fee field configuration.
      SetupFeeConfiguration setup_fee = 8;

      reserved 9;
    }

    message RecurringOptionConfiguration {
      // Whether to hide the "recurring" option.  
      bool hide = 1;
      // Option title.
      string title = 2 [(wix.api.translatable) = {
        type: SHORT_TEXT
        grouping: ""
      }];
      // Option subtitle.
      string subtitle = 3 [(wix.api.translatable) = {
        type: SHORT_TEXT
        grouping: ""
      }];
      // Plan duration dropdown configuration.
      DurationInputConfiguration duration = 4;
      // Price input configuration.
      InputWithPlaceholder price = 5;
      // Setup fee field configuration.
      SetupFeeConfiguration setup_fee = 6;
      // Free trial field configuration.
      FreeTrialConfiguration free_trial = 7;
      // Frequency dropdown configuration.
      InputConfiguration frequency = 8;
      // Custom frequency input configuration.
      InputConfiguration custom_frequency = 9;
      
      reserved 10;

      message FreeTrialConfiguration {
        // Whether to hide the **Free trial** toggle.  
        bool hide = 1;
        // Free trial toggle label.
        TextWithTooltip label = 2;
        // Free trial duration dropdown configuration.
        InputConfiguration duration = 3;
      }
    }

    message DurationInputConfiguration {
      // Duration dropdown label.
      TextWithTooltip label = 1;
      // Duration dropdown placeholder.
      string placeholder = 2 [(wix.api.translatable) = {
        type: SHORT_TEXT
        grouping: ""
      }];
      // Labels for duration dropdown options.
      DurationRenameOptions rename_options = 3;

      message DurationRenameOptions {
        // Text for "Forever" duration option.
        string forever = 1 [(wix.api.translatable) = {
          type: SHORT_TEXT
          grouping: ""
        }];
        // Text for "Custom" duration option.
        string custom = 2 [(wix.api.translatable) = {
          type: SHORT_TEXT
          grouping: ""
        }];
      }
    }

    message SetupFeeConfiguration {
      // Hide **Setup fee** toggle.  
      bool hide = 1;
      // Setup fee toggle label.
      TextWithTooltip label = 2;
      // Setup fee amount input configuration.
      InputWithPlaceholder amount = 3;
      // Setup fee name input configuration.
      InputWithPlaceholder name = 4;
    }

    message InputConfiguration {
      // Input label.
      TextWithTooltip label = 1;
    }

    enum PlanFormPricingOption {
      UNKNOWN_OPTION = 0 [(wix.api.enum_maturity) = NOT_IMPLEMENTED, (wix.api.enum_exposure) = PRIVATE];
      FREE = 1;
      ONE_TIME = 2;
      RECURRING = 3;
    }
  }

  message PlanFormPricingSection {
     // Whether to hide **Pricing** section.  
    bool hide = 1;
    // Section title.
    TextWithTooltip title = 2;
    // Section subtitle.
    TextWithSuffix subtitle = 3;
    // Free pricing type configuration.
    FreePricingTypeConfiguration free_pricing_type = 4;
    // One-time payment pricing type configuration.
    OneTimePricingTypeConfiguration one_time_type = 5;
    // Recurring pricing type configuration.
    RecurringPricingTypeConfiguration recurring_type = 6;
    // Order in which pricing types should be displayed.
    repeated PlanFormPricingType pricing_type_order = 7 [(wix.api.maxSize) = 99];

    message FreePricingTypeConfiguration {
      // Whether to hide the **Free** type.  
      bool hide = 1;
      // Type title.
      string title = 2 [(.wix.api.maxLength) = 40, (wix.api.translatable) = {
        type: SHORT_TEXT
        grouping: ""
      }];
      // Type subtitle.
      string subtitle = 3 [(.wix.api.maxLength) = 60, (wix.api.translatable) = {
        type: SHORT_TEXT
        grouping: ""
      }];
    }

    message OneTimePricingTypeConfiguration {
      // Whether to hide the **One-time payment** type.  
      bool hide = 1;
      // Type title.
      string title = 2 [(.wix.api.maxLength) = 40, (wix.api.translatable) = {
        type: SHORT_TEXT
        grouping: ""
      }];
      // Type subtitle.
      string subtitle = 3 [(.wix.api.maxLength) = 60, (wix.api.translatable) = {
        type: SHORT_TEXT
        grouping: ""
      }];
      // Price input configuration.
      InputWithPlaceholder price = 4;
      // Setup fee field configuration.
      SetupFeeConfiguration setup_fee = 5;
    }

    message RecurringPricingTypeConfiguration {
      // Whether to hide the **Recurring** type.  
      bool hide = 1;
      // Type title.
      string title = 2 [(.wix.api.maxLength) = 40, (wix.api.translatable) = {
        type: SHORT_TEXT
        grouping: ""
      }];
      // Type subtitle.
      string subtitle = 3 [(.wix.api.maxLength) = 60, (wix.api.translatable) = {
        type: SHORT_TEXT
        grouping: ""
      }];
      // Price input configuration.
      InputWithPlaceholder price = 4;
      // Setup fee field configuration.
      SetupFeeConfiguration setup_fee = 5; 
      // Free trial field configuration.
      FreeTrialConfiguration free_trial = 6;
      // Frequency dropdown configuration.
      InputConfiguration frequency = 7;
      // Custom frequency input configuration.
      InputConfiguration custom_frequency = 8;

      message FreeTrialConfiguration {
        // Whether to hide the **Free trial** toggle.  
        bool hide = 1;
        // Free trial toggle label.
        TextWithTooltip label = 2;
        // Free trial duration dropdown configuration.
        InputConfiguration duration = 3;
      }
    }

    message SetupFeeConfiguration {
      // Hide **Setup fee** toggle.  
      bool hide = 1;
      // Setup fee toggle label.
      TextWithTooltip label = 2;
      // Setup fee amount input configuration.
      InputWithPlaceholder amount = 3;
      // Setup fee name input configuration.
      InputWithPlaceholder name = 4;
    }

    message InputConfiguration {
      // Input label.
      TextWithTooltip label = 1;
    }

    enum PlanFormPricingType {
      UNKNOWN_OPTION = 0 [(wix.api.enum_maturity) = NOT_IMPLEMENTED, (wix.api.enum_exposure) = PRIVATE];
      FREE = 1;
      ONE_TIME = 2;
      RECURRING = 3;
    }
  }

  message PlanFormDurationSection {
    // Whether to hide **Duration** section.  
    bool hide = 1;
    // Section title.
    TextWithTooltip title = 2;
    // Section subtitle.
    TextWithSuffix subtitle = 3;
    // Plan duration dropdown configuration.
    DurationInputConfiguration duration = 4;
    // Custom duration period dropdown configuration - only for **One-time** & **Free** plan types.
    InputConfiguration custom_duration_period = 5;
    // Custom duration input configuration - only for **One-time** & **Free** plan types.
    InputConfiguration custom_duration_input = 6;

    message DurationInputConfiguration {
      // Duration dropdown label.
      TextWithTooltip label = 1;
      // Duration dropdown placeholder.
      string placeholder = 2 [(.wix.api.maxLength) = 16, (wix.api.translatable) = {
        type: SHORT_TEXT
        grouping: ""
      }];
      // Labels for duration dropdown options.
      DurationRenameOptions rename_options = 3;

      message DurationRenameOptions {
        // Text for "Forever" duration option.
        string forever = 1 [(.wix.api.maxLength) = 16, (wix.api.translatable) = {
          type: SHORT_TEXT
          grouping: ""
        }];
        // Text for "Custom" duration option.
        string custom = 2 [(.wix.api.maxLength) = 16, (wix.api.translatable) = {
          type: SHORT_TEXT
          grouping: ""
        }];
      }
    }

    message InputConfiguration {
      // Input label.
      TextWithTooltip label = 1;
    }
  }

  message PlanFormCustomSection {
    // ID of dashboard extension component.
    // Extensions should have the following container ID: `fb869315-532f-4057-9049-e316f94e192f`
    string component_id = 1 [(wix.api.format) = GUID];
  }

  message PlanFormSection {
    oneof section {
      // Extension component ID.
      string component_id = 1;
      // Default section name.
      PlanFormDefaultSection section_name = 2;
    }

    reserved 3;

    enum PlanFormDefaultSection {
      UNKNWON_PLAN_FORM_SECTION = 0 [(wix.api.enum_maturity) = NOT_IMPLEMENTED, (wix.api.enum_exposure) = PRIVATE];
      INFO = 1;
      BENEFITS = 2;
      PAGE_PERMISSIONS = 3;
      PRICING_AND_DURATION = 4 [deprecated = true];
      ADVANCED_SETTINGS = 5;
      PRICING = 6; 
      DURATION = 7; 
      CUSTOM_PRICING_RULES = 8;
      START_DATE_RULES = 9;
    }
  }

  message PlanFormTypeMetadata {
    // Configuration name.
    string title = 1 [(wix.api.translatable) = {
      type: SHORT_TEXT,
      grouping: ""
    }];
    // Plan type subtitle. Used in type choice modal.
    string subtitle = 2 [(wix.api.translatable) = {
      type: SHORT_TEXT,
      grouping: ""
    }];
    // Plan type description. Used in type choice modal.
    string description = 3 [(wix.api.translatable) = {
      type: SHORT_TEXT,
      grouping: ""
    }];
    // Plan type illustration. Used in type choice modal.
    Illustration illustration = 4;
    // Your business manager module ID.
    string module_id = 5;

    message Illustration {
      oneof illustration {
        // Custom exported component ID to be rendered as an illustration.
        string component_id = 1 [(wix.api.format) = GUID];
        // 96x96px image. Used in type choice modal.
        string src = 2;
      }
    }
  }

  message PlanFormInitialValue {
    // Plan name.
    google.protobuf.StringValue name = 1;
    // Plan description.
    google.protobuf.StringValue description = 2;
    // What is included with this plan.
    PerkValues perks = 3;
    // Plan price, payment schedule, and expiration.
    PlanPricing pricing = 4;
    // Whether the plan is public.
    google.protobuf.BoolValue public = 5;
    // Number of times the same buyer can purchase the plan.
    //
    // Supported values:  
    // - `null | 0`: No limitation.
    // - `1`: Limit of one purchase per buyer.
    google.protobuf.Int32Value max_purchases_per_buyer = 6;
    // Whether the buyer can start the plan at a future date.
    google.protobuf.BoolValue allow_future_start_date = 7;
    // Whether the buyer is allowed to cancel their plan.
    google.protobuf.BoolValue buyer_can_cancel = 8;
    // Any terms and conditions that apply to the plan. This information will be displayed during checkout.
    google.protobuf.StringValue terms_and_conditions = 9 [(wix.api.maxLength) = 3000];
    // Additional plan data.
    map<string, string> client_data = 10;

    message PerkValues {
      // List of perks.
      repeated string values = 1 [(wix.api.maxSize) = 99];
    }

    message PlanPricing {
      // Amount for a single payment.
      PlanPriceData price = 1;

      // Type of payment schedule and its details.
      oneof pricing_model {
        // Plan has recurring payments.
        PricingRecurring subscription = 2;
        // One time payment. Plan is valid for the specified duration.
        PlanDuration single_payment_for_duration = 3;
        // One time payment. Plan is valid until it is canceled.
        bool single_payment_unlimited = 4;
      }

      message PlanPriceData {
        // Monetary amount. Decimal string with a period as a decimal separator. For example, `3.99`.
        string value = 1;
        // Currency code. Must be valid ISO 4217 currency code. For example, USD.
        string currency = 2;
      }

      message PricingRecurring {
        // Length of one payment cycle.
        PlanDuration cycle_duration = 1;
        // Amount of payment cycles this subscription is valid for.
        //
        // `0` indicates unlimited or until it is canceled.
        int32 cycle_count = 2;
      }

      message PlanDuration {
        // Amount of a duration `unit` in a single payment cycle.
        int32 count = 1;
        // Unit of time for the cycle duration.
        PlanPeriodUnit unit = 2;

        // Pedefined basic time unit.
        enum PlanPeriodUnit {
          UNDEFINED = 0 [(wix.api.enum_maturity) = NOT_IMPLEMENTED, (wix.api.enum_exposure) = PRIVATE];
          DAY = 1;
          WEEK = 2;
          MONTH = 3;
          YEAR = 4;
        }
      }
    }
  }

  message PlanFormPagePermissionsSection {
    // Whether to hide the **Page permissions** section.  
    bool hide = 1;
  }

  message PlanFormCustomPricingRulesSection {
    // Whether to hide the **Custom pricing rules** section.
    bool hide = 1;
  }

  message PlanFormStartDateRulesSection {
    // Whether to hide the **Start date** section.
    bool hide = 1;
  }
}

message TextWithSuffix {
  // Whether to hide the element.  
  bool hide = 1;
  // Displayed text.
  string text = 2 [(wix.api.translatable) = {
    type: SHORT_TEXT,
    grouping: ""
  }];
  oneof suffix {
    // Tooltip to show next to the text.
    TooltipSuffix suffix_tooltip = 3;
    // Link to show next to the text.
    LinkSuffix suffix_link = 4;
  }
}

message TextWithTooltip {
  // Displayed text.
  string text = 1 [(wix.api.translatable) = {
    type: SHORT_TEXT,
    grouping: ""
  }];
  // Tooltip to show next to text.
  TooltipSuffix tooltip = 2;
}

message TooltipSuffix {
  // Tooltip content.
  string text = 1 [(wix.api.translatable) = {
    type: SHORT_TEXT
    grouping: ""
  }];
}

message LinkSuffix {
  // Whether to hide the element.  
  bool hide = 1;
  // Link text.
  string text = 2 [(wix.api.translatable) = {
    type: SHORT_TEXT
    grouping: ""
  }];
  // External URL to open on link click.
  string url = 3 [(wix.api.translatable) = {
    type: SHORT_TEXT
    grouping: ""
  }];

  // Text that is passed to click BI event as `referral_info` field.
  string referral_info = 4;
}

message InputWithPlaceholder {
  // Input label.
  TextWithTooltip label = 1;
  // Input placeholder.
  string placeholder = 2 [(wix.api.translatable) = {
    type: SHORT_TEXT
    grouping: ""
  }];
}
