package models

// BaseTemplateData contains platform-agnostic data shared across all platforms.
// This is the base type that platform-specific template data types should embed.
// Currently used by AndroidTemplateData in the android-webview platform.
type BaseTemplateData struct {
	// Basic Info
	AppName    string
	AppID      string
	WebsiteURL string

	// Template Type
	LayoutTemplate string // blank, app_bar, app_bar_tabs, app_bar_drawer
	IsBlank        bool
	IsAppBar       bool
	IsTabs         bool
	IsDrawer       bool

	// Configuration
	Orientation    string // portrait, landscape, auto
	UserAgent      string
	ShowPageTitle  bool
	TextColorLight string // Hex color for light mode text
	TextColorDark  string // Hex color for dark mode text
	ProgressType   string // disable, linear, circular
	ProgressColor  string

	// Theme Colors
	Colors              ColorScheme
	EnableDynamicColors bool // Enable Material You dynamic colors (Android 12+)

	// Navigation
	NavigationItems []NavItem
	AppBarButtons   []NavItem
	HomeURL         string

	// Drawer Settings
	Drawer DrawerConfig

	// Splash Screen
	Splash SplashConfig

	// Custom Code
	CustomCSS string
	CustomJS  string

	// Icons (processed)
	HasCustomIcons bool
	IconsExtracted bool

	// Navigation Config
	PullToRefreshEnabled   bool
	SwipeNavigationEnabled bool
	PreserveTabState       bool

	// Permissions
	Permissions PermissionConfig

	// Firebase/FCM
	FirebaseEnabled    bool
	GoogleServicesJSON string

	// Versioning
	VersionName string

	// Build Config
	BuildConfigJSON      string
	EnvironmentVariables string
	BuildFormat          string
}
