153 lines
3.5 KiB
Python
153 lines
3.5 KiB
Python
import os
|
|
from re import TEMPLATE
|
|
from pydantic import BaseModel
|
|
from typing import Any, List, Optional, Union
|
|
|
|
|
|
class FromToHeader(BaseModel):
|
|
|
|
display_name: Optional[str]
|
|
username: Optional[str]
|
|
domain: Optional[str]
|
|
mail: Optional[str]
|
|
|
|
|
|
class MailReader(BaseModel):
|
|
|
|
id: str
|
|
subject: str
|
|
from_: FromToHeader
|
|
to: List[FromToHeader]
|
|
date: str
|
|
body_text: str
|
|
|
|
|
|
class MailParser(BaseModel):
|
|
|
|
filename: str
|
|
content_type: str
|
|
charset: str
|
|
data: str
|
|
|
|
class FinderIban(BaseModel):
|
|
|
|
filename: str
|
|
iban: str
|
|
bank_date: str
|
|
channel_branch: str
|
|
currency_value: float
|
|
balance: float
|
|
additional_balance: float
|
|
process_name: str
|
|
process_type: str
|
|
process_comment: str
|
|
bank_reference_code: str
|
|
|
|
|
|
class FinderComment(FinderIban):
|
|
|
|
build_id: Optional[int] = None
|
|
build_uu_id: Optional[str] = None
|
|
decision_book_id: Optional[int] = None
|
|
decision_book_uu_id: Optional[str] = None
|
|
|
|
|
|
class RedisData(BaseModel):
|
|
MailReader: MailReader
|
|
MailParser: List[MailParser]
|
|
FinderIban: List[FinderIban]
|
|
FinderComment: List[FinderComment]
|
|
|
|
|
|
class Status:
|
|
PENDING: str = "PENDING"
|
|
IN_PROGRESS: str = "IN_PROGRESS"
|
|
COMPLETED: str = "COMPLETED"
|
|
FAILED: str = "FAILED"
|
|
|
|
|
|
class RedisTaskObject(BaseModel):
|
|
task: str
|
|
data: RedisData
|
|
completed: bool
|
|
service: str
|
|
status: str
|
|
created_at: str
|
|
is_completed: bool
|
|
|
|
|
|
class MailSendModel(BaseModel):
|
|
receivers: List[str]
|
|
subject: str
|
|
template_name: str
|
|
data: dict
|
|
|
|
|
|
class RedisMailSender(BaseModel):
|
|
task: RedisTaskObject
|
|
data: MailSendModel
|
|
completed: bool
|
|
service: str
|
|
status: str
|
|
created_at: str
|
|
completed: bool
|
|
|
|
|
|
class EmailConfig:
|
|
|
|
HOST: str = os.getenv("EMAIL_HOST", "10.10.2.34")
|
|
USERNAME: str = os.getenv("EMAIL_USERNAME", "isbank@mehmetkaratay.com.tr")
|
|
PASSWORD: str = os.getenv("EMAIL_PASSWORD", "system")
|
|
PORT: int = int(os.getenv("EMAIL_PORT", 993))
|
|
|
|
@classmethod
|
|
def as_dict(cls):
|
|
return dict(host=EmailConfig.HOST, port=EmailConfig.PORT, username=EmailConfig.USERNAME, password=EmailConfig.PASSWORD)
|
|
|
|
|
|
class RedisConfig:
|
|
|
|
HOST: str = os.getenv("REDIS_HOST", "10.10.2.15")
|
|
PASSWORD: str = os.getenv("REDIS_PASSWORD", "your_strong_password_here")
|
|
PORT: int = int(os.getenv("REDIS_PORT", 6379))
|
|
DB: int = int(os.getenv("REDIS_DB", 0))
|
|
|
|
@classmethod
|
|
def as_dict(cls):
|
|
return dict(host=RedisConfig.HOST, port=int(RedisConfig.PORT), password=RedisConfig.PASSWORD, db=int(RedisConfig.DB))
|
|
|
|
|
|
class MailReaderMainConfig:
|
|
|
|
MAILBOX: str
|
|
AUTHORIZE_IBAN: str
|
|
NO_ATTACHMENT_FOLDER: str
|
|
COMPLETED_FOLDER: str
|
|
TASK_DATA_PREFIX: str
|
|
TASK_MAILID_INDEX_PREFIX: str
|
|
TASK_UUID_INDEX_PREFIX: str
|
|
TASK_SEEN_PREFIX: str
|
|
SERVICE_PREFIX: str
|
|
NEXT_SERVICE_PREFIX: str
|
|
|
|
|
|
class ConfigServices:
|
|
|
|
MAIN_TASK_PREFIX: str = "BANK:SERVICES:TASK:DATA"
|
|
TASK_MAILID_INDEX_PREFIX: str = "BANK:SERVICES:TASK:MAILID"
|
|
TASK_UUID_INDEX_PREFIX: str = "BANK:SERVICES:TASK:UUID"
|
|
TASK_SEEN_PREFIX: str = "BANK:SERVICES:TASK:SEEN"
|
|
TASK_DELETED_PREFIX: str = "BANK:SERVICES:TASK:DELETED"
|
|
|
|
SERVICE_PREFIX_MAIL_READER: str = "MailReader"
|
|
SERVICE_PREFIX_MAIL_PARSER: str = "MailParser"
|
|
SERVICE_PREFIX_FINDER_IBAN: str = "FinderIban"
|
|
SERVICE_PREFIX_FINDER_COMMENT: str = "FinderComment"
|
|
SERVICE_PREFIX_MAIL_SENDER: str = "MailSender"
|
|
|
|
TEMPLATE_ACCOUNT_RECORDS: str = "template_accounts.html"
|
|
|
|
|
|
paramsRedisData = Union[MailReader, MailParser, FinderIban, FinderComment]
|
|
|