using SWRIS.Dtos;
using System;
using System.Collections.Generic;

namespace SWRIS.Repository
{
    internal interface IRecordRepository
    {
        int? CreateRecord(RecordDto record);
        bool UpdateRecord(RecordDto record);
        bool DeleteRecord(int id);
        int DeleteRecords(int[] ids);
        RecordDto GetRecord(int id);
        List<RecordDto> GetRecords(int? ropeNumber,
                                   DateTime? startTime = null,
                                   DateTime? endTime = null,
                                   int? riskLevel = null,
                                   int? limit = null,
                                   int? offset = null,
                                   bool hasDamages = false);
        bool DeleteDamage(int id);
        bool UpdateDamage(DamageDto damage);
        bool UpdateRecordDamageCount(int id, int damageCount);
        List<RecordDto> GetLastRecords(int lastCount = 10, bool hasDamages = false);
        bool AddRecordExportCount(int id);
        (int, List<string>) DeleteRecords(DateTime endTime);
    }
}