package model

import (
	"errors"
	"strings"
	"time"
)

// User repräsentiert einen Nutzer der Applikation.
type User struct {
	ID        int64     `json:"id"`
	Name      string    `json:"name"`
	CreatedAt time.Time `json:"created_at"`
}

// CreateUserRequest enthält die Felder zum Anlegen eines Nutzers.
type CreateUserRequest struct {
	Name string `json:"name"`
}

// Validate prüft den Request.
func (r *CreateUserRequest) Validate() error {
	r.Name = strings.TrimSpace(r.Name)
	if len(r.Name) == 0 {
		return errors.New("Name darf nicht leer sein")
	}
	if len(r.Name) > 50 {
		return errors.New("Name darf maximal 50 Zeichen lang sein")
	}
	return nil
}
