package main

import (
	"git.beejay.kim/Gshopper/sentio"
	"github.com/samber/lo"
)

type PortfolioStub []PositionStub

func newStubPortfolio(elem ...PositionStub) sentio.Portfolio {
	var p PortfolioStub
	p = append(p, elem...)

	return p
}

func (p PortfolioStub) Get(symbol string) (sentio.Position, bool) {
	return lo.Find(p, func(item PositionStub) bool {
		return item.symbol == symbol
	})
}

func (p PortfolioStub) Positions() []sentio.Position {
	return lo.Map(p, func(item PositionStub, _ int) sentio.Position {
		return item
	})
}

type PositionStub struct {
	symbol string
	size   float64
	price  float64
}

func (p PositionStub) GetSize() float64 {
	return p.size
}

func (p PositionStub) GetAvgPrice() float64 {
	return p.price
}

func (p PositionStub) GetSymbol() string {
	return p.symbol
}