"""
This file contains the TrackColors class for interacting with Track colors documents in MongoDB.
"""
from app import db


class TrackColors(db.Mongo):
    """
    The class for all track-related database operations.
    """

    def __init__(self):
        super(TrackColors, self).__init__("ALICE_TRACK_COLORS")
        self.collection = self.db["TRACK_COLORS"]

    def insert_track_color(self, track_color: dict) -> None:
        """
        Inserts a new track object into the database.
        """
        return self.collection.update_one(
            {
                "filepath": track_color["filepath"]
            },
            {
                "$set": track_color
            },
            upsert=True,
        ).upserted_id

    def get_track_color_by_track(self, filepath: str) -> dict:
        """
        Returns a track color object by its filepath.
        """
        track_color = self.collection.find_one({"filepath": filepath})
        return db.convert_one(track_color)
