import { PromotedObjectType } from './enum';
/**==============================================================================广告=======================================================================================*/
/**推广目标类型*/
export interface SysPromotedObjectDTO {
  promotedObjectType: PromotedObjectType;
}
/**oCPC/oCPM 优化转化行为配置*/
export interface DeepConversionBehaviorSpec {
  goal: string;
  bidAmount: number;
}
/**oCPC/oCPM 优化 ROI 配置*/
export interface DeepConversionWorthSpec {
  goal: string;
  expectedRoi: number;
}
/**oCPC/oCPM 强化 ROI 配置*/
export interface DeepConversionWorthAdvancedSpec {
  goal: string;
  expectedRoi: number;
}
/**oCPC/oCPM 深度优化内容*/
export interface DeepConversionSpec {
  deepConversionType: string;
  deepConversionBehaviorSpec: DeepConversionBehaviorSpec;
  deepConversionWorthSpec: DeepConversionWorthSpec;
  deepConversionWorthAdvancedSpec: DeepConversionWorthAdvancedSpec;
}
/**分版位组合出价系数设置*/
export interface SiteSetPackageStruct {
  siteSet: Array<string>;
  bidCoefficient: number;
  deepBidCoefficient: number;
}
/**分城市组合出价系数设置*/
export interface RegionGroupPackageStruct {
  regionList: Array<number>;
  bidCoefficient: number;
  deepBidCoefficient: number;
}

/**出价系数设置内容*/
export interface BidAdjustment {
  siteSetPackage: Array<SiteSetPackageStruct>;
  regionGroupPackage: Array<RegionGroupPackageStruct>;
}
/**年龄定向范围*/
export interface AgeStruct {
  min: number;
  max: number;
}
/**排除已转化用户定向*/
export interface ExcludedConvertedAudience {
  excludedDimension: string;
  conversionBehaviorList: Array<string>;
}
/**智能定向 —— 不可突破定向详细设置*/
export interface UnbreakableTargetingSetting {
  age: Array<AgeStruct>;
  gender: Array<string>;
  geoLocation: GeoLocations;
  userOs: Array<string>;
  appInstallStatus: Array<string>;
  excludedConvertedAudience: ExcludedConvertedAudience;
}

/**智能定向功能,功能灰度开放，如需使用可联系您的运营接口同学。*/
export interface SmartTargeting {
  smartTargetingVersion: number;
  smartTargetingSwitch: Boolean;
  startAudience: Array<number>;
  unbreakableTargeting: UnbreakableTargetingSetting;
}

/**广告参数*/
export interface SysAdgroupsDTO {
  adgroupName: string; //广告名称
  promotedObjectType: string; //推广目标类型
  beginDate: Date; //开始投放日期
  firstDayBeginTime: string; //首日开始投放时间
  endDate: Date; //结束投放日期
  billingEvent: string; //计费类型
  bidAmount: number; //广告出价
  optimizationGoal: string; //	广告优化目标类型
  timeSeries: string; //投放时间段
  automaticSiteEnabled: boolean; //是否开启自动版位功能
  siteSet: Set<string>; //投放版位集合
  dailyBudget: number; //广告组日预算
  sysPromotedObjectId: number; //推广目标 id
  sysPromotedObject: SysPromotedObjectDTO; //推广目标类型
  appAndroidChannelPackageId: number; //安卓应用渠道包 id
  sysTargetingId: number; //	定向 id，仅非朋友圈广告有效
  sysTargeting: SysTargetingDTO; //定向详细设置，存放所有定向条件
  sceneSpec: SceneTargetingForWrite; //场景定向
  flowOptimizationEnabled: boolean; //是否使用智能场景匹配
  configuredStatus: string; //客户设置的状态
  customizedCategory: string; //自定义分类
  dynamicAdSpec: DynamicAdSpec; //动态商品广告属性
  userActionSets: Array<UserActionSetStruct>; //用户行为数据源
  additionalUserActionSets: Array<UserActionSetStruct>;
  bidStrategy: string; //出价策略
  coldStartAudience: Array<number>; //扩量种子人群
  autoAudience: boolean; //是否使用系统优选
  expandEnabled: boolean; //是否使用自动扩量
  expandTargeting: Array<string>; //扩量不可突破定向
  deepConversionSpec: DeepConversionSpec; //oCPC/oCPM 深度优化内容
  deepOptimizationActionType: string; //oCPC/oCPM 深度优化方式配置
  poiList: Array<string>; //门店 id 列表
  conversionId: number; //转化 id
  deepConversionBehaviorBid: number; //深度优化行为的出价
  deepConversionWorthRate: BigDecimal; //深度优化价值的期望 ROI
  deepConversionWorthAdvancedRate: BigDecimal; //强化优化价值的期望 ROI
  bidMode: string; //出价方式
  bidAdjustment: BidAdjustment; //出价系数设置内容
  autoAcquisitionEnabled: boolean; //是否开启一键起量
  autoAcquisitionBudget: number; //一键起量探索预算
  creativeDisplayType: string; //创意展示类型
  autoDerivedCreativeEnabled: boolean; //是否开启自动衍生视频创意
  smartBidType: string; //出价类型
  marketingScene: string; //营销目标
  customAdgroupTag: Array<string>; //广告标签
  smartTargeting: SmartTargeting; //智能定向功能,功能灰度开放，如需使用可联系您的运营接口同学。
}
/**==============================================================================创意=======================================================================================*/

