export type TCustomAttributeTypes =
  | "checkbox"
  | "datetime"
  | "email"
  | "entity"
  | "file"
  | "multi_select"
  | "number"
  | "option"
  | "relation"
  | "select"
  | "text"
  | "url";

export type TCustomAttributeUnits = "cycle" | "issue" | "module" | "user" | null;

// export type TCustomAttributeExtraSettings =
//   | {
//       type: "checkbox";
//       extra_settings: {
//         representation: "check" | "toggle_switch";
//       };
//     }
//   | {
//       type: "datetime";
//       extra_settings: {
//         date_format: "DD-MM-YYYY" | "MM-DD-YYYY" | "YYYY-MM-DD";
//         hide_date: boolean;
//         hide_time: boolean;
//         time_format: "12" | "24";
//       };
//     }
//   | {
//       type: "number";
//       extra_settings: {
//         divided_by: number;
//         representation: "numerical" | "bar" | "ring";
//         show_number: boolean;
//       };
//     };

export interface ICustomAttribute {
  children: ICustomAttribute[];
  color: string;
  default_value: string;
  description: string;
  display_name: string;
  extra_settings: { [key: string]: any };
  icon: string | null;
  id: string;
  is_default: boolean;
  is_multi: boolean;
  is_required: boolean;
  parent: string | null;
  project: string | null;
  sort_order: number;
  type: TCustomAttributeTypes;
  unit: TCustomAttributeUnits;
  workspace: string;
}

export interface ICustomAttributeValue {
  children: ICustomAttributeValue[];
  id: string;
  name: string;
  prop_value:
    | {
        type: 0 | 1;
        value: string;
      }[]
    | null;
  prop_extra:
    | {
        id: string;
        name: string;
      }[]
    | null;
  type: TCustomAttributeTypes;
  unit: TCustomAttributeUnits;
}

export interface ICustomAttributeValueFormData {
  issue_properties: {
    [key: string]: string[];
  };
  a_epoch?: number;
}