package jsonschema

import (
	"regexp"
	"time"
)

var (
	dateRe  = regexp.MustCompile(`^\d{4}-\d{2}-\d{2}$`)
	emailRe = regexp.MustCompile(`^[^\s@]+@[^\s@]+\.[^\s@]+$`)
)

// formatValid checks whether s satisfies the named format. Returns true for
// formats we don't support — JSON Schema treats `format` as an annotation by
// default, so unknown formats are non-failing.
func formatValid(format, s string) bool {
	switch format {
	case "date":
		if !dateRe.MatchString(s) {
			return false
		}
		// Reject obviously-malformed dates like 2026-13-40.
		_, err := time.Parse("2006-01-02", s)
		return err == nil
	case "email":
		return emailRe.MatchString(s)
	}
	return true
}
