package client
import "time"
type User struct {
ID string `json:"id"`
Email string `json:"email"`
FirstName string `json:"first_name"`
LastName string `json:"last_name"`
Username string `json:"username"`
Status string `json:"status"` // "active", "inactive", "deleted"
Department string `json:"department,omitempty"`
CreatedAt time.Time `json:"created_at"`
LastLogin *time.Time `json:"last_login,omitempty"`
}
type Role struct {
ID string `json:"id"`
Name string `json:"name"`
Description string `json:"description"`
}
type Group struct {
ID string `json:"id"`
Name string `json:"name"`
Description string `json:"description"`
}
type Member struct {
UserID string `json:"user_id"`
}
type GroupAssignment struct {
GroupID string `json:"group_id"`
}
type RoleAssignment struct {
RoleID string `json:"role_id"`
}
type CreateUserRequest struct {
Email string `json:"email"`
FirstName string `json:"first_name"`
LastName string `json:"last_name"`
Username string `json:"username"`
Password string `json:"password,omitempty"`
}
type ListResponse[T any] struct {
Data []T `json:"data"`
NextCursor string `json:"next_cursor"`
}
type SingleResponse[T any] struct {
Data T `json:"data"`
}
type TokenResponse struct {
AccessToken string `json:"access_token"`
ExpiresIn int `json:"expires_in"`
TokenType string `json:"token_type"`
}