package repository // Tokens represents a user record with info and permissions. type Tokens struct { ID int64 `json:"id"` Name string `json:"name"` LastName string `json:"last_name"` Login string `json:"login"` Token string `json:"token"` PermissionView bool `json:"permission_view"` PermissionManage bool `json:"permission_manage_agent"` PermissionAdmin bool `json:"permission_admin"` } // TokenCreate is the request body for creating a new user. type TokenCreate struct { Name string `json:"name" binding:"required"` LastName string `json:"last_name" binding:"required"` Login string `json:"login" binding:"required"` Password string `json:"password" binding:"required"` PermissionView bool `json:"permission_view"` PermissionManage bool `json:"permission_manage_agent"` PermissionAdmin bool `json:"permission_admin"` } // LoginRequest is the request body for login. type LoginRequest struct { Login string `json:"login" binding:"required"` Password string `json:"password" binding:"required"` } // LoginResponse is returned after successful login. type LoginResponse struct { Token string `json:"token"` Name string `json:"name"` LastName string `json:"last_name"` Login string `json:"login"` PermissionView bool `json:"permission_view"` PermissionManage bool `json:"permission_manage_agent"` PermissionAdmin bool `json:"permission_admin"` } // RegistrationToken represents a one-time agent registration token. type RegistrationToken struct { ID int64 `json:"id"` Token string `json:"token"` Label string `json:"label"` Used bool `json:"used"` CreatedAt *string `json:"created_at"` UsedAt *string `json:"used_at"` } // RegistrationRequest is the request body for creating a registration token. type RegistrationRequest struct { Label string `json:"label" binding:"required"` } // RegistrationResponse is returned when an agent registers. type RegistrationResponse struct { CACert string `json:"ca_cert"` ClientCert string `json:"client_cert"` }