export interface Position {
    x: number;
    y: number;
    z: number;
    worldtag: number;
}

export interface WorldTarget {
    id: number;
    name: string;
    worldtag: number;
    posx: number;
    posy: number;
    posz: number;
}

export interface Item {
    id: number;
    pos: number;
    count: number;
    max_count?: number;
    data?: string;
    proctype?: number;
    expire_date?: number;
    guid1?: number;
    guid2?: number;
    mask?: number;
}

export interface Character {
    id: number;
    name: string;
    user_id: number;
    level: number;
    level2: number;
    class: number;
    class_name: string;
    gender: number;
    gender_name: string;
    faction_id: number;
    faction_name: string | null;
    faction_role: number | null;
    spouse_id: number;
    exp: number;
    sp: number;
    reputation: number;
    position: Position;
    last_login: number;
    create_time: number;
    time_used: number;
    has_storehouse_password: boolean;
    pocket_capacity: number;
    storehouse_capacity: number;
    cash: number;
}

export interface RawData {
    status: Record<string, any>;
    pocket: Record<string, any>;
    equipment: Record<string, any>;
    storehouse: Record<string, any>;
}

export interface Summary {
    playtime: number;
    roles_count: number;
    current_cash: number;
    last_char: string;
    leader_roles_count: number;
}

export interface ItemMask {
    value: number;
    label: string;
    group: string;
}

export interface PaginationInfo {
    current_page: number;
    total_pages: number;
    total_users: number;
}

export interface MailData {
    title: string;
    message: string;
    item_id: number;
    item_count: number;
    gold: number;
    max_count: number;
    item_data: string;
    proctype: number;
    mask: number;
}
