// package product -- объект продукта для производства
package product

import (
	"wartank/pkg/components/product/parser_time"
	"wartank/pkg/components/safe_int"
	"wartank/pkg/components/safe_string"
	"wartank/pkg/types"
)

// Продукт -- объект продукта для производства
type Продукт struct {
	имя   *safe_string.БезопСтрока // имя продукта
	кол   *safe_int.БезопЦелое     // Количество продукта
	время *parser_time.ПарсерВремя // Время для производства продукта
}

// НовПродукт -- возвращает новый объект продукта
func НовПродукт() *Продукт {
	сам := &Продукт{
		имя:   safe_string.НовБезопСтрока(),
		кол:   safe_int.НовБезопЦелое(),
		время: parser_time.НовПарсерВремя(),
	}
	return сам
}

// Имя -- возвращает название продукта
func (сам *Продукт) Имя() types.ИБезопСтрока {
	return сам.имя
}

// Кол -- возвращает количество продукта
func (сам *Продукт) Кол() types.ИБезопЦелое {
	return сам.кол
}

// Время -- возвращает время производства
func (сам *Продукт) Время() types.ИПарсерВремя {
	return сам.время
}
