package iam import ( "context" "atlas9.dev/c/core" ) type User struct { ID core.ID Email string Verified bool } // UserStore provides access to user data type UserStore interface { Save(ctx context.Context, user *User) (created bool, err error) // GetUserByEmail gets a user by email. // Returns core.ErrNotFound if user doesn't exist GetByEmail(ctx context.Context, email string) (*User, error) // Get gets a user by ID. // Returns core.ErrNotFound if user doesn't exist Get(ctx context.Context, id core.ID) (*User, error) // Verify marks a user's email as verified. Verify(ctx context.Context, id core.ID) error }