
import ns org.eclipse.osbp.authentication.account.entities.UserAccount
import ns org.eclipse.osbp.authentication.account.entities.UserAccountFilter
package org.eclipse.osbp.authentication.account.dtos {

	autoDto UserAccountDto wraps UserAccount {

		inheritVar id
		inheritVar email
		inheritVar userName
		inheritVar password
		inheritVar extraPassword
		inheritVar passwordReset
		inheritVar position
		inheritVar defaultPerspective
		inheritVar enabled
		inheritVar locked
		inheritVar superuser
		inheritVar forcePwdChange
		inheritVar notRegistered
		inheritVar failedAttempt
		inheritVar successfulAttempt
		inheritVar
		cookieHashCode
		inheritVar localeTag
		inheritVar profileimage
		inheritVar layoutingStrategy
		inheritVar focusingStrategy
		inheritVar theme
		inheritVar printService
		inheritVar savedProperties
		inheritRef userAccountFilter mapto UserAccountFilterDto
	}

	autoDto UserAccountFilterDto wraps UserAccountFilter {

		inheritVar id
		inheritVar ^filter
		inheritVar invers
		inheritRef userAccount mapto UserAccountDto
	}
}