import 'package:vital_local_database/core/interface/repository.dart';
import 'package:vitalapp/database/entities/defines.dart';
import 'package:vitalapp/database/entities/diagnosis.dart';

abstract class IDiagnosisRepository
    implements IDbRepositroy<DiagnosisEntity, DiagnosisColumnsDefine> {
  /// 根据居民Code查找列表
  ///
  /// [patientCode] 居民Code
  ///
  /// [syncState] 同步状态，不传搜索全部
  Future<List<DiagnosisEntity>> getListByPatientCode(
    String patientCode, {
    OfflineDataSyncState? syncState,
    required String userCode,
  });

  /// 根据居民Code查找未上传数据数量
  ///
  /// [patientCode] 居民Code
  ///
  /// [syncState] 同步状态，不传搜索全部
  Future<int> getNotUploadedCountByPatientCode(
    String patientCode,
    String userCode,
  );

  /// 根据居民Code查找未上传数据列表
  ///
  /// [patientCode] 居民Code
  ///
  /// [syncState] 同步状态，不传搜索全部
  Future<List<DiagnosisEntity>> getNotUploadedListByPatientCode(
    String patientCode,
    String userCode,
  );
}
