// Path: teemo/src/main/java/com/teemo/core/entity/BaseEntity.java
// public abstract class BaseEntity implements Serializable {
// }
// 
// Path: teemo/src/main/java/com/teemo/core/entity/LogicDeletable.java
// public interface LogicDeletable {
//     public Boolean getDeleted();
//     public void setDeleted(Boolean deleted);
// 
//     /**
//      * 标记实体为已删除
//      */
//     public void markDeleted();
// }


import com.alibaba.fastjson.annotation.JSONField;
import com.alibaba.fastjson.annotation.JSONType;
import com.teemo.core.entity.BaseEntity;
import com.teemo.core.entity.LogicDeletable;
import core.support.repository.EnabledQueryCache;
import org.hibernate.annotations.Cache;
import org.hibernate.annotations.CacheConcurrencyStrategy;
import org.hibernate.annotations.DynamicInsert;
import javax.persistence.*;
import java.util.Date;
import java.util.HashSet;
import java.util.Set;

/**
 * Copyright (c) 2016- https://github.com/beiyoufx
 *
 * Licensed under the GPL-3.0
 */
package com.teemo.entity;



/**
 * 用户信息
 * @author yongjie.teng
 * @version 1.0
 * @date 16-10-21
 * @email yongjie.teng@foxmail.com
 * @package com.teemo.entity
 * @project teemo
 */
@Entity
@Table(name = "user")
@DynamicInsert(value = true)
@Cache(region = "all", usage = CacheConcurrencyStrategy.READ_WRITE)
@EnabledQueryCache
@JSONType(orders = {"id", "username", "nickname", "email", "mobilePhone", "status", "departmentKey", "createTime", "modifyTime", "roles"},
            ignores = {"password", "salt", "deleted"})

// Path: teemo/src/main/java/com/teemo/core/entity/BaseEntity.java
// public abstract class BaseEntity implements Serializable {
// }
// 
// Path: teemo/src/main/java/com/teemo/core/entity/LogicDeletable.java
// public interface LogicDeletable {
//     public Boolean getDeleted();
//     public void setDeleted(Boolean deleted);
// 
//     /**
//      * 标记实体为已删除
//      */
//     public void markDeleted();
// }


// Path: teemo/src/main/java/com/teemo/entity/User.java
import com.alibaba.fastjson.annotation.JSONField;
import com.alibaba.fastjson.annotation.JSONType;
import com.teemo.core.entity.BaseEntity;
import com.teemo.core.entity.LogicDeletable;
import core.support.repository.EnabledQueryCache;
import org.hibernate.annotations.Cache;
import org.hibernate.annotations.CacheConcurrencyStrategy;
import org.hibernate.annotations.DynamicInsert;
import javax.persistence.*;
import java.util.Date;
import java.util.HashSet;
import java.util.Set;

/**
 * Copyright (c) 2016- https://github.com/beiyoufx
 *
 * Licensed under the GPL-3.0
 */
package com.teemo.entity;



/**
 * 用户信息
 * @author yongjie.teng
 * @version 1.0
 * @date 16-10-21
 * @email yongjie.teng@foxmail.com
 * @package com.teemo.entity
 * @project teemo
 */
@Entity
@Table(name = "user")
@DynamicInsert(value = true)
@Cache(region = "all", usage = CacheConcurrencyStrategy.READ_WRITE)
@EnabledQueryCache
@JSONType(orders = {"id", "username", "nickname", "email", "mobilePhone", "status", "departmentKey", "createTime", "modifyTime", "roles"},
            ignores = {"password", "salt", "deleted"})

public class User extends BaseEntity implements LogicDeletable {
