Coverage for src/data_api/api/schemas/buses.py: 100%
8 statements
« prev ^ index » next coverage.py v7.16.2, created at 2026-11-13 19:28 +0000
« prev ^ index » next coverage.py v7.16.2, created at 2026-11-13 19:28 +0000
1"""REST bus query parameters and shared response models."""
3from typing import Optional
5from fastapi import Query
6from pydantic import BaseModel, Field
8from data_api.models.buses import (
9 BusArriveTime,
10 BusCanonicalDetailedSchedule,
11 BusCanonicalSchedule,
12 BusDay,
13 BusDayWithCurrent,
14 BusDetailedSchedule,
15 BusDirection,
16 BusInfo,
17 BusRouteType,
18 BusSchedule,
19 BusStopsInfo,
20 BusStopsName,
21 BusType,
22)
24__all__ = [
25 "BusArriveTime",
26 "BusCanonicalDetailedSchedule",
27 "BusCanonicalSchedule",
28 "BusDay",
29 "BusDayWithCurrent",
30 "BusDetailedSchedule",
31 "BusDirection",
32 "BusInfo",
33 "BusQuery",
34 "BusRouteType",
35 "BusSchedule",
36 "BusStopsInfo",
37 "BusStopsName",
38 "BusType",
39]
42class BusQuery(BaseModel):
43 """Query parameters for bus endpoints."""
45 time: Optional[str] = Field(
46 Query(None, description="時間。若搜尋 day 選擇 current 時失效。"),
47 description="時間",
48 )
49 limit: Optional[int] = Field(
50 Query(
51 5,
52 ge=1,
53 description="最大回傳資料筆數。預設為 5 筆,可以透過查詢參數調整。",
54 ),
55 description="最大回傳資料筆數",
56 )