1<?php
2
3namespace Elgg\Database\Seeds;
4
5/**
6 * Provides seedable methods for database seeding and unit tests
7 */
8interface Seedable {
9
10	/**
11	 * Create a new fake user
12	 *
13	 * @param array $attributes User entity attributes
14	 * @param array $metadata   User entity metadata
15	 *
16	 * @return \ElggUser
17	 */
18	public function createUser(array $attributes = [], array $metadata = []);
19
20	/**
21	 * Create a new fake group
22	 *
23	 * @param array $attributes Group entity attributes
24	 * @param array $metadata   Group entity metadata
25	 *
26	 * @return \ElggGroup
27	 */
28	public function createGroup(array $attributes = [], array $metadata = []);
29
30	/**
31	 * Create a new fake object
32	 *
33	 * @param array $attributes Object entity attributes
34	 * @param array $metadata   Object entity metadata
35	 *
36	 * @return \ElggObject
37	 */
38	public function createObject(array $attributes = [], array $metadata = []);
39
40	/**
41	 * Create a new fake site
42	 *
43	 * @param array $attributes Site entity attributes
44	 * @param array $metadata   Site entity metadata
45	 *
46	 * @return \ElggSite
47	 */
48	public function createSite(array $attributes = [], array $metadata = []);
49}
50