import Model from 'ember-data/model';
import attr from 'ember-data/attr';
import { computed, get } from '@ember/object';
import isFolder from 'consul-ui/utils/isFolder';

export const PRIMARY_KEY = 'uid';
// not really a slug as it contains slashes but all intents and purposes
// its my 'slug'
export const SLUG_KEY = 'Key';

export default Model.extend({
  [PRIMARY_KEY]: attr('string'),
  [SLUG_KEY]: attr('string'),
  LockIndex: attr('number'),
  Flags: attr('number'),
  // TODO: Consider defaulting all strings to '' because `typeof null !== 'string'`
  // look into what other transformers do with `null` also
  // preferably removeNull would be done in this layer also as if a property is `null`
  // default Values don't kick in, which also explains `Tags` elsewhere
  Value: attr('string'), //, {defaultValue: function() {return '';}}
  CreateIndex: attr('number'),
  ModifyIndex: attr('number'),
  Session: attr('string'),
  Datacenter: attr('string'),
  Namespace: attr('string'),

  isFolder: computed('Key', function() {
    return isFolder(get(this, 'Key') || '');
  }),
});
