from delphi_api.bigtable import BigTableModel, ProtoAttribute, TextAttribute from delphi_api.bigtable.decorators import apply_dynamic_fields from delphi_api.v2.constants import SPOTIFY_COUNTRY_CODES from delphi_api.v2.enums import ColumnFamily, ColumnName, TableName from delphi_api.v2.proto.gen.spotify_v2_pb2 import SpotifyTrackStreamStats @apply_dynamic_fields(SPOTIFY_COUNTRY_CODES, column_family=ColumnFamily.SPOTIFY.value, field_class=ProtoAttribute, deserialize_class=SpotifyTrackStreamStats) class SpotifyTrackStream(BigTableModel): class Meta: table_name = TableName.spotify_stream_track.value country_codes = SPOTIFY_COUNTRY_CODES date = TextAttribute(column_family=ColumnFamily.SPOTIFY.value, attr_name=ColumnName.DATE.value) dsp = TextAttribute(column_family=ColumnFamily.SPOTIFY.value, attr_name=ColumnName.DSP.value) isrc = TextAttribute(column_family=ColumnFamily.SPOTIFY.value, attr_name=ColumnName.ISRC.value)