mirror of
https://github.com/Unleash/unleash.git
synced 2025-09-19 17:52:45 +02:00
https://linear.app/unleash/issue/2-811/ability-to-move-project-specific-segments  Provides some safeguards to project-specific segments when managing them on a global level (segments page): - You can always promote a segment to global; - You can't specify a project if the segment is currently in use in multiple projects; - You can't specify a different project if the segment is currently already in use in a project;
38 lines
941 B
TypeScript
38 lines
941 B
TypeScript
import { UpsertSegmentSchema } from 'lib/openapi';
|
|
import { ISegment, IUser } from 'lib/types';
|
|
|
|
export interface ISegmentService {
|
|
updateStrategySegments: (
|
|
strategyId: string,
|
|
segmentIds: number[],
|
|
) => Promise<void>;
|
|
|
|
addToStrategy(id: number, strategyId: string): Promise<void>;
|
|
|
|
getByStrategy(strategyId: string): Promise<ISegment[]>;
|
|
|
|
get(id: number): Promise<ISegment>;
|
|
|
|
getActive(): Promise<ISegment[]>;
|
|
|
|
getAll(): Promise<ISegment[]>;
|
|
|
|
create(
|
|
data: UpsertSegmentSchema,
|
|
user: Partial<Pick<IUser, 'username' | 'email'>>,
|
|
): Promise<ISegment>;
|
|
|
|
update(
|
|
id: number,
|
|
data: UpsertSegmentSchema,
|
|
user: Partial<Pick<IUser, 'username' | 'email'>>,
|
|
): Promise<void>;
|
|
|
|
delete(id: number, user: IUser): Promise<void>;
|
|
|
|
cloneStrategySegments(
|
|
sourceStrategyId: string,
|
|
targetStrategyId: string,
|
|
): Promise<void>;
|
|
}
|