diff --git a/RouteGuide/RouteGuide.sln b/RouteGuide/RouteGuide.sln
index fbb7e17..1ab89a4 100644
--- a/RouteGuide/RouteGuide.sln
+++ b/RouteGuide/RouteGuide.sln
@@ -3,7 +3,9 @@ Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 17
VisualStudioVersion = 17.8.34525.116
MinimumVisualStudioVersion = 10.0.40219.1
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "RouteGuideView", "RouteGuideView\RouteGuideView.csproj", "{4116AC9B-4035-4701-9C35-049AA6A83B96}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "RouteGuideView", "RouteGuideView\RouteGuideView.csproj", "{4116AC9B-4035-4701-9C35-049AA6A83B96}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "RouteGuideDataModels", "RouteGuideDataModels\RouteGuideDataModels.csproj", "{734B62E6-F4F0-4356-A4BC-067F52416282}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
@@ -15,6 +17,10 @@ Global
{4116AC9B-4035-4701-9C35-049AA6A83B96}.Debug|Any CPU.Build.0 = Debug|Any CPU
{4116AC9B-4035-4701-9C35-049AA6A83B96}.Release|Any CPU.ActiveCfg = Release|Any CPU
{4116AC9B-4035-4701-9C35-049AA6A83B96}.Release|Any CPU.Build.0 = Release|Any CPU
+ {734B62E6-F4F0-4356-A4BC-067F52416282}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {734B62E6-F4F0-4356-A4BC-067F52416282}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {734B62E6-F4F0-4356-A4BC-067F52416282}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {734B62E6-F4F0-4356-A4BC-067F52416282}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
diff --git a/RouteGuide/RouteGuideDataModels/Enums/TransportType.cs b/RouteGuide/RouteGuideDataModels/Enums/TransportType.cs
new file mode 100644
index 0000000..2d5e851
--- /dev/null
+++ b/RouteGuide/RouteGuideDataModels/Enums/TransportType.cs
@@ -0,0 +1,24 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace RouteGuideDataModels.Enums
+{
+ ///
+ /// Тип транспорта
+ ///
+ public enum TransportType
+ {
+ Маршрутка,
+
+ Автобус,
+
+ Троллейбус,
+
+ Трамвай,
+
+ Такси
+ }
+}
diff --git a/RouteGuide/RouteGuideDataModels/IId.cs b/RouteGuide/RouteGuideDataModels/IId.cs
new file mode 100644
index 0000000..1c0b66a
--- /dev/null
+++ b/RouteGuide/RouteGuideDataModels/IId.cs
@@ -0,0 +1,19 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace RouteGuideDataModels
+{
+ ///
+ /// Интерфейс для идентификатора
+ ///
+ public interface IId
+ {
+ ///
+ /// Идентификатор
+ ///
+ int Id { get; }
+ }
+}
diff --git a/RouteGuide/RouteGuideDataModels/Models/IDriverModel.cs b/RouteGuide/RouteGuideDataModels/Models/IDriverModel.cs
new file mode 100644
index 0000000..e1dbd72
--- /dev/null
+++ b/RouteGuide/RouteGuideDataModels/Models/IDriverModel.cs
@@ -0,0 +1,29 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace RouteGuideDataModels.Models
+{
+ ///
+ /// Интерфейс для модели водителя
+ ///
+ public interface IDriverModel : IId
+ {
+ ///
+ /// ФИО водителя
+ ///
+ string FullName { get; }
+
+ ///
+ /// Номер телефона водителя
+ ///
+ string Phone { get; }
+
+ ///
+ /// Опыт работы водителя
+ ///
+ int? Experience { get; }
+ }
+}
diff --git a/RouteGuide/RouteGuideDataModels/Models/IRouteModel.cs b/RouteGuide/RouteGuideDataModels/Models/IRouteModel.cs
new file mode 100644
index 0000000..1a95d10
--- /dev/null
+++ b/RouteGuide/RouteGuideDataModels/Models/IRouteModel.cs
@@ -0,0 +1,29 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace RouteGuideDataModels.Models
+{
+ ///
+ /// Интерфейс для модели маршрута
+ ///
+ public interface IRouteModel : IId
+ {
+ ///
+ /// Название маршрута
+ ///
+ string Name { get; }
+
+ ///
+ /// Идентификатор тарнспорта
+ ///
+ int TransportId { get; }
+
+ ///
+ /// Коллеция остановок маршрута
+ ///
+ Dictionary RouteStops { get; }
+ }
+}
diff --git a/RouteGuide/RouteGuideDataModels/Models/IScheduleModel.cs b/RouteGuide/RouteGuideDataModels/Models/IScheduleModel.cs
new file mode 100644
index 0000000..bd01e0e
--- /dev/null
+++ b/RouteGuide/RouteGuideDataModels/Models/IScheduleModel.cs
@@ -0,0 +1,39 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace RouteGuideDataModels.Models
+{
+ ///
+ /// Интерфейс для модели расписания
+ ///
+ public interface IScheduleModel : IId
+ {
+ ///
+ /// Дата записи расписания
+ ///
+ DateTime Date { get; }
+
+ ///
+ /// Время отправления
+ ///
+ TimeOnly DepartureTime { get; }
+
+ ///
+ /// Время прибытия
+ ///
+ TimeOnly ArrivalTime { get; }
+
+ ///
+ /// Периодичность движения транспорта
+ ///
+ TimeOnly Frequency { get; }
+
+ ///
+ /// Идентификатор маршрута
+ ///
+ int RouteId { get; }
+ }
+}
diff --git a/RouteGuide/RouteGuideDataModels/Models/IStopModel.cs b/RouteGuide/RouteGuideDataModels/Models/IStopModel.cs
new file mode 100644
index 0000000..e81ff21
--- /dev/null
+++ b/RouteGuide/RouteGuideDataModels/Models/IStopModel.cs
@@ -0,0 +1,29 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace RouteGuideDataModels.Models
+{
+ ///
+ /// Интерфейс для модели остановки
+ ///
+ public interface IStopModel : IId
+ {
+ ///
+ /// Название остановки
+ ///
+ string Name { get; }
+
+ ///
+ /// Название улицы
+ ///
+ string Street { get; }
+
+ ///
+ /// Номер дома
+ ///
+ int Number { get; }
+ }
+}
diff --git a/RouteGuide/RouteGuideDataModels/Models/ITransportModel.cs b/RouteGuide/RouteGuideDataModels/Models/ITransportModel.cs
new file mode 100644
index 0000000..f0b7504
--- /dev/null
+++ b/RouteGuide/RouteGuideDataModels/Models/ITransportModel.cs
@@ -0,0 +1,35 @@
+using RouteGuideDataModels.Enums;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace RouteGuideDataModels.Models
+{
+ ///
+ /// Интерфейс для модели транспорта
+ ///
+ public interface ITransportModel : IId
+ {
+ ///
+ /// Номерной знак
+ ///
+ string License { get; }
+
+ ///
+ /// Тип транспортного средства
+ ///
+ TransportType Type { get; }
+
+ ///
+ /// Вместимость (количество пассажиров)
+ ///
+ int Capacity { get; }
+
+ ///
+ /// Идентификатор водителя
+ ///
+ int DriverId { get; }
+ }
+}
diff --git a/RouteGuide/RouteGuideDataModels/RouteGuideDataModels.csproj b/RouteGuide/RouteGuideDataModels/RouteGuideDataModels.csproj
new file mode 100644
index 0000000..132c02c
--- /dev/null
+++ b/RouteGuide/RouteGuideDataModels/RouteGuideDataModels.csproj
@@ -0,0 +1,9 @@
+
+
+
+ net6.0
+ enable
+ enable
+
+
+