import type { Schema, Attribute } from '@strapi/strapi';

export interface SharedAdditionalPageBlocks extends Schema.Component {
  collectionName: 'components_shared_additional_page_blocks';
  info: {
    displayName: 'additional_page_blocks';
    description: '';
  };
  attributes: {
    show_investment_process: Attribute.Boolean &
      Attribute.Required &
      Attribute.DefaultTo<false>;
    show_cryptocurrency_for_investment: Attribute.Boolean &
      Attribute.Required &
      Attribute.DefaultTo<false>;
    show_faq: Attribute.Boolean &
      Attribute.Required &
      Attribute.DefaultTo<false>;
    show_partners_slider: Attribute.Boolean &
      Attribute.Required &
      Attribute.DefaultTo<false>;
    show_join_our_community: Attribute.Boolean &
      Attribute.Required &
      Attribute.DefaultTo<false>;
  };
}

export interface SharedAnchorLink extends Schema.Component {
  collectionName: 'components_shared_anchor_links';
  info: {
    displayName: 'linkComponent';
    description: '';
  };
  attributes: {
    label: Attribute.Text &
      Attribute.Required &
      Attribute.SetMinMaxLength<{
        minLength: 2;
      }>;
    href: Attribute.Text;
    anchorClass: Attribute.Text;
    targetType: Attribute.Enumeration<['_blank']>;
    parent_li_css_class: Attribute.Text;
  };
}

export interface SharedBtmSectionsBorders extends Schema.Component {
  collectionName: 'components_shared_btm_sections_borders';
  info: {
    displayName: 'btm_sections_borders';
    description: '';
  };
  attributes: {
    show_border_partner_section: Attribute.Boolean & Attribute.DefaultTo<false>;
    show_border_community_section: Attribute.Boolean &
      Attribute.DefaultTo<false>;
  };
}

export interface SharedButtonComponent extends Schema.Component {
  collectionName: 'components_shared_button_components';
  info: {
    displayName: 'buttonComponent';
    description: '';
  };
  attributes: {
    label: Attribute.Text & Attribute.Required;
    anchorClass: Attribute.Text;
    buttonType: Attribute.Enumeration<['button', 'submit']> &
      Attribute.Required;
  };
}

export interface SharedCryptoCoin extends Schema.Component {
  collectionName: 'components_shared_crypto_coins';
  info: {
    displayName: 'crypto_coin';
    description: '';
  };
  attributes: {
    coin_title: Attribute.Text & Attribute.Required;
    coin_img: Attribute.Media & Attribute.Required;
  };
}

export interface SharedFaqQAndASet extends Schema.Component {
  collectionName: 'components_shared_faq_q_and_a_sets';
  info: {
    displayName: 'faq_q_and_a_set';
    description: '';
  };
  attributes: {
    question: Attribute.RichText & Attribute.Required;
    answer: Attribute.RichText & Attribute.Required;
  };
}

