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

1"""REST bus query parameters and shared response models.""" 

2 

3from typing import Optional 

4 

5from fastapi import Query 

6from pydantic import BaseModel, Field 

7 

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) 

23 

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] 

40 

41 

42class BusQuery(BaseModel): 

43 """Query parameters for bus endpoints.""" 

44 

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 )