@@ -29,6 +29,7 @@ class FolderOut(Schema):
2929 name_en : str | None = None
3030 slug : str
3131 is_default : bool
32+ is_visible : bool
3233 tracks_count : int = 0
3334 created_at : AwareDatetime
3435 updated_at : AwareDatetime
@@ -46,6 +47,8 @@ class FolderCreateIn(Schema):
4647class FolderPatchIn (Schema ):
4748 name_ar : str | None = Field (default = None , max_length = 255 )
4849 name_en : str | None = Field (default = None , max_length = 255 )
50+ is_visible : bool | None = None
51+ is_default : bool | None = None
4952
5053
5154# --- Helpers ---
@@ -107,7 +110,14 @@ def create_folder(request: Request, recitation_slug: str, data: FolderCreateIn):
107110 "recitations/{recitation_slug}/folders/{folder_slug}/" ,
108111 response = {
109112 200 : FolderOut ,
110- 400 : NinjaErrorResponse [Literal ["folder_name_required" ]],
113+ 400 : NinjaErrorResponse [
114+ Literal [
115+ "folder_name_required" ,
116+ "cannot_hide_default_folder" ,
117+ "cannot_unset_default_folder" ,
118+ "cannot_set_hidden_folder_as_default" ,
119+ ]
120+ ],
111121 401 : NinjaErrorResponse [Literal ["authentication_error" ]],
112122 403 : NinjaErrorResponse [Literal ["permission_denied" ]],
113123 404 : NinjaErrorResponse [Literal ["recitation_not_found" ]] | NinjaErrorResponse [Literal ["folder_not_found" ]],
0 commit comments