Next alpha stage commit
This commit is contained in:
186
app/models.py
186
app/models.py
@@ -81,6 +81,115 @@ class Dataset(Base):
|
||||
source: Mapped[Source] = relationship(back_populates="datasets")
|
||||
|
||||
|
||||
class GtfsHarmonizedSnapshot(Base):
|
||||
__tablename__ = "gtfs_harmonized_snapshots"
|
||||
__table_args__ = (UniqueConstraint("snapshot_key", name="uq_gtfs_harmonized_snapshot_key"),)
|
||||
|
||||
id: Mapped[int] = mapped_column(Integer, primary_key=True)
|
||||
snapshot_key: Mapped[str] = mapped_column(String(128), nullable=False, index=True)
|
||||
status: Mapped[str] = mapped_column(String(64), nullable=False, default="draft", index=True)
|
||||
source: Mapped[str] = mapped_column(String(64), nullable=False, default="computed")
|
||||
note: Mapped[Optional[str]] = mapped_column(Text, nullable=True)
|
||||
summary_json: Mapped[str] = mapped_column(Text, nullable=False)
|
||||
metadata_json: Mapped[Optional[str]] = mapped_column(Text, nullable=True)
|
||||
created_at: Mapped[datetime] = mapped_column(DateTime(timezone=True), default=now_utc, nullable=False, index=True)
|
||||
activated_at: Mapped[Optional[datetime]] = mapped_column(DateTime(timezone=True), nullable=True, index=True)
|
||||
|
||||
datasets: Mapped[list["GtfsHarmonizedSnapshotDataset"]] = relationship(back_populates="snapshot", cascade="all, delete-orphan")
|
||||
routes: Mapped[list["GtfsHarmonizedSnapshotRoute"]] = relationship(back_populates="snapshot", cascade="all, delete-orphan")
|
||||
|
||||
|
||||
class GtfsHarmonizedSnapshotDataset(Base):
|
||||
__tablename__ = "gtfs_harmonized_snapshot_datasets"
|
||||
__table_args__ = (UniqueConstraint("snapshot_id", "dataset_id", name="uq_gtfs_harmonized_snapshot_dataset"),)
|
||||
|
||||
id: Mapped[int] = mapped_column(Integer, primary_key=True)
|
||||
snapshot_id: Mapped[int] = mapped_column(ForeignKey("gtfs_harmonized_snapshots.id"), nullable=False, index=True)
|
||||
dataset_id: Mapped[int] = mapped_column(Integer, nullable=False, index=True)
|
||||
source_id: Mapped[int] = mapped_column(Integer, nullable=False, index=True)
|
||||
source_name: Mapped[Optional[str]] = mapped_column(Text, nullable=True)
|
||||
role: Mapped[str] = mapped_column(String(64), nullable=False, index=True)
|
||||
reason: Mapped[Optional[str]] = mapped_column(Text, nullable=True)
|
||||
shadowed_by_dataset_id: Mapped[Optional[int]] = mapped_column(Integer, nullable=True, index=True)
|
||||
shadowed_by_source_id: Mapped[Optional[int]] = mapped_column(Integer, nullable=True, index=True)
|
||||
authority_level: Mapped[Optional[str]] = mapped_column(String(64), nullable=True, index=True)
|
||||
review_authority_level: Mapped[Optional[str]] = mapped_column(String(64), nullable=True)
|
||||
route_count: Mapped[int] = mapped_column(Integer, nullable=False, default=0)
|
||||
route_key_count: Mapped[int] = mapped_column(Integer, nullable=False, default=0)
|
||||
route_key_overlap: Mapped[int] = mapped_column(Integer, nullable=False, default=0)
|
||||
route_key_overlap_ratio: Mapped[float] = mapped_column(Float, nullable=False, default=0.0)
|
||||
metadata_json: Mapped[Optional[str]] = mapped_column(Text, nullable=True)
|
||||
created_at: Mapped[datetime] = mapped_column(DateTime(timezone=True), default=now_utc, nullable=False, index=True)
|
||||
|
||||
snapshot: Mapped[GtfsHarmonizedSnapshot] = relationship(back_populates="datasets")
|
||||
|
||||
|
||||
class GtfsHarmonizedSnapshotRoute(Base):
|
||||
__tablename__ = "gtfs_harmonized_snapshot_routes"
|
||||
__table_args__ = (UniqueConstraint("snapshot_id", "gtfs_route_id", name="uq_gtfs_harmonized_snapshot_route"),)
|
||||
|
||||
id: Mapped[int] = mapped_column(Integer, primary_key=True)
|
||||
snapshot_id: Mapped[int] = mapped_column(ForeignKey("gtfs_harmonized_snapshots.id"), nullable=False, index=True)
|
||||
gtfs_route_id: Mapped[int] = mapped_column(ForeignKey("gtfs_routes.id"), nullable=False, index=True)
|
||||
dataset_id: Mapped[int] = mapped_column(Integer, nullable=False, index=True)
|
||||
source_id: Mapped[int] = mapped_column(Integer, nullable=False, index=True)
|
||||
route_id: Mapped[str] = mapped_column(Text, nullable=False)
|
||||
overlap_key: Mapped[Optional[str]] = mapped_column(String(255), nullable=True, index=True)
|
||||
role: Mapped[str] = mapped_column(String(64), nullable=False, index=True)
|
||||
reason: Mapped[Optional[str]] = mapped_column(Text, nullable=True)
|
||||
shadowed_by_gtfs_route_id: Mapped[Optional[int]] = mapped_column(ForeignKey("gtfs_routes.id"), nullable=True, index=True)
|
||||
shadowed_by_dataset_id: Mapped[Optional[int]] = mapped_column(Integer, nullable=True, index=True)
|
||||
shadowed_by_source_id: Mapped[Optional[int]] = mapped_column(Integer, nullable=True, index=True)
|
||||
metadata_json: Mapped[Optional[str]] = mapped_column(Text, nullable=True)
|
||||
created_at: Mapped[datetime] = mapped_column(DateTime(timezone=True), default=now_utc, nullable=False, index=True)
|
||||
|
||||
snapshot: Mapped[GtfsHarmonizedSnapshot] = relationship(back_populates="routes")
|
||||
gtfs_route: Mapped["GtfsRoute"] = relationship(foreign_keys=[gtfs_route_id])
|
||||
shadowed_by_gtfs_route: Mapped[Optional["GtfsRoute"]] = relationship(foreign_keys=[shadowed_by_gtfs_route_id])
|
||||
|
||||
|
||||
class GtfsFeedDiffRun(Base):
|
||||
__tablename__ = "gtfs_feed_diff_runs"
|
||||
|
||||
id: Mapped[int] = mapped_column(Integer, primary_key=True)
|
||||
source_id: Mapped[int] = mapped_column(ForeignKey("sources.id"), nullable=False, index=True)
|
||||
previous_dataset_id: Mapped[Optional[int]] = mapped_column(Integer, nullable=True, index=True)
|
||||
new_dataset_id: Mapped[int] = mapped_column(Integer, nullable=False, index=True)
|
||||
status: Mapped[str] = mapped_column(String(64), nullable=False, default="completed", index=True)
|
||||
diff_key: Mapped[str] = mapped_column(String(128), nullable=False, index=True)
|
||||
summary_json: Mapped[str] = mapped_column(Text, nullable=False)
|
||||
metadata_json: Mapped[Optional[str]] = mapped_column(Text, nullable=True)
|
||||
created_at: Mapped[datetime] = mapped_column(DateTime(timezone=True), default=now_utc, nullable=False, index=True)
|
||||
|
||||
source: Mapped[Source] = relationship()
|
||||
items: Mapped[list["GtfsFeedDiffItem"]] = relationship(back_populates="diff_run", cascade="all, delete-orphan")
|
||||
|
||||
|
||||
class GtfsFeedDiffItem(Base):
|
||||
__tablename__ = "gtfs_feed_diff_items"
|
||||
__table_args__ = (UniqueConstraint("diff_run_id", "item_type", "object_key", "change_type", name="uq_gtfs_feed_diff_item"),)
|
||||
|
||||
id: Mapped[int] = mapped_column(Integer, primary_key=True)
|
||||
diff_run_id: Mapped[int] = mapped_column(ForeignKey("gtfs_feed_diff_runs.id"), nullable=False, index=True)
|
||||
source_id: Mapped[int] = mapped_column(ForeignKey("sources.id"), nullable=False, index=True)
|
||||
previous_dataset_id: Mapped[Optional[int]] = mapped_column(Integer, nullable=True, index=True)
|
||||
new_dataset_id: Mapped[int] = mapped_column(Integer, nullable=False, index=True)
|
||||
item_type: Mapped[str] = mapped_column(String(64), nullable=False, index=True)
|
||||
object_key: Mapped[str] = mapped_column(String(255), nullable=False, index=True)
|
||||
change_type: Mapped[str] = mapped_column(String(64), nullable=False, index=True)
|
||||
severity: Mapped[str] = mapped_column(String(32), nullable=False, default="info", index=True)
|
||||
status: Mapped[str] = mapped_column(String(64), nullable=False, default="open", index=True)
|
||||
title: Mapped[str] = mapped_column(Text, nullable=False)
|
||||
old_payload_json: Mapped[Optional[str]] = mapped_column(Text, nullable=True)
|
||||
new_payload_json: Mapped[Optional[str]] = mapped_column(Text, nullable=True)
|
||||
diff_json: Mapped[Optional[str]] = mapped_column(Text, nullable=True)
|
||||
created_at: Mapped[datetime] = mapped_column(DateTime(timezone=True), default=now_utc, nullable=False, index=True)
|
||||
resolved_at: Mapped[Optional[datetime]] = mapped_column(DateTime(timezone=True), nullable=True, index=True)
|
||||
|
||||
diff_run: Mapped[GtfsFeedDiffRun] = relationship(back_populates="items")
|
||||
source: Mapped[Source] = relationship()
|
||||
|
||||
|
||||
class SourceUpdateCheck(Base):
|
||||
__tablename__ = "source_update_checks"
|
||||
|
||||
@@ -543,6 +652,83 @@ class MatchRule(Base):
|
||||
created_at: Mapped[datetime] = mapped_column(DateTime(timezone=True), default=now_utc, nullable=False)
|
||||
|
||||
|
||||
class MapGtfsDecision(Base):
|
||||
__tablename__ = "map_gtfs_decisions"
|
||||
__table_args__ = (UniqueConstraint("decision_key", name="uq_map_gtfs_decision_key"),)
|
||||
|
||||
id: Mapped[int] = mapped_column(Integer, primary_key=True)
|
||||
decision_key: Mapped[str] = mapped_column(String(255), nullable=False, index=True)
|
||||
decision_type: Mapped[str] = mapped_column(String(64), nullable=False, index=True)
|
||||
status: Mapped[str] = mapped_column(String(64), nullable=False, index=True)
|
||||
active: Mapped[bool] = mapped_column(Boolean, default=True, nullable=False, index=True)
|
||||
source_id: Mapped[Optional[int]] = mapped_column(ForeignKey("sources.id"), nullable=True, index=True)
|
||||
gtfs_dataset_id: Mapped[Optional[int]] = mapped_column(ForeignKey("datasets.id"), nullable=True, index=True)
|
||||
gtfs_route_id: Mapped[Optional[int]] = mapped_column(ForeignKey("gtfs_routes.id"), nullable=True, index=True)
|
||||
gtfs_stop_id: Mapped[Optional[int]] = mapped_column(ForeignKey("gtfs_stops.id"), nullable=True, index=True)
|
||||
osm_dataset_id: Mapped[Optional[int]] = mapped_column(ForeignKey("datasets.id"), nullable=True, index=True)
|
||||
osm_feature_id: Mapped[Optional[int]] = mapped_column(ForeignKey("osm_features.id"), nullable=True, index=True)
|
||||
route_match_id: Mapped[Optional[int]] = mapped_column(ForeignKey("route_matches.id"), nullable=True, index=True)
|
||||
canonical_stop_id: Mapped[Optional[int]] = mapped_column(ForeignKey("canonical_stops.id"), nullable=True, index=True)
|
||||
canonical_stop_link_id: Mapped[Optional[int]] = mapped_column(ForeignKey("canonical_stop_links.id"), nullable=True, index=True)
|
||||
confidence: Mapped[Optional[float]] = mapped_column(Float, nullable=True)
|
||||
evidence_hash: Mapped[Optional[str]] = mapped_column(String(128), nullable=True, index=True)
|
||||
selector_json: Mapped[str] = mapped_column(Text, nullable=False)
|
||||
action_json: Mapped[str] = mapped_column(Text, nullable=False)
|
||||
note: Mapped[Optional[str]] = mapped_column(Text, nullable=True)
|
||||
reviewer: Mapped[Optional[str]] = mapped_column(String(255), nullable=True)
|
||||
metadata_json: Mapped[Optional[str]] = mapped_column(Text, nullable=True)
|
||||
created_at: Mapped[datetime] = mapped_column(DateTime(timezone=True), default=now_utc, nullable=False, index=True)
|
||||
updated_at: Mapped[datetime] = mapped_column(DateTime(timezone=True), default=now_utc, nullable=False, index=True)
|
||||
|
||||
source: Mapped[Optional[Source]] = relationship(foreign_keys=[source_id])
|
||||
gtfs_dataset: Mapped[Optional[Dataset]] = relationship(foreign_keys=[gtfs_dataset_id])
|
||||
gtfs_route: Mapped[Optional[GtfsRoute]] = relationship()
|
||||
gtfs_stop: Mapped[Optional[GtfsStop]] = relationship()
|
||||
osm_dataset: Mapped[Optional[Dataset]] = relationship(foreign_keys=[osm_dataset_id])
|
||||
osm_feature: Mapped[Optional[OsmFeature]] = relationship()
|
||||
route_match: Mapped[Optional[RouteMatch]] = relationship()
|
||||
canonical_stop: Mapped[Optional[CanonicalStop]] = relationship()
|
||||
canonical_stop_link: Mapped[Optional[CanonicalStopLink]] = relationship()
|
||||
|
||||
|
||||
class MapGtfsReviewItem(Base):
|
||||
__tablename__ = "map_gtfs_review_items"
|
||||
__table_args__ = (UniqueConstraint("fingerprint", name="uq_map_gtfs_review_item_fingerprint"),)
|
||||
|
||||
id: Mapped[int] = mapped_column(Integer, primary_key=True)
|
||||
fingerprint: Mapped[str] = mapped_column(String(255), nullable=False, index=True)
|
||||
queue: Mapped[str] = mapped_column(String(64), nullable=False, index=True)
|
||||
item_type: Mapped[str] = mapped_column(String(64), nullable=False, index=True)
|
||||
status: Mapped[str] = mapped_column(String(64), nullable=False, default="open", index=True)
|
||||
severity: Mapped[str] = mapped_column(String(32), nullable=False, default="info", index=True)
|
||||
title: Mapped[str] = mapped_column(Text, nullable=False)
|
||||
description: Mapped[Optional[str]] = mapped_column(Text, nullable=True)
|
||||
source_id: Mapped[Optional[int]] = mapped_column(ForeignKey("sources.id"), nullable=True, index=True)
|
||||
dataset_id: Mapped[Optional[int]] = mapped_column(ForeignKey("datasets.id"), nullable=True, index=True)
|
||||
gtfs_route_id: Mapped[Optional[int]] = mapped_column(ForeignKey("gtfs_routes.id"), nullable=True, index=True)
|
||||
gtfs_stop_id: Mapped[Optional[int]] = mapped_column(ForeignKey("gtfs_stops.id"), nullable=True, index=True)
|
||||
osm_feature_id: Mapped[Optional[int]] = mapped_column(ForeignKey("osm_features.id"), nullable=True, index=True)
|
||||
route_match_id: Mapped[Optional[int]] = mapped_column(ForeignKey("route_matches.id"), nullable=True, index=True)
|
||||
canonical_stop_id: Mapped[Optional[int]] = mapped_column(ForeignKey("canonical_stops.id"), nullable=True, index=True)
|
||||
canonical_stop_link_id: Mapped[Optional[int]] = mapped_column(ForeignKey("canonical_stop_links.id"), nullable=True, index=True)
|
||||
decision_id: Mapped[Optional[int]] = mapped_column(ForeignKey("map_gtfs_decisions.id"), nullable=True, index=True)
|
||||
evidence_hash: Mapped[Optional[str]] = mapped_column(String(128), nullable=True, index=True)
|
||||
metadata_json: Mapped[Optional[str]] = mapped_column(Text, nullable=True)
|
||||
created_at: Mapped[datetime] = mapped_column(DateTime(timezone=True), default=now_utc, nullable=False, index=True)
|
||||
updated_at: Mapped[datetime] = mapped_column(DateTime(timezone=True), default=now_utc, nullable=False, index=True)
|
||||
resolved_at: Mapped[Optional[datetime]] = mapped_column(DateTime(timezone=True), nullable=True, index=True)
|
||||
|
||||
source: Mapped[Optional[Source]] = relationship(foreign_keys=[source_id])
|
||||
dataset: Mapped[Optional[Dataset]] = relationship(foreign_keys=[dataset_id])
|
||||
gtfs_route: Mapped[Optional[GtfsRoute]] = relationship()
|
||||
gtfs_stop: Mapped[Optional[GtfsStop]] = relationship()
|
||||
osm_feature: Mapped[Optional[OsmFeature]] = relationship()
|
||||
route_match: Mapped[Optional[RouteMatch]] = relationship()
|
||||
canonical_stop: Mapped[Optional[CanonicalStop]] = relationship()
|
||||
canonical_stop_link: Mapped[Optional[CanonicalStopLink]] = relationship()
|
||||
decision: Mapped[Optional[MapGtfsDecision]] = relationship()
|
||||
|
||||
|
||||
class JourneySearchCache(Base):
|
||||
__tablename__ = "journey_search_cache"
|
||||
|
||||
|
||||
Reference in New Issue
Block a user