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 _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 _vipShow: VipShowTable;
	/**  系統_VIP#vip.xlsx > #vip_show */
	public get VipShow(): VipShowTable { return this._vipShow = this._vipShow || TableManager.InitTable("#vip#vip_show", VipShowTable, VipShowTableRow); }

	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); }

	private _ruleMsgZnCh: RuleMsgZnChTable;
	/**  系統_VIP#vip.xlsx > #rule_msg_zn_ch */
	public get RuleMsgZnCh(): RuleMsgZnChTable { return this._ruleMsgZnCh = this._ruleMsgZnCh || TableManager.InitTable("#vip#rule_msg_zn_ch", RuleMsgZnChTable, RuleMsgZnChTableRow); }

	private _ruleMsgEn: RuleMsgEnTable;
	/**  系統_VIP#vip.xlsx > #rule_msg_en */
	public get RuleMsgEn(): RuleMsgEnTable { return this._ruleMsgEn = this._ruleMsgEn || TableManager.InitTable("#vip#rule_msg_en", RuleMsgEnTable, RuleMsgEnTableRow); }

	private _ruleMsgVi: RuleMsgViTable;
	/**  系統_VIP#vip.xlsx > #rule_msg_vi */
	public get RuleMsgVi(): RuleMsgViTable { return this._ruleMsgVi = this._ruleMsgVi || TableManager.InitTable("#vip#rule_msg_vi", RuleMsgViTable, RuleMsgViTableRow); }

	private _ruleMsgTh: RuleMsgThTable;
	/**  系統_VIP#vip.xlsx > #rule_msg_th */
	public get RuleMsgTh(): RuleMsgThTable { return this._ruleMsgTh = this._ruleMsgTh || TableManager.InitTable("#vip#rule_msg_th", RuleMsgThTable, RuleMsgThTableRow); }

	private _ruleMsgJa: RuleMsgJaTable;
	/**  系統_VIP#vip.xlsx > #rule_msg_ja */
	public get RuleMsgJa(): RuleMsgJaTable { return this._ruleMsgJa = this._ruleMsgJa || TableManager.InitTable("#vip#rule_msg_ja", RuleMsgJaTable, RuleMsgJaTableRow); }
}

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

export class VipSetTableRow implements ITableRow {
	/** 編號 */
	Id: number;
	/** 一個月內累積儲值 */
	Money: number;
	/** 一個月內累積押注 */
	Bet: number;
	/** 每日送禮額度 */
	GiftLimit: number;
	/** 每日送禮次數 */
	GiftNum: number;
	/** 接受贈禮 */
	GiftOn: number;
	/** 會員期限 */
	Time: number;
	/** 發財金 */
	Gold: any;
	/** 好友名單 */
	Friendlist: number;
	/** 私聊 */
	Talk: 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;
	/** 簡體中文讯息 */
	MsgZnCh: string;
	/** 繁體中文訊息 */
	MsgZnTw: string;
	/** 英文訊息 */
	MsgEn: string;
	/** 越南文讯息 */
	MsgVi: string;
	/** 泰文讯息 */
	MsgTh: string;
	/** 日文讯息 */
	MsgJa: string;
}

/**
 * #vip_show
 */
export class VipShowTable extends TableBase<VipShowTableRow> {}

export class VipShowTableRow implements ITableRow {
	/** 編號 */
	Id: number;
	/** 顯示 */
	Name: string;
}

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

export class RuleMsgZnTwTableRow implements ITableRow {
	/** 編號 */
	Id: number;
	/** 一個月內累積儲值 */
	Money: string;
	/** 一個月內累積押注 */
	Bet: string;
	/** 單日送禮額度 */
	GiftLimit: string;
	/** 每日送禮次數 */
	GiftNum: string;
	/** 接受贈禮 */
	GiftOn: string;
	/** 常用名單 */
	Friendlist: string;
	/** 會員期限 */
	Time: string;
	/** 發財金 */
	Gold: string;
	/** 私聊 */
	Talk: string;
	/** 公共頻道 */
	Channel: string;
}

