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

/**
 * 共用_商城#shop.xlsx
 * ##程式碼由工具產生, 在此做的修改都將被覆蓋##
 */
export class ShopTable extends TableBase<WithoutRow> {
	private _shopMycard: ShopMycardTable;
	/**  共用_商城#shop.xlsx > #shop_mycard */
	public get ShopMycard(): ShopMycardTable { return this._shopMycard = this._shopMycard || TableManager.InitTable("#shop#shop_mycard", ShopMycardTable, ShopMycardTableRow); }

	private _dayPackage: DayPackageTable;
	/**  共用_商城#shop.xlsx > #day_package */
	public get DayPackage(): DayPackageTable { return this._dayPackage = this._dayPackage || TableManager.InitTable("#shop#day_package", DayPackageTable, DayPackageTableRow); }

	private _onlyPackage: OnlyPackageTable;
	/**  共用_商城#shop.xlsx > #only_package */
	public get OnlyPackage(): OnlyPackageTable { return this._onlyPackage = this._onlyPackage || TableManager.InitTable("#shop#only_package", OnlyPackageTable, OnlyPackageTableRow); }

	private _timePackage: TimePackageTable;
	/**  共用_商城#shop.xlsx > #time_package */
	public get TimePackage(): TimePackageTable { return this._timePackage = this._timePackage || TableManager.InitTable("#shop#time_package", TimePackageTable, TimePackageTableRow); }

	private _string: StringTable;
	/**  共用_商城#shop.xlsx > #string */
	public get String(): StringTable { return this._string = this._string || TableManager.InitTable("#shop#string", StringTable, StringTableRow); }

	private _fastList: FastListTable;
	/**  共用_商城#shop.xlsx > #fast_list */
	public get FastList(): FastListTable { return this._fastList = this._fastList || TableManager.InitTable("#shop#fast_list", FastListTable, FastListTableRow); }

	private _normalList: NormalListTable;
	/**  共用_商城#shop.xlsx > #normal_list */
	public get NormalList(): NormalListTable { return this._normalList = this._normalList || TableManager.InitTable("#shop#normal_list", NormalListTable, NormalListTableRow); }

	private _fastShop2: FastShop2Table;
	/**  共用_商城#shop.xlsx > #fast_shop2 */
	public get FastShop2(): FastShop2Table { return this._fastShop2 = this._fastShop2 || TableManager.InitTable("#shop#fast_shop2", FastShop2Table, FastShop2TableRow); }

	private _shopShow2: ShopShow2Table;
	/**  共用_商城#shop.xlsx > #shop_show2 */
	public get ShopShow2(): ShopShow2Table { return this._shopShow2 = this._shopShow2 || TableManager.InitTable("#shop#shop_show2", ShopShow2Table, ShopShow2TableRow); }

	private _shopString: ShopStringTable;
	/**  共用_商城#shop.xlsx > #shop_string */
	public get ShopString(): ShopStringTable { return this._shopString = this._shopString || TableManager.InitTable("#shop#shop_string", ShopStringTable, ShopStringTableRow); }

	private _mycardNumber: MycardNumberTable;
	/**  共用_商城#shop.xlsx > #mycard_number */
	public get MycardNumber(): MycardNumberTable { return this._mycardNumber = this._mycardNumber || TableManager.InitTable("#shop#mycard_number", MycardNumberTable, MycardNumberTableRow); }

	private _mycardConvert: MycardConvertTable;
	/**  共用_商城#shop.xlsx > #mycard_convert */
	public get MycardConvert(): MycardConvertTable { return this._mycardConvert = this._mycardConvert || TableManager.InitTable("#shop#mycard_convert", MycardConvertTable, MycardConvertTableRow); }

	private _mycardFree: MycardFreeTable;
	/**  共用_商城#shop.xlsx > #mycard_free */
	public get MycardFree(): MycardFreeTable { return this._mycardFree = this._mycardFree || TableManager.InitTable("#shop#mycard_free", MycardFreeTable, MycardFreeTableRow); }

