import { ContractTemplate } from '../aggregates';

/**
 * 合同模板仓储接口
 */
export interface IContractTemplateRepository {
  /**
   * 保存合同模板
   */
  save(template: ContractTemplate): Promise<ContractTemplate>;

  /**
   * 根据ID查找
   */
  findById(id: number): Promise<ContractTemplate | null>;

  /**
   * 根据版本号查找
   */
  findByVersion(version: string): Promise<ContractTemplate | null>;

  /**
   * 获取当前有效的模板
   */
  findActiveTemplate(): Promise<ContractTemplate | null>;

  /**
   * 获取所有模板
   */
  findAll(): Promise<ContractTemplate[]>;
}

export const CONTRACT_TEMPLATE_REPOSITORY = Symbol('IContractTemplateRepository');
