ValidateName valida o nome de um contexto
(name string)
| 34 | |
| 35 | // ValidateName valida o nome de um contexto |
| 36 | func (v *Validator) ValidateName(name string) error { |
| 37 | name = strings.TrimSpace(name) |
| 38 | |
| 39 | if len(name) < MinNameLength { |
| 40 | return fmt.Errorf("nome muito curto (mínimo %d caracteres)", MinNameLength) |
| 41 | } |
| 42 | |
| 43 | if len(name) > MaxContextNameLength { |
| 44 | return fmt.Errorf("nome muito longo (máximo %d caracteres)", MaxContextNameLength) |
| 45 | } |
| 46 | |
| 47 | // Validar caracteres permitidos: letras, números, hífens, underscores, espaços |
| 48 | validNamePattern := regexp.MustCompile(`^[a-zA-Z0-9\-_ ]+$`) |
| 49 | if !validNamePattern.MatchString(name) { |
| 50 | return fmt.Errorf("nome contém caracteres inválidos (apenas letras, números, hífens, underscores e espaços)") |
| 51 | } |
| 52 | |
| 53 | // Não permitir apenas espaços/hífens |
| 54 | if strings.Trim(name, " -_") == "" { |
| 55 | return fmt.Errorf("nome inválido: deve conter pelo menos uma letra ou número") |
| 56 | } |
| 57 | |
| 58 | return nil |
| 59 | } |
| 60 | |
| 61 | // ValidateDescription valida a descrição de um contexto |
| 62 | func (v *Validator) ValidateDescription(description string) error { |