package repository import ( "context" "gateway/internal/model/permission/domain/entity" "gateway/internal/model/permission/domain/enum" ) // RoleMappingRepository persists external IdP group → internal role maps. type RoleMappingRepository interface { Insert(ctx context.Context, rm *entity.RoleMapping) error Upsert(ctx context.Context, rm *entity.RoleMapping) error Delete(ctx context.Context, tenantID string, source enum.RoleSource, externalKey string) error DeleteByRole(ctx context.Context, tenantID, roleID string) (int64, error) GetByExternal( ctx context.Context, tenantID string, source enum.RoleSource, externalKey string, ) (*entity.RoleMapping, error) ListByTenant( ctx context.Context, tenantID string, source *enum.RoleSource, offset, limit int64, ) ([]*entity.RoleMapping, int64, error) }