"""Factories for sources app models."""

import factory
from factory.django import DjangoModelFactory

from accounts.tests.factories import WorkspaceFactory
from sources.models import Source


class SourceFactory(DjangoModelFactory):
    """Factory for creating Source instances."""

    class Meta:
        model = Source

    workspace = factory.SubFactory(WorkspaceFactory)
    name = factory.Sequence(lambda n: f"Source {n}")
    kind = "github_repo"
    external_id = factory.Sequence(lambda n: f"repo-{n}")
    metadata = factory.LazyFunction(dict)
