"""Factories for analytics app models."""

import factory
from django.utils import timezone
from factory.django import DjangoModelFactory

from accounts.tests.factories import WorkspaceFactory
from analytics.models import Event
from members.tests.factories import MemberFactory


class EventFactory(DjangoModelFactory):
    """Factory for creating Event instances."""

    class Meta:
        model = Event

    workspace = factory.SubFactory(WorkspaceFactory)
    member = factory.SubFactory(MemberFactory, workspace=factory.SelfAttribute("..workspace"))
    name = factory.Sequence(lambda n: f"event.{n}")
    occurred_at = factory.LazyFunction(timezone.now)
    properties = factory.LazyFunction(dict)
