aboutsummaryrefslogtreecommitdiff
path: root/src/Costasdev.Busurbano.ServiceViewer/Data/Gtfs/GtfsStop.cs
blob: f604c5f26e597523661e0c1e5aaa6047278efb61 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using Costasdev.ServiceViewer.Data.Gtfs.Enums;
using Microsoft.EntityFrameworkCore;
using NetTopologySuite.Geometries;

namespace Costasdev.ServiceViewer.Data.Gtfs;

[Table("gtfs_stops")]
[PrimaryKey(nameof(Id), nameof(FeedId))]
public class GtfsStop
{
    [Column("stop_id")]
    [MaxLength(32)]
    public required string Id { get; set; }

    [Column("feed_id")]public int FeedId { get; set; }
    [ForeignKey(nameof(FeedId))] public required Feed Feed { get; set; }

    [Column("stop_code")]
    [MaxLength(32)]
    public string Code { get; set; } = string.Empty;

    [Column("stop_name")]
    [MaxLength(255)]
    public string Name { get; set; } = string.Empty;

    [Column("stop_desc")]
    [MaxLength(255)]
    public string? Description { get; set; }

    [Column("stop_pos")]
    public Point? Position { get; set; }

    [Column("stop_url")]
    [MaxLength(255)]
    public string? Url { get; set; }

    [Column("stop_timezone")]
    [MaxLength(50)]
    public string? Timezone { get; set; }

    [Column("wheelchair_boarding")]
    public WheelchairBoarding WheelchairBoarding { get; set; } = WheelchairBoarding.Unknown;

    // [Column("location_type")]
    // public int LocationType { get; set; }
    //
    // [Column("parent_station")]
    // public int? ParentStationId { get; set; }
}