/*
  @Self: Current object
  @Parent: Parent object
  @Config: Configs in yod
  @Xxx: Other pre-defined random data generator
  In yod, Array is not object, only the plain javascript object.
*/
// 定义一个用户类型
yod.type('User', {
  id: '@Id',
  firstName: '@First',
  myFirstNameLength: '@Self.firstName.length',
  lastName: '@Last',
  '@Self.lastName': 'is my family name',  // Hack the object key!
  fullName: '@Self.firstName @Self.lastName',
  nickName: '@Nick',
  chineseName: '@ChineseName',
  children: '@First.repeat(1, 3)',    // Return an array.
  favouriteChild: '@Self.children.sample', // Use lodash's `sample` function
  age: '@Age(adult)',
  to100: '` 100 - @Self.age `', // Execute the JS code.
  telephone: '@Tel',
  avatar: '@Avatar',
  others: {
    objectInArray: [{a: '@Parent.Parent.age', b: '@Tel'}],
    getSystemConfig: '@Config.system.word.face.sample',
    words: 'Hello, my name is @Parent.fullName, you can call me @Parent.nickName.',
    bestFriends: '@Nick.repeat(2, 3).join(", ")' // Use native JS's `join` function
  }
});
// 重复生成 2 - 4 个用户
console.log(yod({
  status: 'ok',
  list: '@User.repeat(2, 4)'
}));
// 你也可以直接返回一个数组(去掉下面注释可以查看结果)
// console.log(yod('@User.repeat(2, 4)'));