import { PageQueryParam, PageResult } from "../base";

/**
 * 参数id
 */
export interface IdParam {
    id: number | string;
}

/**
 * 广告管理请求参数
 */
export interface AdQueryParam extends PageQueryParam {
    property?: string;
    direction?: string;
}

/**
 * 广告管理分页项类型
 */
export type AdPageResult = PageResult<AdItem[]>;

/**
 * 广告管理列表分页列表项
 */
export interface AdItem {
    id: number;
    name: string;
    sysAdvertiseLocation: number;
    lang: string;
    url: string;
    linkUrl: string;
    startTime: string;
    endTime: string;
    status: number;
    remark: string;
    serialNumber: string;
    sort: number;
    createTime: string;
    author: string | null;
    content: string | null;
}

/**
 * 广告表单提交数据项
 */
export interface AdFormData {
    serialNumber: string;
    name: string;
    status: number;
    sysAdvertiseLocation: number;
    startTime: string;
    endTime: string;
    remark: string;
    url: string;
    linkUrl: string;
    sort: number;
    lang: string;
    createTime: string;
}

/**
 * 帮助分类列表项
 */
export interface HelpCategoryItem {
    id: number;
    code: string;
    nameZh: string;
    nameEn: string;
    scene: string;
    sort: number;
    status: number;
    remark: string;
    createTime: string;
    updateTime: string;
}

/**
 * 帮助分类表单提交数据
 */
export interface HelpCategoryFormData {
    id?: number;
    code: string;
    nameZh: string;
    nameEn: string;
    scene: string;
    sort: number;
    status: number;
    remark: string;
}

/**
 * 帮助管理请求参数
 */
export interface HelpQueryParam extends PageQueryParam {
    property?: string;
    direction?: string;
    categoryCode?: string;
    lang?: string;
}

/**
 * 帮助管理分页项类型
 */
export type HelpPageResult = PageResult<HelpItem[]>;

/**
 * 帮助管理列表分页列表项
 */
export interface HelpItem {
    id: number;
    title: string;
    imgUrl: string;
    isTop: string;
    lang: string;
    status: number;
    sysHelpClassification: number;
    categoryCode: string;
    sort: number;
    author: string | null;
    content: string;
    createTime: string;
}

/**
 * 帮助管理表单提交数据项
 */
export interface HelpFormData {
    id: number;
    title: string;
    imgUrl: string;
    isTop: string;
    lang: string;
    status: number;
    sysHelpClassification: number;
    categoryCode: string;
    sort: number;
    author: string | null;
    content: string;
    createTime: string;
}

/**
 * 公告管理请求参数
 */
export interface AnnounceQueryParam extends PageQueryParam {
    property?: string;
    direction?: string;
    title?: string;
    announcementClassification?: number | '';
    isPopup?: boolean | '';
    isShow?: boolean | '';
}

/**
 * 公告管理分页项类型
 */
export type AnnouncePageResult = PageResult<AnnounceItem[]>;

/**
 * 公告管理列表分页列表项
 */
export interface AnnounceItem {
    id: number;
    title: string;
    imgUrl: string;
    isTop: string;
    isShow: boolean;
    isPopup: boolean;
    announcementClassification: number;
    sort: number;
    content: string;
    createTime: string;
    publishTime: string;
}

/**
 * Banner管理请求参数
 */
export interface BannerQueryParam extends PageQueryParam {
    status?: number;
    title?: string;
}

/**
 * Banner管理分页类型
 */
export type BannerPageResult = PageResult<BannerItem[]>;

/**
 * Banner列表项
 */
export interface BannerItem {
    id: number;
    title: string;
    imageUrl: string;
    linkType: string;
    linkUrl: string;
    sort: number;
    status: number;
    startTime: string;
    endTime: string;
    createTime: string;
    updateTime: string;
}

/**
 * Banner表单提交数据
 */
export interface BannerFormData {
    id?: number;
    title: string;
    imageUrl: string;
    linkType: string;
    linkUrl: string;
    sort: number;
    status: number;
    startTime: string;
    endTime: string;
}

/**
 * Header管理请求参数
 */
export interface HeaderQueryParam extends PageQueryParam {
    status?: number;
    title?: string;
}

/**
 * Header管理分页类型
 */
export type HeaderPageResult = PageResult<HeaderItem[]>;

/**
 * Header列表项
 */
export interface HeaderItem {
    id: number;
    title: string;
    mediaType: string;
    displayType: number;
    mediaUrl: string;
    dayMediaUrl: string;
    nightMediaUrl: string;
    linkType: string;
    linkUrl: string;
    sort: number;
    status: number;
    startTime: string;
    endTime: string;
    createTime: string;
    updateTime: string;
}

/**
 * Header表单提交数据
 */
export interface HeaderFormData {
    id?: number;
    title: string;
    mediaType: string;
    displayType: number;
    mediaUrl: string;
    dayMediaUrl: string;
    nightMediaUrl: string;
    linkType: string;
    linkUrl: string;
    sort: number;
    status: number;
    startTime: string;
    endTime: string;
}

/**
 * 公告多语言内容
 */
export interface AnnounceLangContent {
    zh_CN: string;
    zh_HK: string;
    en_US: string;
    ko_KR: string;
    ja_JP: string;
    hi_IN: string;
    id_ID: string;
}

/**
 * 公告管理表单提交数据项
 */
export interface AnnounceFormData {
    id: number;
    titles: AnnounceLangContent;
    contents: AnnounceLangContent;
    imgUrl: string;
    isTop: string;
    isShow: boolean;
    announcementClassification: number;
    sort: number;
    createTime: string;
    isPopup: boolean;
    publishTime: string;
}
