-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmain.py
43 lines (34 loc) · 1.95 KB
/
main.py
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
from datetime import datetime
from model.consumer_price_adj_row import ConsumerPriceAdjRow
from model.option_row import OptionRow
from service.parse.consumer_price_adj_parse_service import ConsumerPriceAdjParseService
from service.parse.option_parse_service import OptionParseService
from service.search.search_consumer_price_adj_service import SearchConsumerPriceAdjService
from service.search.search_option_price_service import SearchOptionPriceService
from service.util import parse_iso_datetime
def fetch_consumer_price_adj_data() -> dict[int, list[ConsumerPriceAdjRow]]:
consumer_price_adj_rows: list = ConsumerPriceAdjParseService.parse_csv_rows(
'resource/consumer_price_adjustment.csv'
)
return ConsumerPriceAdjParseService.group_by_goods_sno(consumer_price_adj_rows)
def fetch_option_data() -> dict[int, list[OptionRow]]:
option_rows = OptionParseService.parse_csv_rows('resource/gd_goods_option.csv')
rows_grouped_by_option = OptionParseService.group_by_option(option_rows)
clean_rows = OptionParseService.clean_rows(rows_grouped_by_option)
return clean_rows
# prepared data:
# ordered_at: datetime = parse_iso_datetime('2024-07-31T22:41:43.000+09:00')
ordered_at1: datetime = parse_iso_datetime('2024-07-31T23:59:47.270680+09:00') # 9900
ordered_at2: datetime = parse_iso_datetime('2024-08-01T00:10:11.464340+09:00') # 12380
ordered_at3: datetime = parse_iso_datetime('2024-08-01T03:50:00.000000+09:00') # 12380
# consumer price adjustment:
consumer_price_adj: ConsumerPriceAdjRow = SearchConsumerPriceAdjService.search_consumer_price_adj(
fetch_consumer_price_adj_data(),
16234879,
parse_iso_datetime('2024-07-31T22:20:01.000+09:00'),
)
print('consumer_price_adj: ', consumer_price_adj)
# option price:
for ordered_at in [ordered_at1, ordered_at2, ordered_at3]:
option_price = SearchOptionPriceService.search_option_price(fetch_option_data(), 157748213, ordered_at)
print(f'option_price({ordered_at}): ', option_price)