export interface AdcreativeCreativeElementsMp {
  image: string; //图片
  image2: string; //图片
  image3: string;
  title: string;
  description: string;
  corporate: AdcreativeCorporate;
  video: string;
  deepLinkType: string;
  linkNameType: LinkNameType;
  imageList: Array<string>;
  elementStory: Array<AdcreativeElementStoryArrayItem>;
  url: string;
  buttonText: string;
  bottomText: string;
  excitationText: string;
  countdownBegin: number;
  countdownExpiringTimestamp: number;
  countdownPrice: string;
  countdownTimeType: AdCreativeCountdownTimeType;
  label: Array<CreativeLabel>;
  productTags: Array<string>;
  logoDescription: string;
  logo: string;
  leftBottomTxt: string;
  animationEffect: string;
  phone: string;
  shortVideoStruct: ShortVideoStruct;
  longVideoStruct: numberVideoStruct;
  bannerContent: AdcreativeBannerContent;
  cardContent: AdcreativeCardContent;
  videoPopupButton: AdcreativeVideoPopupButton;
  buttonUrl: string;
  brand: AdCreativeBrand;
  caption: string;
  labelledImg: AdcreativeLabelledImg;
  fullScreenImage: string;
  zipUrl: string;
  endPage: AdCreativeEndPage; //视频结束页
  headLine: string;
  shopImageStruct: AdCreativeShopImageStruct;
  chosenButton: ChosenButton;
  livingDescStruct: AdCreativeLivingDescStruct;
  leftButton: string;
  rightButton: string;
  leftCanvas: string;
  rightCanvas: string;
  floatingZoneStruct: FloatingZone;
  canvasShareImage: string;
  wegameInfoSpec: WegameInfoSpec;
}

export interface AdcreativeElementStoryArrayItem {
  image: string;
  image2: string;
  description: string;
  url: string;
  title: string;
}

export interface CreativeLabel {
  content: string;
  type: LabelType;
}

export interface ShortVideoStruct {
  shortVideo1: number;
  shortVideo2: number;
}

export interface numberVideoStruct {
  longVideo1: number;
  longVideo2: number;
}

export interface AdcreativeBannerContent {
  image: string;
  title: string;
  url: string;
}

export interface AdcreativeCardContent {
  image: string;
  description: string;
  url: string;
}

export interface AdcreativeVideoPopupButton {
  videoPopupButtonText: string;
  videoPopupButtonUrl: string;
}

export interface AdCreativeBrand {
  brandName: string;
  brandImg: string;
  brandDescription: string;
}

export interface AdcreativeLabelledImg {
  image: string;
  label: Array<AdcreativeLabel>;
}

export interface AdCreativeEndPage {
  endPageType: string;
  endPageDesc: string;
}

export interface AdCreativeShopImageStruct {
  shopImageSwitch: boolean;
  dynamicShopImageSwitch: boolean;
  shopImageId: string;
  shopImageTitle: string;
  shopImageDescription: string;
}

