class FtrackSettings(BaseSettingsModel):
    """ftrack addon settings."""
    enabled: bool = SettingsField(True)
    ftrack_server: str = SettingsField(
        "",
        title="ftrack server url",
        scope=["studio"],
    )
    service_settings: FtrackServiceSettings = SettingsField(
        default_factory=FtrackServiceSettings,
        title="Service settings",
        scope=["studio"],
    )
    service_event_handlers: FtrackServiceHandlers = SettingsField(
        default_factory=FtrackServiceHandlers,
        title="Server Actions/Events",
    )
    post_launch_hook: PostLaunchHookSettings = SettingsField(
        default_factory=PostLaunchHookSettings,
        title="Status change on application launch"
    )
    user_handlers: FtrackDesktopAppHandlers = SettingsField(
        default_factory=FtrackDesktopAppHandlers,
        title="User Actions/Events",
    )
    publish: FtrackPublishPlugins = SettingsField(
        default_factory=FtrackPublishPlugins,
        title="Publish plugins"
    )
    custom_attributes: CustomAttributesModel = SettingsField(
        title="Custom Attributes",
        default_factory=CustomAttributesModel,
        scope=["studio"],
    )