import { Payload, PayloadBody, HandlerPayload, Publisher, Consumer, BaseEventHandler, DefaultVersionSchedule } from 'ec-base'
export { Publisher as WexinFinishOrderPublisher }
export { Consumer, BaseEventHandler, DefaultVersionSchedule }

export interface SysUser {
    name?: string
    age?: number
    sex?: number
    birthday?: Date
    enable?: boolean
    roleIdList?: Array<string>
    roles?: Array<SysRole>
    shippingAddress?: ShippingAddress
    extends?: Extends1
}


export interface SysRole {
    name?: string
    permissionIds?: Array<string>
}


export interface ShippingAddress {
    province?: string
    city?: string
    county?: string
    address?: string
    extends?: Extends
}


export interface Extends {
    postalCode?: string
    street?: string
}


export interface Extends1 {
    dataState?: string
}

export type WexinFinishOrderPayloadBody = SysUser


export class WexinFinishOrderPayload extends Payload {
    getTopic(): string { return 'wexin-finish-order' }
    getVersion(): string { return '1.0' }
    getMajorVersion(): number { return 1 }
    body: WexinFinishOrderPayloadBody
}

export class WexinFinishOrderHandlerPayload extends HandlerPayload {
    body: WexinFinishOrderPayloadBody
}

