// ========================================================================
// Copyright (C) zeroth Project Team. All rights reserved.
// GNU AFFERO GENERAL PUBLIC LICENSE Version 3, 19 November 2007
// http://www.gnu.org/licenses/agpl-3.0.txt
// ========================================================================
package zeroth.actor.service.domain;
import javax.persistence.Access;
import javax.persistence.AccessType;
import javax.persistence.Cacheable;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.EnumType;
import javax.persistence.Enumerated;
import javax.persistence.FetchType;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;
import javax.persistence.UniqueConstraint;
import zeroth.actor.service.domain.parts.Auth;
import zeroth.framework.enterprise.domain.AbstractVersionable;
/**
* 社員権限
* @author nilcy
*/
@Entity
@Access(AccessType.FIELD)
@Table(name = "member_auth", uniqueConstraints = { @UniqueConstraint(columnNames = { "account",
"auth" }) })
@Cacheable(true)
public class MemberAuth extends AbstractVersionable<MemberAuth> {
/** 製品番号 */
private static final long serialVersionUID = -536967469017451589L;
/** 社員 */
@ManyToOne(cascade = CascadeType.REFRESH, fetch = FetchType.LAZY)
@JoinColumn(name = "member_id", nullable = false)
private Member member;
/** アカウント */
@Column(name = "account", nullable = false)
private String account;
/** 権限 */
@Column(name = "auth", nullable = false)
@Enumerated(EnumType.STRING)
private Auth auth;
/**
* {@link #member} の取得
* @return {@link #member}
*/
public Member getMember() {
return member;
}
/**
* {@link #member} の設定
* @param aMember {@link #member}
*/
public void setMember(final Member aMember) {
member = aMember;
}
/**
* {@link #account} の取得
* @return {@link #account}
*/
public String getAccount() {
return account;
}
/**
* {@link #account} の設定
* @param aAccount {@link #account}
*/
public void setAccount(final String aAccount) {
account = aAccount;
}
/**
* {@link #auth} の取得
* @return {@link #auth}
*/
public Auth getAuth() {
return auth;
}
/**
* {@link #auth} の設定
* @param aAuth {@link #auth}
*/
public void setAuth(final Auth aAuth) {
auth = aAuth;
}
}