export interface ChosenButton {
  chosenButtonText1: string;
  chosenButtonLandingPage1: LandingPageStructure;
  chosenButtonText2: string;
  chosenButtonLandingPage2: LandingPageStructure;
}

export interface AdCreativeLivingDescStruct {
  livingDescStructSwitch: boolean;
  livingDescList: Array<string>;
}

export interface FloatingZone {
  floatingZoneSwitch: boolean;
  floatingZoneImageId: string;
  floatingZoneName: string;
  floatingZoneDesc: string;
  floatingZoneButtonText: string;
  floatingZoneType: FloatingZoneType;
  floatingZoneSingleImageId: string;
}

export interface WegameInfoSpec {
  wegameInfoSwitch: boolean;
}
/**落地页信息，根据不同 promotedObjectType 和 page_type，要求的 page_spec 信息不同*/
export interface PageSpec {
  pageId: number; //落地页 id
  pageUrl: string; //落地页 url
  miniProgramSpec: {
    //小程序落地页，mini_program_id 和 mini_program_path 要同时填写
    miniProgramId: string; //小程序 id
    miniProgramPath?: string; //小程序路径
    miniProgramPaths?: string[]; //小程序落地页 path 列表
  };
  miniGameSpec: {
    miniGameTrackingParameter: string; //小游戏监控参数，需以英文字符?开头
    miniGameOpenlink: string; //openlink 地址字段
  };
  overrideCanvasHeadOption: string; //原生推广页顶部素材和广告创意素材之间的替换关系，
  dynamicProductSpec: {
    pageUrl: string; //动态落地页 url
    miniProgramPaths: string[]; //动态多商品广告小程序落地页 path 列表
    miniGameOpenlinkPageSpec: {
      //小游戏蹊径落地页，当投放版位含优量汇时、推广目标是微信小游戏推广目标时
      landingPageType: string; //openlink 落地页页面类型，不大于 1024 个英文字符或数字
      landingPageId: number; //落地页 id
    };
  };
}
/**文字链跳转信息，根据不同 promotedObjectType 和 page_type、link_page_type，要求的 link_page_spec 信息不同*/
export interface LinkPageSpec {
  pageId: number; //	落地页 id
  pageUrl: string; //落地页 url
  miniProgramSpec: {
    //小程序落地页，mini_program_id 和 mini_program_path 要同时填写
    miniProgramId: string; //小程序 id
    miniProgramPath?: string; //小程序路径
    miniProgramPaths?: string[]; //小程序落地页 path 列表
  };
  miniGameSpec: {
    //小游戏落地页信息
    miniGameTrackingParameter: string; //小游戏监控参数，需以英文字符?开头
  };
}
/**简版原生页分享信息*/
export interface ShareContentSpec {
  shareTitle: string; //简版原生页分享标题，字段长度最小 1 个等宽字符，长度最大 14 个等宽字符（即字段最大长度为 14 个中文字或全角标点，28 个英文字或半角标点。一个等宽字符等价于一个中文，等价于两个英文。）
  shareDescription: string; //简版原生页分享描述，字段长度最小 1 个等宽字符，长度最大 20 个等宽字符（即字段最大长度为 20 个中文字或全角标点，40 个英文字或半角标点。一个等宽字符等价于一个中文，等价于两个英文。）
}
/**动态商品广告属性，当创意为动态商品广告创意时，该字段必填*/
export interface DynamicAdcreativeSpec {
  productCatalogId: number; //商品库 id
  productMode: AdNum; //动态商品广告（DPA）类型
  productSource: string; //动态商品广告所使用的商品信息,可以填入商品系列 id 或者商品 id
  productExposureQuantityMode: string; //动态商品广告推荐的商品数量模式，当广告形态为动态多商品广告时该字段必填
  landingPageUrlType: string; //MDPA 落地页类型，当创意为动态多商品广告创意时，该字段必填
}
/**	视频播放结束页，（当前仅支持互动推广页）*/
export interface VideoEndPageSpec {
  endPageId: string; //视频播放结束页 id
  endPageType: string; //视频播放结束页类型
}
/**浮层卡片创意内容*/
export interface FloatingZone {
  floatingZoneSwitch: boolean; //浮层卡片开关
  floatingZoneImageId: string; //尺寸：512*512，大小：不超过 50 KB，格式：*.jpg|*.jpeg|*.png ；
  floatingZoneName: string; //文案一，字段长度最小 1 个等宽字符，长度最大 8 等宽字符（即字段最大长度为 8 个中文字或全角标点，16 个英文字或半角标点。一个等宽字符等价于一个中文，等价于两个英文。）
  floatingZoneDesc: string; //文案二，字段长度最小 0 个等宽字符，长度最大 6 等宽字符（即字段最大长度为 6 个中文字或全角标点，12 个英文字或半角标点。一个等宽字符等价于一个中文，等价于两个英文。）
  floatingZoneButtonText: string; //按钮文案，字段长度最小 0 个等宽字符，长度最大 4 等宽字符（即字段最大长度为 4 个中文字或全角标点，8 个英文字或半角标点。一个等宽字符等价于一个中文，等价于两个英文。）
  floatingZoneType: string; //浮层卡片类型
  floatingZoneSingleImageId: string; //尺寸: 540*276 ,大小：不超过 50 KB，格式：*.jpg|*.jpeg|*.png ；
}
/**头像点击跳转信息*/
export interface HeadClickSpec {
  brandAppId: string; //搜一搜品牌形象 app id
}
/**弹幕列表*/
export interface BarrageListCreateStruct {
  id: number; //弹幕 id
}
/**	礼包码，微信朋友圈广告创意形式*/
export interface AppGiftPackCode {
  code: string; //礼包码，微信朋友圈广告创意形式需要填写，礼包码
  tips: string; //礼包码提示，微信朋友圈广告创意形式需要填写，礼包码提示
}
/**	厂商下载信息*/
export interface UnionMarketSpec {
  unionMarketJumpType: string; //厂商直达链接跳转类型
}
/**安卓快应用跳转信息*/
export interface AndroidQuickAppSpec {
  androidQuickAppJumpType: string; //安卓快应用跳转类型
  androidQuickAppJumpUrl: string; //安卓快应用跳转 URL
}
/**创意参数*/
export interface SysAdcreative {
  adcreativeName: string; //广告创意名称 *
  adcreativeTemplateId: number; //创意形式 id *
  adcreativeElements: AdcreativeCreativeElementsMp; //创意元素，不同 adcreativeTemplateId 要求的元素不尽相同 *
  promotedObjectType: string; //推广目标类型 *
  pageType: string; //落地页类型 *
  automaticSiteEnabled: boolean; //是否开启自动版位功能（暂不包含 SITE_SET_WECHAT 和 SITE_SET_MOMENTS），此字段与 siteSet 字段至少需要写入一个。
  siteSet: Array<string>; //投放版位集合
  pageSpec: PageSpec; //落地页信息
  linkPageType: string; //文字链跳转类型类型
  linkNameType: string; //链接名称类型
  linkPageSpec: LinkPageSpec; //文字链跳转信息
  conversionDataType: string; //投放指引,数据展示的数据类型，素材下方展示账户内积累的展示推广目标相关的转化数据，吸引用户点击。
  conversionTargetType: string; //数据展示转化行为，仅 conversion_data_type 为 CONVERSION_DATA_ADMETRIC 时可设置
  qqMiniGameTrackingQuerystring: string; //QQ 小游戏监控参数
  deepLinkUrl: string; //应用直达页 URL，微信朋友圈广告
  androidDeepLinkAppId: string; //安卓应用直达 AppId
  iosDeepLinkAppId: string; //IOS 应用直达 AppId
  universalLinkUrl: string; //通用链接页 URL
  promotedObjectId: string; //推广目标 id
  profileId: number; //朋友圈头像昵称跳转页 id
  shareContentSpec: ShareContentSpec; //简版原生页分享信息
  dynamicAdcreativeSpec: DynamicAdcreativeSpec; //动态商品广告属性
  componentId: number; //附加创意组件 id
  unionMarketSwitch: boolean; //跳转厂商应用商店
  playablePageMaterialId: string; //互动推广页落地页 id
  videoEndPage: VideoEndPageSpec; //视频播放结束页，（当前仅支持互动推广页）
  feedsVideoCommentSwitch: boolean; //视频广告评论开关
  webviewUrl: string; //简易原生页嵌入 Webview url,和 simple_canvas_sub_type 配合使用
  simpleCanvasSubType: string; //简版原生页子类型(灰度中)，仅在简版原生页下生效，其他情况改字段内容会被忽略
  floatingZone: FloatingZone; //浮层卡片创意内容
  marketingPendantImageId: number; //挂件图，悬浮展示在竖版视频上以展示营销卖点
  countdownSwitch: boolean; //倒计时组件开关
  headClickType: string; //头像点击跳转信息
  headClickSpec: HeadClickSpec; //头像点击跳转信息
  pageTrackUrl: string; //页面级转化跟踪 URL(可选)
  barrageList: Array<BarrageListCreateStruct>; //弹幕列表
  appGiftPackCode: AppGiftPackCode; //礼包码，微信朋友圈广告创意形式需要填写，礼包码
  enableBreakthroughSiteset: boolean; //是否支持版位突破，广告版位选择“微信朋友圈”，当广告有机会获得更多曝光与转化时，将可能投放到微信公众号与小程序版位，若不传值默认为 true
  industryLabel: string; //行业标签内容
  unionMarketSpec: UnionMarketSpec; //厂商下载信息，厂商下载信息，仅可在跳转厂商应用商店（union_market_switch）值为 true 时使用。
  androidQuickAppSpec: AndroidQuickAppSpec; //	安卓快应用跳转信息
}
/**==============================================================================定向参数=======================================================================================*/

