Melhorias gerais no projeto como alterações de imports, nomes, e criação de singleton para configuração extra do ORM via init geral como timezone

---

- Muda nome de `Database` para `DatabaseClient` em `orm.respositories.databases`;
- Importa `DatabaseClient` em `types.orm` para facilitar uso pelo usuário;
- Define `BaseModelSdk` como base para `NotionDatabase` em `orm.mapping.database` no lugar de `BaseModel` original;
- Muda imports de models Database em `notion.types.orm` para `notion.types.orm.databases` e remove 'Database' dos nomes;
- Muda nome da func `get_database_id` para `id` em `orm.mapping.database`;
- Muda nome da func `get_notion_field_name` para `field_name` em `orm.mapping.database`;
- Muda nome da func `get_all_mappings` para `mappings` em `orm.mapping.database`;
- Cria `orm.config` para configuração de timezone e afins e inicializa singleton no init do pacote com `ORMConfig.configure(timezone = timezone)`;
- Altera link de 'Repository' do `pyproject.toml` para o GitHub;

---
This commit is contained in:
2026-01-21 22:15:36 -03:00
parent 9896f3fa3a
commit 0ecb6e3530
12 changed files with 74 additions and 36 deletions
+7 -6
View File
@@ -1,5 +1,6 @@
from typing import Dict, Any, Optional, Callable, ClassVar, TypeVar, Type
from pydantic import BaseModel, field_validator
from pydantic import field_validator
from ...schemas.dto import BaseModelSdk
T = TypeVar('T', bound='NotionDatabase')
@@ -42,7 +43,7 @@ class NotionConfigMeta:
self.transformers.update(transformers_config)
class NotionDatabaseMeta(type(BaseModel)):
class NotionDatabaseMeta(type(BaseModelSdk)):
"Metaclass que processa a classe e injeta funcionalidades do Notion"
@@ -81,7 +82,7 @@ class NotionDatabaseMeta(type(BaseModel)):
return cls
class NotionDatabase(BaseModel, metaclass = NotionDatabaseMeta):
class NotionDatabase(BaseModelSdk, metaclass = NotionDatabaseMeta):
"""
Classe base para schemas de databases do Notion.
@@ -164,7 +165,7 @@ class NotionDatabase(BaseModel, metaclass = NotionDatabaseMeta):
return cls(**result)
@classmethod
def get_database_id(cls) -> str:
def id(cls) -> str:
"Retorna o nome da database no Notion"
@@ -174,7 +175,7 @@ class NotionDatabase(BaseModel, metaclass = NotionDatabaseMeta):
return cls.__name__
@classmethod
def get_notion_field_name(cls,
def field_name(cls,
python_field : str
) -> Optional[str]:
@@ -186,7 +187,7 @@ class NotionDatabase(BaseModel, metaclass = NotionDatabaseMeta):
return None
@classmethod
def get_all_mappings(cls) -> Dict[str, str]:
def mappings(cls) -> Dict[str, str]:
"Retorna todos os mappings field_python -> field_notion"