2026-05-09 14:18:36 +07:00

25 lines
1.2 KiB
Go

package processor
import (
"apskel-pos-be/internal/entities"
"context"
"github.com/google/uuid"
)
type UserRepository interface {
Create(ctx context.Context, user *entities.User) error
GetByID(ctx context.Context, id uuid.UUID) (*entities.User, error)
GetByEmail(ctx context.Context, email string) (*entities.User, error)
GetByOrganizationID(ctx context.Context, organizationID uuid.UUID) ([]*entities.User, error)
GetByRole(ctx context.Context, role entities.UserRole) ([]*entities.User, error)
GetActiveUsers(ctx context.Context, organizationID uuid.UUID) ([]*entities.User, error)
Update(ctx context.Context, user *entities.User) error
Delete(ctx context.Context, id uuid.UUID) error
UpdatePassword(ctx context.Context, id uuid.UUID, passwordHash string) error
UpdateActiveStatus(ctx context.Context, id uuid.UUID, isActive bool) error
List(ctx context.Context, filters map[string]interface{}, limit, offset int) ([]*entities.User, int64, error)
Count(ctx context.Context, filters map[string]interface{}) (int64, error)
UpdateFcmToken(ctx context.Context, id uuid.UUID, fcmToken string) error
GetUsersWithFcmTokenByOrganization(ctx context.Context, organizationID uuid.UUID) ([]*entities.User, error)
}