[SKY-6974] Browser Profiles [2/3] Marc/backend browser session profiles (#3923)
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
from datetime import datetime
|
||||
|
||||
from pydantic import BaseModel, ConfigDict
|
||||
from pydantic import BaseModel, ConfigDict, Field, model_validator
|
||||
|
||||
|
||||
class BrowserProfile(BaseModel):
|
||||
@@ -13,3 +13,20 @@ class BrowserProfile(BaseModel):
|
||||
created_at: datetime
|
||||
modified_at: datetime
|
||||
deleted_at: datetime | None = None
|
||||
|
||||
|
||||
class CreateBrowserProfileRequest(BaseModel):
|
||||
name: str = Field(..., description="Name for the browser profile")
|
||||
description: str | None = Field(None, description="Optional profile description")
|
||||
browser_session_id: str | None = Field(
|
||||
default=None, description="Persistent browser session to convert into a profile"
|
||||
)
|
||||
workflow_run_id: str | None = Field(
|
||||
default=None, description="Workflow run whose persisted session should be captured"
|
||||
)
|
||||
|
||||
@model_validator(mode="after")
|
||||
def _validate_source(self) -> "CreateBrowserProfileRequest":
|
||||
if bool(self.browser_session_id) == bool(self.workflow_run_id):
|
||||
raise ValueError("Provide either browser_session_id or workflow_run_id")
|
||||
return self
|
||||
|
||||
Reference in New Issue
Block a user