package domain import "context" type UserRepository interface { Create(ctx context.Context, user *User) error FindByID(ctx context.Context, tenantID string, id uint) (*User, error) FindByEmail(ctx context.Context, tenantID string, email string) (*User, error) FindByUsername(ctx context.Context, tenantID string, username string) (*User, error) Update(ctx context.Context, user *User) error List(ctx context.Context, tenantID string, page, pageSize int, search string, status *int) ([]User, int64, error) Delete(ctx context.Context, tenantID string, id uint) error Count(ctx context.Context, tenantID string) (int64, error) CountAll(ctx context.Context) (int64, error) ListAll(ctx context.Context, page, pageSize int) ([]User, int64, error) }