package document

import "textualize/entities"

type ProcessedAreaCollection struct {
	Areas []entities.ProcessedArea
}

var processedAreaCollectionInstnace *ProcessedAreaCollection

func GetProcessedAreaCollection() *ProcessedAreaCollection {
	if processedAreaCollectionInstnace == nil {
		processedAreaCollectionInstnace = &ProcessedAreaCollection{}
	}
	return processedAreaCollectionInstnace
}

func SetProcessedAreaCollection(collection ProcessedAreaCollection) {
	processedAreaCollectionInstnace = &collection
}

func (collection *ProcessedAreaCollection) AddProcessedArea(area entities.ProcessedArea) {
	collection.Areas = append(collection.Areas, area)
}

func (collection *ProcessedAreaCollection) GetAreasByDocumentId(id string) []*entities.ProcessedArea {
	var foundAreas []*entities.ProcessedArea

	for index, a := range collection.Areas {
		if a.DocumentId == id {
			foundAreas = append(foundAreas, &collection.Areas[index])
		}
	}

	return foundAreas
}

func (collection *ProcessedAreaCollection) GetAreaById(areaId string) *entities.ProcessedArea {
	var foundArea *entities.ProcessedArea

	for index, a := range collection.Areas {
		if a.Id == areaId {
			foundArea = &collection.Areas[index]
			break
		}
	}

	return foundArea
}