	private _mycardMobile: MycardMobileTable;
	/**  共用_商城#shop.xlsx > #mycard_mobile */
	public get MycardMobile(): MycardMobileTable { return this._mycardMobile = this._mycardMobile || TableManager.InitTable("#shop#mycard_mobile", MycardMobileTable, MycardMobileTableRow); }

	private _mycardBank: MycardBankTable;
	/**  共用_商城#shop.xlsx > #mycard_bank */
	public get MycardBank(): MycardBankTable { return this._mycardBank = this._mycardBank || TableManager.InitTable("#shop#mycard_bank", MycardBankTable, MycardBankTableRow); }

	private _mycardCredit: MycardCreditTable;
	/**  共用_商城#shop.xlsx > #mycard_credit */
	public get MycardCredit(): MycardCreditTable { return this._mycardCredit = this._mycardCredit || TableManager.InitTable("#shop#mycard_credit", MycardCreditTable, MycardCreditTableRow); }

	private _mycardTelecom: MycardTelecomTable;
	/**  共用_商城#shop.xlsx > #mycard_telecom */
	public get MycardTelecom(): MycardTelecomTable { return this._mycardTelecom = this._mycardTelecom || TableManager.InitTable("#shop#mycard_telecom", MycardTelecomTable, MycardTelecomTableRow); }

	private _shopEasy: ShopEasyTable;
	/**  共用_商城#shop.xlsx > #shop_easy */
	public get ShopEasy(): ShopEasyTable { return this._shopEasy = this._shopEasy || TableManager.InitTable("#shop#shop_easy", ShopEasyTable, ShopEasyTableRow); }

	private _shopFirst: ShopFirstTable;
	/**  共用_商城#shop.xlsx > #shop_first */
	public get ShopFirst(): ShopFirstTable { return this._shopFirst = this._shopFirst || TableManager.InitTable("#shop#shop_first", ShopFirstTable, ShopFirstTableRow); }

	private _fastShop: FastShopTable;
	/**  共用_商城#shop.xlsx > #fast_shop */
	public get FastShop(): FastShopTable { return this._fastShop = this._fastShop || TableManager.InitTable("#shop#fast_shop", FastShopTable, FastShopTableRow); }
}

/**
 * #shop_mycard
 */
export class ShopMycardTable extends TableBase<ShopMycardTableRow> {}

export class ShopMycardTableRow implements ITableRow {
	/** 編號 */
	Id: number;
	/** 商品品項 */
	Product: string;
	/** 金幣顯示 */
	ShowMoney: number;
	/** 道具顯示 */
	ShowItem: string;
	/** 價格 */
	Price: number;
	/** 悠遊付 */
	EasyWallet: number;
}

/**
 * #day_package
 */
export class DayPackageTable extends TableBase<DayPackageTableRow> {}

export class DayPackageTableRow implements ITableRow {
	/** 編號 */
	Id: number;
	/** 商品品項 */
	ProductId: number;
	/** 總共給幾天 */
	Day: number;
	/** 補簽代價 */
	Resign: any;
	/** 每日獎勵 */
	GiftDay: any;
	/** 最後一天輪盤_獎勵固定6個 */
	GiftFinalday: any;
}

/**
 * #only_package
 */
export class OnlyPackageTable extends TableBase<OnlyPackageTableRow> {}

export class OnlyPackageTableRow implements ITableRow {
	/** 編號 */
	Id: number;
	/** 商品品項 */
	ProductId: number;
	/** 獎勵 */
	Gift: any;
}

/**
 * #time_package
 */
export class TimePackageTable extends TableBase<TimePackageTableRow> {}

export class TimePackageTableRow implements ITableRow {
	/** 編號 */
	Id: number;
	/** 商品品項 */
	ProductId: number;
	/** 獎勵 */
	Gift: any;
}

