Astro-Session-Watcher/models/session.py
2026-05-07 17:15:56 +03:00

31 lines
No EOL
915 B
Python

from dataclasses import dataclass, field
from datetime import datetime
from pathlib import Path
from typing import List, Optional
from models.astro_object import AstroObject
@dataclass
class Session:
"""Модель сессии наблюдения"""
camera: str
optics: str
start_time: datetime
end_time: Optional[datetime] = None
objects: List[AstroObject] = field(default_factory=list)
session_folder: Optional[Path] = None
def add_object(self, astro_object: AstroObject):
self.objects.append(astro_object)
def get_current_object(self) -> Optional[AstroObject]:
return self.objects[-1] if self.objects else None
def get_session_name(self) -> str:
return f"AstroSession_{self.start_time.strftime('%Y-%m-%d')}"
def finish(self):
self.end_time = datetime.now()
def is_active(self) -> bool:
return self.end_time is None