export interface SysTargeting {
  targetingName: string; //定向名称
  targeting: WriteTargetingSetting; //定向详细设置，存放所有定向条件
  description: string; //定向描述
}

export interface WriteTargetingSetting {
  age: Array<AgeStruct>; //年龄定向
  gender: Array<string>; //性别定向
  education: Array<string>; //用户学历
  maritalStatus: Array<string>; //婚恋育儿状态
  geoLocation: GeoLocations; //地理位置定向,针对朋友圈广告（campaign_type=CAMPAIGN_TYPE_WECHAT_MOMENTS）地域必填，非朋友圈广告选填
  userOs: Array<string>; //操作系统定向, 该功能即将下线，仅部分行业灰度开放，如有问题可联系您的客户运营
  devicePrice: Array<string>; //设备价格定向，该功能即将下线，仅部分行业灰度开放，如有问题可联系您的客户运营
  deviceBrandModel: DeviceBrandModel; //设备品牌型号定向，该功能即将下线，仅部分行业灰度开放，如有问题可联系您的客户运营
  networkType: Array<string>; //联网方式定向
  networkOperator: Array<string>; //移动运营商定向，该功能即将下线，仅部分行业灰度开放，如有问题可联系您的客户运营
  appInstallStatus: Array<string>; //应用安装（应用用户
  consumptionStatus: Array<string>; //消费水平
  gameConsumptionLevel: Array<string>; //游戏消费能力
  financialSituation: Array<string>; //财产状态，该功能即将下线，仅部分行业灰度开放，如有问题可联系您的客户运营
  wechatAdBehavior: WechatAdBehavior; //微信再营销，原微信广告行为定向升级为微信再营销，当且仅当投放微信流量
  customAudience: Array<number>; //自定义定向用户群
  excludedCustomAudience: Array<number>; //自定义排除用户群
  behaviorOrInterest: BehaviorOrInterest; //行为兴趣意向定向，2022 年 6 月 30 日起，该定向将无法在竞价 oCPC、oCPM 场景使用
  excludedConvertedAudience: ExcludedConvertedAudience; //排除已转化用户定向同应用，仅当推广目标为应用下载时可以使用，没有选择自定义转化行为（excluded_dimension）时，使用该定向出价需要满足是 oCPC、oCPM 广告；同商品，仅当 SDPA 商品广告下使用，不支持自定义转化行为默认排除已下单、和已付费用户，不限制出价方式；非同应用、非同商品，没有选择自定义转化行为（excluded_dimension）时，使用该定向出价需要满足是 oCPC、oCPM 广告；
}