/**
 * #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;
}

/**
 * #fast_list
 */
export class FastListTable extends TableBase<FastListTableRow> {}

export class FastListTableRow implements ITableRow {
	/** 編號 */
	Id: number;
	/** 上次儲值金額 */
	Record: number;
	/** VIP等級 */
	Vip: number;
	/** 品項1 */
	FastShop1: number;
	/** 品項2 */
	FastShop2: number;
	/** 品項3 */
	FastShop3: number;
	/** 品項4 */
	FastShop4: number;
	/** 品項5 */
	FastShop5: number;
	/** 品項6 */
	FastShop6: number;
}

/**
 * #normal_list
 */
export class NormalListTable extends TableBase<NormalListTableRow> {}

export class NormalListTableRow implements ITableRow {
	/** 編號 */
	Id: number;
	/** 定義 */
	Type: number;
	/** 商品名稱 */
	Name: number;
	/** 順序 */
	Sort: number;
	/** 顯示 */
	Show: number;
	/** 圖片路徑 */
	Img: string;
}

/**
 * #fast_shop2
 */
export class FastShop2Table extends TableBase<FastShop2TableRow> {}

export class FastShop2TableRow implements ITableRow {
	/** 編號 */
	Id: number;
	/** show2的ID */
	Show2Id: number;
	/** 個別表選項編號 */
	Id2: number;
}

/**
 * #shop_show2
 */
export class ShopShow2Table extends TableBase<ShopShow2TableRow> {}

export class ShopShow2TableRow implements ITableRow {
	/** 編號 */
	Id: number;
	/** 定義 */
	Type: number;
	/** 商品ID */
	Key: string;
	/** 商品名稱 */
	Name: number;
	/** 順序 */
	Sort: number;
	/** 顯示 */
	Show: number;
	/** 顯示 */
	Maxshow: number;
	/** 圖片路徑 */
	Img: string;
}

/**
 * #shop_string
 */
export class ShopStringTable extends TableBase<ShopStringTableRow> {}

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

/**
 * #mycard_number
 */
export class MycardNumberTable extends TableBase<MycardNumberTableRow> {}

export class MycardNumberTableRow implements ITableRow {
	/** 編號 */
	Id: number;
	/** 商品品項 */
	ProductId: number;
	/** 常駐金幣 */
	GoldNormal: number;
	/** 首儲金幣 */
	GoldFirst: number;
	/** 5%金幣 */
	Gold5: number;
	/** 10%金幣 */
	Gold10: number;
	/** 20%金幣 */
	Gold20: number;
	/** 加贈道具 */
	AddItem: any;
	/** 加贈金幣顯示 */
	ShowBonus: number;
}

/**
 * #mycard_convert
 */
export class MycardConvertTable extends TableBase<MycardConvertTableRow> {}

export class MycardConvertTableRow implements ITableRow {
	/** 編號 */
	Id: number;
	/** 商品品項 */
	ProductId: number;
	/** 常駐金幣 */
	GoldNormal: number;
	/** 首儲金幣 */
	GoldFirst: number;
	/** 5%金幣 */
	Gold5: number;
	/** 10%金幣 */
	Gold10: number;
	/** 20%金幣 */
	Gold20: number;
	/** 加贈道具 */
	AddItem: any;
	/** 加贈金幣顯示 */
	ShowBonus: number;
}

/**
 * #mycard_free
 */
export class MycardFreeTable extends TableBase<MycardFreeTableRow> {}

export class MycardFreeTableRow implements ITableRow {
	/** 編號 */
	Id: number;
	/** 商品品項 */
	ProductId: number;
	/** 常駐金幣 */
	GoldNormal: number;
	/** 首儲金幣 */
	GoldFirst: number;
	/** 5%金幣 */
	Gold5: number;
	/** 10%金幣 */
	Gold10: number;
	/** 20%金幣 */
	Gold20: number;
	/** 加贈道具 */
	AddItem: any;
	/** 加贈金幣顯示 */
	ShowBonus: number;
}

