package repository

import (
	"context"

	"gateway/internal/model/member/domain/entity"
)

// IdentityRepository persists zitadel_sub / external_id to uid mappings.
type IdentityRepository interface {
	Insert(ctx context.Context, identity *entity.Identity) error
	GetByZitadelUserID(ctx context.Context, tenantID, zitadelUserID string) (*entity.Identity, error)
	GetByExternalID(ctx context.Context, tenantID, externalID string) (*entity.Identity, error)
	GetByUID(ctx context.Context, tenantID, uid string) (*entity.Identity, error)
}
