| 
									
										
										
										
											2023-09-27 16:06:32 +08:00
										 |  |  | from flask_restful import fields | 
					
						
							| 
									
										
										
										
											2024-02-06 13:21:13 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-09-27 16:06:32 +08:00
										 |  |  | from libs.helper import TimestampField | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | integrate_icon_fields = { | 
					
						
							|  |  |  |     'type': fields.String, | 
					
						
							|  |  |  |     'url': fields.String, | 
					
						
							|  |  |  |     'emoji': fields.String | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | integrate_page_fields = { | 
					
						
							|  |  |  |     'page_name': fields.String, | 
					
						
							|  |  |  |     'page_id': fields.String, | 
					
						
							|  |  |  |     'page_icon': fields.Nested(integrate_icon_fields, allow_null=True), | 
					
						
							|  |  |  |     'is_bound': fields.Boolean, | 
					
						
							|  |  |  |     'parent_id': fields.String, | 
					
						
							|  |  |  |     'type': fields.String | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | integrate_workspace_fields = { | 
					
						
							|  |  |  |     'workspace_name': fields.String, | 
					
						
							|  |  |  |     'workspace_id': fields.String, | 
					
						
							|  |  |  |     'workspace_icon': fields.String, | 
					
						
							|  |  |  |     'pages': fields.List(fields.Nested(integrate_page_fields)) | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | integrate_notion_info_list_fields = { | 
					
						
							|  |  |  |     'notion_info': fields.List(fields.Nested(integrate_workspace_fields)), | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | integrate_icon_fields = { | 
					
						
							|  |  |  |     'type': fields.String, | 
					
						
							|  |  |  |     'url': fields.String, | 
					
						
							|  |  |  |     'emoji': fields.String | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | integrate_page_fields = { | 
					
						
							|  |  |  |     'page_name': fields.String, | 
					
						
							|  |  |  |     'page_id': fields.String, | 
					
						
							|  |  |  |     'page_icon': fields.Nested(integrate_icon_fields, allow_null=True), | 
					
						
							|  |  |  |     'parent_id': fields.String, | 
					
						
							|  |  |  |     'type': fields.String | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | integrate_workspace_fields = { | 
					
						
							|  |  |  |     'workspace_name': fields.String, | 
					
						
							|  |  |  |     'workspace_id': fields.String, | 
					
						
							|  |  |  |     'workspace_icon': fields.String, | 
					
						
							|  |  |  |     'pages': fields.List(fields.Nested(integrate_page_fields)), | 
					
						
							|  |  |  |     'total': fields.Integer | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | integrate_fields = { | 
					
						
							|  |  |  |     'id': fields.String, | 
					
						
							|  |  |  |     'provider': fields.String, | 
					
						
							|  |  |  |     'created_at': TimestampField, | 
					
						
							|  |  |  |     'is_bound': fields.Boolean, | 
					
						
							|  |  |  |     'disabled': fields.Boolean, | 
					
						
							|  |  |  |     'link': fields.String, | 
					
						
							|  |  |  |     'source_info': fields.Nested(integrate_workspace_fields) | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | integrate_list_fields = { | 
					
						
							|  |  |  |     'data': fields.List(fields.Nested(integrate_fields)), | 
					
						
							|  |  |  | } |