From acf4a85d47fd8e18c2f1a135a5cc19af605629ef Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=EC=9E=84=EC=84=A0=EC=98=A4?= <vhtmxj154@naver.com>
Date: Fri, 13 Dec 2024 16:09:46 +0900
Subject: [PATCH] Fix: Add UniqueValidator, UniqueTogetherValidator,
 BaseUniqueForValidator to validators

---
 rest_framework-stubs/validators.pyi | 30 ++++++++++++++++++++++++-----
 1 file changed, 25 insertions(+), 5 deletions(-)

diff --git a/rest_framework-stubs/validators.pyi b/rest_framework-stubs/validators.pyi
index 918f8813..e9e20860 100644
--- a/rest_framework-stubs/validators.pyi
+++ b/rest_framework-stubs/validators.pyi
@@ -14,7 +14,9 @@ class ContextValidator(Protocol[_V]):
     requires_context: bool
     def __call__(self, value: _V, context: Field, /) -> None: ...
 
-Validator: TypeAlias = Callable[[_V], None] | ContextValidator[_V]
+Validator: TypeAlias = (
+    Callable[[_V], None] | ContextValidator[_V] | UniqueValidator | UniqueTogetherValidator | BaseUniqueForValidator
+)
 
 def qs_exists(queryset: QuerySet) -> bool: ...
 def qs_filter(queryset: QuerySet[_T], **kwargs: Any) -> QuerySet[_T]: ...
@@ -35,10 +37,18 @@ class UniqueTogetherValidator:
     requires_context: bool
     queryset: QuerySet
     fields: Iterable[str]
-    def __init__(self, queryset: QuerySet, fields: Iterable[str], message: StrOrPromise | None = ...) -> None: ...
+    def __init__(
+        self,
+        queryset: QuerySet,
+        fields: Iterable[str],
+        message: StrOrPromise | None = ...,
+    ) -> None: ...
     def enforce_required_fields(self, attrs: Container[str], serializer: BaseSerializer) -> None: ...
     def filter_queryset(
-        self, attrs: MutableMapping[str, Any], queryset: QuerySet[_T], serializer: BaseSerializer
+        self,
+        attrs: MutableMapping[str, Any],
+        queryset: QuerySet[_T],
+        serializer: BaseSerializer,
     ) -> QuerySet[_T]: ...
     def exclude_current_instance(
         self, attrs: MutableMapping[str, Any], queryset: QuerySet[_T], instance: _T
@@ -57,10 +67,20 @@ class BaseUniqueForValidator:
     queryset: QuerySet
     field: str
     date_field: str
-    def __init__(self, queryset: QuerySet, field: str, date_field: str, message: StrOrPromise | None = ...) -> None: ...
+    def __init__(
+        self,
+        queryset: QuerySet,
+        field: str,
+        date_field: str,
+        message: StrOrPromise | None = ...,
+    ) -> None: ...
     def enforce_required_fields(self, attrs: Container[str]) -> None: ...
     def filter_queryset(
-        self, attrs: MutableMapping[str, Any], queryset: QuerySet[_T], field_name: str, date_field_name: str
+        self,
+        attrs: MutableMapping[str, Any],
+        queryset: QuerySet[_T],
+        field_name: str,
+        date_field_name: str,
     ) -> QuerySet[_T]: ...
     def exclude_current_instance(
         self, attrs: MutableMapping[str, Any], queryset: QuerySet[_T], instance: Model