This commit is contained in:
2025-03-20 21:26:04 -03:00
parent 85cbc9269c
commit 1f19380f5c
20 changed files with 293 additions and 54 deletions

View File

@@ -1,23 +1,40 @@
from typing import Annotated
from uuid import uuid4
import shortuuid
from layercake.extra_types import CnpjStr
from pydantic import BaseModel, Field, StringConstraints
from layercake.extra_types import CnpjStr, CpfStr, NameStr
from pydantic import (
UUID4,
BaseModel,
ConfigDict,
EmailStr,
Field,
StringConstraints,
)
class Org(BaseModel):
id: str
id: UUID4 | str = Field(default_factory=uuid4)
name: Annotated[str, StringConstraints(strip_whitespace=True)]
cnpj: CnpjStr | None = None
class User(BaseModel):
model_config = ConfigDict(arbitrary_types_allowed=True)
id: UUID4 | str = Field(default_factory=uuid4)
name: NameStr
email: EmailStr
email_verified: bool = False
cpf: CpfStr | None = None
class Cert(BaseModel):
id: str
id: UUID4 | str = Field(default_factory=uuid4)
exp_interval: int
class Course(BaseModel):
id: str = Field(default_factory=shortuuid.uuid)
id: UUID4 | str = Field(default_factory=uuid4)
name: str
cert: Cert | None = None
access_period: int | None = None