Pointshop Item only buyable for one map?

Hello, I was wondering if it would be possible to make a pointshop item (in this case a buff) only buy-able for one map or round.
Thank you.

[lua]function ITEM:CanPlayerBuy(ply)
return game.GetMap() == “gm_flatgrass”
end[/lua]

Sorry I may have said that incorrectly, I mean for one map (non specific map just once per map change for TTT)
Sorry its confusing I know.

[lua]function ITEM:OnBuy(ply)
ply._purchasedItems = ply._purchasedItems or {}
table.insert(ply._purchasedItems, self.ID)
end

function ITEM:CanPlayerBuy(ply)
return not table.HasValue(ply._purchasedItems or {}, self.ID)
end[/lua]

Thanks for all the help, but I have tried adding this code in but so far I can buy it as many times as I want. Any ideas?