| 12345678910111213141516171819202122232425262728293031323334353637 | 
							- from sqlalchemy import Column, JSON
 
- from typing import Optional
 
- from pydantic import Field as PDField
 
- from sqlmodel import Field
 
- from app.models.base_model import BaseModel, TimeStampMixin, PrimaryKeyMixin
 
- # This class utilizes code from the Open Source Project TaskingAI.
 
- # The original code can be found at: https://github.com/TaskingAI/TaskingAI
 
- class ActionBase(BaseModel):
 
-     name: str = Field(nullable=False)
 
-     description: Optional[str] = Field(nullable=False)
 
-     openapi_schema: Optional[dict] = Field(default=None, sa_column=Column(JSON))
 
-     authentication: Optional[dict] = Field(default=None, sa_column=Column(JSON))
 
-     extra: Optional[dict] = Field(default=None, sa_column=Column(JSON))
 
-     metadata_: Optional[dict] = Field(default=None, sa_column=Column("metadata", JSON), schema_extra={"validation_alias": "metadata"})
 
-     operation_id: str = Field(nullable=False)
 
-     url: str = Field(nullable=False)
 
-     method: str = Field(nullable=False)
 
-     path_param_schema: Optional[dict] = Field(default=None, sa_column=Column(JSON))
 
-     query_param_schema: Optional[dict] = Field(default=None, sa_column=Column(JSON))
 
-     body_param_schema: Optional[dict] = Field(default=None, sa_column=Column(JSON))
 
-     body_type: str = Field(nullable=False)
 
-     function_def: Optional[dict] = Field(default=None, sa_column=Column(JSON))
 
-     use_for_everyone: bool = Field(default=False, nullable=False)
 
-     object: str = Field(nullable=False, default="action")
 
- class Action(ActionBase, PrimaryKeyMixin, TimeStampMixin, table=True):
 
-     pass
 
- class ActionRead(ActionBase, PrimaryKeyMixin, TimeStampMixin):
 
-     metadata_: Optional[dict] = PDField(default=None, alias="metadata")
 
 
  |