PluralKit/src/pluralkit/switch.py

26 lines
698 B
Python
Raw Normal View History

from collections import namedtuple
from datetime import datetime
from typing import List
from pluralkit import db
from pluralkit.member import Member
class Switch(namedtuple("Switch", ["id", "system", "timestamp", "members"])):
id: int
system: int
timestamp: datetime
members: List[int]
async def fetch_members(self, conn) -> List[Member]:
return await db.get_members(conn, self.members)
async def delete(self, conn):
await db.delete_switch(conn, self.id)
async def to_json(self, conn):
return {
"timestamp": self.timestamp.isoformat(),
"members": [member.hid for member in await self.fetch_members(conn)]
}