package com.ruoyi.system.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.ruoyi.system.domain.InfoInvoice;

import java.util.List;

/**
 * 用户发票抬头 Service（发票信息管理）
 *
 * @author foodie
 * @date 2026-07-24
 */
public interface IInfoInvoiceService extends IService<InfoInvoice>
{
    /**
     * 列出当前用户的全部发票抬头（按 id 倒序）。
     */
    List<InfoInvoice> listByUserId(Long userId);

    /**
     * 新增或更新：强制 userId + 校验 + 归属校验；非法抛 ServiceException。
     */
    boolean saveOrUpdateMine(InfoInvoice invoice, Long userId);

    /**
     * 详情；越权（不属于该 user）返回 null。
     */
    InfoInvoice getMine(Long id, Long userId);

    /**
     * 删除；越权返回 false。
     */
    boolean deleteMine(Long id, Long userId);
}
