fncConvertGui/internal/imports/import.go
2026-02-25 23:17:08 +01:00

44 lines
1.1 KiB
Go

package imports
import "fncConvertGui/internal/models"
type CSVtoTransactionsFunc func(data string) ([]models.Transaction, error)
type MappingVersion struct {
Name string `json:"name"`
CsvToTransaction CSVtoTransactionsFunc `json:"-"`
}
type Importer struct {
Name string `json:"name"`
Versions []MappingVersion `json:"versions"`
}
// ImporterInfo is the JSON-safe subset sent to the frontend.
type ImporterInfo struct {
Name string `json:"name"`
Versions []string `json:"versions"`
}
var DefaultImporters = []Importer{
{
Name: "LZO",
Versions: []MappingVersion{
{Name: "1.0.0", CsvToTransaction: nil},
},
},
}
// ListImporters returns a frontend-friendly summary of all registered importers.
func ListImporters() []ImporterInfo {
out := make([]ImporterInfo, len(DefaultImporters))
for i, imp := range DefaultImporters {
versions := make([]string, len(imp.Versions))
for j, v := range imp.Versions {
versions[j] = v.Name
}
out[i] = ImporterInfo{Name: imp.Name, Versions: versions}
}
return out
}