package com.engage.entitlement.service;
import java.util.List;
import clear.cdb.extjs.annotations.JSGenerateStore;
import clear.cdb.extjs.annotations.JSJPQLMethod;
import clear.cdb.extjs.annotations.JSService;
import clear.cdb.extjs.annotations.JSTransferInfo;
import clear.cdb.extjs.annotations.JSUpdateInfo;
import com.engage.entitlement.entity.UserEntity;
@JSService
public interface IUserService {
@JSGenerateStore
@JSJPQLMethod(
query="SELECT u.usrId, u.firstName, u.lastName, u.emailId, u.loginId, u.pwd"
+ ",u.selfDesc, u.title, u.photoFileUri, u.primaryCommunityId, u.isSponsor"
+ ",u.addressLine1, u.addressLine2, u.city, u.state, u.isoCountryCode"
+ ",u.postalCode"
+ ",u.contactNo, u.trialEndDate, u.isUnsubscribedByusr, u.isNonBilling"
+ ",u.isEmailDisplay, u.isContactnoDisplay, u.isTempPwdFlag, u.isEmailSendNotify"
+ ",u.pwdExpDate, u.emailFormatFlag, u.isKeepmeLoggedIn, u.lastViewedTreeId"
+ ",u.lastViewedTreeDate, u.userStatus, u.createdBy, u.createdDate, u.updatedBy"
+ ",u.updatedDate, u.termsAcceptedDate"
+ ",u.unsubscribedDate, u.unsubscribedReason, u.unsubscribedConfirmationNo"
+ ",( SELECT MIN(r1.roleId)"
+ " FROM UserRoleEntity ur1, RoleEntity r1"
+ " WHERE ur1.usrId=u.usrId AND r1.roleName='CA'"
+ " AND ur1.roleId=r1.roleId"
+ ") as communityAdminId"
+ ",( SELECT MIN(r2.roleId)"
+ " FROM UserRoleEntity ur2, RoleEntity r2"
+ " WHERE ur2.usrId=u.usrId AND r2.roleName='Part'"
+ " AND ur2.roleId=r2.roleId"
+ ") as participantId"
+ ",( SELECT MIN(r3.roleId)"
+ " FROM UserRoleEntity ur3, RoleEntity r3"
+ " WHERE ur3.usrId=u.usrId AND r3.roleName='Host'"
+ " AND ur3.roleId=r3.roleId"
+ ") as hostId"
+ " FROM UserEntity u WHERE usrId=:id",
transferInfo=@JSTransferInfo(
type="com.engage.entitlement.dto.UserEntityDTO",
mappedBy=UserEntity.class),
updateInfo=@JSUpdateInfo(updateEntity=UserEntity.class, autoSyncEnabled=true)
)
List<?> getById(Long id);
}