export interface SharedHeaderColorFields extends Schema.Component {
  collectionName: 'components_shared_header_color_fields';
  info: {
    displayName: 'header_color_fields';
    description: '';
  };
  attributes: {
    menu_color: Attribute.String &
      Attribute.CustomField<'plugin::color-picker.color'>;
    menu_hover_color: Attribute.String &
      Attribute.CustomField<'plugin::color-picker.color'>;
    menu_active_border: Attribute.String &
      Attribute.CustomField<'plugin::color-picker.color'>;
    menu_active_hover_border: Attribute.String &
      Attribute.CustomField<'plugin::color-picker.color'>;
    fixed_header_bg: Attribute.String &
      Attribute.CustomField<'plugin::color-picker.color'>;
    fixed_header_menu_color: Attribute.String &
      Attribute.CustomField<'plugin::color-picker.color'>;
    fixed_header_menu_hover_color: Attribute.String &
      Attribute.CustomField<'plugin::color-picker.color'>;
    fixed_header_menu_active_border: Attribute.String &
      Attribute.CustomField<'plugin::color-picker.color'>;
    fixed_header_menu_active_hover_border: Attribute.String &
      Attribute.CustomField<'plugin::color-picker.color'>;
    login_btn_bg: Attribute.String &
      Attribute.CustomField<'plugin::color-picker.color'>;
    login_btn_border: Attribute.String &
      Attribute.CustomField<'plugin::color-picker.color'>;
    login_btn_font_color: Attribute.String &
      Attribute.CustomField<'plugin::color-picker.color'>;
    login_btn_hover_bg: Attribute.String &
      Attribute.CustomField<'plugin::color-picker.color'>;
    login_btn_hover_border: Attribute.String &
      Attribute.CustomField<'plugin::color-picker.color'>;
    login_btn_hover_font_color: Attribute.String &
      Attribute.CustomField<'plugin::color-picker.color'>;
    reg_btn_bg: Attribute.String &
      Attribute.CustomField<'plugin::color-picker.color'>;
    reg_btn_border: Attribute.String &
      Attribute.CustomField<'plugin::color-picker.color'>;
    reg_btn_font_color: Attribute.String &
      Attribute.CustomField<'plugin::color-picker.color'>;
    reg_btn_hover_bg: Attribute.String &
      Attribute.CustomField<'plugin::color-picker.color'>;
    reg_btn_hover_border: Attribute.String &
      Attribute.CustomField<'plugin::color-picker.color'>;
    reg_btn_hover_font_color: Attribute.String &
      Attribute.CustomField<'plugin::color-picker.color'>;
    login_crm_btn_bg: Attribute.String &
      Attribute.CustomField<'plugin::color-picker.color'>;
    login_crm_btn_border: Attribute.String &
      Attribute.CustomField<'plugin::color-picker.color'>;
    login_crm_btn_font_color: Attribute.String &
      Attribute.CustomField<'plugin::color-picker.color'>;
    login_crm_btn_hover_bg: Attribute.String &
      Attribute.CustomField<'plugin::color-picker.color'>;
    login_crm_btn_hover_border: Attribute.String &
      Attribute.CustomField<'plugin::color-picker.color'>;
    login_crm_btn_hover_font_color: Attribute.String &
      Attribute.CustomField<'plugin::color-picker.color'>;
    fix_head_login_btn_bg: Attribute.String &
      Attribute.CustomField<'plugin::color-picker.color'>;
    fix_head_login_btn_border: Attribute.String &
      Attribute.CustomField<'plugin::color-picker.color'>;
    fix_head_login_btn_font_color: Attribute.String &
      Attribute.CustomField<'plugin::color-picker.color'>;
    fix_head_login_btn_hover_bg: Attribute.String &
      Attribute.CustomField<'plugin::color-picker.color'>;
    fix_head_login_btn_hover_border: Attribute.String &
      Attribute.CustomField<'plugin::color-picker.color'>;
    fix_head_login_btn_hover_font_color: Attribute.String &
      Attribute.CustomField<'plugin::color-picker.color'>;
    fix_head_reg_btn_bg: Attribute.String &
      Attribute.CustomField<'plugin::color-picker.color'>;
    fix_head_reg_btn_border: Attribute.String &
      Attribute.CustomField<'plugin::color-picker.color'>;
    fix_head_reg_btn_font_color: Attribute.String &
      Attribute.CustomField<'plugin::color-picker.color'>;
    fix_head_reg_btn_hover_bg: Attribute.String &
      Attribute.CustomField<'plugin::color-picker.color'>;
    fix_head_reg_btn_hover_border: Attribute.String &
      Attribute.CustomField<'plugin::color-picker.color'>;
    fix_head_reg_btn_hover_font_color: Attribute.String &
      Attribute.CustomField<'plugin::color-picker.color'>;
    fix_head_login_crm_btn_bg: Attribute.String &
      Attribute.CustomField<'plugin::color-picker.color'>;
    fix_head_login_crm_btn_border: Attribute.String &
      Attribute.CustomField<'plugin::color-picker.color'>;
    fix_head_login_crm_btn_font_color: Attribute.String &
      Attribute.CustomField<'plugin::color-picker.color'>;
    fix_head_login_crm_btn_hover_bg: Attribute.String &
      Attribute.CustomField<'plugin::color-picker.color'>;
    fix_head_login_crm_btn_hover_border: Attribute.String &
      Attribute.CustomField<'plugin::color-picker.color'>;
    fix_head_login_crm_btn_hover_font_color: Attribute.String &
      Attribute.CustomField<'plugin::color-picker.color'>;
    user_icon_bg: Attribute.String &
      Attribute.CustomField<'plugin::color-picker.color'>;
    user_icon_text_color: Attribute.String &
      Attribute.CustomField<'plugin::color-picker.color'>;
    setting_icon_color: Attribute.String &
      Attribute.CustomField<'plugin::color-picker.color'>;
    setting_icon_bg: Attribute.String &
      Attribute.CustomField<'plugin::color-picker.color'>;
    dropdown_menu_bg: Attribute.String &
      Attribute.CustomField<'plugin::color-picker.color'>;
    dropdown_menu_color: Attribute.String &
      Attribute.CustomField<'plugin::color-picker.color'>;
    dropdown_menu_hover_color: Attribute.String &
      Attribute.CustomField<'plugin::color-picker.color'>;
    mobile_menu_bg: Attribute.String &
      Attribute.CustomField<'plugin::color-picker.color'>;
    mobile_menu_color: Attribute.String &
      Attribute.CustomField<'plugin::color-picker.color'>;
    mobile_menu_border_color: Attribute.String &
      Attribute.CustomField<'plugin::color-picker.color'>;
    menu_hamburger_color: Attribute.String &
      Attribute.CustomField<'plugin::color-picker.color'>;
    fixed_header_menu_hamburger_close_color: Attribute.String &
      Attribute.CustomField<'plugin::color-picker.color'>;
  };
}

