using Microsoft.EntityFrameworkCore;
using Monitoring.Core.Domain;
using Monitoring.Core.Domain.AssetGroupManagement;
using Monitoring.Core.Domain.AssetManagement;
using Monitoring.Core.Domain.AssetStatus;
using Monitoring.Core.Domain.CallManagement;
using Monitoring.Core.Domain.CameraManagement;
using Monitoring.Core.Domain.CheckListManagement;
using Monitoring.Core.Domain.EventManagement;
using Monitoring.Core.Domain.FireDepartmentManagement;
using Monitoring.Core.Domain.OrganizationManagement;
using Monitoring.Core.Domain.ReportManagement;
using Monitoring.Core.Domain.ServiceOrganizationManagement;
using Monitoring.Core.Domain.TokenManagement;
using Monitoring.Core.Domain.UserLogManagement;
using Monitoring.Core.Domain.UserSettingsManagement;

namespace Monitoring.Infrastructure.Data;

public interface IDataContext
{
	DbSet<Role> Roles { get; }
	DbSet<User> Users { get; }
	DbSet<Organization> Organizations { get; }
	DbSet<ServiceOrganization> ServiceOrganizations { get; }
	DbSet<Token> Tokens { get; }
	DbSet<RefreshToken> RefreshTokens { get; }
	DbSet<Member> Members { get; }
	DbSet<Access> Accesses { get; }
	DbSet<Asset> Assets { get; }
	DbSet<Event> Events { get; }
	DbSet<EventCode> EventCodes { get; }
	DbSet<AssetGroup> AssetGroups { get; }
	DbSet<AssetStatus> AssetStatuses { get; }
	DbSet<ResponsiblePerson> ResponsiblePersons { get; }
	DbSet<Photo> Photos { get; }
	DbSet<Area> Areas { get; }
	DbSet<Zone> Zones { get; }
	DbSet<LockedEventCode> LockedEventCodes { get; }
	DbSet<Fault> Faults { get; }
	DbSet<Alarm> Alarms { get; }
	DbSet<AlarmScope> AlarmScopes { get; }
	DbSet<AlarmScopeStatusChanging> AlarmScopeStatusHistory { get; }
	DbSet<AlarmReset> AlarmResets { get; }
	DbSet<Call> Calls { get; }
	DbSet<AlarmFireDepartmentDispatch> AlarmFireDepartmentDispatches { get; }
	DbSet<Camera> Cameras { get; }
	DbSet<CameraView> CameraViews { get; }
	DbSet<FireDepartment> FireDepartments { get; }
	DbSet<FireDepartmentAccess> FireDepartmentAccesses { get; }
	DbSet<AlarmResetComment> AlarmResetComments { get; }
	DbSet<AlarmResetCommentTranslate> AlarmResetCommentTranslates { get; }
	DbSet<UserLog> UserLogs { get; }
	DbSet<UserSettings> UserSettings { get; }
	DbSet<Report> Reports { get; }
	DbSet<CheckListTemplate> CheckListTemplates { get; }
	DbSet<CheckListTemplateItem> CheckListTemplateItems { get; }
	DbSet<CheckListTemplateItemTranslation> CheckListTemplateItemTranslations { get; }
	DbSet<CheckList> CheckLists { get; }
	DbSet<CheckListItem> CheckListItems { get; }
}
