from delphi_api.bigtable import BigTableModel, ProtoAttribute, TextAttribute from delphi_api.bigtable.decorators import apply_dynamic_fields from delphi_api.v2.constants import AMAZON_UNION_COUNTRY_CODES from delphi_api.v2.enums import ColumnFamily, ColumnName, TableName from delphi_api.v2.proto.gen.amazon_v2_pb2 import AmazonTrackStreamStats @apply_dynamic_fields(AMAZON_UNION_COUNTRY_CODES, column_family=ColumnFamily.AMAZON.value, field_class=ProtoAttribute, deserialize_class=AmazonTrackStreamStats) class AmazonTrackStream(BigTableModel): class Meta: table_name = TableName.amazon_stream_track.value country_codes = AMAZON_UNION_COUNTRY_CODES date = TextAttribute(column_family=ColumnFamily.AMAZON.value, attr_name=ColumnName.DATE.value) dsp = TextAttribute(column_family=ColumnFamily.AMAZON.value, attr_name=ColumnName.DSP.value) isrc = TextAttribute(column_family=ColumnFamily.AMAZON.value, attr_name=ColumnName.ISRC.value) @apply_dynamic_fields(AMAZON_UNION_COUNTRY_CODES, column_family=ColumnFamily.AMAZON.value, field_class=ProtoAttribute, deserialize_class=AmazonTrackStreamStats) class AmazonPlaylistTrackStream(BigTableModel): class Meta: table_name = TableName.amazon_stream_playlist_track.value country_codes = AMAZON_UNION_COUNTRY_CODES date = TextAttribute(column_family=ColumnFamily.AMAZON.value, attr_name=ColumnName.DATE.value) dsp = TextAttribute(column_family=ColumnFamily.AMAZON.value, attr_name=ColumnName.DSP.value) isrc = TextAttribute(column_family=ColumnFamily.AMAZON.value, attr_name=ColumnName.ISRC.value) playlist_id = TextAttribute(column_family=ColumnFamily.AMAZON.value, attr_name=ColumnName.PLAYLIST_ID.value) @apply_dynamic_fields(AMAZON_UNION_COUNTRY_CODES, column_family=ColumnFamily.AMAZON.value, field_class=ProtoAttribute, deserialize_class=AmazonTrackStreamStats) class AmazonPlaylistStream(BigTableModel): class Meta: table_name = TableName.amazon_stream_playlist.value country_codes = AMAZON_UNION_COUNTRY_CODES date = TextAttribute(column_family=ColumnFamily.AMAZON.value, attr_name=ColumnName.DATE.value) dsp = TextAttribute(column_family=ColumnFamily.AMAZON.value, attr_name=ColumnName.DSP.value) playlist_id = TextAttribute(column_family=ColumnFamily.AMAZON.value, attr_name=ColumnName.PLAYLIST_ID.value)