package storage

import (
	"embed"
	"fmt"
	"strings"
)

//go:embed schema_sqlite.sql
var sqliteSchemaFS embed.FS

//go:embed schema_postgres.sql
var postgresSchemaFS embed.FS

func SchemaForDBType(dbType string) (string, error) {
	switch strings.ToLower(dbType) {
	case DBTypeSQLite:
		b, err := sqliteSchemaFS.ReadFile("schema_sqlite.sql")
		if err != nil {
			return "", fmt.Errorf("failed to read sqlite schema: %w", err)
		}
		return string(b), nil
	case "postgres", "postgresql":
		b, err := postgresSchemaFS.ReadFile("schema_postgres.sql")
		if err != nil {
			return "", fmt.Errorf("failed to read postgres schema: %w", err)
		}
		return string(b), nil
	default:
		return "", fmt.Errorf("unsupported database type: %s", dbType)
	}
}
