artemis-model 0.1.112__py3-none-any.whl → 0.1.114__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
artemis_model/__init__.py CHANGED
@@ -15,3 +15,4 @@ from artemis_model.user import * # noqa
15
15
  from artemis_model.zone import * # noqa
16
16
  from artemis_model.otp import * # noqa
17
17
  from artemis_model.banned_tracks import * # noqa
18
+ from artemis_model.zone_activity import * # noqa
@@ -0,0 +1,47 @@
1
+ """Zone Activity Model"""
2
+
3
+ from enum import StrEnum
4
+ from sqlalchemy import Integer, String, JSON, Index
5
+ from sqlalchemy.orm import Mapped, mapped_column
6
+ from artemis_model.base import AuditMixin, TimeStampMixin, CustomSyncBase, CustomBase
7
+
8
+
9
+ class ZoneActivityType(StrEnum):
10
+ """Zone activity type"""
11
+
12
+ CONNECTED = "connected"
13
+ CONNECTION_MODE_CHANGED = "connection_mode_changed"
14
+ DISCONNECTED = "disconnected"
15
+ PLAYER_PAUSED = "player_paused"
16
+ PLAYER_RESUMED = "player_resumed"
17
+ TRACK_SKIPPED = "track_skipped"
18
+ TRACK_LIKED = "track_liked"
19
+ TRACK_BANNED = "track_banned"
20
+ TRACK_UNBANNED = "track_unbanned"
21
+ PLAYLIST_PUSHED = "playlist_pushed"
22
+ PLAYLIST_EXPIRED = "playlist_expired"
23
+ ACTIVE_PLAYLIST_CHANGED = "active_playlist_changed"
24
+
25
+
26
+ class PlayerActivityMixin(TimeStampMixin, AuditMixin):
27
+ """User activity log, sorted by created_at DESC for retrieval"""
28
+
29
+ id: Mapped[int] = mapped_column(Integer, primary_key=True, autoincrement=True)
30
+ player_id: Mapped[int] = mapped_column(Integer, nullable=False)
31
+ activity_type: Mapped[str] = mapped_column(String, nullable=False)
32
+ activity_data: Mapped[dict] = mapped_column(JSON, nullable=True)
33
+
34
+ __table_args__ = (
35
+ Index("idx_player_activity_player_created", "player_id", "created_at".desc()),
36
+ Index("idx_player_activity_created", "created_at".desc()),
37
+ )
38
+
39
+
40
+ class PlayerActivitySync(CustomSyncBase, PlayerActivityMixin):
41
+ """Sync model for Player Activity"""
42
+ pass
43
+
44
+
45
+ class PlayerActivity(CustomBase, PlayerActivityMixin):
46
+ """Base model for Player Activity"""
47
+ pass
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: artemis-model
3
- Version: 0.1.112
3
+ Version: 0.1.114
4
4
  Summary:
5
5
  Author: Jukeboxy
6
6
  Requires-Python: >=3.10.6,<4.0.0
@@ -1,4 +1,4 @@
1
- artemis_model/__init__.py,sha256=H2Cyijmm4KqmjvxJoPpyXZhFvrUZvM0g0X4lDoJ28qw,742
1
+ artemis_model/__init__.py,sha256=zEeAUndIbJdp_M6pFlON_BEehnMaMcTvusijGktpnvk,792
2
2
  artemis_model/album.py,sha256=9uw9HVNHVBjl-0Dgv-o5MHXhUPwedvbnbzzY3A1cKQg,2077
3
3
  artemis_model/artist.py,sha256=vjXlFN2mOEidAzUzxmsAP5GnVTvJUuhFdhQaH214lgw,1563
4
4
  artemis_model/auth.py,sha256=0Yg_6N1nj4U31F86u1PE0leIa3D64QlYrsDlavulN6s,4033
@@ -26,6 +26,7 @@ artemis_model/sqs/messages.py,sha256=8PcZYUsh85x3TikZ4hBvGl_xUl9onKUwSCxZWgToEgQ
26
26
  artemis_model/track.py,sha256=QwUF0QKVn1I64648B-NI75-IzGQvnLt9B0emD4GnS6E,3757
27
27
  artemis_model/user.py,sha256=eqIdCiBJRNLjCwPPCn-gQ6si0O5JUBGfp9oWJL5zVW4,2131
28
28
  artemis_model/zone.py,sha256=iGRUtzUwKh9LHT3MOfzzg1DnkPBts_ZBzZVTi2EmIgs,2282
29
- artemis_model-0.1.112.dist-info/METADATA,sha256=fNA2fT5nnMVUF7gDrTIaqQZtxWpZGHaqlc8HZjYSPQ0,3445
30
- artemis_model-0.1.112.dist-info/WHEEL,sha256=b4K_helf-jlQoXBBETfwnf4B04YC67LOev0jo4fX5m8,88
31
- artemis_model-0.1.112.dist-info/RECORD,,
29
+ artemis_model/zone_activity.py,sha256=TgBIbVhU_aVvhPIe7eC4TSJayW8aMSJWoOiv6JduS4w,1598
30
+ artemis_model-0.1.114.dist-info/METADATA,sha256=H3jVVmEerVNAXOgVSmOHaFeBVmJQzmXS9ZSu-wtPDaU,3445
31
+ artemis_model-0.1.114.dist-info/WHEEL,sha256=b4K_helf-jlQoXBBETfwnf4B04YC67LOev0jo4fX5m8,88
32
+ artemis_model-0.1.114.dist-info/RECORD,,