import json from collections import namedtuple from dataclasses import dataclass from datetime import date, datetime from utils.snowflake.gras_data.constants import MomentTypes @dataclass class GRASArtistMomentModel: artist_external_id: int title: str date: date moment_type: int def __init__(self, moment: tuple, moment_type: int): self.artist_external_id = moment[0] self.title = moment[1] self.moment_type = moment_type moment_dates = json.loads(moment[2]) if moment_type == MomentTypes.DEATH.value: self.date = datetime.strptime(moment_dates.get("death"), "%Y-%m-%d").date() elif moment_type == MomentTypes.BIRTH.value: self.date = datetime.strptime(moment_dates.get("birth"), "%Y-%m-%d").date() else: self.date = datetime.strptime(moment_dates.get("date"), "%Y-%m-%d").date() ProtectedProjectsResult = namedtuple("ProtectedProjectsResult", ["external_id", "is_confidential"]) ArtistsResult = namedtuple("ArtistsResult", ["external_id", "name"])