-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathdomain.py
56 lines (42 loc) · 1.76 KB
/
domain.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
44
45
46
47
48
49
50
51
52
53
54
55
56
import os
from mongoengine import *
connect(host=os.getenv('MONGODB_URI') + '/' + os.getenv('MONGODB_DATABASE'))
__all__ = (
'NotificationFlag', 'Notification', 'ExchangeNotification',
'MaterialInformation', 'MaterialInformationSubscription'
)
class NotificationFlag(EmbeddedDocument):
rate = DecimalField()
notified = BooleanField()
class Notification(EmbeddedDocument):
currency = StringField(required=True, primary_key=True)
sell = EmbeddedDocumentField(NotificationFlag)
buy = EmbeddedDocumentField(NotificationFlag)
class ExchangeNotification(Document):
source = StringField(required=True, primary_key=True)
notify_rates = EmbeddedDocumentListField(Notification)
class MaterialInformation(Document):
id = StringField(required=True, primary_key=True)
company_code = IntField(required=True)
spoken_at = DateTimeField(required=True)
speaker = StringField()
speaker_title = StringField()
speaker_phone = StringField()
terms = StringField()
fact_date = DateField(required=True)
title = StringField(required=True)
content = StringField(required=True)
@property
def spoken_roc_date(self):
spoken_date_str = self.spoken_at.strftime('%Y/%m/%d')
return spoken_date_str.replace(spoken_date_str[:4],
str(int(spoken_date_str[:4]) - 1911))
@property
def fact_roc_date(self):
fact_date_str = self.fact_date.strftime('%Y/%m/%d')
return fact_date_str.replace(fact_date_str[:4],
str(int(fact_date_str[:4]) - 1911))
class MaterialInformationSubscription(Document):
company_code = StringField(required=True, primary_key=True)
sources = ListField(StringField())
last_pushed_id = StringField()