01

Sample Code

container-hierarchy.py
from uuid import uuid4
from datetime import datetime, UTC

from psp.components.todos.domain import TaskContainer, ContainerType
from psp.components.todos.adapters.persistence import InMemoryTaskContainerRepository

container_repo = InMemoryTaskContainerRepository()
owner_id = uuid4()
now = datetime.now(UTC)

# Create a project
project = TaskContainer(
    id=uuid4(),
    owner_id=owner_id,
    name="Home Renovation",
    container_type=ContainerType.PROJECT,
)
container_repo.save(project)

# Create sub-lists under the project
kitchen = TaskContainer(
    id=uuid4(),
    owner_id=owner_id,
    name="Kitchen",
    container_type=ContainerType.LIST,
    parent_id=project.id,
    position=0,
)
bathroom = TaskContainer(
    id=uuid4(),
    owner_id=owner_id,
    name="Bathroom",
    container_type=ContainerType.LIST,
    parent_id=project.id,
    position=1,
)
container_repo.save(kitchen)
container_repo.save(bathroom)

print(f"Project: {project.name}")
print(f"  - {kitchen.name} (position {kitchen.position})")
print(f"  - {bathroom.name} (position {bathroom.position})")