export interface IManagedSecretTarget {
  connectionId: string;
  scope: 'project' | 'group';
  scopeId: string;
  scopeName: string;
}

export type TPushStatus = 'pending' | 'success' | 'error';

export interface IManagedSecretTargetStatus {
  connectionId: string;
  scope: 'project' | 'group';
  scopeId: string;
  scopeName: string;
  status: TPushStatus;
  error?: string;
  lastPushedAt?: number;
}

export interface IManagedSecret {
  id: string;
  key: string;
  description?: string;
  targets: IManagedSecretTarget[];
  targetStatuses: IManagedSecretTargetStatus[];
  createdAt: number;
  updatedAt: number;
  lastPushedAt?: number;
}

export interface IManagedSecretStored {
  id: string;
  key: string;
  description?: string;
  value: string;
  targets: IManagedSecretTarget[];
  targetStatuses: IManagedSecretTargetStatus[];
  createdAt: number;
  updatedAt: number;
  lastPushedAt?: number;
}
