// <#-- Group Store -->
Ext.define('App.store.GroupStore', {
	extend: 'Ext.data.Store',
	autoLoad: true,

	constructor: function(cfg) {
		var me = this;
		cfg = cfg || {};
		me.callParent([Ext.apply({
			proxy: {
				type: 'ajax',
				url: App.url('/user/group/list.json'),
				extraParams: cfg.extraParams || {},
				reader: {
					type: 'json',
					root: 'records',
					idProperty: 'id'
				}
			},
			fields: [
				{
					name: 'id',
					type: 'int',
					useNull: true
				},
				{
					name: 'name',
					type: 'string'
				},
				{
					name: 'description',
					type: 'string'
				},
				{
					name: 'v',
					type: 'boolean'
				}
			]
		},
		cfg)]);
	}
});


// <#-- Group User Store -->
Ext.define('App.store.GroupUserStore', {
	extend: 'Ext.data.Store',

	constructor: function(cfg) {
		var me = this;
		cfg = cfg || {};
		me.callParent([Ext.apply({
			proxy: {
				type: 'ajax',
				url: App.url('/user/group/user.json'),
				extraParams: cfg.extraParams || {},
				reader: {
					type: 'json',
					root: 'records',
					idProperty: 'id'
				}
			},
			fields: [
				{
					name: 'id',
					type: 'int',
					useNull: true
				},
				{
					name: 'username',
					type: 'string'
				},
				{
					name: 'fullname',
					type: 'string'
				}
			]
		},
		cfg)]);
	}
});

// <#-- Group Authority Store -->
Ext.define('App.store.GroupAuthStore', {
	extend: 'Ext.data.Store',

	constructor: function(cfg) {
		var me = this;
		cfg = cfg || {};
		me.callParent([Ext.apply({
			proxy: {
				type: 'ajax',
				url: App.url('/user/group/auth.json'),
				extraParams: cfg.extraParams || {},
				reader: {
					type: 'json',
					root: 'records',
					idProperty: 'authority'
				}
			},
			fields: [
				{
					name: 'authority',
					type: 'string'
				},
				{
					name: 'module',
					type: 'string'
				},
				{
					name: 'name',
					type: 'string'
				},
				{
					name: 'description',
					type: 'string'
				}
			]
		},
		cfg)]);
	}
});