export enum ValueType {
  PLAIN_TEXT = "plain_text",
  LICENSE_KEY = "license_key",
  IP_ADDRESS = "ip_address",
  GENERIC_SECRET = "generic_secret",
  BITLOCKER_KEY = "bitlocker_key",
  PASSWORD = "password",
  MULTI_CREDENTIAL = "multi_credential",
}

export interface CredentialTypeField {
  id: string; // I.e. "clientId", "clientSecret", etc.
  name: string; // I.e. "Client ID", "Client Secret", etc.
  required: boolean;
  subFields?: CredentialTypeField[]; // For multi-credential fields, defines the sub-fields that are required
  secure: boolean; // Whether this field should be stored encrypted in the database
  valueType: ValueType; // For future extensibility, currently all fields are strings
}

export interface CredentialField {
  fieldId: string; // I.e. "clientId", "clientSecret", etc.
  value: string; // Encrypted value stored in the database
  subCredentials?: string[]; // For multi-credential fields, the IDs of the sub-credentials that are associated with this field
}
