main
py 24 lines 833 Bytes
Raw
1 from __future__ import annotations
2
3 from dataclasses import dataclass
4 from datetime import timedelta
5
6 from app.models import SourceType
7
8
9 @dataclass(frozen=True)
10 class ResearchScheduleRule:
11 source_type: SourceType
12 interval: timedelta
13 max_documents_per_run: int
14
15
16 def default_schedule_rules() -> list[ResearchScheduleRule]:
17 return [
18 ResearchScheduleRule(SourceType.EXCHANGE_ANNOUNCEMENT, timedelta(hours=2), 20),
19 ResearchScheduleRule(SourceType.REGULATORY_FILING, timedelta(hours=4), 20),
20 ResearchScheduleRule(SourceType.INVESTOR_RELATIONS, timedelta(days=1), 10),
21 ResearchScheduleRule(SourceType.COMPANY_WEBSITE, timedelta(days=3), 10),
22 ResearchScheduleRule(SourceType.RSS, timedelta(hours=6), 20),
23 ResearchScheduleRule(SourceType.NEWS, timedelta(hours=12), 20),
24 ]