/**
 * #rule_msg_zn_ch
 */
export class RuleMsgZnChTable extends TableBase<RuleMsgZnChTableRow> {}

export class RuleMsgZnChTableRow implements ITableRow {
	/** 編號 */
	Id: number;
	/** 一個月內累積儲值 */
	Money: string;
	/** 一個月內累積押注 */
	Bet: string;
	/** 單日送禮額度 */
	GiftLimit: string;
	/** 每日送禮次數 */
	GiftNum: string;
	/** 接受贈禮 */
	GiftOn: string;
	/** 常用名單 */
	Friendlist: string;
	/** 會員期限 */
	Time: string;
	/** 發財金 */
	Gold: string;
	/** 私聊 */
	Talk: string;
	/** 公共頻道 */
	Channel: string;
}

/**
 * #rule_msg_en
 */
export class RuleMsgEnTable extends TableBase<RuleMsgEnTableRow> {}

export class RuleMsgEnTableRow implements ITableRow {
	/** 編號 */
	Id: number;
	/** 一個月內累積儲值 */
	Money: string;
	/** 一個月內累積押注 */
	Bet: string;
	/** 單日送禮額度 */
	GiftLimit: string;
	/** 每日送禮次數 */
	GiftNum: string;
	/** 接受贈禮 */
	GiftOn: string;
	/** 常用名單 */
	Friendlist: string;
	/** 會員期限 */
	Time: string;
	/** 發財金 */
	Gold: string;
	/** 私聊 */
	Talk: string;
	/** 公共頻道 */
	Channel: string;
}

/**
 * #rule_msg_vi
 */
export class RuleMsgViTable extends TableBase<RuleMsgViTableRow> {}

export class RuleMsgViTableRow implements ITableRow {
	/** 編號 */
	Id: number;
	/** 一個月內累積儲值 */
	Money: string;
	/** 一個月內累積押注 */
	Bet: string;
	/** 單日送禮額度 */
	GiftLimit: string;
	/** 每日送禮次數 */
	GiftNum: string;
	/** 接受贈禮 */
	GiftOn: string;
	/** 常用名單 */
	Friendlist: string;
	/** 會員期限 */
	Time: string;
	/** 發財金 */
	Gold: string;
	/** 私聊 */
	Talk: string;
	/** 公共頻道 */
	Channel: string;
}

/**
 * #rule_msg_th
 */
export class RuleMsgThTable extends TableBase<RuleMsgThTableRow> {}

export class RuleMsgThTableRow implements ITableRow {
	/** 編號 */
	Id: number;
	/** 一個月內累積儲值 */
	Money: string;
	/** 一個月內累積押注 */
	Bet: string;
	/** 單日送禮額度 */
	GiftLimit: string;
	/** 每日送禮次數 */
	GiftNum: string;
	/** 接受贈禮 */
	GiftOn: string;
	/** 常用名單 */
	Friendlist: string;
	/** 會員期限 */
	Time: string;
	/** 發財金 */
	Gold: string;
	/** 私聊 */
	Talk: string;
	/** 公共頻道 */
	Channel: string;
}

/**
 * #rule_msg_ja
 */
export class RuleMsgJaTable extends TableBase<RuleMsgJaTableRow> {}

export class RuleMsgJaTableRow implements ITableRow {
	/** 編號 */
	Id: number;
	/** 一個月內累積儲值 */
	Money: string;
	/** 一個月內累積押注 */
	Bet: string;
	/** 單日送禮額度 */
	GiftLimit: string;
	/** 每日送禮次數 */
	GiftNum: string;
	/** 接受贈禮 */
	GiftOn: string;
	/** 常用名單 */
	Friendlist: string;
	/** 會員期限 */
	Time: string;
	/** 發財金 */
	Gold: string;
	/** 私聊 */
	Talk: string;
	/** 公共頻道 */
	Channel: string;
}
