package com.lightinit.hsdataplatform.mapper;

import com.lightinit.hsdataplatform.entity.Invoice;
import com.lightinit.hsdataplatform.entity.InvoiceExample;
import java.util.List;

import com.lightinit.hsdataplatform.model.admin.InvoiceListModel;
import com.lightinit.hsdataplatform.model.admin.InvoiceSearchModel;
import com.lightinit.hsdataplatform.model.admin.InvoiceViewModel;
import org.apache.ibatis.annotations.Param;

public interface InvoiceMapper {
    long countByExample(InvoiceExample example);

    int deleteByExample(InvoiceExample example);

    int deleteByPrimaryKey(Long id);

    int insert(Invoice record);

    int insertSelective(Invoice record);

    List<Invoice> selectByExample(InvoiceExample example);

    Invoice selectByPrimaryKey(Long id);

    int updateByExampleSelective(@Param("record") Invoice record, @Param("example") InvoiceExample example);

    int updateByExample(@Param("record") Invoice record, @Param("example") InvoiceExample example);

    int updateByPrimaryKeySelective(Invoice record);

    int updateByPrimaryKey(Invoice record);

    long queryCount(InvoiceSearchModel inputModel);

    List<InvoiceListModel> queryList(InvoiceSearchModel inputModel);

    InvoiceViewModel toDetail(Long id);
}