declare interface Resp<T> {
  code: number;
  msg?: string;
  data: T;
}
declare namespace API {
  interface LoginRespDto {
    access_token: string;
    user_info: {
      nickname: string | null;
    };
  }
  interface UserInfoRespDto {
    appUser: {
      id: string;
      nickname: string;
      avatar: string;
      mobile: string;
    };
  }

  interface TypeOfLegalPerson {
    id: string;
    name: string;
  }

  interface PropsWithPagination<
    T extends Record<string, any> = Record<string, any>
  > {
    nextPage: number;
    pageNum: number;
    pageSize: number;
    pages: number;
    prePage: number;
    size: number;
    startRow: number;
    total: number;
    list: T[];
    hasNextPage: boolean;
  }

  interface Pagination<T extends Record<string, any> = Record<string, any>> {
    pages: number;
    page: number;
    total: number;
    items: T[];
    hasNext: boolean;
  }

  interface StatisticsDto {
    collectionTotal: string;
    signTotal: string;
    weightSum: string;
  }

  interface RecommendDto {
    businessId: string;
    businessName: string;
    type: string;
  }

  interface CarListDot {
    label: string;
    value: string;
  }

  interface MerchantsListDot {
    name: string;
    value: string;
  }

  interface SignListDto {
    businessId: string;
    businessName: string;
    signTime: string;
  }

  interface CollectionListDto {
    businessId: string;
    businessName: string;
    carNum: string;
    collectionId: string;
    collectionName: string;
    collectionTime: string;
    createdBy: string;
    createdTime: string;
    id: string;
    isDeleted: string;
    personnelName: string;
    updatedTime: string;
    updayedBy: string;
    weight: string;
  }

  /** 记录详情 */
  interface ReportRecordDto {
    handlingStatus: string;
    createTime: string;
    id: string;
    type: string;
    content: string;
    handlingDeptName?: string;
    handleReply?: string;
    handleTime?: string;
    /** 类型文字  */
    typeText: string;
    /** 附件图片1 */
    annex1?: string;
    annex2?: string;
    annex3?: string;
  }
  /** 个人中心统计 */
  interface PersonalCenterStatisticsDto {
    name: string;
    processingNum: number;
    totalNum: number;
    type: string;
  }
  /** 政策法规后台数据dto */
  interface LawDto {
    coverImage: string;
    createTime: string;
    description: string;
    digestText: string;
    filePath?: string;
    id: string;
    title: string;
  }
  /** 便民服务点位信息 */
  interface LocationTypeDto {
    categoryName: string;
    categoryType: string;
    delFlag: string;
    enableFlag: string;
    icons: string;
    id: string;
    managementDeptId: string;
    managementDeptName?: string;
  }
  /** 地图上点位基本信息 */
  interface PointInfoDto {
    address: string;
    createTime: string;
    description: string;
    distance: string;
    id: string;
    images: string;
    latitude: string;
    locationTitle: string;
    longitude: string;
    status: string;
    visitCount: 0;
    workTime: string;
    workTypeId: string;
    workTypeText: string;
  }
}
