package com.liangjian.dataplatform.member.entity.po;

import javax.persistence.MappedSuperclass;
import java.util.function.Function;

/**
 * @Author: 黄子奇
 * @Date: 2019/10/7 11:00
 *
 * 带有生命周期的业务模型接口
 */
public interface LifeCycleObject {

    /**
     * 是否是新增
     * @return
     */
    boolean isNew();

    /**
     * 新增前执行
     */
    default void beforeCreate() {
    }

    /**
     * 新增后执行
     */
    default void afterCreate() {
    }

    /**
     * 更新前执行
     */
    default void beforeUpdate() {
    }

    /**
     * 更新后执行
     */
    default void afterUpdate() {
    }

    /**
     * 删除前执行
     */
    default void beforeDelete() {
    }

    /**
     * 删除后执行
     */
    default void afterDelete() {
    }
}
