from datetime import datetime from typing import Optional from pydantic import BaseModel # pylint: disable=no-name-in-module from .test_task_db import TestTaskDB from .test_steps_stats import TestStepsStats class TestTask(BaseModel): id: int build_task_id: int revision: int status: int package_fullname: str started_at: Optional[datetime] = None steps_stats: TestStepsStats def as_db_model(self) -> TestTaskDB: started_at = self.started_at.timestamp() \ if self.started_at else None params = { 'id': self.id, 'build_task_id': self.build_task_id, 'revision': self.revision, 'status': self.status, 'package_fullname': self.package_fullname, 'started_at': started_at, 'steps_stats': self.step_stats.as_db(self.id) } return TestTaskDB(**params)