export interface AgeStruct {
  min: number;
  max: number;
}
export interface GeoLocations {
  locationTypes: Array<string>; //对于微信流量（site_set=SITE_SET_WECHAT、SITE_SET_MOMENTS、SITE_SET_MINI_GAME_WECHAT），仅能选择"LIVE_IN"（常住）；
  regions: Array<number>; //省市区县列表，当投放微信流量（site_set=SITE_SET_WECHAT、SITE_SET_MOMENTS、SITE_SET_MINI_GAME_WECHAT）时，仅支持中国大陆（不包含港澳台）地域 id
  businessDistricts: Array<number>;
  customLocations: Array<CustomLocationsItemWithName>;
}
export interface CustomLocationsItemWithName {
  longitude: Double;
  latitude: Double;
  radius: number;
}
export interface DeviceBrandModel {
  includedList: Array<number>;
  excludedList: Array<number>;
}
export interface WechatAdBehavior {
  actions: Array<string>;
  excludedActions: Array<string>;
}
export interface BehaviorOrInterest {
  interest: Interest;
  behavior: Array<BehaviorStruct>;
  intention: Intention;
}
export interface ExcludedConvertedAudience {
  excludedDimension: string; //排除已转化用户定向范围
  conversionBehaviorList: Array<string>; //自定义转化行为
}
/**==============================================================================列表接口=======================================================================================*/
/**列表接口返回数据*/
export interface ListData<T> {
  countId: number;
  current: number;
  maxLimit: any;
  optimizeCountSql: boolean;
  orders: any[];
  pages: number;
  records: T[];
  searchCount: boolean;
  size: number;
  total: number;
}
export interface Data<T>{
  data:T
}
/**==============================================================================创意形式=======================================================================================*/
/**创意形式列表*/
export interface AdcreativeTemplateList {
  /**创意形式 id*/
  adcreativeTemplateId: number;
  /**创意形式类型*/
  adcreativeTemplateStyle: string;
  /**创意形式名称*/
  adcreativeTemplateAppellation: string;
  /**创意规格示意图链接*/
  adcreativeSampleImage: string;
  /**推广目标类型*/
  promotedObjectType: string;
  /**投放版位集合*/
  siteSet: string[];
  /**支持的计费信息*/
  supportBillingSpecList: {
    /**计费方式*/
    billingEvent: string;
    /**最低出价，单位分*/
    minPrice: number;
    /**最高出价，单位分*/
    maxPrice: number;
  }[];
  /**支持的出价方式*/
  supportBidModeList: string[];
}

