from factory.django import DjangoModelFactory
from factory import Faker, SubFactory, LazyAttribute, Sequence
import datetime
from diarios.models import PageDiarioOficial, DiarioOficial, TipoDiarioOficial


class TipoDiarioOficialFactory(DjangoModelFactory):
    nome = Faker("word")

    class Meta:
        model = TipoDiarioOficial
        django_get_or_create = ["nome"]

class DiarioOficialFactory(DjangoModelFactory):
    data = Faker("date_this_decade")
    numero = Sequence(lambda n: f"{n:04d}-DO")  # ex: 0001-DO, 0002-DO
    tipo = SubFactory(TipoDiarioOficialFactory)
    link = None

    class Meta:
        model = DiarioOficial

class PageDiarioOficialFactory(DjangoModelFactory):
    diario = SubFactory(DiarioOficialFactory)
    numero = Sequence(lambda n: n + 1)
    layout_duas_colunas = False
    conteudo = Faker("text", max_nb_chars=3000)

    class Meta:
        model = PageDiarioOficial
        django_get_or_create = ["diario", "numero"]