// Copyright 2019 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

import {fieldTypes} from 'shared/issue-fields.js';
import {USER_REF} from './constants-users.js';
import 'shared/typedef.js';

/** @type {string} */
export const PROJECT_NAME = 'project-name';

/** @type {FieldDef} */
export const FIELD_DEF_INT = Object.freeze({
  fieldRef: Object.freeze({
    fieldId: 123,
    fieldName: 'field-name',
    type: fieldTypes.INT_TYPE,
  }),
});

/** @type {FieldDef} */
export const FIELD_DEF_ENUM = Object.freeze({
  fieldRef: Object.freeze({
    fieldId: 456,
    fieldName: 'enum',
    type: fieldTypes.ENUM_TYPE,
  }),
});

/** @type {Array<FieldDef>} */
export const FIELD_DEFS = [
  FIELD_DEF_INT,
  FIELD_DEF_ENUM,
];

/** @type {Config} */
export const CONFIG = Object.freeze({
  projectName: PROJECT_NAME,
  fieldDefs: FIELD_DEFS,
  labelDefs: [
    {label: 'One'},
    {label: 'EnUm'},
    {label: 'eNuM-Options'},
    {label: 'hello-world', docstring: 'hmmm'},
    {label: 'hello-me', docstring: 'hmmm'},
  ],
});

/** @type {string} */
export const DEFAULT_QUERY = 'owner:me';

/** @type {PresentationConfig} */
export const PRESENTATION_CONFIG = Object.freeze({
  projectThumbnailUrl: 'test.png',
  defaultColSpec: 'ID+Summary+AllLabels',
  defaultQuery: DEFAULT_QUERY,
});

/** @type {Array<string>} */
export const CUSTOM_PERMISSIONS = ['google', 'security'];

/** @type {{userRefs: Array<UserRef>, groupRefs: Array<UserRef>}} */
export const VISIBLE_MEMBERS = Object.freeze({
  userRefs: [USER_REF],
  groupRefs: [],
});

/** @type {TemplateDef} */
export const TEMPLATE_DEF = Object.freeze({
  templateName: 'Template Name',
});

export const STATE = Object.freeze({projectV0: {
  name: PROJECT_NAME,
  configs: {[PROJECT_NAME]: CONFIG},
  presentationConfigs: {[PROJECT_NAME]: PRESENTATION_CONFIG},
  customPermissions: {[PROJECT_NAME]: CUSTOM_PERMISSIONS},
  visibleMembers: {[PROJECT_NAME]: VISIBLE_MEMBERS},
  templates: {[PROJECT_NAME]: TEMPLATE_DEF},
}});
