package config import ( "fmt" "os" "regexp" "strings" "github.com/spf13/viper" ) var MyConfig *Config type Config struct { Nats NatsConfig Subscription SubscriptionConfig Timeouts TimeoutsConfig } type NatsConfig struct { Client string URL string Cluster string } type SubscriptionConfig struct { Topic string `mapstructure:"topic"` QueueGroup string `mapstructure:"queue_group"` } type TimeoutsConfig struct { ServerTimeout string `mapstructure:"server_timeout"` ReconnectWait string `mapstructure:"reconnect_wait"` CloseTimeout string `mapstructure:"close_timeout"` AckWaitTimeout string `mapstructure:"ack_wait_timeout"` } type BodyConfig struct { Patterns []PatternConfig } type PatternConfig struct { Pattern string Comments string Expression *regexp.Regexp } // Define the regex patterns as constants const ( arrPatternString = `^\((?P[A-Z]{3})-(?P[A-Z0-9]+)-(?P[A-Z0-9]+)-(?P[A-Z]{4})-(?P[A-Z]{4})\)$` depPatternString = `^\((?P[A-Z]{3})-(?P[A-Z0-9]+)-(?P[A-Z0-9]+)-(?P[A-Z]{4})-(?P\d{4})-(?P[A-Z]{4})\)$` fplPatternString = `^\((?P[A-Z]{3})\-(?P[A-Z]+\d+)\-(?P[A-Z]{2})(?:.*\s*)?\-(?P[A-Z]+\d+\/?[A-Z]?)\s*\-(?P.*)\s*\-(?P[A-Z]{4})(?P\d{4})\s*\-(?P[A-Z]+\d+)(?P[A-Z0-9]+)\s(?P.*)\s*\-(?P[A-Z]{4})(?P\d{4})\s(?P[A-Z]{4})\s*\-(?PPBN\/[A-Z0-9]+)\s(?P