import argparse from pydantic_settings import BaseSettings from db.db import Database from .clockify import ClockifyConfig # noqa: F401 from .redmine import RedmineConfig # noqa: F401 class Config(BaseSettings): CLOCKIFY_TOKEN: str REDMINE_TOKEN: str CLOCKIFY_USER_ID: str CLOCKIFY_WORKSPACE_ID: str DB_NAME: str = "RedmineTracker.db" DATETIME_FORMAT: str = "%Y-%m-%dT%H:%M:%SZ" VETRO_PROJECTS: dict = { "682c438ca9a5d61a4cc9a405": "Админка", "682c7c1b537d26222fe3cde8": "Чаты Авито", "682c7cc5a4e2fd3c34a5e933": "Звонки", "682b2c2d537d26222fc5671c": "Регистрация гарантии", "682b3cc4f01c6c02e4e765b0": "Клиент", "682b2c1366a3b415535a23fa": "Контрагенты", "682b2c3f24f321560e283cb2": "Урегулирование страховых случаев", "682b2c52d7ce797b226fddef": "Почта", "682c7cd766a3b4155378f8a4": "Товар", "682c7d05d7ce797b228edd06": "Закупка", "682b2bf324f321560e283084": "Страховые направления", "682b2c09f01c6c02e4e49681": "Задачи направлений", "682b2c1bd096503066890985": "Заказ", "682b2c22b417733736a3ae9f": "Задачи заказов", "682b3280560c2445c917951c": "Услуга клиенту", "682b2c7324f321560e284588": "Потерянные трудочасы", "682c7d0ed7ce797b228edf3a": "WhatsApp", "682b2bada9a5d61a4cb1b6e1": "Прочие активности по Ветро", } def configure_argument_parser(): parser = argparse.ArgumentParser(description='Трекер трудочасов с Clockify в Redmine') parser.add_argument( '-s', '--start', help='Дата начала парсинга активностей в формате гггг-мм-дд' ) parser.add_argument( '-e', '--end', help='Дата окончания парсинга активностей в формате гггг-мм-дд' ) parser.add_argument( '-p', '--page-size', help='Количество задач для вывода' ) return parser arg_parser = configure_argument_parser() config = Config() db = Database(config.DB_NAME)