import { ITableRow, WithoutRow } from "../../Engine/CatanEngine/TableV3/Core/ITableRow";
import { TableBase } from "../../Engine/CatanEngine/TableV3/Core/TableBase";
import { TableManager } from "../../Engine/CatanEngine/TableV3/TableManager";

/**
 * 系統_VIP#vip.xlsx
 * ##程式碼由工具產生, 在此做的修改都將被覆蓋##
 */
export class VipTable extends TableBase<WithoutRow> {
	private _vipSet: VipSetTable;
	/**  系統_VIP#vip.xlsx > #vip_set */
	public get VipSet(): VipSetTable { return this._vipSet = this._vipSet || TableManager.InitTable("#vip#vip_set", VipSetTable, VipSetTableRow); }

	private _vipSlot: VipSlotTable;
	/**  系統_VIP#vip.xlsx > #vip_slot */
	public get VipSlot(): VipSlotTable { return this._vipSlot = this._vipSlot || TableManager.InitTable("#vip#vip_slot", VipSlotTable, VipSlotTableRow); }

	private _fixed: FixedTable;
	/**  系統_VIP#vip.xlsx > #fixed */
	public get Fixed(): FixedTable { return this._fixed = this._fixed || TableManager.InitTable("#vip#fixed", FixedTable, FixedTableRow); }

	private _string: StringTable;
	/**  系統_VIP#vip.xlsx > #string */
	public get String(): StringTable { return this._string = this._string || TableManager.InitTable("#vip#string", StringTable, StringTableRow); }

	private _ruleMsgZnTw: RuleMsgZnTwTable;
	/**  系統_VIP#vip.xlsx > #rule_msg_zn_tw */
	public get RuleMsgZnTw(): RuleMsgZnTwTable { return this._ruleMsgZnTw = this._ruleMsgZnTw || TableManager.InitTable("#vip#rule_msg_zn_tw", RuleMsgZnTwTable, RuleMsgZnTwTableRow); }
}

/**
 * #vip_set
 */
export class VipSetTable extends TableBase<VipSetTableRow> {}

export class VipSetTableRow implements ITableRow {
	/** 編號 */
	Id: number;
	/** 兩個月內累積儲值 */
	Money: number;
	/** 兩個月內累積押注 */
	Bet: number;
	/** 單日送禮額度 */
	GiftLimit: number;
	/** 接受贈禮 */
	GiftOn: number;
	/** 常用名單 */
	Friendlist: number;
	/** SLOT 廳館解鎖 */
	LobbySlot: any;
	/** 牌桌類 廳館解鎖 */
	LobbyCard: any;
	/** 捕魚機 廳館解鎖 */
	LobbyFish: any;
	/** 小鋼珠 廳館解鎖 */
	LobbyPachinko: any;
	/** SLOT 機台保留 */
	SlotLock: number;
	/** 會員期限 */
	Time: number;
	/** 發財金 */
	Gold: any;
	/** 私聊 */
	Talk: number;
	/** 賓果卡欄位數量 */
	Bingo: number;
	/** 五星彩卡欄位數量 */
	Five: number;
	/** 榮耀榜保留筆數 */
	Glory: number;
}

/**
 * #vip_slot
 */
export class VipSlotTable extends TableBase<VipSlotTableRow> {}

export class VipSlotTableRow implements ITableRow {
	/** 編號 */
	Id: number;
	/** 經驗獲取 */
	Levelup: number;
}

/**
 * #fixed
 */
export class FixedTable extends TableBase<FixedTableRow> {}

export class FixedTableRow implements ITableRow {
	/** 編號 */
	Id: number;
	/** 參數 */
	Value: number;
}

/**
 * #string
 */
export class StringTable extends TableBase<StringTableRow> {}

export class StringTableRow implements ITableRow {
	/** 編號 */
	Id: number;
	/** 英文訊息 */
	MsgEn: string;
	/** 繁體中文訊息 */
	MsgZnTw: string;
	/** 簡體中文讯息 */
	MsgZnCh: string;
	/** 越南文讯息 */
	MsgVi: string;
	/** 泰文讯息 */
	MsgTh: string;
}

/**
 * #rule_msg_zn_tw
 */
export class RuleMsgZnTwTable extends TableBase<RuleMsgZnTwTableRow> {}

export class RuleMsgZnTwTableRow implements ITableRow {
	/** 編號 */
	Id: number;
	/** 兩個月內累積儲值 */
	Money: string;
	/** 兩個月內累積押注 */
	Bet: string;
	/** 單日送禮額度 */
	GiftLimit: string;
	/** 接受贈禮 */
	GiftOn: string;
	/** 常用名單 */
	Friendlist: string;
	/** SLOT廳館解鎖 */
	LobbySlot: string;
	/** 牌桌類廳館解鎖 */
	LobbyCard: string;
	/** 捕魚機廳館解鎖 */
	LobbyFish: string;
	/** 小鋼珠廳館解鎖 */
	LobbyPachinko: string;
	/** SLOT 機台保留 */
	SlotLock: string;
	/** 會員期限 */
	Time: string;
	/** 發財金 */
	Gold: string;
	/** 私聊 */
	Talk: string;
}
