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

	constructor: function(cfg) {
		var me = this;
		cfg = cfg || {};
		me.callParent([Ext.apply({
			proxy: {
				type: 'ajax',
				url: App.url('/user/list.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'
				},
				{
					name: 'firstname',
					type: 'string'
				},
				{
					name: 'lastname',
					type: 'string'
				},
				{
					name: 'department',
					type: 'string'
				},
				{
					name: 'deptId',
					type: 'int',
					useNull: true
				},
				{
					name: 'title',
					type: 'string'
				},
				{
					name: 'email',
					type: 'string'
				},
				{
					name: 'phone1',
					type: 'string'
				},
				{
					name: 'phone2',
					type: 'string'
				},
				{
					name: 'remarks',
					type: 'string'
				},
				{
					name: 'companyId',
					type: 'int',
					useNull: true
				},
				{
					name: 'companyCode',
					type: 'string'
				},
				{
					name: 'companyName',
					type: 'string'
				},
				{
					name: 'groupId',
					type: 'int'
				}
			]
		}, cfg)]);
	}
});

// <#-- User  Combo Store -->
Ext.define('App.store.UserComboStore', {
	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/combo.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)]);
	}
});


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

	constructor: function(cfg) {
		var me = this;
		cfg = cfg || {};
		me.callParent([Ext.apply({
			proxy: {
				type: 'ajax',
				url: App.url('/user/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)]);
	}
});