/**
 * #mycard_mobile
 */
export class MycardMobileTable extends TableBase<MycardMobileTableRow> {}

export class MycardMobileTableRow implements ITableRow {
	/** 編號 */
	Id: number;
	/** 商品品項 */
	ProductId: number;
	/** 常駐金幣 */
	GoldNormal: number;
	/** 首儲金幣 */
	GoldFirst: number;
	/** 5%金幣 */
	Gold5: number;
	/** 10%金幣 */
	Gold10: number;
	/** 20%金幣 */
	Gold20: number;
	/** 加贈道具 */
	AddItem: any;
	/** 加贈金幣顯示 */
	ShowBonus: number;
}

/**
 * #mycard_bank
 */
export class MycardBankTable extends TableBase<MycardBankTableRow> {}

export class MycardBankTableRow implements ITableRow {
	/** 編號 */
	Id: number;
	/** 商品品項 */
	ProductId: number;
	/** 常駐金幣 */
	GoldNormal: number;
	/** 首儲金幣 */
	GoldFirst: number;
	/** 5%金幣 */
	Gold5: number;
	/** 10%金幣 */
	Gold10: number;
	/** 20%金幣 */
	Gold20: number;
	/** 加贈道具 */
	AddItem: any;
	/** 加贈金幣顯示 */
	ShowBonus: number;
}

/**
 * #mycard_credit
 */
export class MycardCreditTable extends TableBase<MycardCreditTableRow> {}

export class MycardCreditTableRow implements ITableRow {
	/** 編號 */
	Id: number;
	/** 商品品項 */
	ProductId: number;
	/** 常駐金幣 */
	GoldNormal: number;
	/** 首儲金幣 */
	GoldFirst: number;
	/** 5%金幣 */
	Gold5: number;
	/** 10%金幣 */
	Gold10: number;
	/** 20%金幣 */
	Gold20: number;
	/** 加贈道具 */
	AddItem: any;
	/** 加贈金幣顯示 */
	ShowBonus: number;
}

/**
 * #mycard_telecom
 */
export class MycardTelecomTable extends TableBase<MycardTelecomTableRow> {}

export class MycardTelecomTableRow implements ITableRow {
	/** 編號 */
	Id: number;
	/** 商品品項 */
	ProductId: number;
	/** 常駐金幣 */
	GoldNormal: number;
	/** 首儲金幣 */
	GoldFirst: number;
	/** 5%金幣 */
	Gold5: number;
	/** 10%金幣 */
	Gold10: number;
	/** 20%金幣 */
	Gold20: number;
	/** 加贈道具 */
	AddItem: any;
	/** 加贈金幣顯示 */
	ShowBonus: number;
}

/**
 * #shop_easy
 */
export class ShopEasyTable extends TableBase<ShopEasyTableRow> {}

export class ShopEasyTableRow implements ITableRow {
	/** 編號 */
	Id: number;
	/** 儲值管道 */
	Type: string;
	/** 商品ID */
	TypeId: number;
}

/**
 * #shop_first
 */
export class ShopFirstTable extends TableBase<ShopFirstTableRow> {}

export class ShopFirstTableRow implements ITableRow {
	/** 編號 */
	Id: number;
	/** 儲值管道 */
	Type: string;
	/** 商品ID */
	TypeId: number;
}

/**
 * #fast_shop
 */
export class FastShopTable extends TableBase<FastShopTableRow> {}

export class FastShopTableRow implements ITableRow {
	/** 編號 */
	Id: number;
	/** 定義 */
	Type: number;
	/** 商品ID */
	Key: string;
	/** 商品ID */
	Name: string;
	/** 個別表選項編號 */
	Id2: number;
}