/**创意形式详情*/
export interface AdcreativeTemplate {
  /**创意形式 id*/
  adcreativeTemplateId: number;
  /**创意形式类型*/
  adcreativeTemplateStyle: string;
  /**创意形式名称*/
  adcreativeTemplateAppellation: string;
  /**创意规格示意图链接*/
  adcreativeSampleImage: string;
  /**推广目标类型*/
  promotedObjectType: string;
  /**投放版位集合*/
  siteSet: string[];
  /**支持的计费信息*/
  supportBillingSpecList: {
    /**计费方式*/
    billingEvent: string;
    /**最低出价，单位分*/
    minPrice: number;
    /**最高出价，单位分*/
    maxPrice: number;
  }[];
  /**支持的出价方式*/
  supportBidModeList: string[];
  /**广告创意元素列表*/
  adcreativeElements: {
    /**广告创意接口要求的 adcreativeElements 结构中的元素字段名，如 image、title 等*/
    name: string;
    /**创意元素类型*/
    elementType: string;
    /**创意元素传参类型*/
    fieldType: string;
    /**创意元素是否必填，true 或 false*/
    required: boolean;
    /**该创意元素的描述，如图片、广告文案等*/
    description: string;
    /**创意元素父节点名称，为父节点的 name 字段*/
    parentName: string;
    /**广告创意元素枚举值特性*/
    enumProperty: {
      /**创意元素枚举默认值*/
      default: string;
      /**创意元素枚举可选值数组*/
      enumeration: {
        /**创意元素枚举可选值*/
        value: string;
        /**创意元素枚举可选值描述*/
        description: string;
      }[];
    };
    /**广告创意元素数组特性*/
    arrayProperty: {
      /**广告创意元素数组个数最小值*/
      minNumber: number;
      /**广告创意元素数组个数最大值*/
      maxNumber: number;
    };
    /**广告创意元素结构体特性*/
    struct_property: {
      /**结构体中元素是否互斥，true: 是，仅能使用结构体中的一个元素字段； false: 否*/
      elementMutualExclusive: boolean;
    };
    /**	广告创意元素需满足的限制条件*/
    restriction: {
      /**文本需满足的限制条件，仅当 elementType 是 ELEMENT_TYPE_TEXT 时返回*/
      textRestriction: {
        /**最小长度，文本类型适用*/
        minLength: number;
        /**最大长度，文本类型适用*/
        maxLength: number;
        /**text 的正则表达式*/
        textPattern: any;
      };
      /**图片需满足的限制条件，仅当 elementType 是 ELEMENT_TYPE_IMAGE_ARRAY 或 ELEMENT_TYPE_IMAGE 时返回*/
      imageRestriction: {
        /**	宽度，单位 px，图片适用*/
        width: number;
        /**高度，单位 px，图片适用*/
        height: number;
        /**支持的文件大小最大值，单位 KB，1KB=1024B, 图片、视频适用*/
        fileSize: number;
        /**支持的图片文件格式数组*/
        fileFormat: string[];
      };
      /**链接需满足的限制条件，仅当 elementType 是 ELEMENT_TYPE_URL 时返回*/
      urlRestriction: {
        /**url 的正则表达式*/
        urlPattern: any;
      };
      /**	视频需满足的限制条件，仅当 elementType 是 ELEMENT_TYPE_VIDEO 时返回*/
      videoRestriction: {
        /**宽度*/
        width: number;
        /**高度*/
        height: number;
        /**最小宽度*/
        minWidth: number;
        /**最小高度*/
        minHeight: number;
        /**宽比例*/
        ratioWidth: number;
        /**高比例*/
        ratioHeight: number;
        /**支持的文件大小最大值，单位 KB，1KB=1024B, 图片、视频适用*/
        fileSize: number;
        /**支持的流媒体文件格式数组*/
        fileFormat: string[];
        /**最小时长*/
        minDuration: number;
        /**最大时长*/
        maxDuration: number;
      };
      /**数值型需满足的限制条件，仅当 elementType 是 ELEMENT_TYPE_INTEGER 时返回*/
      numberRestriction: {
        /**最小长度*/
        min: number;
        /**最大长度*/
        max: number;
      };
    };
  }[];
  /**支持的落地页类型*/
  landingPageConfig: {
    /**是否必填*/
    required: boolean;
    /**支持落地页类型列表*/
    supportPageTypeList: {
      /**名称*/
      pageType: string;
      /**描述*/
      description: string;
      /**文字链跳转类型*/
      supportLinkNameType: {
        /**是否必填*/
        required: boolean;
        /**文字链跳转类型列表*/
        list: {
          /**名称*/
          linkNameType: string;
          /**描述*/
          description: string;
        }[];
      };
      /**文字链支持落地页类型*/
      supportLinkPageType: {
        /**是否必填*/
        required: boolean;
        /**文字链跳转类型列表*/
        list: {
          /**名称*/
          linkNameType: string;
          /**描述*/
          description: string;
        }[];
      };
    }[];
  };
  /**广告创意能力项列表*/
  adcreativeAttributes: {
    /**是否必填*/
    required: boolean;
    /**广告创意接口要求的 adcreativeElements 结构中的元素字段名，如 image、title 等*/
    name: string;
    /**该创意元素的描述，如图片、广告文案等*/
    description: string;
    /**创意元素传参类型*/
    fieldType: string;
    /**能力项详情*/
    propertyDetail: {
      /**文本需满足的限制条件，仅当 elementType 是 ELEMENT_TYPE_TEXT 时返回*/
      stringDetail: {
        /**最小长度，文本类型适用*/
        minLength: number;
        /**最大长度，文本类型适用*/
        maxLength: number;
        /**text 的正则表达式*/
        textPattern: any;
      };
      /**数值型需满足的限制条件，仅当 elementType 是 ELEMENT_TYPE_INTEGER 时返回*/
      integerDetail: {
        /**最小长度，文本类型适用*/
        min: number;
        /**最大长度，文本类型适用*/
        max: number;
      };
      /**广告创意元素枚举值特性*/
      enumDetail: {
        /**创意元素枚举默认值*/
        default: string;
        /**创意元素枚举可选值数组*/
        enumeration: {
          /**创意元素枚举可选值*/
          value: string;
          /**创意元素枚举可选值描述*/
          description: string;
        }[];
      };
      /**广告创意能力项子节点列表*/
      structDetail: {
        /**广告创意能力项子节点列表*/
        elementList: {
          /**是否必填*/
          required: boolean;
          /**广告创意接口要求的 adcreativeElements 结构中的元素字段名，如 image、title 等*/
          name: string;
          /**该创意元素的描述，如图片、广告文案等*/
          description: string;
          /**创意元素传参类型*/
          fieldType: string;
          /**能力项详情*/
          propertyDetail: {
            /**文本需满足的限制条件，仅当 elementType 是 ELEMENT_TYPE_TEXT 时返回*/
            stringDetail: {
              /**最小长度，文本类型适用*/
              minLength: number;
              /**最大长度，文本类型适用*/
              maxLength: number;
              /**text 的正则表达式*/
              textPattern: any;
            };
            /**数值型需满足的限制条件，仅当 elementType 是 ELEMENT_TYPE_INTEGER 时返回*/
            integerDetail: {
              /**最小长度，文本类型适用*/
              min: number;
              /**最大长度，文本类型适用*/
              max: number;
            };
            /**广告创意元素枚举值特性*/
            enumDetail: {
              /**创意元素枚举默认值*/
              default: string;
              /**创意元素枚举可选值数组*/
              enumeration: {
                /**创意元素枚举可选值*/
                value: string;
                /**创意元素枚举可选值描述*/
                description: string;
              }[];
              /**广告创意元素数组特性*/
              arrayRestriction: {
                /**广告创意元素数组个数最小值*/
                minNumber: number;
                /**广告创意元素数组个数最大值*/
                maxNumber: number;
              };
            };
          };
        }[];
      };
    };
  }[];
  /**动态广告支持情况*/
  supportDynamicAbilitySpecList: {
    /**动态广告投放能力类型*/
    dynamicAbilityType: string[];
    /**在该规格位置上单个广告上的创意可展示商品数量*/
    productItemDisplayQuantity: string[];
  };
  /**不支持播放的版位信息列表*/
  unsupportSitesetDetailSpec: {
    /**投放版位集合，当前单版位或者 SITE_SET_TENCENT_NEWS+SITE_SET_TENCENT_VIDEO+SITE_SET_MOBILE_UNION+SITE_SET_KANDIAN+SITE_SET_QQ_MUSIC_GAME 的组合*/
    siteSet: string[];
  }[];
  /**不支持的出价方式*/
  unsupportBidModeList: {
    /**投放版位集合，当前单版位或者 SITE_SET_TENCENT_NEWS+SITE_SET_TENCENT_VIDEO+SITE_SET_MOBILE_UNION+SITE_SET_KANDIAN+SITE_SET_QQ_MUSIC_GAME 的组合*/
    siteSet: string[];
    /**支持的出价方式*/
    bidModeList: string[];
  }[];
  /**不支持的计费信息*/
  unsupportBillingSpecList: {
    /**投放版位集合，当前单版位或者 SITE_SET_TENCENT_NEWS+SITE_SET_TENCENT_VIDEO+SITE_SET_MOBILE_UNION+SITE_SET_KANDIAN+SITE_SET_QQ_MUSIC_GAME 的组合*/
    siteSet: string[];
    /**计费方式*/
    billingEvent: string;
    /**最低出价，单位分*/
    minPrice: number;
    /**最高出价，单位分*/
    maxPrice: number;
    /**不支持类型*/
    unsupportType: string;
  }[];
}