export interface SharedImageComponent extends Schema.Component {
  collectionName: 'components_shared_image_components';
  info: {
    displayName: 'imageComponent';
    description: '';
  };
  attributes: {
    image_of: Attribute.Text & Attribute.Required;
    use_image_source_from: Attribute.Enumeration<['Upload', 'External']> &
      Attribute.Required;
    upload_image: Attribute.Media & Attribute.Required;
    external_url: Attribute.Text;
  };
}

export interface SharedInvestStep extends Schema.Component {
  collectionName: 'components_shared_invest_steps';
  info: {
    displayName: 'invest_step';
    description: '';
  };
  attributes: {
    step_title: Attribute.Text & Attribute.Required;
    step_img: Attribute.Media & Attribute.Required;
  };
}

export interface SharedLinkComponentWithIcon extends Schema.Component {
  collectionName: 'components_shared_link_component_with_icons';
  info: {
    displayName: 'linkComponentWithIcon';
    description: '';
  };
  attributes: {
    icon: Attribute.Media & Attribute.Required;
    linkDetails: Attribute.Component<'shared.anchor-link'>;
  };
}

export interface SharedMenuType extends Schema.Component {
  collectionName: 'components_shared_menu_types';
  info: {
    displayName: 'menuType';
    description: '';
  };
  attributes: {
    menu_type: Attribute.Enumeration<['Template-1', 'Template-2']> &
      Attribute.Required;
  };
}

export interface SharedMetaSocial extends Schema.Component {
  collectionName: 'components_shared_meta_socials';
  info: {
    displayName: 'metaSocial';
    icon: 'project-diagram';
    description: '';
  };
  attributes: {
    select_social_item: Attribute.Enumeration<
      ['email', 'linkedin', 'instagram', 'twitter', 'facebook']
    > &
      Attribute.Required;
    social_link: Attribute.Text & Attribute.Required;
    social_icon_image: Attribute.Media & Attribute.Required;
  };
}

export interface SharedSeo extends Schema.Component {
  collectionName: 'components_shared_seos';
  info: {
    displayName: 'seo';
    icon: 'search';
    description: '';
  };
  attributes: {
    metaTitle: Attribute.String &
      Attribute.Required &
      Attribute.SetMinMaxLength<{
        maxLength: 60;
      }>;
    metaDescription: Attribute.String &
      Attribute.Required &
      Attribute.SetMinMaxLength<{
        minLength: 50;
        maxLength: 160;
      }>;
    keywords: Attribute.Text;
    metaRobots: Attribute.String;
    metaViewport: Attribute.String;
  };
}

declare module '@strapi/types' {
  export module Shared {
    export interface Components {
      'shared.additional-page-blocks': SharedAdditionalPageBlocks;
      'shared.anchor-link': SharedAnchorLink;
      'shared.btm-sections-borders': SharedBtmSectionsBorders;
      'shared.button-component': SharedButtonComponent;
      'shared.crypto-coin': SharedCryptoCoin;
      'shared.faq-q-and-a-set': SharedFaqQAndASet;
      'shared.header-color-fields': SharedHeaderColorFields;
      'shared.image-component': SharedImageComponent;
      'shared.invest-step': SharedInvestStep;
      'shared.link-component-with-icon': SharedLinkComponentWithIcon;
      'shared.menu-type': SharedMenuType;
      'shared.meta-social': SharedMetaSocial;
      'shared.seo': SharedSeo;
    }
  }
}
