package net.wicp.tams.app.duckula.controller.dao;

import java.util.List;
import net.wicp.tams.app.duckula.controller.bean.models.SysTenantRela;
import net.wicp.tams.app.duckula.controller.bean.models.SysTenantRelaExample;
import org.apache.ibatis.annotations.Delete;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.ResultMap;
import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.annotations.Update;

public interface SysTenantRelaMapper {

	/**
	 * This method was generated by MyBatis Generator. This method corresponds to the database table sys_tenant_rela
	 * @mbg.generated
	 */
	long countByExample(SysTenantRelaExample example);

	/**
	 * This method was generated by MyBatis Generator. This method corresponds to the database table sys_tenant_rela
	 * @mbg.generated
	 */
	int deleteByExample(SysTenantRelaExample example);

	/**
	 * This method was generated by MyBatis Generator. This method corresponds to the database table sys_tenant_rela
	 * @mbg.generated
	 */
	@Delete({ "delete from sys_tenant_rela", "where id = #{id,jdbcType=BIGINT}" })
	int deleteByPrimaryKey(Long id);

	/**
	 * This method was generated by MyBatis Generator. This method corresponds to the database table sys_tenant_rela
	 * @mbg.generated
	 */
	@Insert({ "insert into sys_tenant_rela (id, tenant_main, ", "tenant_rela, rela_type, ", "status, status_time, ",
			"operate_reason)", "values (#{id,jdbcType=BIGINT}, #{tenantMain,jdbcType=BIGINT}, ",
			"#{tenantRela,jdbcType=BIGINT}, #{relaType,jdbcType=VARCHAR}, ",
			"#{status,jdbcType=VARCHAR}, #{statusTime,jdbcType=TIMESTAMP}, ", "#{operateReason,jdbcType=VARCHAR})" })
	int insert(SysTenantRela record);

	/**
	 * This method was generated by MyBatis Generator. This method corresponds to the database table sys_tenant_rela
	 * @mbg.generated
	 */
	int insertSelective(SysTenantRela record);

	/**
	 * This method was generated by MyBatis Generator. This method corresponds to the database table sys_tenant_rela
	 * @mbg.generated
	 */
	List<SysTenantRela> selectByExample(SysTenantRelaExample example);

	/**
	 * This method was generated by MyBatis Generator. This method corresponds to the database table sys_tenant_rela
	 * @mbg.generated
	 */
	@Select({ "select", "id, tenant_main, tenant_rela, rela_type, status, status_time, operate_reason",
			"from sys_tenant_rela", "where id = #{id,jdbcType=BIGINT}" })
	@ResultMap("net.wicp.tams.app.duckula.controller.dao.SysTenantRelaMapper.BaseResultMap")
	SysTenantRela selectByPrimaryKey(Long id);

	/**
	 * This method was generated by MyBatis Generator. This method corresponds to the database table sys_tenant_rela
	 * @mbg.generated
	 */
	int updateByExampleSelective(@Param("record") SysTenantRela record, @Param("example") SysTenantRelaExample example);

	/**
	 * This method was generated by MyBatis Generator. This method corresponds to the database table sys_tenant_rela
	 * @mbg.generated
	 */
	int updateByExample(@Param("record") SysTenantRela record, @Param("example") SysTenantRelaExample example);

	/**
	 * This method was generated by MyBatis Generator. This method corresponds to the database table sys_tenant_rela
	 * @mbg.generated
	 */
	int updateByPrimaryKeySelective(SysTenantRela record);

	/**
	 * This method was generated by MyBatis Generator. This method corresponds to the database table sys_tenant_rela
	 * @mbg.generated
	 */
	@Update({ "update sys_tenant_rela", "set tenant_main = #{tenantMain,jdbcType=BIGINT},",
			"tenant_rela = #{tenantRela,jdbcType=BIGINT},", "rela_type = #{relaType,jdbcType=VARCHAR},",
			"status = #{status,jdbcType=VARCHAR},", "status_time = #{statusTime,jdbcType=TIMESTAMP},",
			"operate_reason = #{operateReason,jdbcType=VARCHAR}", "where id = #{id,jdbcType=BIGINT}" })
	int updateByPrimaryKey(SysTenantRela record);
}