using ManagerService.DTOs; using NetTopologySuite.Geometries; using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations.Schema; namespace ManagerService.Data.SubSection { /// /// Section event /// public class SectionEvent : Section { public DateTime StartDate { get; set; } public DateTime EndDate { get; set; } public List Programme { get; set; } = new(); [Column(TypeName = "jsonb")] public List ParcoursIds { get; set; } = new(); // Liens vers GeoPoints spécifiques public class ProgrammeBlock { [Key] public string Id { get; set; } [Column(TypeName = "jsonb")] public List Title { get; set; } [Column(TypeName = "jsonb")] public List Description { get; set; } public DateTime StartTime { get; set; } public DateTime EndTime { get; set; } public List MapAnnotations { get; set; } } public class MapAnnotation { [Key] public string Id { get; set; } [Column(TypeName = "jsonb")] public List Type { get; set; } // "first_aid", "parking", etc. [Column(TypeName = "jsonb")] public List Label { get; set; } public GeometryType GeometryType { get; set; } public Geometry Geometry { get; set; } // Peut être Point, LineString, Polygon public string PolyColor { get; set; } public string Icon { get; set; } // icon material if point public ResourceDTO IconResourceDTO { get; set; } // Icon if point } public enum GeometryType { Point, Polyline, Circle, Polygon } /*public EventDTO ToDTO() { return new EventDTO() { id = Id, label = Label, title = Title.ToList(), description = Description.ToList(), order = Order, type = Type, imageId = ImageId, imageSource = ImageSource, configurationId = ConfigurationId, isSubSection = IsSubSection, parentId = ParentId, dateCreation = DateCreation, instanceId = InstanceId, isBeacon = IsBeacon, beaconId = BeaconId, latitude = Latitude, longitude = Longitude, meterZoneGPS = MeterZoneGPS, }; }*/ } }