// - vesting
//   - startdate: epoch
//   - currency: USD
//   - [[$month_nr,$minprice_unlock,$TFT_to_vest],...]
//     - if 48 months then list will have 48 parts
//     - month 0 = first month
//     - e.g. [[0,0.11,10000],[1,0.12,10000],[2,0.13,10000],[3,0.14,10000]...]

//information stored at account level in TFGridDB
struct AccountMeta{
	//corresponds to unique address on money_blockchain
	money_blockchain_address string
	vesting Vesting[]
	unlocked_TFT int
}

struct Vesting{
	startdate int
	//which currency is used to execute on the acceleration in the vesting
	//if price above certain level (which is currency + amount of that currency) the auto unlock
	currency CurrencyEnum
	months []VestingMonth
}

struct VestingMonth{
	month_nr int
	//if 0 then will not unlock based on price
	unlock_price f32
	tft_amount int
}

enum CurrencyEnum{
	usd
	eur
	egp
	gbp
	aed
}

//this is stored in the TFGridDB
fn (mut v AccountMeta) serialize() string{
	//todo code which does serialization see above
	return ""
}


//write minting pool


//REMARKS
// if unlock triggered because of month or price then that record in the VestingMonth[] goes away and TFT go to unlocked_TFT