Spaces:
Sleeping
Sleeping
File size: 1,085 Bytes
7131bbe | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 | """In-memory repository for the first MVP."""
from __future__ import annotations
from .models import Asset, Campaign
class MemoryRepository:
def __init__(self) -> None:
self.campaigns: dict[str, Campaign] = {}
self.assets: dict[str, Asset] = {}
def add_campaign(self, campaign: Campaign) -> Campaign:
self.campaigns[campaign.id] = campaign
return campaign
def list_campaigns(self) -> list[Campaign]:
return sorted(self.campaigns.values(), key=lambda item: item.created_at, reverse=True)
def get_campaign(self, campaign_id: str) -> Campaign | None:
return self.campaigns.get(campaign_id)
def add_asset(self, asset: Asset) -> Asset:
self.assets[asset.id] = asset
return asset
def get_asset(self, asset_id: str) -> Asset | None:
return self.assets.get(asset_id)
def list_assets(self, campaign_id: str) -> list[Asset]:
assets = [asset for asset in self.assets.values() if asset.campaign_id == campaign_id]
return sorted(assets, key=lambda item: item.created_at)
|