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

/**
 * 系統_禮品爆爆機#burstslot.xlsx
 * ##程式碼由工具產生, 在此做的修改都將被覆蓋##
 */
export class BurstslotTable extends TableBase<WithoutRow> {
	private _slotLobby: SlotLobbyTable;
	/**  系統_禮品爆爆機#burstslot.xlsx > #slot_lobby */
	public get SlotLobby(): SlotLobbyTable { return this._slotLobby = this._slotLobby || TableManager.InitTable("#burstslot#slot_lobby", SlotLobbyTable, SlotLobbyTableRow); }

	private _slotSet: SlotSetTable;
	/**  系統_禮品爆爆機#burstslot.xlsx > #slot_set */
	public get SlotSet(): SlotSetTable { return this._slotSet = this._slotSet || TableManager.InitTable("#burstslot#slot_set", SlotSetTable, SlotSetTableRow); }

	private _slotAward: SlotAwardTable;
	/**  系統_禮品爆爆機#burstslot.xlsx > #slot_award */
	public get SlotAward(): SlotAwardTable { return this._slotAward = this._slotAward || TableManager.InitTable("#burstslot#slot_award", SlotAwardTable, SlotAwardTableRow); }

	private _slotToken: SlotTokenTable;
	/**  系統_禮品爆爆機#burstslot.xlsx > #slot_token */
	public get SlotToken(): SlotTokenTable { return this._slotToken = this._slotToken || TableManager.InitTable("#burstslot#slot_token", SlotTokenTable, SlotTokenTableRow); }

	private _string: StringTable;
	/**  系統_禮品爆爆機#burstslot.xlsx > #string */
	public get String(): StringTable { return this._string = this._string || TableManager.InitTable("#burstslot#string", StringTable, StringTableRow); }

	private _slotSymbol: SlotSymbolTable;
	/**  系統_禮品爆爆機#burstslot.xlsx > #slot_symbol */
	public get SlotSymbol(): SlotSymbolTable { return this._slotSymbol = this._slotSymbol || TableManager.InitTable("#burstslot#slot_symbol", SlotSymbolTable, SlotSymbolTableRow); }
}

/**
 * #slot_lobby
 */
export class SlotLobbyTable extends TableBase<SlotLobbyTableRow> {}

export class SlotLobbyTableRow implements ITableRow {
	/** 編號 */
	Id: number;
	/** 貨幣 */
	Money: any;
	/** 標題 */
	AdTitle: string;
	/** 廣告字串 */
	AdString: string;
	/** 開始時間 */
	Timestart: string;
	/** 結束時間 */
	Timeend: string;
	/** 主打獎勵 */
	AwardMain: any;
	/** 禮品機ID */
	Slotid: any;
	/** 版型 */
	Uitype: any;
}

/**
 * #slot_set
 */
export class SlotSetTable extends TableBase<SlotSetTableRow> {}

export class SlotSetTableRow implements ITableRow {
	/** 編號 */
	Id: number;
	/** 廳館 */
	Lobby: number;
	/** 類型 */
	Type: number;
	/** 花費 */
	Spend: any;
	/** 獎勵範圍 */
	AwardId: any;
	/** 獎勵交換時間點 */
	Switchtime: string;
}

/**
 * #slot_award
 */
export class SlotAwardTable extends TableBase<SlotAwardTableRow> {}

export class SlotAwardTableRow implements ITableRow {
	/** 編號 */
	Id: number;
	/** 獎勵簡介 */
	AwardSummary: any;
	/** 獎勵詳細 */
	AwardDetailed: any;
	/** 輪軸列表 */
	AwardWheel: any;
}

/**
 * #slot_token
 */
export class SlotTokenTable extends TableBase<SlotTokenTableRow> {}

export class SlotTokenTableRow implements ITableRow {
	/** 編號 */
	Id: number;
	/** 圖片 */
	Pic: string;
	/** 字串 */
	String: string;
}

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

export class StringTableRow implements ITableRow {
	/** 編號 */
	Id: number;
	/** 字串 */
	MsgZnTw: string;
}

/**
 * #slot_symbol
 */
export class SlotSymbolTable extends TableBase<SlotSymbolTableRow> {}

export class SlotSymbolTableRow implements ITableRow {
	/** 編號 */
	Id: number;
	/** 類型 */
	Type: any;
	/** 範圍 */
	Range: any;
}
