Bläddra i källkod

Initial commit

Fabio Dalle Ave 2 månader sedan
incheckning
f1d0fe404b
100 ändrade filer med 28990 tillägg och 0 borttagningar
  1. 0 0
      .flutter-plugins-dependencies
  2. 16 0
      .gitignore
  3. 45 0
      .metadata
  4. 30 0
      .opencode/summary.md
  5. 17 0
      README.md
  6. 19 0
      analysis_options.yaml
  7. 14 0
      android/.gitignore
  8. 44 0
      android/app/build.gradle.kts
  9. 7 0
      android/app/src/debug/AndroidManifest.xml
  10. 45 0
      android/app/src/main/AndroidManifest.xml
  11. 5 0
      android/app/src/main/kotlin/it/powerbyte/ristoris/MainActivity.kt
  12. 12 0
      android/app/src/main/res/drawable-v21/launch_background.xml
  13. 12 0
      android/app/src/main/res/drawable/launch_background.xml
  14. BIN
      android/app/src/main/res/mipmap-hdpi/ic_launcher.png
  15. BIN
      android/app/src/main/res/mipmap-mdpi/ic_launcher.png
  16. BIN
      android/app/src/main/res/mipmap-xhdpi/ic_launcher.png
  17. BIN
      android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png
  18. BIN
      android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png
  19. 18 0
      android/app/src/main/res/values-night/styles.xml
  20. 18 0
      android/app/src/main/res/values/styles.xml
  21. 7 0
      android/app/src/profile/AndroidManifest.xml
  22. 24 0
      android/build.gradle.kts
  23. 2 0
      android/gradle.properties
  24. 5 0
      android/gradle/wrapper/gradle-wrapper.properties
  25. 26 0
      android/settings.gradle.kts
  26. BIN
      assets/db/Ristoris.db
  27. 34 0
      ios/.gitignore
  28. 24 0
      ios/Flutter/AppFrameworkInfo.plist
  29. 1 0
      ios/Flutter/Debug.xcconfig
  30. 1 0
      ios/Flutter/Release.xcconfig
  31. 620 0
      ios/Runner.xcodeproj/project.pbxproj
  32. 7 0
      ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata
  33. 8 0
      ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist
  34. 8 0
      ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings
  35. 101 0
      ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme
  36. 7 0
      ios/Runner.xcworkspace/contents.xcworkspacedata
  37. 8 0
      ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist
  38. 8 0
      ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings
  39. 16 0
      ios/Runner/AppDelegate.swift
  40. 122 0
      ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json
  41. BIN
      ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png
  42. BIN
      ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png
  43. BIN
      ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png
  44. BIN
      ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png
  45. BIN
      ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png
  46. BIN
      ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png
  47. BIN
      ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png
  48. BIN
      ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png
  49. BIN
      ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png
  50. BIN
      ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png
  51. BIN
      ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png
  52. BIN
      ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png
  53. BIN
      ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png
  54. BIN
      ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png
  55. BIN
      ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png
  56. 23 0
      ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json
  57. BIN
      ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png
  58. BIN
      ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png
  59. BIN
      ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png
  60. 5 0
      ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md
  61. 37 0
      ios/Runner/Base.lproj/LaunchScreen.storyboard
  62. 26 0
      ios/Runner/Base.lproj/Main.storyboard
  63. 70 0
      ios/Runner/Info.plist
  64. 1 0
      ios/Runner/Runner-Bridging-Header.h
  65. 6 0
      ios/Runner/SceneDelegate.swift
  66. 12 0
      ios/RunnerTests/RunnerTests.swift
  67. 22 0
      lib/app.dart
  68. 33 0
      lib/business/customer_manager.dart
  69. 31 0
      lib/business/destination_manager.dart
  70. 159 0
      lib/business/order_manager.dart
  71. 99 0
      lib/business/pricing_service.dart
  72. 305 0
      lib/business/promo_handler.dart
  73. 62 0
      lib/business/statistics_service.dart
  74. 16 0
      lib/core/constants.dart
  75. 29 0
      lib/core/responsive.dart
  76. 65 0
      lib/core/theme.dart
  77. 38 0
      lib/database/daos/agenti_dao.dart
  78. 98 0
      lib/database/daos/articoli_dao.dart
  79. 32 0
      lib/database/daos/clienti_agente_dao.dart
  80. 109 0
      lib/database/daos/clienti_dao.dart
  81. 56 0
      lib/database/daos/filiali_dao.dart
  82. 48 0
      lib/database/daos/listini_dao.dart
  83. 125 0
      lib/database/daos/ordini_dao.dart
  84. 33 0
      lib/database/daos/pagamenti_dao.dart
  85. 27 0
      lib/database/daos/parametri_dao.dart
  86. 69 0
      lib/database/daos/promozioni_dao.dart
  87. 34 0
      lib/database/daos/scadenze_dao.dart
  88. 16 0
      lib/database/daos/sconti_dao.dart
  89. 59 0
      lib/database/daos/statistiche_dao.dart
  90. 22 0
      lib/database/daos/tabelle_dao.dart
  91. 132 0
      lib/database/database.dart
  92. 25575 0
      lib/database/database.g.dart
  93. 2 0
      lib/database/db_connector.dart
  94. 33 0
      lib/database/db_connector_io.dart
  95. 14 0
      lib/database/db_connector_web.dart
  96. 23 0
      lib/database/tables/agenti.dart
  97. 33 0
      lib/database/tables/articoli.dart
  98. 41 0
      lib/database/tables/clienti.dart
  99. 12 0
      lib/database/tables/clienti_agente.dart
  100. 27 0
      lib/database/tables/filiali.dart

Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 0
.flutter-plugins-dependencies


+ 16 - 0
.gitignore

@@ -0,0 +1,16 @@
+.fvm/
+.fvmrc
+.dart_tool/
+.idea/
+.vscode/
+*.iml
+build/
+*.dart_tool/
+.packages
+.pub/
+pubspec.lock
+.g.dart
+.freezed.dart
+*.mocks.dart
+coverage/
+test/.test_runner.dart

+ 45 - 0
.metadata

@@ -0,0 +1,45 @@
+# This file tracks properties of this Flutter project.
+# Used by Flutter tool to assess capabilities and perform upgrades etc.
+#
+# This file should be version controlled and should not be manually edited.
+
+version:
+  revision: "90673a4eef275d1a6692c26ac80d6d746d41a73a"
+  channel: "stable"
+
+project_type: app
+
+# Tracks metadata for the flutter migrate command
+migration:
+  platforms:
+    - platform: root
+      create_revision: 90673a4eef275d1a6692c26ac80d6d746d41a73a
+      base_revision: 90673a4eef275d1a6692c26ac80d6d746d41a73a
+    - platform: android
+      create_revision: 90673a4eef275d1a6692c26ac80d6d746d41a73a
+      base_revision: 90673a4eef275d1a6692c26ac80d6d746d41a73a
+    - platform: ios
+      create_revision: 90673a4eef275d1a6692c26ac80d6d746d41a73a
+      base_revision: 90673a4eef275d1a6692c26ac80d6d746d41a73a
+    - platform: linux
+      create_revision: 90673a4eef275d1a6692c26ac80d6d746d41a73a
+      base_revision: 90673a4eef275d1a6692c26ac80d6d746d41a73a
+    - platform: macos
+      create_revision: 90673a4eef275d1a6692c26ac80d6d746d41a73a
+      base_revision: 90673a4eef275d1a6692c26ac80d6d746d41a73a
+    - platform: web
+      create_revision: 90673a4eef275d1a6692c26ac80d6d746d41a73a
+      base_revision: 90673a4eef275d1a6692c26ac80d6d746d41a73a
+    - platform: windows
+      create_revision: 90673a4eef275d1a6692c26ac80d6d746d41a73a
+      base_revision: 90673a4eef275d1a6692c26ac80d6d746d41a73a
+
+  # User provided section
+
+  # List of Local paths (relative to this file) that should be
+  # ignored by the migrate tool.
+  #
+  # Files that are not part of the templates will be ignored by default.
+  unmanaged_files:
+    - 'lib/main.dart'
+    - 'ios/Runner.xcodeproj/project.pbxproj'

+ 30 - 0
.opencode/summary.md

@@ -0,0 +1,30 @@
+# Ristoris Flutter Project Summary
+
+## Project
+Porting Xamarin Android app "PowerAge Ristoris" to Flutter multiplatform.
+
+## Constraints
+- Flutter 3.41.2 via FVM (`.fvmrc`)
+- Drift for SQLite, Riverpod for state management (v2)
+- UI: Material 3 responsive (tablet/phone/desktop)
+- Three layers: DB, business logic, UI
+- Images: `getApplicationDocumentsDirectory`
+
+## Done
+- All phases 0-5: project setup, DB, DAOs, DTOs, services, business, providers, UI, routes
+- `flutter analyze`: **0 errors** (pre-existing warnings only)
+- `fvm flutter build linux`: **success** (was failing before)
+- **Fixed naming collision**: `StatisticheVendita` and `ClientiAgente` table classes conflicted with auto-generated data classes in `database.g.dart` (both named identically). Applied `@DataClassName('StatisticheVenditaData')` and `@DataClassName('ClientiAgenteData')` so table class and data class have distinct names. Updated 4 DAO/service files to reference `StatisticheVenditaData`/`ClientiAgenteData`.
+- build_runner regenerated successfully
+
+## Architecture
+- **DB layer**: `database.dart` (Drift), tables in `tables/`, DAOs in `daos/` (plain classes, no `@DriftAccessor`, take `AppDatabase` via constructor)
+- **Business**: services like `statistics_service.dart`, `pricing_service.dart`, etc.
+- **UI**: pages responsive via `LayoutBuilder`, `flutter_riverpod`
+- **Sync**: `reference_sync_service.dart`, `promo_sync_service.dart`, etc.
+
+## Known Issues
+- `TextColumn` doesn't support `greaterOrEquals`/`lessOrEquals` → in-memory filter after fetch
+- `customStatement` instead of `m.createIndex` in migration
+- `fold<double>(0.0, ...)` with `?? 0.0` to avoid `num` from `double?` + `int`
+- Unused imports/fields warnings (pre-existing, cosmetic)

+ 17 - 0
README.md

@@ -0,0 +1,17 @@
+# ristoris
+
+A new Flutter project.
+
+## Getting Started
+
+This project is a starting point for a Flutter application.
+
+A few resources to get you started if this is your first Flutter project:
+
+- [Learn Flutter](https://docs.flutter.dev/get-started/learn-flutter)
+- [Write your first Flutter app](https://docs.flutter.dev/get-started/codelab)
+- [Flutter learning resources](https://docs.flutter.dev/reference/learning-resources)
+
+For help getting started with Flutter development, view the
+[online documentation](https://docs.flutter.dev/), which offers tutorials,
+samples, guidance on mobile development, and a full API reference.

+ 19 - 0
analysis_options.yaml

@@ -0,0 +1,19 @@
+include: package:flutter_lints/flutter.yaml
+
+analyzer:
+  errors:
+    missing_return: error
+    missing_required_param: error
+    todo: ignore
+  exclude:
+    - "**/*.g.dart"
+    - "**/*.freezed.dart"
+    - "**/*.drift.dart"
+    - "build/**"
+
+linter:
+  rules:
+    avoid_print: false
+    prefer_const_constructors: false
+    prefer_const_literals_to_create_immutables: false
+    use_key_in_widget_constructors: false

+ 14 - 0
android/.gitignore

@@ -0,0 +1,14 @@
+gradle-wrapper.jar
+/.gradle
+/captures/
+/gradlew
+/gradlew.bat
+/local.properties
+GeneratedPluginRegistrant.java
+.cxx/
+
+# Remember to never publicly share your keystore.
+# See https://flutter.dev/to/reference-keystore
+key.properties
+**/*.keystore
+**/*.jks

+ 44 - 0
android/app/build.gradle.kts

@@ -0,0 +1,44 @@
+plugins {
+    id("com.android.application")
+    id("kotlin-android")
+    // The Flutter Gradle Plugin must be applied after the Android and Kotlin Gradle plugins.
+    id("dev.flutter.flutter-gradle-plugin")
+}
+
+android {
+    namespace = "it.powerbyte.ristoris"
+    compileSdk = flutter.compileSdkVersion
+    ndkVersion = flutter.ndkVersion
+
+    compileOptions {
+        sourceCompatibility = JavaVersion.VERSION_17
+        targetCompatibility = JavaVersion.VERSION_17
+    }
+
+    kotlinOptions {
+        jvmTarget = JavaVersion.VERSION_17.toString()
+    }
+
+    defaultConfig {
+        // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).
+        applicationId = "it.powerbyte.ristoris"
+        // You can update the following values to match your application needs.
+        // For more information, see: https://flutter.dev/to/review-gradle-config.
+        minSdk = flutter.minSdkVersion
+        targetSdk = flutter.targetSdkVersion
+        versionCode = flutter.versionCode
+        versionName = flutter.versionName
+    }
+
+    buildTypes {
+        release {
+            // TODO: Add your own signing config for the release build.
+            // Signing with the debug keys for now, so `flutter run --release` works.
+            signingConfig = signingConfigs.getByName("debug")
+        }
+    }
+}
+
+flutter {
+    source = "../.."
+}

+ 7 - 0
android/app/src/debug/AndroidManifest.xml

@@ -0,0 +1,7 @@
+<manifest xmlns:android="http://schemas.android.com/apk/res/android">
+    <!-- The INTERNET permission is required for development. Specifically,
+         the Flutter tool needs it to communicate with the running application
+         to allow setting breakpoints, to provide hot reload, etc.
+    -->
+    <uses-permission android:name="android.permission.INTERNET"/>
+</manifest>

+ 45 - 0
android/app/src/main/AndroidManifest.xml

@@ -0,0 +1,45 @@
+<manifest xmlns:android="http://schemas.android.com/apk/res/android">
+    <application
+        android:label="ristoris"
+        android:name="${applicationName}"
+        android:icon="@mipmap/ic_launcher">
+        <activity
+            android:name=".MainActivity"
+            android:exported="true"
+            android:launchMode="singleTop"
+            android:taskAffinity=""
+            android:theme="@style/LaunchTheme"
+            android:configChanges="orientation|keyboardHidden|keyboard|screenSize|smallestScreenSize|locale|layoutDirection|fontScale|screenLayout|density|uiMode"
+            android:hardwareAccelerated="true"
+            android:windowSoftInputMode="adjustResize">
+            <!-- Specifies an Android theme to apply to this Activity as soon as
+                 the Android process has started. This theme is visible to the user
+                 while the Flutter UI initializes. After that, this theme continues
+                 to determine the Window background behind the Flutter UI. -->
+            <meta-data
+              android:name="io.flutter.embedding.android.NormalTheme"
+              android:resource="@style/NormalTheme"
+              />
+            <intent-filter>
+                <action android:name="android.intent.action.MAIN"/>
+                <category android:name="android.intent.category.LAUNCHER"/>
+            </intent-filter>
+        </activity>
+        <!-- Don't delete the meta-data below.
+             This is used by the Flutter tool to generate GeneratedPluginRegistrant.java -->
+        <meta-data
+            android:name="flutterEmbedding"
+            android:value="2" />
+    </application>
+    <!-- Required to query activities that can process text, see:
+         https://developer.android.com/training/package-visibility and
+         https://developer.android.com/reference/android/content/Intent#ACTION_PROCESS_TEXT.
+
+         In particular, this is used by the Flutter engine in io.flutter.plugin.text.ProcessTextPlugin. -->
+    <queries>
+        <intent>
+            <action android:name="android.intent.action.PROCESS_TEXT"/>
+            <data android:mimeType="text/plain"/>
+        </intent>
+    </queries>
+</manifest>

+ 5 - 0
android/app/src/main/kotlin/it/powerbyte/ristoris/MainActivity.kt

@@ -0,0 +1,5 @@
+package it.powerbyte.ristoris
+
+import io.flutter.embedding.android.FlutterActivity
+
+class MainActivity : FlutterActivity()

+ 12 - 0
android/app/src/main/res/drawable-v21/launch_background.xml

@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Modify this file to customize your launch splash screen -->
+<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
+    <item android:drawable="?android:colorBackground" />
+
+    <!-- You can insert your own image assets here -->
+    <!-- <item>
+        <bitmap
+            android:gravity="center"
+            android:src="@mipmap/launch_image" />
+    </item> -->
+</layer-list>

+ 12 - 0
android/app/src/main/res/drawable/launch_background.xml

@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Modify this file to customize your launch splash screen -->
+<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
+    <item android:drawable="@android:color/white" />
+
+    <!-- You can insert your own image assets here -->
+    <!-- <item>
+        <bitmap
+            android:gravity="center"
+            android:src="@mipmap/launch_image" />
+    </item> -->
+</layer-list>

BIN
android/app/src/main/res/mipmap-hdpi/ic_launcher.png


BIN
android/app/src/main/res/mipmap-mdpi/ic_launcher.png


BIN
android/app/src/main/res/mipmap-xhdpi/ic_launcher.png


BIN
android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png


BIN
android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png


+ 18 - 0
android/app/src/main/res/values-night/styles.xml

@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+    <!-- Theme applied to the Android Window while the process is starting when the OS's Dark Mode setting is on -->
+    <style name="LaunchTheme" parent="@android:style/Theme.Black.NoTitleBar">
+        <!-- Show a splash screen on the activity. Automatically removed when
+             the Flutter engine draws its first frame -->
+        <item name="android:windowBackground">@drawable/launch_background</item>
+    </style>
+    <!-- Theme applied to the Android Window as soon as the process has started.
+         This theme determines the color of the Android Window while your
+         Flutter UI initializes, as well as behind your Flutter UI while its
+         running.
+
+         This Theme is only used starting with V2 of Flutter's Android embedding. -->
+    <style name="NormalTheme" parent="@android:style/Theme.Black.NoTitleBar">
+        <item name="android:windowBackground">?android:colorBackground</item>
+    </style>
+</resources>

+ 18 - 0
android/app/src/main/res/values/styles.xml

@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+    <!-- Theme applied to the Android Window while the process is starting when the OS's Dark Mode setting is off -->
+    <style name="LaunchTheme" parent="@android:style/Theme.Light.NoTitleBar">
+        <!-- Show a splash screen on the activity. Automatically removed when
+             the Flutter engine draws its first frame -->
+        <item name="android:windowBackground">@drawable/launch_background</item>
+    </style>
+    <!-- Theme applied to the Android Window as soon as the process has started.
+         This theme determines the color of the Android Window while your
+         Flutter UI initializes, as well as behind your Flutter UI while its
+         running.
+
+         This Theme is only used starting with V2 of Flutter's Android embedding. -->
+    <style name="NormalTheme" parent="@android:style/Theme.Light.NoTitleBar">
+        <item name="android:windowBackground">?android:colorBackground</item>
+    </style>
+</resources>

+ 7 - 0
android/app/src/profile/AndroidManifest.xml

@@ -0,0 +1,7 @@
+<manifest xmlns:android="http://schemas.android.com/apk/res/android">
+    <!-- The INTERNET permission is required for development. Specifically,
+         the Flutter tool needs it to communicate with the running application
+         to allow setting breakpoints, to provide hot reload, etc.
+    -->
+    <uses-permission android:name="android.permission.INTERNET"/>
+</manifest>

+ 24 - 0
android/build.gradle.kts

@@ -0,0 +1,24 @@
+allprojects {
+    repositories {
+        google()
+        mavenCentral()
+    }
+}
+
+val newBuildDir: Directory =
+    rootProject.layout.buildDirectory
+        .dir("../../build")
+        .get()
+rootProject.layout.buildDirectory.value(newBuildDir)
+
+subprojects {
+    val newSubprojectBuildDir: Directory = newBuildDir.dir(project.name)
+    project.layout.buildDirectory.value(newSubprojectBuildDir)
+}
+subprojects {
+    project.evaluationDependsOn(":app")
+}
+
+tasks.register<Delete>("clean") {
+    delete(rootProject.layout.buildDirectory)
+}

+ 2 - 0
android/gradle.properties

@@ -0,0 +1,2 @@
+org.gradle.jvmargs=-Xmx8G -XX:MaxMetaspaceSize=4G -XX:ReservedCodeCacheSize=512m -XX:+HeapDumpOnOutOfMemoryError
+android.useAndroidX=true

+ 5 - 0
android/gradle/wrapper/gradle-wrapper.properties

@@ -0,0 +1,5 @@
+distributionBase=GRADLE_USER_HOME
+distributionPath=wrapper/dists
+zipStoreBase=GRADLE_USER_HOME
+zipStorePath=wrapper/dists
+distributionUrl=https\://services.gradle.org/distributions/gradle-8.14-all.zip

+ 26 - 0
android/settings.gradle.kts

@@ -0,0 +1,26 @@
+pluginManagement {
+    val flutterSdkPath =
+        run {
+            val properties = java.util.Properties()
+            file("local.properties").inputStream().use { properties.load(it) }
+            val flutterSdkPath = properties.getProperty("flutter.sdk")
+            require(flutterSdkPath != null) { "flutter.sdk not set in local.properties" }
+            flutterSdkPath
+        }
+
+    includeBuild("$flutterSdkPath/packages/flutter_tools/gradle")
+
+    repositories {
+        google()
+        mavenCentral()
+        gradlePluginPortal()
+    }
+}
+
+plugins {
+    id("dev.flutter.flutter-plugin-loader") version "1.0.0"
+    id("com.android.application") version "8.11.1" apply false
+    id("org.jetbrains.kotlin.android") version "2.2.20" apply false
+}
+
+include(":app")

BIN
assets/db/Ristoris.db


+ 34 - 0
ios/.gitignore

@@ -0,0 +1,34 @@
+**/dgph
+*.mode1v3
+*.mode2v3
+*.moved-aside
+*.pbxuser
+*.perspectivev3
+**/*sync/
+.sconsign.dblite
+.tags*
+**/.vagrant/
+**/DerivedData/
+Icon?
+**/Pods/
+**/.symlinks/
+profile
+xcuserdata
+**/.generated/
+Flutter/App.framework
+Flutter/Flutter.framework
+Flutter/Flutter.podspec
+Flutter/Generated.xcconfig
+Flutter/ephemeral/
+Flutter/app.flx
+Flutter/app.zip
+Flutter/flutter_assets/
+Flutter/flutter_export_environment.sh
+ServiceDefinitions.json
+Runner/GeneratedPluginRegistrant.*
+
+# Exceptions to above rules.
+!default.mode1v3
+!default.mode2v3
+!default.pbxuser
+!default.perspectivev3

+ 24 - 0
ios/Flutter/AppFrameworkInfo.plist

@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+  <key>CFBundleDevelopmentRegion</key>
+  <string>en</string>
+  <key>CFBundleExecutable</key>
+  <string>App</string>
+  <key>CFBundleIdentifier</key>
+  <string>io.flutter.flutter.app</string>
+  <key>CFBundleInfoDictionaryVersion</key>
+  <string>6.0</string>
+  <key>CFBundleName</key>
+  <string>App</string>
+  <key>CFBundlePackageType</key>
+  <string>FMWK</string>
+  <key>CFBundleShortVersionString</key>
+  <string>1.0</string>
+  <key>CFBundleSignature</key>
+  <string>????</string>
+  <key>CFBundleVersion</key>
+  <string>1.0</string>
+</dict>
+</plist>

+ 1 - 0
ios/Flutter/Debug.xcconfig

@@ -0,0 +1 @@
+#include "Generated.xcconfig"

+ 1 - 0
ios/Flutter/Release.xcconfig

@@ -0,0 +1 @@
+#include "Generated.xcconfig"

+ 620 - 0
ios/Runner.xcodeproj/project.pbxproj

@@ -0,0 +1,620 @@
+// !$*UTF8*$!
+{
+	archiveVersion = 1;
+	classes = {
+	};
+	objectVersion = 54;
+	objects = {
+
+/* Begin PBXBuildFile section */
+		1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */ = {isa = PBXBuildFile; fileRef = 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */; };
+		331C808B294A63AB00263BE5 /* RunnerTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 331C807B294A618700263BE5 /* RunnerTests.swift */; };
+		3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */ = {isa = PBXBuildFile; fileRef = 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */; };
+		74858FAF1ED2DC5600515810 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 74858FAE1ED2DC5600515810 /* AppDelegate.swift */; };
+		7884E8682EC3CC0700C636F2 /* SceneDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7884E8672EC3CC0400C636F2 /* SceneDelegate.swift */; };
+		97C146FC1CF9000F007C117D /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FA1CF9000F007C117D /* Main.storyboard */; };
+		97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FD1CF9000F007C117D /* Assets.xcassets */; };
+		97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */; };
+/* End PBXBuildFile section */
+
+/* Begin PBXContainerItemProxy section */
+		331C8085294A63A400263BE5 /* PBXContainerItemProxy */ = {
+			isa = PBXContainerItemProxy;
+			containerPortal = 97C146E61CF9000F007C117D /* Project object */;
+			proxyType = 1;
+			remoteGlobalIDString = 97C146ED1CF9000F007C117D;
+			remoteInfo = Runner;
+		};
+/* End PBXContainerItemProxy section */
+
+/* Begin PBXCopyFilesBuildPhase section */
+		9705A1C41CF9048500538489 /* Embed Frameworks */ = {
+			isa = PBXCopyFilesBuildPhase;
+			buildActionMask = 2147483647;
+			dstPath = "";
+			dstSubfolderSpec = 10;
+			files = (
+			);
+			name = "Embed Frameworks";
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+/* End PBXCopyFilesBuildPhase section */
+
+/* Begin PBXFileReference section */
+		1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GeneratedPluginRegistrant.h; sourceTree = "<group>"; };
+		1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GeneratedPluginRegistrant.m; sourceTree = "<group>"; };
+		331C807B294A618700263BE5 /* RunnerTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RunnerTests.swift; sourceTree = "<group>"; };
+		331C8081294A63A400263BE5 /* RunnerTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = RunnerTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
+		3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = AppFrameworkInfo.plist; path = Flutter/AppFrameworkInfo.plist; sourceTree = "<group>"; };
+		74858FAD1ED2DC5600515810 /* Runner-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "Runner-Bridging-Header.h"; sourceTree = "<group>"; };
+		74858FAE1ED2DC5600515810 /* AppDelegate.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = "<group>"; };
+		7884E8672EC3CC0400C636F2 /* SceneDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SceneDelegate.swift; sourceTree = "<group>"; };
+		7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = Release.xcconfig; path = Flutter/Release.xcconfig; sourceTree = "<group>"; };
+		9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Debug.xcconfig; path = Flutter/Debug.xcconfig; sourceTree = "<group>"; };
+		9740EEB31CF90195004384FC /* Generated.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Generated.xcconfig; path = Flutter/Generated.xcconfig; sourceTree = "<group>"; };
+		97C146EE1CF9000F007C117D /* Runner.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Runner.app; sourceTree = BUILT_PRODUCTS_DIR; };
+		97C146FB1CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = "<group>"; };
+		97C146FD1CF9000F007C117D /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; };
+		97C147001CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = "<group>"; };
+		97C147021CF9000F007C117D /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
+/* End PBXFileReference section */
+
+/* Begin PBXFrameworksBuildPhase section */
+		97C146EB1CF9000F007C117D /* Frameworks */ = {
+			isa = PBXFrameworksBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+/* End PBXFrameworksBuildPhase section */
+
+/* Begin PBXGroup section */
+		331C8082294A63A400263BE5 /* RunnerTests */ = {
+			isa = PBXGroup;
+			children = (
+				331C807B294A618700263BE5 /* RunnerTests.swift */,
+			);
+			path = RunnerTests;
+			sourceTree = "<group>";
+		};
+		9740EEB11CF90186004384FC /* Flutter */ = {
+			isa = PBXGroup;
+			children = (
+				3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */,
+				9740EEB21CF90195004384FC /* Debug.xcconfig */,
+				7AFA3C8E1D35360C0083082E /* Release.xcconfig */,
+				9740EEB31CF90195004384FC /* Generated.xcconfig */,
+			);
+			name = Flutter;
+			sourceTree = "<group>";
+		};
+		97C146E51CF9000F007C117D = {
+			isa = PBXGroup;
+			children = (
+				9740EEB11CF90186004384FC /* Flutter */,
+				97C146F01CF9000F007C117D /* Runner */,
+				97C146EF1CF9000F007C117D /* Products */,
+				331C8082294A63A400263BE5 /* RunnerTests */,
+			);
+			sourceTree = "<group>";
+		};
+		97C146EF1CF9000F007C117D /* Products */ = {
+			isa = PBXGroup;
+			children = (
+				97C146EE1CF9000F007C117D /* Runner.app */,
+				331C8081294A63A400263BE5 /* RunnerTests.xctest */,
+			);
+			name = Products;
+			sourceTree = "<group>";
+		};
+		97C146F01CF9000F007C117D /* Runner */ = {
+			isa = PBXGroup;
+			children = (
+				97C146FA1CF9000F007C117D /* Main.storyboard */,
+				97C146FD1CF9000F007C117D /* Assets.xcassets */,
+				97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */,
+				97C147021CF9000F007C117D /* Info.plist */,
+				1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */,
+				1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */,
+				74858FAE1ED2DC5600515810 /* AppDelegate.swift */,
+				7884E8672EC3CC0400C636F2 /* SceneDelegate.swift */,
+				74858FAD1ED2DC5600515810 /* Runner-Bridging-Header.h */,
+			);
+			path = Runner;
+			sourceTree = "<group>";
+		};
+/* End PBXGroup section */
+
+/* Begin PBXNativeTarget section */
+		331C8080294A63A400263BE5 /* RunnerTests */ = {
+			isa = PBXNativeTarget;
+			buildConfigurationList = 331C8087294A63A400263BE5 /* Build configuration list for PBXNativeTarget "RunnerTests" */;
+			buildPhases = (
+				331C807D294A63A400263BE5 /* Sources */,
+				331C807F294A63A400263BE5 /* Resources */,
+			);
+			buildRules = (
+			);
+			dependencies = (
+				331C8086294A63A400263BE5 /* PBXTargetDependency */,
+			);
+			name = RunnerTests;
+			productName = RunnerTests;
+			productReference = 331C8081294A63A400263BE5 /* RunnerTests.xctest */;
+			productType = "com.apple.product-type.bundle.unit-test";
+		};
+		97C146ED1CF9000F007C117D /* Runner */ = {
+			isa = PBXNativeTarget;
+			buildConfigurationList = 97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */;
+			buildPhases = (
+				9740EEB61CF901F6004384FC /* Run Script */,
+				97C146EA1CF9000F007C117D /* Sources */,
+				97C146EB1CF9000F007C117D /* Frameworks */,
+				97C146EC1CF9000F007C117D /* Resources */,
+				9705A1C41CF9048500538489 /* Embed Frameworks */,
+				3B06AD1E1E4923F5004D2608 /* Thin Binary */,
+			);
+			buildRules = (
+			);
+			dependencies = (
+			);
+			name = Runner;
+			productName = Runner;
+			productReference = 97C146EE1CF9000F007C117D /* Runner.app */;
+			productType = "com.apple.product-type.application";
+		};
+/* End PBXNativeTarget section */
+
+/* Begin PBXProject section */
+		97C146E61CF9000F007C117D /* Project object */ = {
+			isa = PBXProject;
+			attributes = {
+				BuildIndependentTargetsInParallel = YES;
+				LastUpgradeCheck = 1510;
+				ORGANIZATIONNAME = "";
+				TargetAttributes = {
+					331C8080294A63A400263BE5 = {
+						CreatedOnToolsVersion = 14.0;
+						TestTargetID = 97C146ED1CF9000F007C117D;
+					};
+					97C146ED1CF9000F007C117D = {
+						CreatedOnToolsVersion = 7.3.1;
+						LastSwiftMigration = 1100;
+					};
+				};
+			};
+			buildConfigurationList = 97C146E91CF9000F007C117D /* Build configuration list for PBXProject "Runner" */;
+			compatibilityVersion = "Xcode 9.3";
+			developmentRegion = en;
+			hasScannedForEncodings = 0;
+			knownRegions = (
+				en,
+				Base,
+			);
+			mainGroup = 97C146E51CF9000F007C117D;
+			productRefGroup = 97C146EF1CF9000F007C117D /* Products */;
+			projectDirPath = "";
+			projectRoot = "";
+			targets = (
+				97C146ED1CF9000F007C117D /* Runner */,
+				331C8080294A63A400263BE5 /* RunnerTests */,
+			);
+		};
+/* End PBXProject section */
+
+/* Begin PBXResourcesBuildPhase section */
+		331C807F294A63A400263BE5 /* Resources */ = {
+			isa = PBXResourcesBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+		97C146EC1CF9000F007C117D /* Resources */ = {
+			isa = PBXResourcesBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */,
+				3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */,
+				97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */,
+				97C146FC1CF9000F007C117D /* Main.storyboard in Resources */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+/* End PBXResourcesBuildPhase section */
+
+/* Begin PBXShellScriptBuildPhase section */
+		3B06AD1E1E4923F5004D2608 /* Thin Binary */ = {
+			isa = PBXShellScriptBuildPhase;
+			alwaysOutOfDate = 1;
+			buildActionMask = 2147483647;
+			files = (
+			);
+			inputPaths = (
+				"${TARGET_BUILD_DIR}/${INFOPLIST_PATH}",
+			);
+			name = "Thin Binary";
+			outputPaths = (
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+			shellPath = /bin/sh;
+			shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" embed_and_thin";
+		};
+		9740EEB61CF901F6004384FC /* Run Script */ = {
+			isa = PBXShellScriptBuildPhase;
+			alwaysOutOfDate = 1;
+			buildActionMask = 2147483647;
+			files = (
+			);
+			inputPaths = (
+			);
+			name = "Run Script";
+			outputPaths = (
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+			shellPath = /bin/sh;
+			shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" build";
+		};
+/* End PBXShellScriptBuildPhase section */
+
+/* Begin PBXSourcesBuildPhase section */
+		331C807D294A63A400263BE5 /* Sources */ = {
+			isa = PBXSourcesBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				331C808B294A63AB00263BE5 /* RunnerTests.swift in Sources */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+		97C146EA1CF9000F007C117D /* Sources */ = {
+			isa = PBXSourcesBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				74858FAF1ED2DC5600515810 /* AppDelegate.swift in Sources */,
+				1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */,
+				7884E8682EC3CC0700C636F2 /* SceneDelegate.swift in Sources */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+/* End PBXSourcesBuildPhase section */
+
+/* Begin PBXTargetDependency section */
+		331C8086294A63A400263BE5 /* PBXTargetDependency */ = {
+			isa = PBXTargetDependency;
+			target = 97C146ED1CF9000F007C117D /* Runner */;
+			targetProxy = 331C8085294A63A400263BE5 /* PBXContainerItemProxy */;
+		};
+/* End PBXTargetDependency section */
+
+/* Begin PBXVariantGroup section */
+		97C146FA1CF9000F007C117D /* Main.storyboard */ = {
+			isa = PBXVariantGroup;
+			children = (
+				97C146FB1CF9000F007C117D /* Base */,
+			);
+			name = Main.storyboard;
+			sourceTree = "<group>";
+		};
+		97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */ = {
+			isa = PBXVariantGroup;
+			children = (
+				97C147001CF9000F007C117D /* Base */,
+			);
+			name = LaunchScreen.storyboard;
+			sourceTree = "<group>";
+		};
+/* End PBXVariantGroup section */
+
+/* Begin XCBuildConfiguration section */
+		249021D3217E4FDB00AE95B9 /* Profile */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				ALWAYS_SEARCH_USER_PATHS = NO;
+				ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES;
+				CLANG_ANALYZER_NONNULL = YES;
+				CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
+				CLANG_CXX_LIBRARY = "libc++";
+				CLANG_ENABLE_MODULES = YES;
+				CLANG_ENABLE_OBJC_ARC = YES;
+				CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
+				CLANG_WARN_BOOL_CONVERSION = YES;
+				CLANG_WARN_COMMA = YES;
+				CLANG_WARN_CONSTANT_CONVERSION = YES;
+				CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
+				CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
+				CLANG_WARN_EMPTY_BODY = YES;
+				CLANG_WARN_ENUM_CONVERSION = YES;
+				CLANG_WARN_INFINITE_RECURSION = YES;
+				CLANG_WARN_INT_CONVERSION = YES;
+				CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
+				CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
+				CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
+				CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
+				CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
+				CLANG_WARN_STRICT_PROTOTYPES = YES;
+				CLANG_WARN_SUSPICIOUS_MOVE = YES;
+				CLANG_WARN_UNREACHABLE_CODE = YES;
+				CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
+				"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
+				COPY_PHASE_STRIP = NO;
+				DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
+				ENABLE_NS_ASSERTIONS = NO;
+				ENABLE_STRICT_OBJC_MSGSEND = YES;
+				ENABLE_USER_SCRIPT_SANDBOXING = NO;
+				GCC_C_LANGUAGE_STANDARD = gnu99;
+				GCC_NO_COMMON_BLOCKS = YES;
+				GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
+				GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
+				GCC_WARN_UNDECLARED_SELECTOR = YES;
+				GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
+				GCC_WARN_UNUSED_FUNCTION = YES;
+				GCC_WARN_UNUSED_VARIABLE = YES;
+				IPHONEOS_DEPLOYMENT_TARGET = 13.0;
+				MTL_ENABLE_DEBUG_INFO = NO;
+				SDKROOT = iphoneos;
+				SUPPORTED_PLATFORMS = iphoneos;
+				TARGETED_DEVICE_FAMILY = "1,2";
+				VALIDATE_PRODUCT = YES;
+			};
+			name = Profile;
+		};
+		249021D4217E4FDB00AE95B9 /* Profile */ = {
+			isa = XCBuildConfiguration;
+			baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */;
+			buildSettings = {
+				ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
+				CLANG_ENABLE_MODULES = YES;
+				CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)";
+				ENABLE_BITCODE = NO;
+				INFOPLIST_FILE = Runner/Info.plist;
+				LD_RUNPATH_SEARCH_PATHS = (
+					"$(inherited)",
+					"@executable_path/Frameworks",
+				);
+				PRODUCT_BUNDLE_IDENTIFIER = it.powerbyte.ristoris;
+				PRODUCT_NAME = "$(TARGET_NAME)";
+				SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";
+				SWIFT_VERSION = 5.0;
+				VERSIONING_SYSTEM = "apple-generic";
+			};
+			name = Profile;
+		};
+		331C8088294A63A400263BE5 /* Debug */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				BUNDLE_LOADER = "$(TEST_HOST)";
+				CODE_SIGN_STYLE = Automatic;
+				CURRENT_PROJECT_VERSION = 1;
+				GENERATE_INFOPLIST_FILE = YES;
+				MARKETING_VERSION = 1.0;
+				PRODUCT_BUNDLE_IDENTIFIER = it.powerbyte.ristoris.RunnerTests;
+				PRODUCT_NAME = "$(TARGET_NAME)";
+				SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG;
+				SWIFT_OPTIMIZATION_LEVEL = "-Onone";
+				SWIFT_VERSION = 5.0;
+				TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Runner.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/Runner";
+			};
+			name = Debug;
+		};
+		331C8089294A63A400263BE5 /* Release */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				BUNDLE_LOADER = "$(TEST_HOST)";
+				CODE_SIGN_STYLE = Automatic;
+				CURRENT_PROJECT_VERSION = 1;
+				GENERATE_INFOPLIST_FILE = YES;
+				MARKETING_VERSION = 1.0;
+				PRODUCT_BUNDLE_IDENTIFIER = it.powerbyte.ristoris.RunnerTests;
+				PRODUCT_NAME = "$(TARGET_NAME)";
+				SWIFT_VERSION = 5.0;
+				TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Runner.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/Runner";
+			};
+			name = Release;
+		};
+		331C808A294A63A400263BE5 /* Profile */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				BUNDLE_LOADER = "$(TEST_HOST)";
+				CODE_SIGN_STYLE = Automatic;
+				CURRENT_PROJECT_VERSION = 1;
+				GENERATE_INFOPLIST_FILE = YES;
+				MARKETING_VERSION = 1.0;
+				PRODUCT_BUNDLE_IDENTIFIER = it.powerbyte.ristoris.RunnerTests;
+				PRODUCT_NAME = "$(TARGET_NAME)";
+				SWIFT_VERSION = 5.0;
+				TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Runner.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/Runner";
+			};
+			name = Profile;
+		};
+		97C147031CF9000F007C117D /* Debug */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				ALWAYS_SEARCH_USER_PATHS = NO;
+				ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES;
+				CLANG_ANALYZER_NONNULL = YES;
+				CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
+				CLANG_CXX_LIBRARY = "libc++";
+				CLANG_ENABLE_MODULES = YES;
+				CLANG_ENABLE_OBJC_ARC = YES;
+				CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
+				CLANG_WARN_BOOL_CONVERSION = YES;
+				CLANG_WARN_COMMA = YES;
+				CLANG_WARN_CONSTANT_CONVERSION = YES;
+				CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
+				CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
+				CLANG_WARN_EMPTY_BODY = YES;
+				CLANG_WARN_ENUM_CONVERSION = YES;
+				CLANG_WARN_INFINITE_RECURSION = YES;
+				CLANG_WARN_INT_CONVERSION = YES;
+				CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
+				CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
+				CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
+				CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
+				CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
+				CLANG_WARN_STRICT_PROTOTYPES = YES;
+				CLANG_WARN_SUSPICIOUS_MOVE = YES;
+				CLANG_WARN_UNREACHABLE_CODE = YES;
+				CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
+				"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
+				COPY_PHASE_STRIP = NO;
+				DEBUG_INFORMATION_FORMAT = dwarf;
+				ENABLE_STRICT_OBJC_MSGSEND = YES;
+				ENABLE_TESTABILITY = YES;
+				ENABLE_USER_SCRIPT_SANDBOXING = NO;
+				GCC_C_LANGUAGE_STANDARD = gnu99;
+				GCC_DYNAMIC_NO_PIC = NO;
+				GCC_NO_COMMON_BLOCKS = YES;
+				GCC_OPTIMIZATION_LEVEL = 0;
+				GCC_PREPROCESSOR_DEFINITIONS = (
+					"DEBUG=1",
+					"$(inherited)",
+				);
+				GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
+				GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
+				GCC_WARN_UNDECLARED_SELECTOR = YES;
+				GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
+				GCC_WARN_UNUSED_FUNCTION = YES;
+				GCC_WARN_UNUSED_VARIABLE = YES;
+				IPHONEOS_DEPLOYMENT_TARGET = 13.0;
+				MTL_ENABLE_DEBUG_INFO = YES;
+				ONLY_ACTIVE_ARCH = YES;
+				SDKROOT = iphoneos;
+				TARGETED_DEVICE_FAMILY = "1,2";
+			};
+			name = Debug;
+		};
+		97C147041CF9000F007C117D /* Release */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				ALWAYS_SEARCH_USER_PATHS = NO;
+				ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES;
+				CLANG_ANALYZER_NONNULL = YES;
+				CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
+				CLANG_CXX_LIBRARY = "libc++";
+				CLANG_ENABLE_MODULES = YES;
+				CLANG_ENABLE_OBJC_ARC = YES;
+				CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
+				CLANG_WARN_BOOL_CONVERSION = YES;
+				CLANG_WARN_COMMA = YES;
+				CLANG_WARN_CONSTANT_CONVERSION = YES;
+				CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
+				CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
+				CLANG_WARN_EMPTY_BODY = YES;
+				CLANG_WARN_ENUM_CONVERSION = YES;
+				CLANG_WARN_INFINITE_RECURSION = YES;
+				CLANG_WARN_INT_CONVERSION = YES;
+				CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
+				CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
+				CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
+				CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
+				CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
+				CLANG_WARN_STRICT_PROTOTYPES = YES;
+				CLANG_WARN_SUSPICIOUS_MOVE = YES;
+				CLANG_WARN_UNREACHABLE_CODE = YES;
+				CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
+				"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
+				COPY_PHASE_STRIP = NO;
+				DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
+				ENABLE_NS_ASSERTIONS = NO;
+				ENABLE_STRICT_OBJC_MSGSEND = YES;
+				ENABLE_USER_SCRIPT_SANDBOXING = NO;
+				GCC_C_LANGUAGE_STANDARD = gnu99;
+				GCC_NO_COMMON_BLOCKS = YES;
+				GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
+				GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
+				GCC_WARN_UNDECLARED_SELECTOR = YES;
+				GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
+				GCC_WARN_UNUSED_FUNCTION = YES;
+				GCC_WARN_UNUSED_VARIABLE = YES;
+				IPHONEOS_DEPLOYMENT_TARGET = 13.0;
+				MTL_ENABLE_DEBUG_INFO = NO;
+				SDKROOT = iphoneos;
+				SUPPORTED_PLATFORMS = iphoneos;
+				SWIFT_COMPILATION_MODE = wholemodule;
+				SWIFT_OPTIMIZATION_LEVEL = "-O";
+				TARGETED_DEVICE_FAMILY = "1,2";
+				VALIDATE_PRODUCT = YES;
+			};
+			name = Release;
+		};
+		97C147061CF9000F007C117D /* Debug */ = {
+			isa = XCBuildConfiguration;
+			baseConfigurationReference = 9740EEB21CF90195004384FC /* Debug.xcconfig */;
+			buildSettings = {
+				ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
+				CLANG_ENABLE_MODULES = YES;
+				CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)";
+				ENABLE_BITCODE = NO;
+				INFOPLIST_FILE = Runner/Info.plist;
+				LD_RUNPATH_SEARCH_PATHS = (
+					"$(inherited)",
+					"@executable_path/Frameworks",
+				);
+				PRODUCT_BUNDLE_IDENTIFIER = it.powerbyte.ristoris;
+				PRODUCT_NAME = "$(TARGET_NAME)";
+				SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";
+				SWIFT_OPTIMIZATION_LEVEL = "-Onone";
+				SWIFT_VERSION = 5.0;
+				VERSIONING_SYSTEM = "apple-generic";
+			};
+			name = Debug;
+		};
+		97C147071CF9000F007C117D /* Release */ = {
+			isa = XCBuildConfiguration;
+			baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */;
+			buildSettings = {
+				ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
+				CLANG_ENABLE_MODULES = YES;
+				CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)";
+				ENABLE_BITCODE = NO;
+				INFOPLIST_FILE = Runner/Info.plist;
+				LD_RUNPATH_SEARCH_PATHS = (
+					"$(inherited)",
+					"@executable_path/Frameworks",
+				);
+				PRODUCT_BUNDLE_IDENTIFIER = it.powerbyte.ristoris;
+				PRODUCT_NAME = "$(TARGET_NAME)";
+				SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";
+				SWIFT_VERSION = 5.0;
+				VERSIONING_SYSTEM = "apple-generic";
+			};
+			name = Release;
+		};
+/* End XCBuildConfiguration section */
+
+/* Begin XCConfigurationList section */
+		331C8087294A63A400263BE5 /* Build configuration list for PBXNativeTarget "RunnerTests" */ = {
+			isa = XCConfigurationList;
+			buildConfigurations = (
+				331C8088294A63A400263BE5 /* Debug */,
+				331C8089294A63A400263BE5 /* Release */,
+				331C808A294A63A400263BE5 /* Profile */,
+			);
+			defaultConfigurationIsVisible = 0;
+			defaultConfigurationName = Release;
+		};
+		97C146E91CF9000F007C117D /* Build configuration list for PBXProject "Runner" */ = {
+			isa = XCConfigurationList;
+			buildConfigurations = (
+				97C147031CF9000F007C117D /* Debug */,
+				97C147041CF9000F007C117D /* Release */,
+				249021D3217E4FDB00AE95B9 /* Profile */,
+			);
+			defaultConfigurationIsVisible = 0;
+			defaultConfigurationName = Release;
+		};
+		97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */ = {
+			isa = XCConfigurationList;
+			buildConfigurations = (
+				97C147061CF9000F007C117D /* Debug */,
+				97C147071CF9000F007C117D /* Release */,
+				249021D4217E4FDB00AE95B9 /* Profile */,
+			);
+			defaultConfigurationIsVisible = 0;
+			defaultConfigurationName = Release;
+		};
+/* End XCConfigurationList section */
+	};
+	rootObject = 97C146E61CF9000F007C117D /* Project object */;
+}

+ 7 - 0
ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata

@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Workspace
+   version = "1.0">
+   <FileRef
+      location = "self:">
+   </FileRef>
+</Workspace>

+ 8 - 0
ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist

@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+	<key>IDEDidComputeMac32BitWarning</key>
+	<true/>
+</dict>
+</plist>

+ 8 - 0
ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings

@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+	<key>PreviewsEnabled</key>
+	<false/>
+</dict>
+</plist>

+ 101 - 0
ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme

@@ -0,0 +1,101 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Scheme
+   LastUpgradeVersion = "1510"
+   version = "1.3">
+   <BuildAction
+      parallelizeBuildables = "YES"
+      buildImplicitDependencies = "YES">
+      <BuildActionEntries>
+         <BuildActionEntry
+            buildForTesting = "YES"
+            buildForRunning = "YES"
+            buildForProfiling = "YES"
+            buildForArchiving = "YES"
+            buildForAnalyzing = "YES">
+            <BuildableReference
+               BuildableIdentifier = "primary"
+               BlueprintIdentifier = "97C146ED1CF9000F007C117D"
+               BuildableName = "Runner.app"
+               BlueprintName = "Runner"
+               ReferencedContainer = "container:Runner.xcodeproj">
+            </BuildableReference>
+         </BuildActionEntry>
+      </BuildActionEntries>
+   </BuildAction>
+   <TestAction
+      buildConfiguration = "Debug"
+      selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
+      selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
+      customLLDBInitFile = "$(SRCROOT)/Flutter/ephemeral/flutter_lldbinit"
+      shouldUseLaunchSchemeArgsEnv = "YES">
+      <MacroExpansion>
+         <BuildableReference
+            BuildableIdentifier = "primary"
+            BlueprintIdentifier = "97C146ED1CF9000F007C117D"
+            BuildableName = "Runner.app"
+            BlueprintName = "Runner"
+            ReferencedContainer = "container:Runner.xcodeproj">
+         </BuildableReference>
+      </MacroExpansion>
+      <Testables>
+         <TestableReference
+            skipped = "NO"
+            parallelizable = "YES">
+            <BuildableReference
+               BuildableIdentifier = "primary"
+               BlueprintIdentifier = "331C8080294A63A400263BE5"
+               BuildableName = "RunnerTests.xctest"
+               BlueprintName = "RunnerTests"
+               ReferencedContainer = "container:Runner.xcodeproj">
+            </BuildableReference>
+         </TestableReference>
+      </Testables>
+   </TestAction>
+   <LaunchAction
+      buildConfiguration = "Debug"
+      selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
+      selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
+      customLLDBInitFile = "$(SRCROOT)/Flutter/ephemeral/flutter_lldbinit"
+      launchStyle = "0"
+      useCustomWorkingDirectory = "NO"
+      ignoresPersistentStateOnLaunch = "NO"
+      debugDocumentVersioning = "YES"
+      debugServiceExtension = "internal"
+      enableGPUValidationMode = "1"
+      allowLocationSimulation = "YES">
+      <BuildableProductRunnable
+         runnableDebuggingMode = "0">
+         <BuildableReference
+            BuildableIdentifier = "primary"
+            BlueprintIdentifier = "97C146ED1CF9000F007C117D"
+            BuildableName = "Runner.app"
+            BlueprintName = "Runner"
+            ReferencedContainer = "container:Runner.xcodeproj">
+         </BuildableReference>
+      </BuildableProductRunnable>
+   </LaunchAction>
+   <ProfileAction
+      buildConfiguration = "Profile"
+      shouldUseLaunchSchemeArgsEnv = "YES"
+      savedToolIdentifier = ""
+      useCustomWorkingDirectory = "NO"
+      debugDocumentVersioning = "YES">
+      <BuildableProductRunnable
+         runnableDebuggingMode = "0">
+         <BuildableReference
+            BuildableIdentifier = "primary"
+            BlueprintIdentifier = "97C146ED1CF9000F007C117D"
+            BuildableName = "Runner.app"
+            BlueprintName = "Runner"
+            ReferencedContainer = "container:Runner.xcodeproj">
+         </BuildableReference>
+      </BuildableProductRunnable>
+   </ProfileAction>
+   <AnalyzeAction
+      buildConfiguration = "Debug">
+   </AnalyzeAction>
+   <ArchiveAction
+      buildConfiguration = "Release"
+      revealArchiveInOrganizer = "YES">
+   </ArchiveAction>
+</Scheme>

+ 7 - 0
ios/Runner.xcworkspace/contents.xcworkspacedata

@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Workspace
+   version = "1.0">
+   <FileRef
+      location = "group:Runner.xcodeproj">
+   </FileRef>
+</Workspace>

+ 8 - 0
ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist

@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+	<key>IDEDidComputeMac32BitWarning</key>
+	<true/>
+</dict>
+</plist>

+ 8 - 0
ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings

@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+	<key>PreviewsEnabled</key>
+	<false/>
+</dict>
+</plist>

+ 16 - 0
ios/Runner/AppDelegate.swift

@@ -0,0 +1,16 @@
+import Flutter
+import UIKit
+
+@main
+@objc class AppDelegate: FlutterAppDelegate, FlutterImplicitEngineDelegate {
+  override func application(
+    _ application: UIApplication,
+    didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?
+  ) -> Bool {
+    return super.application(application, didFinishLaunchingWithOptions: launchOptions)
+  }
+
+  func didInitializeImplicitFlutterEngine(_ engineBridge: FlutterImplicitEngineBridge) {
+    GeneratedPluginRegistrant.register(with: engineBridge.pluginRegistry)
+  }
+}

+ 122 - 0
ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json

@@ -0,0 +1,122 @@
+{
+  "images" : [
+    {
+      "size" : "20x20",
+      "idiom" : "iphone",
+      "filename" : "Icon-App-20x20@2x.png",
+      "scale" : "2x"
+    },
+    {
+      "size" : "20x20",
+      "idiom" : "iphone",
+      "filename" : "Icon-App-20x20@3x.png",
+      "scale" : "3x"
+    },
+    {
+      "size" : "29x29",
+      "idiom" : "iphone",
+      "filename" : "Icon-App-29x29@1x.png",
+      "scale" : "1x"
+    },
+    {
+      "size" : "29x29",
+      "idiom" : "iphone",
+      "filename" : "Icon-App-29x29@2x.png",
+      "scale" : "2x"
+    },
+    {
+      "size" : "29x29",
+      "idiom" : "iphone",
+      "filename" : "Icon-App-29x29@3x.png",
+      "scale" : "3x"
+    },
+    {
+      "size" : "40x40",
+      "idiom" : "iphone",
+      "filename" : "Icon-App-40x40@2x.png",
+      "scale" : "2x"
+    },
+    {
+      "size" : "40x40",
+      "idiom" : "iphone",
+      "filename" : "Icon-App-40x40@3x.png",
+      "scale" : "3x"
+    },
+    {
+      "size" : "60x60",
+      "idiom" : "iphone",
+      "filename" : "Icon-App-60x60@2x.png",
+      "scale" : "2x"
+    },
+    {
+      "size" : "60x60",
+      "idiom" : "iphone",
+      "filename" : "Icon-App-60x60@3x.png",
+      "scale" : "3x"
+    },
+    {
+      "size" : "20x20",
+      "idiom" : "ipad",
+      "filename" : "Icon-App-20x20@1x.png",
+      "scale" : "1x"
+    },
+    {
+      "size" : "20x20",
+      "idiom" : "ipad",
+      "filename" : "Icon-App-20x20@2x.png",
+      "scale" : "2x"
+    },
+    {
+      "size" : "29x29",
+      "idiom" : "ipad",
+      "filename" : "Icon-App-29x29@1x.png",
+      "scale" : "1x"
+    },
+    {
+      "size" : "29x29",
+      "idiom" : "ipad",
+      "filename" : "Icon-App-29x29@2x.png",
+      "scale" : "2x"
+    },
+    {
+      "size" : "40x40",
+      "idiom" : "ipad",
+      "filename" : "Icon-App-40x40@1x.png",
+      "scale" : "1x"
+    },
+    {
+      "size" : "40x40",
+      "idiom" : "ipad",
+      "filename" : "Icon-App-40x40@2x.png",
+      "scale" : "2x"
+    },
+    {
+      "size" : "76x76",
+      "idiom" : "ipad",
+      "filename" : "Icon-App-76x76@1x.png",
+      "scale" : "1x"
+    },
+    {
+      "size" : "76x76",
+      "idiom" : "ipad",
+      "filename" : "Icon-App-76x76@2x.png",
+      "scale" : "2x"
+    },
+    {
+      "size" : "83.5x83.5",
+      "idiom" : "ipad",
+      "filename" : "Icon-App-83.5x83.5@2x.png",
+      "scale" : "2x"
+    },
+    {
+      "size" : "1024x1024",
+      "idiom" : "ios-marketing",
+      "filename" : "Icon-App-1024x1024@1x.png",
+      "scale" : "1x"
+    }
+  ],
+  "info" : {
+    "version" : 1,
+    "author" : "xcode"
+  }
+}

BIN
ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png


BIN
ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png


BIN
ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png


BIN
ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png


BIN
ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png


BIN
ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png


BIN
ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png


BIN
ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png


BIN
ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png


BIN
ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png


BIN
ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png


BIN
ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png


BIN
ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png


BIN
ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png


BIN
ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png


+ 23 - 0
ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json

@@ -0,0 +1,23 @@
+{
+  "images" : [
+    {
+      "idiom" : "universal",
+      "filename" : "LaunchImage.png",
+      "scale" : "1x"
+    },
+    {
+      "idiom" : "universal",
+      "filename" : "LaunchImage@2x.png",
+      "scale" : "2x"
+    },
+    {
+      "idiom" : "universal",
+      "filename" : "LaunchImage@3x.png",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "version" : 1,
+    "author" : "xcode"
+  }
+}

BIN
ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png


BIN
ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png


BIN
ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png


+ 5 - 0
ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md

@@ -0,0 +1,5 @@
+# Launch Screen Assets
+
+You can customize the launch screen with your own desired assets by replacing the image files in this directory.
+
+You can also do it by opening your Flutter project's Xcode project with `open ios/Runner.xcworkspace`, selecting `Runner/Assets.xcassets` in the Project Navigator and dropping in the desired images.

+ 37 - 0
ios/Runner/Base.lproj/LaunchScreen.storyboard

@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="12121" systemVersion="16G29" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" launchScreen="YES" colorMatched="YES" initialViewController="01J-lp-oVM">
+    <dependencies>
+        <deployment identifier="iOS"/>
+        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="12089"/>
+    </dependencies>
+    <scenes>
+        <!--View Controller-->
+        <scene sceneID="EHf-IW-A2E">
+            <objects>
+                <viewController id="01J-lp-oVM" sceneMemberID="viewController">
+                    <layoutGuides>
+                        <viewControllerLayoutGuide type="top" id="Ydg-fD-yQy"/>
+                        <viewControllerLayoutGuide type="bottom" id="xbc-2k-c8Z"/>
+                    </layoutGuides>
+                    <view key="view" contentMode="scaleToFill" id="Ze5-6b-2t3">
+                        <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
+                        <subviews>
+                            <imageView opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" image="LaunchImage" translatesAutoresizingMaskIntoConstraints="NO" id="YRO-k0-Ey4">
+                            </imageView>
+                        </subviews>
+                        <color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
+                        <constraints>
+                            <constraint firstItem="YRO-k0-Ey4" firstAttribute="centerX" secondItem="Ze5-6b-2t3" secondAttribute="centerX" id="1a2-6s-vTC"/>
+                            <constraint firstItem="YRO-k0-Ey4" firstAttribute="centerY" secondItem="Ze5-6b-2t3" secondAttribute="centerY" id="4X2-HB-R7a"/>
+                        </constraints>
+                    </view>
+                </viewController>
+                <placeholder placeholderIdentifier="IBFirstResponder" id="iYj-Kq-Ea1" userLabel="First Responder" sceneMemberID="firstResponder"/>
+            </objects>
+            <point key="canvasLocation" x="53" y="375"/>
+        </scene>
+    </scenes>
+    <resources>
+        <image name="LaunchImage" width="168" height="185"/>
+    </resources>
+</document>

+ 26 - 0
ios/Runner/Base.lproj/Main.storyboard

@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="10117" systemVersion="15F34" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" initialViewController="BYZ-38-t0r">
+    <dependencies>
+        <deployment identifier="iOS"/>
+        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="10085"/>
+    </dependencies>
+    <scenes>
+        <!--Flutter View Controller-->
+        <scene sceneID="tne-QT-ifu">
+            <objects>
+                <viewController id="BYZ-38-t0r" customClass="FlutterViewController" sceneMemberID="viewController">
+                    <layoutGuides>
+                        <viewControllerLayoutGuide type="top" id="y3c-jy-aDJ"/>
+                        <viewControllerLayoutGuide type="bottom" id="wfy-db-euE"/>
+                    </layoutGuides>
+                    <view key="view" contentMode="scaleToFill" id="8bC-Xf-vdC">
+                        <rect key="frame" x="0.0" y="0.0" width="600" height="600"/>
+                        <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
+                        <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="calibratedWhite"/>
+                    </view>
+                </viewController>
+                <placeholder placeholderIdentifier="IBFirstResponder" id="dkx-z0-nzr" sceneMemberID="firstResponder"/>
+            </objects>
+        </scene>
+    </scenes>
+</document>

+ 70 - 0
ios/Runner/Info.plist

@@ -0,0 +1,70 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+	<key>CADisableMinimumFrameDurationOnPhone</key>
+	<true/>
+	<key>CFBundleDevelopmentRegion</key>
+	<string>$(DEVELOPMENT_LANGUAGE)</string>
+	<key>CFBundleDisplayName</key>
+	<string>Ristoris</string>
+	<key>CFBundleExecutable</key>
+	<string>$(EXECUTABLE_NAME)</string>
+	<key>CFBundleIdentifier</key>
+	<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
+	<key>CFBundleInfoDictionaryVersion</key>
+	<string>6.0</string>
+	<key>CFBundleName</key>
+	<string>ristoris</string>
+	<key>CFBundlePackageType</key>
+	<string>APPL</string>
+	<key>CFBundleShortVersionString</key>
+	<string>$(FLUTTER_BUILD_NAME)</string>
+	<key>CFBundleSignature</key>
+	<string>????</string>
+	<key>CFBundleVersion</key>
+	<string>$(FLUTTER_BUILD_NUMBER)</string>
+	<key>LSRequiresIPhoneOS</key>
+	<true/>
+	<key>UIApplicationSceneManifest</key>
+	<dict>
+		<key>UIApplicationSupportsMultipleScenes</key>
+		<false/>
+		<key>UISceneConfigurations</key>
+		<dict>
+			<key>UIWindowSceneSessionRoleApplication</key>
+			<array>
+				<dict>
+					<key>UISceneClassName</key>
+					<string>UIWindowScene</string>
+					<key>UISceneConfigurationName</key>
+					<string>flutter</string>
+					<key>UISceneDelegateClassName</key>
+					<string>$(PRODUCT_MODULE_NAME).SceneDelegate</string>
+					<key>UISceneStoryboardFile</key>
+					<string>Main</string>
+				</dict>
+			</array>
+		</dict>
+	</dict>
+	<key>UIApplicationSupportsIndirectInputEvents</key>
+	<true/>
+	<key>UILaunchStoryboardName</key>
+	<string>LaunchScreen</string>
+	<key>UIMainStoryboardFile</key>
+	<string>Main</string>
+	<key>UISupportedInterfaceOrientations</key>
+	<array>
+		<string>UIInterfaceOrientationPortrait</string>
+		<string>UIInterfaceOrientationLandscapeLeft</string>
+		<string>UIInterfaceOrientationLandscapeRight</string>
+	</array>
+	<key>UISupportedInterfaceOrientations~ipad</key>
+	<array>
+		<string>UIInterfaceOrientationPortrait</string>
+		<string>UIInterfaceOrientationPortraitUpsideDown</string>
+		<string>UIInterfaceOrientationLandscapeLeft</string>
+		<string>UIInterfaceOrientationLandscapeRight</string>
+	</array>
+</dict>
+</plist>

+ 1 - 0
ios/Runner/Runner-Bridging-Header.h

@@ -0,0 +1 @@
+#import "GeneratedPluginRegistrant.h"

+ 6 - 0
ios/Runner/SceneDelegate.swift

@@ -0,0 +1,6 @@
+import Flutter
+import UIKit
+
+class SceneDelegate: FlutterSceneDelegate {
+
+}

+ 12 - 0
ios/RunnerTests/RunnerTests.swift

@@ -0,0 +1,12 @@
+import Flutter
+import UIKit
+import XCTest
+
+class RunnerTests: XCTestCase {
+
+  func testExample() {
+    // If you add code to the Runner application, consider adding tests here.
+    // See https://developer.apple.com/documentation/xctest for more information about using XCTest.
+  }
+
+}

+ 22 - 0
lib/app.dart

@@ -0,0 +1,22 @@
+import 'package:flutter/material.dart';
+import 'package:flutter_riverpod/flutter_riverpod.dart';
+import 'ui/routes.dart';
+import 'core/theme.dart';
+
+class RistorisApp extends ConsumerWidget {
+  const RistorisApp({super.key});
+
+  @override
+  Widget build(BuildContext context, WidgetRef ref) {
+    final router = ref.watch(routerProvider);
+
+    return MaterialApp.router(
+      title: 'Ristoris',
+      debugShowCheckedModeBanner: false,
+      theme: AppTheme.light,
+      darkTheme: AppTheme.dark,
+      themeMode: ThemeMode.system,
+      routerConfig: router,
+    );
+  }
+}

+ 33 - 0
lib/business/customer_manager.dart

@@ -0,0 +1,33 @@
+import '../database/daos/clienti_dao.dart';
+import '../database/daos/clienti_agente_dao.dart';
+import '../database/database.dart';
+
+class CustomerManager {
+  final ClientiDao _clientiDao;
+  final ClientiAgenteDao _clientiAgenteDao;
+
+  CustomerManager(this._clientiDao, this._clientiAgenteDao);
+
+  Cliente createCustomer(int idAgente) {
+    return Cliente(idCliente: 0, stato: 'N', attivo: 1, noteOrdine: '');
+  }
+
+  Future<void> saveCustomer(Cliente cliente, int idAgente) async {
+    final db = _clientiDao.db;
+    if (cliente.idCliente! > 0) {
+      await db.update(db.clienti).replace(cliente);
+    } else {
+      final id = await db.into(db.clienti).insert(cliente);
+      await _clientiAgenteDao.activateCustomer(id, idAgente);
+    }
+  }
+
+  Future<int> countCustomersToSend(int idAgente) =>
+      _clientiDao.countCustomersToSend();
+  Future<int> countNewCustomers() => _clientiDao.countNewCustomers();
+
+  Future<List<Cliente>> getInactiveCustomers(int idAgente) {
+    final since = DateTime.now().subtract(const Duration(days: 92));
+    return _clientiDao.inactiveCustomers(idAgente, since.toIso8601String());
+  }
+}

+ 31 - 0
lib/business/destination_manager.dart

@@ -0,0 +1,31 @@
+import '../database/daos/filiali_dao.dart';
+import '../database/database.dart';
+
+class DestinationManager {
+  final FilialiDao _dao;
+
+  DestinationManager(this._dao);
+
+  Filiale createDestination(int idCliente) {
+    return Filiale(
+      idFiliale: 0,
+      idCliente: idCliente,
+      stato: 'N',
+      attivo: 1,
+    );
+  }
+
+  Future<bool> checkCodeDuplicate(String code, int idCliente) {
+    return _dao.checkCodeDuplicate(code, idCliente);
+  }
+
+  Future<int> saveDestination(Filiale filiale) {
+    final db = _dao.db;
+    if (filiale.idFiliale > 0) {
+      return db.update(db.filiali).replace(filiale).then((_) => filiale.idFiliale);
+    }
+    return _dao.insertFiliale(filiale);
+  }
+
+  Future<int> countUnsent() => _dao.countNewDestinations();
+}

+ 159 - 0
lib/business/order_manager.dart

@@ -0,0 +1,159 @@
+import 'package:drift/drift.dart';
+import '../database/daos/ordini_dao.dart';
+import '../database/daos/clienti_dao.dart';
+import '../database/daos/filiali_dao.dart';
+import '../database/daos/articoli_dao.dart';
+import '../database/daos/listini_dao.dart';
+import '../database/daos/sconti_dao.dart';
+import '../database/daos/pagamenti_dao.dart';
+import '../database/daos/agenti_dao.dart';
+import '../database/database.dart';
+
+class OrderManager {
+  final OrdiniDao _ordiniDao;
+  final ClientiDao _clientiDao;
+  final FilialiDao _filialiDao;
+  final ArticoliDao _articoliDao;
+  final ListiniDao _listiniDao;
+  final ScontiDao _scontiDao;
+  final PagamentiDao _pagamentiDao;
+  final AgentiDao _agentiDao;
+
+  Ordine? _currentOrder;
+  int _idAgente = 0;
+  bool _isChanged = false;
+
+  OrderManager(
+    this._ordiniDao,
+    this._clientiDao,
+    this._filialiDao,
+    this._articoliDao,
+    this._listiniDao,
+    this._scontiDao,
+    this._pagamentiDao,
+    this._agentiDao,
+  );
+
+  Ordine? get currentOrder => _currentOrder;
+  bool get isChanged => _isChanged;
+  set idAgente(int v) => _idAgente = v;
+
+  void setCurrentOrder(Ordine order) {
+    _currentOrder = order;
+  }
+
+  Future<Ordine> createOrder({int? idCliente}) async {
+    final num = await _ordiniDao.generaNumeroOrdine(_idAgente);
+    _currentOrder = Ordine(
+      idOrdine: 0,
+      numeroOrdine: num,
+      idAgente: _idAgente,
+      stato: 'N',
+      dataOrdine: DateTime.now().toIso8601String(),
+      idCliente: idCliente,
+    );
+    _isChanged = true;
+    return _currentOrder!;
+  }
+
+  Future<Ordine?> loadOrder(int id) async {
+    _currentOrder = await _ordiniDao.getById(id);
+    _isChanged = false;
+    return _currentOrder;
+  }
+
+  void setCustomer(Cliente customer) {
+    if (_currentOrder == null) return;
+    _currentOrder = _currentOrder!.copyWith(
+      idCliente: Value<int?>(customer.idCliente),
+      idPagamento: Value<int?>(customer.idPagamento),
+      noteCliente: Value<String?>(customer.noteOrdine),
+    );
+    _isChanged = true;
+  }
+
+  void setDestination(Filiale? filiale) {
+    if (_currentOrder == null) return;
+    _currentOrder = _currentOrder!.copyWith(
+      idFiliale: Value<int?>(filiale?.idFiliale),
+    );
+    _isChanged = true;
+  }
+
+  void setHeaderFields({
+    int? idFiliale,
+    int? idListino,
+    int? idPagamento,
+    String? noteCliente,
+    String? noteOrdine,
+    String? riferimento,
+  }) {
+    if (_currentOrder == null) return;
+    _currentOrder = _currentOrder!.copyWith(
+      idFiliale: Value<int?>(idFiliale),
+      idListino: Value<int?>(idListino),
+      idPagamento: Value<int?>(idPagamento),
+      noteCliente: Value<String?>(noteCliente),
+      noteOrdine: Value<String?>(noteOrdine),
+      riferimento: Value<String?>(riferimento),
+    );
+    _isChanged = true;
+  }
+
+  Future<String?> calcPriceForItem(int idArticolo) async {
+    final idListino = _currentOrder?.idListino;
+    if (idListino == null) return null;
+    final lp = await _articoliDao.getListPrice(idListino, idArticolo, '');
+    if (lp != null) return lp.prezzo?.toStringAsFixed(2);
+    return null;
+  }
+
+  static double calcPrezzoNetto(double lordo, double s1, double s2, double s3, double s4, double s5) {
+    double netto = lordo;
+    netto *= (100 - s1) / 100;
+    netto *= (100 - s2) / 100;
+    netto *= (100 - s3) / 100;
+    netto *= (100 - s4) / 100;
+    netto *= (100 - s5) / 100;
+    return netto;
+  }
+
+  Future<List<RigaOrdine>> getOrderLines(int idOrdine) => _ordiniDao.getOrderLines(idOrdine);
+
+  Future<int> addOrderLine(RigaOrdine line) async {
+    if (_currentOrder == null) return 0;
+    final saved = await _ordiniDao.insertOrderLine(line);
+    _isChanged = true;
+    return saved;
+  }
+
+  Future<void> editOrderLine(RigaOrdine line) async {
+    await _ordiniDao.updateOrderLine(line);
+    _isChanged = true;
+  }
+
+  Future<void> removeItem(int idRigaOrdine) async {
+    await _ordiniDao.deleteOrderLine(idRigaOrdine);
+    _isChanged = true;
+  }
+
+  Future<void> saveOrder() async {
+    if (_currentOrder == null) return;
+    if (_currentOrder!.idOrdine > 0) {
+      await _ordiniDao.updateOrder(_currentOrder!);
+    } else {
+      final id = await _ordiniDao.insertOrder(_currentOrder!);
+      _currentOrder = _currentOrder!.copyWith(idOrdine: id);
+    }
+    _isChanged = false;
+  }
+
+  Future<void> deleteOrder(int idOrdine) async {
+    await _ordiniDao.deleteOrder(idOrdine);
+    _currentOrder = null;
+    _isChanged = false;
+  }
+
+  Future<double> getOrderTotal(int idOrdine) => _ordiniDao.totalAmountItems(idOrdine);
+  Future<double> getOrderQty(int idOrdine) => _ordiniDao.totalQtyItems(idOrdine);
+}

+ 99 - 0
lib/business/pricing_service.dart

@@ -0,0 +1,99 @@
+import '../database/daos/articoli_dao.dart';
+import '../database/daos/listini_dao.dart';
+import '../database/daos/sconti_dao.dart';
+
+class PriceResult {
+  final double? prezzo;
+  final double sconto1;
+  final double sconto2;
+  final double sconto3;
+  final double sconto4;
+  final double sconto5;
+  final String? listinoCode;
+
+  PriceResult({
+    this.prezzo,
+    this.sconto1 = 0,
+    this.sconto2 = 0,
+    this.sconto3 = 0,
+    this.sconto4 = 0,
+    this.sconto5 = 0,
+    this.listinoCode,
+  });
+
+  double get netto {
+    double n = prezzo ?? 0;
+    n *= (100 - sconto1) / 100;
+    n *= (100 - sconto2) / 100;
+    n *= (100 - sconto3) / 100;
+    n *= (100 - sconto4) / 100;
+    n *= (100 - sconto5) / 100;
+    return n;
+  }
+}
+
+class PricingService {
+  final ArticoliDao _articoliDao;
+  final ListiniDao _listiniDao;
+  final ScontiDao _scontiDao;
+
+  PricingService(this._articoliDao, this._listiniDao, this._scontiDao);
+
+  Future<PriceResult> getPriceAndDiscountForCustomer(
+    int idCliente, int idArticolo, String date
+  ) async {
+    // First try: customer-specific list
+    final clienteList = await _articoliDao.getCustomerListPrice(idCliente, idArticolo, date);
+    if (clienteList != null && clienteList.prezzo != null && clienteList.prezzo! > 0) {
+      double? s1, s2, s3, s4, s5;
+      if (clienteList.idSconto != null) {
+        final sconto = await _scontiDao.findById(clienteList.idSconto!);
+        if (sconto != null) {
+          s1 = sconto.sconto1;
+          s2 = sconto.sconto2;
+          s3 = sconto.sconto3;
+          s4 = sconto.sconto4;
+          s5 = sconto.sconto5;
+        }
+      }
+      return PriceResult(
+        prezzo: clienteList.prezzo,
+        sconto1: s1 ?? 0,
+        sconto2: s2 ?? 0,
+        sconto3: s3 ?? 0,
+        sconto4: s4 ?? 0,
+        sconto5: s5 ?? 0,
+      );
+    }
+
+    // Second try: general list price
+    final listini = await _articoliDao.getPriceCodes(idArticolo);
+    for (final l in listini) {
+      final lp = await _articoliDao.getListPrice(l.idListino, idArticolo, date);
+      if (lp != null && lp.prezzo != null && lp.prezzo! > 0) {
+        double? s1, s2, s3, s4, s5;
+        if (lp.idSconto != null) {
+          final tabella = await _scontiDao.findById(lp.idSconto!);
+          if (tabella != null) {
+            s1 = tabella.sconto1;
+            s2 = tabella.sconto2;
+            s3 = tabella.sconto3;
+            s4 = tabella.sconto4;
+            s5 = tabella.sconto5;
+          }
+        }
+        return PriceResult(
+          prezzo: lp.prezzo,
+          sconto1: s1 ?? 0,
+          sconto2: s2 ?? 0,
+          sconto3: s3 ?? 0,
+          sconto4: s4 ?? 0,
+          sconto5: s5 ?? 0,
+          listinoCode: l.codListino,
+        );
+      }
+    }
+
+    return PriceResult();
+  }
+}

+ 305 - 0
lib/business/promo_handler.dart

@@ -0,0 +1,305 @@
+import '../database/daos/ordini_dao.dart';
+import '../database/daos/promozioni_dao.dart';
+import '../database/daos/articoli_dao.dart';
+import '../database/daos/sconti_dao.dart';
+import '../database/database.dart';
+
+class ApplicaPromoResult {
+  final int tipoRisultato;
+  final List<RigaOrdine> righe;
+  final List<ArticoloOmaggio> omaggi;
+
+  static const int resultNone = 0;
+  static const int resultRighe = 1;
+  static const int resultOmaggi = 2;
+
+  ApplicaPromoResult({
+    this.tipoRisultato = resultNone,
+    this.righe = const [],
+    this.omaggi = const [],
+  });
+}
+
+class ArticoloOmaggio {
+  final int idArticolo;
+  final String descrizione;
+  final double quantita;
+  final double quantitaDisponibile;
+  final int progressivo;
+
+  ArticoloOmaggio({
+    required this.idArticolo,
+    required this.descrizione,
+    required this.quantita,
+    required this.quantitaDisponibile,
+    required this.progressivo,
+  });
+}
+
+class PromoHandler {
+  final OrdiniDao _ordiniDao;
+  final PromozioniDao _promozioniDao;
+  final ArticoliDao _articoliDao;
+  final ScontiDao _scontiDao;
+
+  PromoHandler(this._ordiniDao, this._promozioniDao, this._articoliDao, this._scontiDao);
+
+  Future<List<Promozione>> getApplicablePromos(int idOrdine) async {
+    final oggi = DateTime.now().toIso8601String();
+    return _promozioniDao.getActivePromos(oggi);
+  }
+
+  Future<ApplicaPromoResult> applicaPromo(int progressivo, int idOrdine) async {
+    final promos = await _promozioniDao.getActivePromos('');
+    final promo = promos.where((p) => p.progressivo == progressivo).firstOrNull;
+    if (promo == null) return ApplicaPromoResult();
+
+    final lines = await _ordiniDao.getOrderLines(idOrdine);
+    final eligibleLines = lines.where((l) =>
+      (l.promozione == null || l.promozione == 0) &&
+      (l.rigaPromozione == null || l.rigaPromozione == 0) &&
+      (l.scontoMerce == null || l.scontoMerce == 0)
+    ).toList();
+
+    switch (promo.tipoPromozione) {
+      case 2: return _applicaTipo2(promo, eligibleLines, idOrdine);
+      case 3: return _applicaTipo3(promo, eligibleLines, idOrdine);
+      case 4: return _applicaTipo4(promo, eligibleLines, idOrdine);
+      case 5: return _applicaTipo5(promo, eligibleLines, idOrdine);
+      case 6: return _applicaTipo6(promo, eligibleLines, idOrdine);
+      case 9: return _applicaTipo9(promo, eligibleLines, idOrdine);
+      default: return ApplicaPromoResult();
+    }
+  }
+
+  Future<ApplicaPromoResult> _applicaTipo2(Promozione promo, List<RigaOrdine> lines, int idOrdine) async {
+    final promoArts = await _promozioniDao.getPromoArticoli(promo.progressivo);
+    final newLines = <RigaOrdine>[];
+
+    for (final line in lines) {
+      if (line.colli == null || line.colli! < (promo.limiteQta ?? 0)) continue;
+      final isMatch = promoArts.any((a) => a.idArticolo == line.idArticolo);
+      if (!isMatch) continue;
+      final giftQty = promo.quantitaOmaggio ?? 1;
+      newLines.add(RigaOrdine(
+        idRigaOrdine: 0,
+        idOrdine: idOrdine,
+        idArticolo: promo.idArticoloOmaggio ?? line.idArticolo,
+        quantita: giftQty,
+        prezzoLordo: 0,
+        prezzoNetto: 0,
+        totale: 0,
+        promozione: promo.progressivo,
+        rigaPromozione: 1,
+        colli: 0,
+      ));
+    }
+
+    return ApplicaPromoResult(
+      tipoRisultato: newLines.isEmpty ? ApplicaPromoResult.resultNone : ApplicaPromoResult.resultRighe,
+      righe: newLines,
+    );
+  }
+
+  Future<ApplicaPromoResult> _applicaTipo3(Promozione promo, List<RigaOrdine> lines, int idOrdine) async {
+    final promoListini = await _promozioniDao.getPromoListini(promo.progressivo);
+    final promoArts = await _promozioniDao.getPromoArticoli(promo.progressivo);
+    final newLines = <RigaOrdine>[];
+
+    for (final line in lines) {
+      if (line.colli == null || line.colli! < (promo.limiteQta ?? 0)) continue;
+      final listinoMatch = promoListini.any((l) => l.idListino == line.idListino);
+      if (!listinoMatch) continue;
+      if (promoArts.isNotEmpty && !promoArts.any((a) => a.idArticolo == line.idArticolo)) continue;
+      final giftQty = promo.quantitaOmaggio ?? 1;
+      newLines.add(RigaOrdine(
+        idRigaOrdine: 0,
+        idOrdine: idOrdine,
+        idArticolo: promo.idArticoloOmaggio ?? line.idArticolo,
+        quantita: giftQty,
+        prezzoLordo: 0,
+        prezzoNetto: 0,
+        totale: 0,
+        promozione: promo.progressivo,
+        rigaPromozione: 1,
+        colli: 0,
+      ));
+    }
+
+    return ApplicaPromoResult(
+      tipoRisultato: newLines.isEmpty ? ApplicaPromoResult.resultNone : ApplicaPromoResult.resultRighe,
+      righe: newLines,
+    );
+  }
+
+  Future<ApplicaPromoResult> _applicaTipo4(Promozione promo, List<RigaOrdine> lines, int idOrdine) async {
+    final totalColli = lines.fold(0.0, (sum, l) => sum + (l.colli ?? 0));
+    if (totalColli < (promo.limiteQta ?? 0)) return ApplicaPromoResult();
+
+    final omaggi = await _promozioniDao.getPromoOmaggi(promo.progressivo);
+    final articoliOmaggio = <ArticoloOmaggio>[];
+    for (final om in omaggi) {
+      if (om.idArticolo == null) continue;
+      articoliOmaggio.add(ArticoloOmaggio(
+        idArticolo: om.idArticolo!,
+        descrizione: 'Articolo ${om.idArticolo}',
+        quantita: om.quantita ?? 1,
+        quantitaDisponibile: om.quantita ?? 1,
+        progressivo: promo.progressivo,
+      ));
+    }
+
+    if (articoliOmaggio.length == 1) {
+      final newLines = <RigaOrdine>[];
+      newLines.add(RigaOrdine(
+        idRigaOrdine: 0,
+        idOrdine: idOrdine,
+        idArticolo: articoliOmaggio.first.idArticolo,
+        quantita: articoliOmaggio.first.quantita,
+        prezzoLordo: 0,
+        prezzoNetto: 0,
+        totale: 0,
+        promozione: promo.progressivo,
+        rigaPromozione: 1,
+        colli: 0,
+      ));
+      return ApplicaPromoResult(tipoRisultato: ApplicaPromoResult.resultRighe, righe: newLines);
+    }
+
+    return ApplicaPromoResult(
+      tipoRisultato: ApplicaPromoResult.resultOmaggi,
+      omaggi: articoliOmaggio,
+    );
+  }
+
+  Future<ApplicaPromoResult> _applicaTipo5(Promozione promo, List<RigaOrdine> lines, int idOrdine) async {
+    final promoArts = await _promozioniDao.getPromoArticoli(promo.progressivo);
+    final promoListini = await _promozioniDao.getPromoListini(promo.progressivo);
+    final newLines = <RigaOrdine>[];
+
+    double totalColli = 0;
+    final matchingLines = <RigaOrdine>[];
+    for (final line in lines) {
+      bool match = true;
+      if (promoArts.isNotEmpty && !promoArts.any((a) => a.idArticolo == line.idArticolo)) match = false;
+      if (promoListini.isNotEmpty && !promoListini.any((l) => l.idListino == line.idListino)) match = false;
+      if (match) {
+        totalColli += (line.colli ?? 0);
+        matchingLines.add(line);
+      }
+    }
+
+    if (totalColli < (promo.limiteQta ?? 0)) return ApplicaPromoResult();
+
+    final giftMultiplier = (totalColli / (promo.limiteQta ?? 1)).floor();
+    final totalGiftQty = (giftMultiplier * (promo.quantitaOmaggio ?? 1)).toDouble();
+
+    if (promo.idArticoloOmaggio != null) {
+      newLines.add(RigaOrdine(
+        idRigaOrdine: 0,
+        idOrdine: idOrdine,
+        idArticolo: promo.idArticoloOmaggio!,
+        quantita: totalGiftQty,
+        prezzoLordo: 0,
+        prezzoNetto: 0,
+        totale: 0,
+        promozione: promo.progressivo,
+        rigaPromozione: 1,
+        colli: 0,
+      ));
+    }
+
+    return ApplicaPromoResult(
+      tipoRisultato: newLines.isEmpty ? ApplicaPromoResult.resultNone : ApplicaPromoResult.resultRighe,
+      righe: newLines,
+    );
+  }
+
+  Future<ApplicaPromoResult> _applicaTipo6(Promozione promo, List<RigaOrdine> lines, int idOrdine) async {
+    final totalImporto = lines.fold(0.0, (sum, l) => sum + (l.totale ?? 0));
+    if (totalImporto < (promo.limiteImporto ?? 0)) return ApplicaPromoResult();
+
+    final giftMultiplier = (totalImporto / (promo.limiteImporto ?? 1)).floor();
+    final totalGiftQty = (giftMultiplier * (promo.quantitaOmaggio ?? 1)).toDouble();
+
+    final newLines = <RigaOrdine>[];
+    if (promo.idArticoloOmaggio != null) {
+      newLines.add(RigaOrdine(
+        idRigaOrdine: 0,
+        idOrdine: idOrdine,
+        idArticolo: promo.idArticoloOmaggio!,
+        quantita: totalGiftQty,
+        prezzoLordo: 0,
+        prezzoNetto: 0,
+        totale: 0,
+        promozione: promo.progressivo,
+        rigaPromozione: 1,
+        colli: 0,
+      ));
+    }
+
+    return ApplicaPromoResult(
+      tipoRisultato: newLines.isEmpty ? ApplicaPromoResult.resultNone : ApplicaPromoResult.resultRighe,
+      righe: newLines,
+    );
+  }
+
+  Future<ApplicaPromoResult> _applicaTipo9(Promozione promo, List<RigaOrdine> lines, int idOrdine) async {
+    final promoArts = await _promozioniDao.getPromoArticoli(promo.progressivo);
+    final promoListini = await _promozioniDao.getPromoListini(promo.progressivo);
+    final newLines = <RigaOrdine>[];
+    final modifiedLines = <RigaOrdine>[];
+
+    for (final line in lines) {
+      if (line.quantita == null || line.quantita! < (promo.limiteQta ?? 0)) continue;
+      bool match = true;
+      if (promoArts.isNotEmpty && !promoArts.any((a) => a.idArticolo == line.idArticolo)) match = false;
+      if (promoListini.isNotEmpty && !promoListini.any((l) => l.idListino == line.idListino)) match = false;
+      if (!match) continue;
+
+      final freeQty = ((line.quantita! / (promo.limiteQta ?? 1)).floor() * (promo.quantitaOmaggio ?? 1)).toDouble();
+      if (freeQty <= 0) continue;
+
+      newLines.add(RigaOrdine(
+        idRigaOrdine: 0,
+        idOrdine: idOrdine,
+        idArticolo: line.idArticolo,
+        idListino: line.idListino,
+        quantita: freeQty,
+        prezzoLordo: 0,
+        prezzoNetto: 0,
+        totale: 0,
+        promozione: promo.progressivo,
+        rigaPromozione: 1,
+        colli: line.colli,
+      ));
+    }
+
+    return ApplicaPromoResult(
+      tipoRisultato: newLines.isEmpty ? ApplicaPromoResult.resultNone : ApplicaPromoResult.resultRighe,
+      righe: newLines,
+    );
+  }
+
+  Future<ApplicaPromoResult> selezionaOmaggio(int progressivo, int idArticoloScelto, int idOrdine) async {
+    final promo = await _promozioniDao.getActivePromos('');
+    final p = promo.where((x) => x.progressivo == progressivo).firstOrNull;
+    if (p == null) return ApplicaPromoResult();
+
+    final newLines = <RigaOrdine>[
+      RigaOrdine(
+        idRigaOrdine: 0,
+        idOrdine: idOrdine,
+        idArticolo: idArticoloScelto,
+        quantita: p.quantitaOmaggio ?? 1,
+        prezzoLordo: 0,
+        prezzoNetto: 0,
+        totale: 0,
+        promozione: progressivo,
+        rigaPromozione: 1,
+        colli: 0,
+      ),
+    ];
+    return ApplicaPromoResult(tipoRisultato: ApplicaPromoResult.resultRighe, righe: newLines);
+  }
+}

+ 62 - 0
lib/business/statistics_service.dart

@@ -0,0 +1,62 @@
+import '../database/daos/statistiche_dao.dart';
+import '../database/daos/articoli_dao.dart';
+import '../database/daos/clienti_dao.dart';
+import '../database/daos/agenti_dao.dart';
+import '../database/database.dart';
+
+class StatisticsService {
+  final StatisticheDao _statisticheDao;
+  final ArticoliDao _articoliDao;
+  final ClientiDao _clientiDao;
+  final AgentiDao _agentiDao;
+
+  StatisticsService(this._statisticheDao, this._articoliDao, this._clientiDao, this._agentiDao);
+
+  Future<List<StatisticheVenditaData>> getStatsForAgent(int idAgente, {String? da, String? a}) async {
+    final from = da ?? DateTime.now().subtract(const Duration(days: 365)).toIso8601String();
+    final to = a ?? DateTime.now().toIso8601String();
+    return _statisticheDao.getPerAgente(idAgente, from, to);
+  }
+
+  Future<double> getTotalForAgent(int idAgente, {String? da, String? a}) async {
+    final stats = await getStatsForAgent(idAgente, da: da, a: a);
+    return stats.fold<double>(0.0, (sum, s) => sum + (s.importo ?? 0.0));
+  }
+
+  Future<Map<String, double>> getTotalsByClient(int idAgente, {String? da, String? a}) async {
+    final stats = await getStatsForAgent(idAgente, da: da, a: a);
+    final result = <String, double>{};
+    for (final s in stats) {
+      final key = s.idCliente.toString();
+      result[key] = (result[key] ?? 0) + (s.importo ?? 0);
+    }
+    return result;
+  }
+
+  Future<Map<String, double>> getTotalsByArticle(int idAgente, {String? da, String? a}) async {
+    final stats = await getStatsForAgent(idAgente, da: da, a: a);
+    final result = <String, double>{};
+    for (final s in stats) {
+      final key = s.idArticolo.toString();
+      result[key] = (result[key] ?? 0) + (s.importo ?? 0);
+    }
+    return result;
+  }
+
+  Future<Map<String, double>> getMonthlyTotals(int idAgente, {int months = 12}) async {
+    final to = DateTime.now();
+    final from = DateTime(to.year, to.month - months, to.day);
+    final stats = await _statisticheDao.getPerAgente(
+      idAgente,
+      from.toIso8601String(),
+      to.toIso8601String(),
+    );
+    final result = <String, double>{};
+    for (final s in stats) {
+      if (s.dataFattura == null || s.dataFattura!.length < 7) continue;
+      final monthKey = s.dataFattura!.substring(0, 7);
+      result[monthKey] = (result[monthKey] ?? 0) + (s.importo ?? 0);
+    }
+    return result;
+  }
+}

+ 16 - 0
lib/core/constants.dart

@@ -0,0 +1,16 @@
+class AppConstants {
+  static const String kFlagTrue = 'S';
+  static const String kFlagFalse = 'N';
+  static const String kStatusNew = 'N';
+  static const String kStatusTransferred = 'T';
+  static const String kStatoHold = 'H';
+  static const String kVersione = '2.0.0';
+  static const int kMaxOrdersInList = 200;
+  static const int kInactivityDays = 92;
+  static const String kDbName = 'Ristoris.db';
+  static const String kAssetsDbPath = 'db/Ristoris.db';
+  static const String kDbVersionParam = 'DB_VERSION';
+  static const String kUrlParam = 'URL';
+  static const String kLastUpdateParam = 'lastUpdate';
+  static const String kCustomerName = 'Ristoris';
+}

+ 29 - 0
lib/core/responsive.dart

@@ -0,0 +1,29 @@
+import 'package:flutter/material.dart';
+
+class ResponsiveBreakpoints {
+  static const double phone = 600;
+  static const double tablet = 900;
+
+  static bool isPhone(BuildContext context) =>
+      MediaQuery.of(context).size.width < phone;
+
+  static bool isTablet(BuildContext context) =>
+      MediaQuery.of(context).size.width >= phone &&
+      MediaQuery.of(context).size.width < tablet;
+
+  static bool isDesktop(BuildContext context) =>
+      MediaQuery.of(context).size.width >= tablet;
+
+  static EdgeInsets padding(BuildContext context) {
+    final w = MediaQuery.of(context).size.width;
+    if (w >= tablet) return const EdgeInsets.all(24);
+    if (w >= phone) return const EdgeInsets.all(16);
+    return const EdgeInsets.all(12);
+  }
+
+  static double contentMaxWidth(BuildContext context) {
+    final w = MediaQuery.of(context).size.width;
+    if (w >= tablet) return w * 0.7;
+    return w;
+  }
+}

+ 65 - 0
lib/core/theme.dart

@@ -0,0 +1,65 @@
+import 'package:flutter/material.dart';
+
+class AppTheme {
+  static ThemeData get light {
+    final colorScheme = ColorScheme.fromSeed(
+      seedColor: const Color(0xFF1A6B4C),
+      brightness: Brightness.light,
+    );
+    return _buildTheme(colorScheme);
+  }
+
+  static ThemeData get dark {
+    final colorScheme = ColorScheme.fromSeed(
+      seedColor: const Color(0xFF1A6B4C),
+      brightness: Brightness.dark,
+    );
+    return _buildTheme(colorScheme);
+  }
+
+  static ThemeData _buildTheme(ColorScheme colorScheme) {
+    return ThemeData(
+      useMaterial3: true,
+      colorScheme: colorScheme,
+      appBarTheme: AppBarTheme(
+        centerTitle: false,
+        elevation: 0,
+        scrolledUnderElevation: 1,
+        backgroundColor: colorScheme.surface,
+        foregroundColor: colorScheme.onSurface,
+      ),
+      cardTheme: CardThemeData(
+        elevation: 0,
+        shape: RoundedRectangleBorder(
+          borderRadius: BorderRadius.circular(12),
+          side: BorderSide(color: colorScheme.outlineVariant, width: 0.5),
+        ),
+      ),
+      inputDecorationTheme: InputDecorationTheme(
+        filled: true,
+        border: OutlineInputBorder(
+          borderRadius: BorderRadius.circular(12),
+        ),
+        contentPadding: const EdgeInsets.symmetric(horizontal: 16, vertical: 14),
+      ),
+      floatingActionButtonTheme: FloatingActionButtonThemeData(
+        elevation: 2,
+        shape: RoundedRectangleBorder(
+          borderRadius: BorderRadius.circular(16),
+        ),
+      ),
+      navigationBarTheme: NavigationBarThemeData(
+        elevation: 1,
+        indicatorShape: RoundedRectangleBorder(
+          borderRadius: BorderRadius.circular(12),
+        ),
+      ),
+      navigationRailTheme: NavigationRailThemeData(
+        elevation: 1,
+        indicatorShape: RoundedRectangleBorder(
+          borderRadius: BorderRadius.circular(12),
+        ),
+      ),
+    );
+  }
+}

+ 38 - 0
lib/database/daos/agenti_dao.dart

@@ -0,0 +1,38 @@
+import 'package:drift/drift.dart';
+import '../database.dart';
+
+class AgentiDao {
+  final AppDatabase db;
+  AgentiDao(this.db);
+
+  Future<Agente?> findById(int id) {
+    return (db.select(db.agenti)..where((t) => t.idAgente.equals(id))).getSingleOrNull();
+  }
+
+  Future<Agente?> findByCode(String code) {
+    return (db.select(db.agenti)..where((t) => t.codAgente.equals(code))).getSingleOrNull();
+  }
+
+  Future<Agente?> authenticate(String code, String password) {
+    return (db.select(db.agenti)
+      ..where((t) => t.codAgente.equals(code) & t.pwd.equals(password))
+    ).getSingleOrNull();
+  }
+
+  Future<int> countAgenti() async {
+    final rows = await db.select(db.agenti).get();
+    return rows.length;
+  }
+
+  Future<int> insertAgente(AgentiCompanion entry) {
+    return db.into(db.agenti).insert(entry);
+  }
+
+  Future<void> updateAgente(Agente agent) {
+    return db.update(db.agenti).replace(agent);
+  }
+
+  Future<void> zapCodiceAgente(String code) {
+    return (db.delete(db.agenti)..where((t) => t.codAgente.equals(code))).go();
+  }
+}

+ 98 - 0
lib/database/daos/articoli_dao.dart

@@ -0,0 +1,98 @@
+import 'package:drift/drift.dart';
+import '../database.dart';
+import '../tables/articoli.dart';
+import '../tables/listini.dart';
+import '../tables/listini_articolo.dart';
+import '../tables/listini_cliente.dart';
+import '../views/top_item.dart';
+
+class ArticoliDao {
+  final AppDatabase db;
+  ArticoliDao(this.db);
+
+  Future<Articolo?> getByCode(String code) {
+    return (db.select(db.articoli)..where((t) => t.codArticolo.equals(code))).getSingleOrNull();
+  }
+
+  Future<List<Articolo>> getItems(String filter) async {
+    final words = filter.split(' ').where((w) => w.isNotEmpty).toList();
+    final q = db.select(db.articoli)
+      ..where((t) =>
+        (t.gruppo.isNotNull() & t.gruppo.equals('*').not()) &
+        (t.categoria.isNotNull() & t.categoria.equals('PPP').not()) &
+        (t.descrizione.isNotNull() & t.descrizione.like('%.ANNULLATO%').not())
+      )
+      ..orderBy([(t) => OrderingTerm(expression: t.descrizione)])
+      ..limit(200);
+    for (final word in words) {
+      final pattern = '%$word%';
+      q.where((t) =>
+        t.codArticolo.like(pattern) | t.descrizione.like(pattern) | t.ean.like(pattern)
+      );
+    }
+    return q.get();
+  }
+
+  Future<List<Articolo>> getActiveItems(String filter) async {
+    final items = await getItems(filter);
+    return items.where((a) => a.attivo == 1).toList();
+  }
+
+  Future<List<TopItemData>> getMostSoldItems(int limit) {
+    return (db.select(db.topItem)..limit(limit)).get();
+  }
+
+  Future<List<Listino>> getListini() {
+    return (db.select(db.listini)
+      ..where((t) =>
+        t.codListino.isNotNull() &
+        t.codListino.like('OF2').not() &
+        t.codListino.like('OF4').not() &
+        t.codListino.like('I0').not()
+      )
+    ).get();
+  }
+
+  Future<List<ListinoArticolo>> getListinoArticoli(int idListino) {
+    return (db.select(db.listiniArticolo)
+      ..where((t) => t.idListino.equals(idListino) & (t.attivo.equals(1)))
+    ).get();
+  }
+
+  Future<ListinoArticolo?> getListPrice(int idListino, int idArticolo, String date) {
+    return (db.select(db.listiniArticolo)
+      ..where((t) =>
+        t.idListino.equals(idListino) &
+        t.idArticolo.equals(idArticolo) &
+        (t.attivo.equals(1))
+      )
+    ).getSingleOrNull();
+  }
+
+  Future<ListinoCliente?> getCustomerListPrice(int idCliente, int idArticolo, String date) {
+    return (db.select(db.listiniCliente)
+      ..where((t) =>
+        t.idCliente.equals(idCliente) &
+        t.idArticolo.equals(idArticolo) &
+        (t.attivo.equals(1)) &
+        (t.annullato.equals('N'))
+      )
+      ..orderBy([(t) => OrderingTerm(expression: t.validoDa, mode: OrderingMode.desc)])
+      ..limit(1)
+    ).getSingleOrNull();
+  }
+
+  Future<List<Listino>> getPriceCodes(int idArticolo) {
+    return (db.select(db.listini)
+      ..join([
+        innerJoin(db.listiniArticolo, db.listiniArticolo.idListino.equalsExp(db.listini.idListino) & db.listiniArticolo.idArticolo.equals(idArticolo)),
+      ])
+      ..where((t) =>
+        t.codListino.isNotNull() &
+        t.codListino.like('OF2').not() &
+        t.codListino.like('OF4').not() &
+        t.codListino.like('I0').not()
+      )
+    ).get();
+  }
+}

+ 32 - 0
lib/database/daos/clienti_agente_dao.dart

@@ -0,0 +1,32 @@
+import 'package:drift/drift.dart';
+import '../database.dart';
+
+class ClientiAgenteDao {
+  final AppDatabase db;
+  ClientiAgenteDao(this.db);
+
+  Future<ClientiAgenteData?> findByClienteAgente(int idCliente, int idAgente) {
+    return (db.select(db.clientiAgente)
+      ..where((t) => t.idCliente.equals(idCliente) & t.idAgente.equals(idAgente))
+    ).getSingleOrNull();
+  }
+
+  Future<void> activateCustomer(int idCliente, int idAgente) async {
+    final existing = await findByClienteAgente(idCliente, idAgente);
+    if (existing != null) {
+      await (db.update(db.clientiAgente)..where((t) => t.idClientiAgente.equals(existing.idClientiAgente)))
+        .write(ClientiAgenteCompanion(attivo: const Value(1)));
+    } else {
+      await db.into(db.clientiAgente).insert(ClientiAgenteCompanion(
+        idCliente: Value(idCliente),
+        idAgente: Value(idAgente),
+        attivo: const Value(1),
+      ));
+    }
+  }
+
+  Future<void> deactivateAllCustomers(int idAgente) {
+    return (db.update(db.clientiAgente)..where((t) => t.idAgente.equals(idAgente)))
+      .write(ClientiAgenteCompanion(attivo: const Value(0)));
+  }
+}

+ 109 - 0
lib/database/daos/clienti_dao.dart

@@ -0,0 +1,109 @@
+import 'package:drift/drift.dart';
+import '../database.dart';
+
+class ClientiDao {
+  final AppDatabase db;
+  ClientiDao(this.db);
+
+  Future<Cliente?> getById(int id) {
+    return (db.select(db.clienti)..where((t) => t.idCliente.equals(id))).getSingleOrNull();
+  }
+
+  Future<Cliente?> getByCode(int idAgente, String code) {
+    return (db.select(db.clienti)
+      ..join([
+        innerJoin(db.clientiAgente, db.clientiAgente.idCliente.equalsExp(db.clienti.idCliente) & db.clientiAgente.idAgente.equals(idAgente)),
+      ])
+      ..where((t) => t.codCliente.equals(code))
+    ).getSingleOrNull();
+  }
+
+  Future<Cliente?> getByRemoteId(int idAgente, int remoteId) {
+    return (db.select(db.clienti)
+      ..join([
+        innerJoin(db.clientiAgente, db.clientiAgente.idCliente.equalsExp(db.clienti.idCliente) & db.clientiAgente.idAgente.equals(idAgente)),
+      ])
+      ..where((t) => t.idClienteRemoto.equals(remoteId))
+    ).getSingleOrNull();
+  }
+
+  Future<List<Cliente>> getClienti(int idAgente, String filter) async {
+    final words = filter.split(' ').where((w) => w.isNotEmpty).toList();
+    final q = db.select(db.clienti)
+      ..join([
+        innerJoin(db.clientiAgente, db.clientiAgente.idCliente.equalsExp(db.clienti.idCliente) & db.clientiAgente.idAgente.equals(idAgente)),
+      ])
+      ..limit(200);
+    if (words.isNotEmpty) {
+      for (final word in words) {
+        final pattern = '%$word%';
+        q.where((t) =>
+          t.codCliente.like(pattern) |
+          t.ragioneSociale.like(pattern) |
+          t.partitaIva.like(pattern)
+        );
+      }
+    }
+    return q.get();
+  }
+
+  Future<List<Cliente>> getActiveClients(int idAgente) {
+    return (db.select(db.clienti)
+      ..join([
+        innerJoin(db.clientiAgente, db.clientiAgente.idCliente.equalsExp(db.clienti.idCliente) & db.clientiAgente.idAgente.equals(idAgente)),
+      ])
+      ..where((t) => t.attivo.equals(1))
+      ..orderBy([(t) => OrderingTerm(expression: t.ragioneSociale)])
+    ).get();
+  }
+
+  Future<List<TopCustomerData>> topCustomers(int limit) async {
+    return (db.select(db.topCustomer)..limit(limit)).get();
+  }
+
+  Future<List<Cliente>> getNewCustomers(int idAgente) {
+    return (db.select(db.clienti)
+      ..join([
+        innerJoin(db.clientiAgente, db.clientiAgente.idCliente.equalsExp(db.clienti.idCliente) & db.clientiAgente.idAgente.equals(idAgente)),
+      ])
+      ..where((t) => t.stato.equals('N'))
+    ).get();
+  }
+
+  Future<int> countNewCustomers() async {
+    final rows = await (db.select(db.clienti)..where((t) => t.stato.equals('N'))).get();
+    return rows.length;
+  }
+
+  Future<List<Cliente>> inactiveCustomers(int idAgente, String sinceDate) async {
+    final recentIds = await (db.select(db.ordini)
+      ..where((t) => t.idCliente.isNotNull())
+    ).get().then((orders) => orders.map((o) => o.idCliente!).toSet());
+    return (db.select(db.clienti)
+      ..join([
+        innerJoin(db.clientiAgente, db.clientiAgente.idCliente.equalsExp(db.clienti.idCliente) & db.clientiAgente.idAgente.equals(idAgente)),
+      ])
+      ..where((t) => t.idCliente.isNotIn(recentIds))
+    ).get();
+  }
+
+  Future<int> countCustomersToSend() async {
+    final rows = await (db.select(db.clienti)..where((t) => t.stato.equals('N'))).get();
+    return rows.length;
+  }
+
+  Future<int> countCustomersToSendForAgent(int idAgente) async {
+    final rows = await (db.select(db.clienti)
+      ..join([
+        innerJoin(db.clientiAgente, db.clientiAgente.idCliente.equalsExp(db.clienti.idCliente) & db.clientiAgente.idAgente.equals(idAgente)),
+      ])
+      ..where((t) => t.stato.equals('N'))
+    ).get();
+    return rows.length;
+  }
+
+  Future<void> markAsSent(int idCliente, int idAssegnato) {
+    return (db.update(db.clienti)..where((t) => t.idCliente.equals(idCliente)))
+      .write(ClientiCompanion(stato: const Value('T')));
+  }
+}

+ 56 - 0
lib/database/daos/filiali_dao.dart

@@ -0,0 +1,56 @@
+import 'package:drift/drift.dart';
+import '../database.dart';
+
+class FilialiDao {
+  final AppDatabase db;
+  FilialiDao(this.db);
+
+  Future<List<Filiale>> getDestinationsForCustomer(int idCliente) {
+    return (db.select(db.filiali)
+      ..where((t) => t.idCliente.equals(idCliente) & (t.attivo.equals(1) | t.attivo.isNull()))
+      ..orderBy([(t) => OrderingTerm(expression: t.descrizione)])
+    ).get();
+  }
+
+  Future<Filiale?> getById(int id) {
+    return (db.select(db.filiali)..where((t) => t.idFiliale.equals(id))).getSingleOrNull();
+  }
+
+  Future<Filiale?> getByRemoteId(int remoteId) {
+    return (db.select(db.filiali)..where((t) => t.idFilialeRemoto.equals(remoteId))).getSingleOrNull();
+  }
+
+  Future<Filiale?> getByCode(String code) {
+    return (db.select(db.filiali)..where((t) => t.codFiliale.equals(code))).getSingleOrNull();
+  }
+
+  Future<List<Filiale>> getNewDestinations() {
+    return (db.select(db.filiali)..where((t) => t.stato.equals('N'))).get();
+  }
+
+  Future<int> countNewDestinations() async {
+    final rows = await (db.select(db.filiali)..where((t) => t.stato.equals('N'))).get();
+    return rows.length;
+  }
+
+  Future<void> markAsSent(int idFiliale) {
+    return (db.update(db.filiali)..where((t) => t.idFiliale.equals(idFiliale)))
+      .write(FilialiCompanion(stato: const Value('T')));
+  }
+
+  Future<void> markAllAsSent() {
+    return (db.update(db.filiali)..where((t) => t.stato.equals('N')))
+      .write(FilialiCompanion(stato: const Value('T')));
+  }
+
+  Future<int> insertFiliale(Filiale entry) {
+    return db.into(db.filiali).insert(entry);
+  }
+
+  Future<bool> checkCodeDuplicate(String code, int idCliente) async {
+    final existing = await (db.select(db.filiali)
+      ..where((t) => t.codFiliale.equals(code) & t.idCliente.equals(idCliente))
+    ).get();
+    return existing.isNotEmpty;
+  }
+}

+ 48 - 0
lib/database/daos/listini_dao.dart

@@ -0,0 +1,48 @@
+import 'package:drift/drift.dart';
+import '../database.dart';
+import '../tables/listini.dart';
+import '../tables/listini_articolo.dart';
+import '../tables/listini_cliente.dart';
+
+class ListiniDao {
+  final AppDatabase db;
+  ListiniDao(this.db);
+
+  Future<List<Listino>> list() {
+    return (db.select(db.listini)
+      ..where((t) =>
+        t.codListino.like('OF2').not() &
+        t.codListino.like('OF4').not() &
+        t.codListino.like('I0').not()
+      )
+      ..orderBy([(t) => OrderingTerm(expression: t.descrizione)])
+    ).get();
+  }
+
+  Future<List<Listino>> listSenzaFiltro() {
+    return (db.select(db.listini)..orderBy([(t) => OrderingTerm(expression: t.descrizione)])).get();
+  }
+
+  Future<Listino?> findByCod(String code) {
+    return (db.select(db.listini)..where((t) => t.codListino.equals(code))).getSingleOrNull();
+  }
+
+  Future<ListinoArticolo?> findListinoArticolo(int idListino, int idArticolo) {
+    return (db.select(db.listiniArticolo)
+      ..where((t) => t.idListino.equals(idListino) & t.idArticolo.equals(idArticolo))
+    ).getSingleOrNull();
+  }
+
+  Future<ListinoCliente?> getListinoCliente(int idCliente, int idArticolo, String date) {
+    return (db.select(db.listiniCliente)
+      ..where((t) =>
+        t.idCliente.equals(idCliente) &
+        t.idArticolo.equals(idArticolo) &
+        (t.attivo.equals(1)) &
+        (t.annullato.equals('N'))
+      )
+      ..orderBy([(t) => OrderingTerm(expression: t.validoDa, mode: OrderingMode.desc)])
+      ..limit(1)
+    ).getSingleOrNull();
+  }
+}

+ 125 - 0
lib/database/daos/ordini_dao.dart

@@ -0,0 +1,125 @@
+import 'package:drift/drift.dart';
+import '../database.dart';
+
+class OrdiniDao {
+  final AppDatabase db;
+  OrdiniDao(this.db);
+
+  Future<Ordine?> getById(int id) {
+    return (db.select(db.ordini)..where((t) => t.idOrdine.equals(id))).getSingleOrNull();
+  }
+
+  Future<Ordine?> getByNumber(int numeroOrdine) {
+    return (db.select(db.ordini)..where((t) => t.numeroOrdine.equals(numeroOrdine))).getSingleOrNull();
+  }
+
+  Future<List<Ordine>> customerOrders(int idCliente, bool includeReferences) {
+    return (db.select(db.ordini)
+      ..where((t) => t.idCliente.equals(idCliente))
+      ..orderBy([(t) => OrderingTerm(expression: t.dataOrdine, mode: OrderingMode.desc)])
+      ..limit(200)
+    ).get();
+  }
+
+  Future<List<Ordine>> getLastOrders(int idAgente, int max) {
+    return (db.select(db.ordini)
+      ..where((t) => t.idAgente.equals(idAgente))
+      ..orderBy([(t) => OrderingTerm(expression: t.dataOrdine, mode: OrderingMode.desc)])
+      ..limit(max)
+    ).get();
+  }
+
+  Future<int> countNewOrders() async {
+    final rows = await (db.select(db.ordini)..where((t) => t.stato.equals('N'))).get();
+    return rows.length;
+  }
+
+  Future<int> countOrdersOnHold() async {
+    final rows = await (db.select(db.ordini)..where((t) => t.stato.equals('H'))).get();
+    return rows.length;
+  }
+
+  Future<List<Ordine>> getNewOrders() {
+    return (db.select(db.ordini)..where((t) => t.stato.equals('N'))).get();
+  }
+
+  Future<List<Ordine>> getUnsentOrders(int max) {
+    return (db.select(db.ordini)
+      ..where((t) => t.stato.equals('N') | t.stato.equals('H'))
+      ..limit(max)
+    ).get();
+  }
+
+  Future<int> generaNumeroOrdine(int idAgente) async {
+    final result = await (db.select(db.ordini)
+      ..where((t) => t.idAgente.equals(idAgente))
+      ..orderBy([(t) => OrderingTerm(expression: t.numeroOrdine, mode: OrderingMode.desc)])
+      ..limit(1)
+    ).getSingleOrNull();
+    return (result?.numeroOrdine ?? 0) + 1;
+  }
+
+  Future<void> markAsSent(int idOrdine, int idAssegnato) {
+    return (db.update(db.ordini)..where((t) => t.idOrdine.equals(idOrdine)))
+      .write(OrdiniCompanion(stato: const Value('T')));
+  }
+
+  Future<void> markAsSentStatus(int idOrdine) {
+    return (db.update(db.ordini)..where((t) => t.idOrdine.equals(idOrdine)))
+      .write(OrdiniCompanion(stato: const Value('T')));
+  }
+
+  Future<int> insertOrder(Ordine order) {
+    return db.into(db.ordini).insert(order);
+  }
+
+  Future<bool> updateOrder(Ordine order) {
+    return db.update(db.ordini).replace(order);
+  }
+
+  Future<void> deleteOrder(int idOrdine) {
+    return (db.delete(db.ordini)..where((t) => t.idOrdine.equals(idOrdine))).go();
+  }
+
+  Future<int> insertOrderLine(RigaOrdine line) {
+    return db.into(db.righeOrdine).insert(line);
+  }
+
+  Future<bool> updateOrderLine(RigaOrdine line) {
+    return db.update(db.righeOrdine).replace(line);
+  }
+
+  Future<List<RigaOrdine>> getOrderLines(int idOrdine) {
+    return (db.select(db.righeOrdine)..where((t) => t.idOrdine.equals(idOrdine))).get();
+  }
+
+  Future<void> deleteOrderLine(int idRigaOrdine) {
+    return (db.delete(db.righeOrdine)..where((t) => t.idRigaOrdine.equals(idRigaOrdine))).go();
+  }
+
+  Future<void> zapOrderLines(int idOrdine) {
+    return (db.delete(db.righeOrdine)..where((t) => t.idOrdine.equals(idOrdine))).go();
+  }
+
+  Future<Ordine?> findByNumeroOrdineSede(String numSede) {
+    return (db.select(db.ordini)..where((t) => t.numeroOrdineSede.equals(numSede))).getSingleOrNull();
+  }
+
+  Future<Ordine?> findByIdOrdineSede(int idSede) {
+    return (db.select(db.ordini)..where((t) => t.idOrdineSede.equals(idSede))).getSingleOrNull();
+  }
+
+  Future<double> totalAmountItems(int idOrdine) async {
+    final lines = await (db.select(db.righeOrdine)
+      ..where((t) => t.idOrdine.equals(idOrdine) & (t.rigaPromozione.equals(0) | t.rigaPromozione.isNull()))
+    ).get();
+    return lines.fold<double>(0.0, (sum, l) => sum + (l.totale ?? 0.0));
+  }
+
+  Future<double> totalQtyItems(int idOrdine) async {
+    final lines = await (db.select(db.righeOrdine)
+      ..where((t) => t.idOrdine.equals(idOrdine) & (t.rigaPromozione.equals(0) | t.rigaPromozione.isNull()))
+    ).get();
+    return lines.fold<double>(0.0, (sum, l) => sum + (l.quantita ?? 0.0));
+  }
+}

+ 33 - 0
lib/database/daos/pagamenti_dao.dart

@@ -0,0 +1,33 @@
+import 'package:drift/drift.dart';
+import '../database.dart';
+import '../tables/pagamenti.dart';
+
+class PagamentiDao {
+  final AppDatabase db;
+  PagamentiDao(this.db);
+
+  Future<Pagamento?> findByCod(String code) {
+    return (db.select(db.pagamenti)..where((t) => t.codPagamento.equals(code))).getSingleOrNull();
+  }
+
+  Future<List<Pagamento>> search(String filter) {
+    final pattern = '%$filter%';
+    return (db.select(db.pagamenti)
+      ..where((t) => t.descrizione.like(pattern) | t.codPagamento.like(pattern))
+    ).get();
+  }
+
+  Future<List<Pagamento>> searchActive() {
+    return (db.select(db.pagamenti)
+      ..where((t) => t.attivo.equals(1) | t.attivo.isNull())
+    ).get();
+  }
+
+  Future<int> insert(Pagamento p) {
+    return db.into(db.pagamenti).insert(p);
+  }
+
+  Future<void> clearAll() {
+    return db.delete(db.pagamenti).go();
+  }
+}

+ 27 - 0
lib/database/daos/parametri_dao.dart

@@ -0,0 +1,27 @@
+import 'package:drift/drift.dart';
+import '../database.dart';
+import '../tables/parametri.dart';
+
+class ParametriDao {
+  final AppDatabase db;
+  ParametriDao(this.db);
+
+  Future<Parametro?> findByNome(String nome) {
+    return (db.select(db.parametri)..where((t) => t.nome.equals(nome))).getSingleOrNull();
+  }
+
+  Future<String?> read(String nome) async {
+    final p = await findByNome(nome);
+    return p?.valore;
+  }
+
+  Future<void> set(String nome, String valore) async {
+    final existing = await findByNome(nome);
+    if (existing != null) {
+      await (db.update(db.parametri)..where((t) => t.nome.equals(nome)))
+        .write(Parametro(valore: valore, nome: nome));
+    } else {
+      await db.into(db.parametri).insert(Parametro(nome: nome, valore: valore));
+    }
+  }
+}

+ 69 - 0
lib/database/daos/promozioni_dao.dart

@@ -0,0 +1,69 @@
+import 'package:drift/drift.dart';
+import '../database.dart';
+import '../tables/promozioni.dart';
+import '../tables/promo_articoli.dart';
+import '../tables/promo_listini.dart';
+import '../tables/promo_omaggi.dart';
+
+class PromozioniDao {
+  final AppDatabase db;
+  PromozioniDao(this.db);
+
+  Future<List<Promozione>> getActivePromos(String today) {
+    return (db.select(db.promozioni)
+      ..where((t) =>
+        (t.dataInizio.isNull() | t.dataInizio.equals('').not()) &
+        (t.stato.isNull() | t.stato.equals('A'))
+      )
+      ..orderBy([(t) => OrderingTerm(expression: t.priorita)])
+    ).get();
+  }
+
+  Future<List<Promozione>> getPromosForItem(int idArticolo, String today) async {
+    final allPromos = await getActivePromos(today);
+    final result = <Promozione>[];
+    for (final p in allPromos) {
+      final articles = await getPromoArticoli(p.progressivo);
+      final has = articles.any((a) => a.idArticolo == idArticolo);
+      if (has) result.add(p);
+    }
+    return result;
+  }
+
+  Future<List<PromoArticolo>> getPromoArticoli(int progressivo) {
+    return (db.select(db.promoArticoli)..where((t) => t.progressivo.equals(progressivo))).get();
+  }
+
+  Future<List<PromoListino>> getPromoListini(int progressivo) {
+    return (db.select(db.promoListini)..where((t) => t.progressivo.equals(progressivo))).get();
+  }
+
+  Future<List<PromoOmaggio>> getPromoOmaggi(int progressivo) {
+    return (db.select(db.promoOmaggi)..where((t) => t.progressivo.equals(progressivo))).get();
+  }
+
+  Future<void> zapAll() {
+    return db.transaction(() async {
+      await db.delete(db.promoOmaggi).go();
+      await db.delete(db.promoListini).go();
+      await db.delete(db.promoArticoli).go();
+      await db.delete(db.promozioni).go();
+    });
+  }
+
+  Future<int> insertPromozione(Promozione promo) {
+    return db.into(db.promozioni).insert(promo);
+  }
+
+  Future<int> insertPromoArticolo(PromoArticolo art) {
+    return db.into(db.promoArticoli).insert(art);
+  }
+
+  Future<int> insertPromoListino(PromoListino list) {
+    return db.into(db.promoListini).insert(list);
+  }
+
+  Future<int> insertPromoOmaggio(PromoOmaggio om) {
+    return db.into(db.promoOmaggi).insert(om);
+  }
+}

+ 34 - 0
lib/database/daos/scadenze_dao.dart

@@ -0,0 +1,34 @@
+import 'package:drift/drift.dart';
+import '../database.dart';
+import '../tables/scadenze.dart';
+
+class ScadenzeDao {
+  final AppDatabase db;
+  ScadenzeDao(this.db);
+
+  Future<List<Scadenza>> getScadenzeCliente(int idCliente) {
+    return (db.select(db.scadenze)..where((t) => t.idCliente.equals(idCliente))).get();
+  }
+
+  Future<List<Scadenza>> getScadenzePerAgente(int idAgente) {
+    return (db.select(db.scadenze)
+      ..where((t) => t.idAgente.equals(idAgente) & (t.flgSoppressa.equals(0) | t.flgSoppressa.isNull()))
+    ).get();
+  }
+
+  Future<void> markAllAsDeleted() {
+    return (db.update(db.scadenze)).write(ScadenzeCompanion(stato: const Value('X')));
+  }
+
+  Future<void> removeDeleted() {
+    return (db.delete(db.scadenze)..where((t) => t.stato.equals('X'))).go();
+  }
+
+  Future<int> insertScadenza(Scadenza s) {
+    return db.into(db.scadenze).insert(s);
+  }
+
+  Future<void> clearAll() {
+    return db.delete(db.scadenze).go();
+  }
+}

+ 16 - 0
lib/database/daos/sconti_dao.dart

@@ -0,0 +1,16 @@
+import 'package:drift/drift.dart';
+import '../database.dart';
+import '../tables/sconti.dart';
+
+class ScontiDao {
+  final AppDatabase db;
+  ScontiDao(this.db);
+
+  Future<Sconto?> findByCod(String code) {
+    return (db.select(db.sconti)..where((t) => t.codSconto.equals(code))).getSingleOrNull();
+  }
+
+  Future<Sconto?> findById(int id) {
+    return (db.select(db.sconti)..where((t) => t.idSconto.equals(id))).getSingleOrNull();
+  }
+}

+ 59 - 0
lib/database/daos/statistiche_dao.dart

@@ -0,0 +1,59 @@
+import 'package:drift/drift.dart';
+import '../database.dart';
+
+class StatisticheDao {
+  final AppDatabase db;
+  StatisticheDao(this.db);
+
+  Future<List<StatisticheVenditaData>> getPerAgente(int idAgente, String da, String a) {
+    return (db.select(db.statisticheVendita)
+      ..where((t) =>
+        t.idAgente.equals(idAgente) &
+        t.dataFattura.isNotNull()
+      )
+      ..orderBy([(t) => OrderingTerm(expression: t.dataFattura)])
+    ).get().then((rows) => rows.where((r) {
+      final d = r.dataFattura;
+      return d != null && d.compareTo(da) >= 0 && d.compareTo(a) <= 0;
+    }).toList());
+  }
+
+  Future<List<StatisticheVenditaData>> getPerCliente(int idAgente, int idCliente, String da, String a) {
+    return (db.select(db.statisticheVendita)
+      ..where((t) =>
+        t.idAgente.equals(idAgente) &
+        t.idCliente.equals(idCliente) &
+        t.dataFattura.isNotNull()
+      )
+    ).get().then((rows) => rows.where((r) {
+      final d = r.dataFattura;
+      return d != null && d.compareTo(da) >= 0 && d.compareTo(a) <= 0;
+    }).toList());
+  }
+
+  Future<List<StatisticheVenditaData>> getPerArticolo(int idAgente, int idArticolo, String da, String a) {
+    return (db.select(db.statisticheVendita)
+      ..where((t) =>
+        t.idAgente.equals(idAgente) &
+        t.idArticolo.equals(idArticolo) &
+        t.dataFattura.isNotNull()
+      )
+    ).get().then((rows) => rows.where((r) {
+      final d = r.dataFattura;
+      return d != null && d.compareTo(da) >= 0 && d.compareTo(a) <= 0;
+    }).toList());
+  }
+
+  Future<void> clearAll() {
+    return db.delete(db.statisticheVendita).go();
+  }
+
+  Future<int> insert(StatisticheVenditaData s) {
+    return db.into(db.statisticheVendita).insert(s);
+  }
+
+  Future<int> count() async {
+    final rows = await db.select(db.statisticheVendita).get();
+    return rows.length;
+  }
+}

+ 22 - 0
lib/database/daos/tabelle_dao.dart

@@ -0,0 +1,22 @@
+import 'package:drift/drift.dart';
+import '../database.dart';
+import '../tables/tabelle.dart';
+
+class TabelleDao {
+  final AppDatabase db;
+  TabelleDao(this.db);
+
+  Future<List<Tabella>> getByTipo(String tipo) {
+    return (db.select(db.tabelle)..where((t) => t.tipoTabella.equals(tipo))).get();
+  }
+
+  Future<Tabella?> getByCode(String tipo, String code) {
+    return (db.select(db.tabelle)
+      ..where((t) => t.tipoTabella.equals(tipo) & t.codTabella.equals(code))
+    ).getSingleOrNull();
+  }
+
+  Future<Tabella?> findById(int id) {
+    return (db.select(db.tabelle)..where((t) => t.idTabella.equals(id))).getSingleOrNull();
+  }
+}

+ 132 - 0
lib/database/database.dart

@@ -0,0 +1,132 @@
+import 'package:drift/drift.dart';
+import 'package:ristoris/core/constants.dart';
+import 'db_connector.dart';
+import 'tables/agenti.dart';
+import 'tables/articoli.dart';
+import 'tables/clienti.dart';
+import 'tables/ordini.dart';
+import 'tables/righe_ordine.dart';
+import 'tables/filiali.dart';
+import 'tables/listini.dart';
+import 'tables/listini_articolo.dart';
+import 'tables/listini_cliente.dart';
+import 'tables/sconti.dart';
+import 'tables/sconti_cliente.dart';
+import 'tables/pagamenti.dart';
+import 'tables/parametri.dart';
+import 'tables/tabelle.dart';
+import 'tables/promozioni.dart';
+import 'tables/promo_articoli.dart';
+import 'tables/promo_listini.dart';
+import 'tables/promo_omaggi.dart';
+import 'tables/clienti_agente.dart';
+import 'tables/scadenze.dart';
+import 'tables/statistiche_vendita.dart';
+import 'views/articoli_con_promo.dart';
+import 'views/ordini_senza_righe.dart';
+import 'views/top_item.dart';
+import 'views/top_customer.dart';
+
+part 'database.g.dart';
+
+@DriftDatabase(
+  tables: [
+    Agenti,
+    Articoli,
+    Clienti,
+    Ordini,
+    RigheOrdine,
+    Filiali,
+    Listini,
+    ListiniArticolo,
+    ListiniCliente,
+    Sconti,
+    ScontiCliente,
+    Pagamenti,
+    Parametri,
+    Tabelle,
+    Promozioni,
+    PromoArticoli,
+    PromoListini,
+    PromoOmaggi,
+    ClientiAgente,
+    Scadenze,
+    StatisticheVendita,
+    ArticoliConPromo,
+    OrdiniSenzaRighe,
+    TopItem,
+    TopCustomer,
+  ],
+)
+class AppDatabase extends _$AppDatabase {
+  AppDatabase() : super(_createDatabase());
+
+  static String? _dbDirPath;
+
+  static QueryExecutor _createDatabase() {
+    return createDb(_dbDirPath ?? '', AppConstants.kDbName);
+  }
+
+  static Future<void> ensureDatabaseReady() async {
+    _dbDirPath = await ensureDbReady();
+  }
+
+  static Future<bool> isDbEmpty() async {
+    return isDatabaseEmpty(_dbDirPath ?? '');
+  }
+
+  @override
+  int get schemaVersion => 7;
+
+  @override
+  MigrationStrategy get migration => MigrationStrategy(
+    onCreate: (m) async {
+      await m.createAll();
+    },
+    onUpgrade: (m, from, to) async {
+      if (from < 2) {
+        await m.addColumn(
+          statisticheVendita,
+          statisticheVendita.codStatistiche,
+        );
+      }
+      if (from < 3) {
+        await customStatement(
+          'CREATE INDEX IF NOT EXISTS ndx_ro_idordine ON Righe_ordine(idOrdine)',
+        );
+      }
+      if (from < 4) {
+        await customStatement(
+          'CREATE INDEX IF NOT EXISTS NDX_FILIALE_REMOTO ON Filiali(idFilialeRemoto)',
+        );
+        await customStatement(
+          'CREATE INDEX IF NOT EXISTS NDX_CLI_COD ON Clienti(codCliente)',
+        );
+        await customStatement(
+          'CREATE INDEX IF NOT EXISTS NDX_CLI_REMOTO ON Clienti(idClienteRemoto)',
+        );
+        await customStatement(
+          'CREATE INDEX IF NOT EXISTS NDX_idOrdine_SEDE ON Ordini(idOrdineSede)',
+        );
+      }
+      if (from < 5) {
+        await customStatement(
+          'CREATE INDEX IF NOT EXISTS NDX_NUMERO_ORDINE ON Ordini(numeroOrdine)',
+        );
+      }
+      if (from < 6) {
+        await customStatement(
+          'CREATE INDEX IF NOT EXISTS NDX_filiali_cliente ON Filiali(idCliente)',
+        );
+      }
+      if (from < 7) {
+        await customStatement(
+          'CREATE INDEX IF NOT EXISTS ndx_stat_cliart ON Statistiche_vendita(idCliente, idArticolo)',
+        );
+        await customStatement(
+          'CREATE INDEX IF NOT EXISTS ndx_righeOrdine_promo ON Righe_ordine(idOrdine, rigaPromozione)',
+        );
+      }
+    },
+  );
+}

+ 25575 - 0
lib/database/database.g.dart

@@ -0,0 +1,25575 @@
+// GENERATED CODE - DO NOT MODIFY BY HAND
+
+part of 'database.dart';
+
+// ignore_for_file: type=lint
+class $AgentiTable extends Agenti with TableInfo<$AgentiTable, Agente> {
+  @override
+  final GeneratedDatabase attachedDatabase;
+  final String? _alias;
+  $AgentiTable(this.attachedDatabase, [this._alias]);
+  static const VerificationMeta _idAgenteMeta = const VerificationMeta(
+    'idAgente',
+  );
+  @override
+  late final GeneratedColumn<int> idAgente = GeneratedColumn<int>(
+    'idAgente',
+    aliasedName,
+    false,
+    hasAutoIncrement: true,
+    type: DriftSqlType.int,
+    requiredDuringInsert: false,
+    defaultConstraints: GeneratedColumn.constraintIsAlways(
+      'PRIMARY KEY AUTOINCREMENT',
+    ),
+  );
+  static const VerificationMeta _codAgenteMeta = const VerificationMeta(
+    'codAgente',
+  );
+  @override
+  late final GeneratedColumn<String> codAgente = GeneratedColumn<String>(
+    'codAgente',
+    aliasedName,
+    false,
+    type: DriftSqlType.string,
+    requiredDuringInsert: true,
+  );
+  static const VerificationMeta _ragioneSocialeMeta = const VerificationMeta(
+    'ragioneSociale',
+  );
+  @override
+  late final GeneratedColumn<String> ragioneSociale = GeneratedColumn<String>(
+    'ragioneSociale',
+    aliasedName,
+    true,
+    type: DriftSqlType.string,
+    requiredDuringInsert: false,
+  );
+  static const VerificationMeta _pwdMeta = const VerificationMeta('pwd');
+  @override
+  late final GeneratedColumn<String> pwd = GeneratedColumn<String>(
+    'pwd',
+    aliasedName,
+    true,
+    type: DriftSqlType.string,
+    requiredDuringInsert: false,
+  );
+  static const VerificationMeta _telefonoMeta = const VerificationMeta(
+    'telefono',
+  );
+  @override
+  late final GeneratedColumn<String> telefono = GeneratedColumn<String>(
+    'telefono',
+    aliasedName,
+    true,
+    type: DriftSqlType.string,
+    requiredDuringInsert: false,
+  );
+  static const VerificationMeta _cellulareMeta = const VerificationMeta(
+    'cellulare',
+  );
+  @override
+  late final GeneratedColumn<String> cellulare = GeneratedColumn<String>(
+    'cellulare',
+    aliasedName,
+    true,
+    type: DriftSqlType.string,
+    requiredDuringInsert: false,
+  );
+  static const VerificationMeta _emailMeta = const VerificationMeta('email');
+  @override
+  late final GeneratedColumn<String> email = GeneratedColumn<String>(
+    'email',
+    aliasedName,
+    true,
+    type: DriftSqlType.string,
+    requiredDuringInsert: false,
+  );
+  static const VerificationMeta _indirizzoMeta = const VerificationMeta(
+    'indirizzo',
+  );
+  @override
+  late final GeneratedColumn<String> indirizzo = GeneratedColumn<String>(
+    'indirizzo',
+    aliasedName,
+    true,
+    type: DriftSqlType.string,
+    requiredDuringInsert: false,
+  );
+  static const VerificationMeta _cittaMeta = const VerificationMeta('citta');
+  @override
+  late final GeneratedColumn<String> citta = GeneratedColumn<String>(
+    'citta',
+    aliasedName,
+    true,
+    type: DriftSqlType.string,
+    requiredDuringInsert: false,
+  );
+  static const VerificationMeta _capMeta = const VerificationMeta('cap');
+  @override
+  late final GeneratedColumn<String> cap = GeneratedColumn<String>(
+    'cap',
+    aliasedName,
+    true,
+    type: DriftSqlType.string,
+    requiredDuringInsert: false,
+  );
+  static const VerificationMeta _provinciaMeta = const VerificationMeta(
+    'provincia',
+  );
+  @override
+  late final GeneratedColumn<String> provincia = GeneratedColumn<String>(
+    'provincia',
+    aliasedName,
+    true,
+    type: DriftSqlType.string,
+    requiredDuringInsert: false,
+  );
+  static const VerificationMeta _frazioneMeta = const VerificationMeta(
+    'frazione',
+  );
+  @override
+  late final GeneratedColumn<String> frazione = GeneratedColumn<String>(
+    'frazione',
+    aliasedName,
+    true,
+    type: DriftSqlType.string,
+    requiredDuringInsert: false,
+  );
+  static const VerificationMeta _attivoMeta = const VerificationMeta('attivo');
+  @override
+  late final GeneratedColumn<int> attivo = GeneratedColumn<int>(
+    'attivo',
+    aliasedName,
+    false,
+    type: DriftSqlType.int,
+    requiredDuringInsert: false,
+    defaultValue: const Constant(1),
+  );
+  static const VerificationMeta _modificaPrezziMeta = const VerificationMeta(
+    'modificaPrezzi',
+  );
+  @override
+  late final GeneratedColumn<int> modificaPrezzi = GeneratedColumn<int>(
+    'modificaPrezzi',
+    aliasedName,
+    true,
+    type: DriftSqlType.int,
+    requiredDuringInsert: false,
+  );
+  static const VerificationMeta _capoAreaMeta = const VerificationMeta(
+    'capoArea',
+  );
+  @override
+  late final GeneratedColumn<String> capoArea = GeneratedColumn<String>(
+    'capoArea',
+    aliasedName,
+    true,
+    type: DriftSqlType.string,
+    requiredDuringInsert: false,
+  );
+  @override
+  List<GeneratedColumn> get $columns => [
+    idAgente,
+    codAgente,
+    ragioneSociale,
+    pwd,
+    telefono,
+    cellulare,
+    email,
+    indirizzo,
+    citta,
+    cap,
+    provincia,
+    frazione,
+    attivo,
+    modificaPrezzi,
+    capoArea,
+  ];
+  @override
+  String get aliasedName => _alias ?? actualTableName;
+  @override
+  String get actualTableName => $name;
+  static const String $name = 'Agenti';
+  @override
+  VerificationContext validateIntegrity(
+    Insertable<Agente> instance, {
+    bool isInserting = false,
+  }) {
+    final context = VerificationContext();
+    final data = instance.toColumns(true);
+    if (data.containsKey('idAgente')) {
+      context.handle(
+        _idAgenteMeta,
+        idAgente.isAcceptableOrUnknown(data['idAgente']!, _idAgenteMeta),
+      );
+    }
+    if (data.containsKey('codAgente')) {
+      context.handle(
+        _codAgenteMeta,
+        codAgente.isAcceptableOrUnknown(data['codAgente']!, _codAgenteMeta),
+      );
+    } else if (isInserting) {
+      context.missing(_codAgenteMeta);
+    }
+    if (data.containsKey('ragioneSociale')) {
+      context.handle(
+        _ragioneSocialeMeta,
+        ragioneSociale.isAcceptableOrUnknown(
+          data['ragioneSociale']!,
+          _ragioneSocialeMeta,
+        ),
+      );
+    }
+    if (data.containsKey('pwd')) {
+      context.handle(
+        _pwdMeta,
+        pwd.isAcceptableOrUnknown(data['pwd']!, _pwdMeta),
+      );
+    }
+    if (data.containsKey('telefono')) {
+      context.handle(
+        _telefonoMeta,
+        telefono.isAcceptableOrUnknown(data['telefono']!, _telefonoMeta),
+      );
+    }
+    if (data.containsKey('cellulare')) {
+      context.handle(
+        _cellulareMeta,
+        cellulare.isAcceptableOrUnknown(data['cellulare']!, _cellulareMeta),
+      );
+    }
+    if (data.containsKey('email')) {
+      context.handle(
+        _emailMeta,
+        email.isAcceptableOrUnknown(data['email']!, _emailMeta),
+      );
+    }
+    if (data.containsKey('indirizzo')) {
+      context.handle(
+        _indirizzoMeta,
+        indirizzo.isAcceptableOrUnknown(data['indirizzo']!, _indirizzoMeta),
+      );
+    }
+    if (data.containsKey('citta')) {
+      context.handle(
+        _cittaMeta,
+        citta.isAcceptableOrUnknown(data['citta']!, _cittaMeta),
+      );
+    }
+    if (data.containsKey('cap')) {
+      context.handle(
+        _capMeta,
+        cap.isAcceptableOrUnknown(data['cap']!, _capMeta),
+      );
+    }
+    if (data.containsKey('provincia')) {
+      context.handle(
+        _provinciaMeta,
+        provincia.isAcceptableOrUnknown(data['provincia']!, _provinciaMeta),
+      );
+    }
+    if (data.containsKey('frazione')) {
+      context.handle(
+        _frazioneMeta,
+        frazione.isAcceptableOrUnknown(data['frazione']!, _frazioneMeta),
+      );
+    }
+    if (data.containsKey('attivo')) {
+      context.handle(
+        _attivoMeta,
+        attivo.isAcceptableOrUnknown(data['attivo']!, _attivoMeta),
+      );
+    }
+    if (data.containsKey('modificaPrezzi')) {
+      context.handle(
+        _modificaPrezziMeta,
+        modificaPrezzi.isAcceptableOrUnknown(
+          data['modificaPrezzi']!,
+          _modificaPrezziMeta,
+        ),
+      );
+    }
+    if (data.containsKey('capoArea')) {
+      context.handle(
+        _capoAreaMeta,
+        capoArea.isAcceptableOrUnknown(data['capoArea']!, _capoAreaMeta),
+      );
+    }
+    return context;
+  }
+
+  @override
+  Set<GeneratedColumn> get $primaryKey => {idAgente};
+  @override
+  Agente map(Map<String, dynamic> data, {String? tablePrefix}) {
+    final effectivePrefix = tablePrefix != null ? '$tablePrefix.' : '';
+    return Agente(
+      idAgente: attachedDatabase.typeMapping.read(
+        DriftSqlType.int,
+        data['${effectivePrefix}idAgente'],
+      )!,
+      codAgente: attachedDatabase.typeMapping.read(
+        DriftSqlType.string,
+        data['${effectivePrefix}codAgente'],
+      )!,
+      ragioneSociale: attachedDatabase.typeMapping.read(
+        DriftSqlType.string,
+        data['${effectivePrefix}ragioneSociale'],
+      ),
+      pwd: attachedDatabase.typeMapping.read(
+        DriftSqlType.string,
+        data['${effectivePrefix}pwd'],
+      ),
+      telefono: attachedDatabase.typeMapping.read(
+        DriftSqlType.string,
+        data['${effectivePrefix}telefono'],
+      ),
+      cellulare: attachedDatabase.typeMapping.read(
+        DriftSqlType.string,
+        data['${effectivePrefix}cellulare'],
+      ),
+      email: attachedDatabase.typeMapping.read(
+        DriftSqlType.string,
+        data['${effectivePrefix}email'],
+      ),
+      indirizzo: attachedDatabase.typeMapping.read(
+        DriftSqlType.string,
+        data['${effectivePrefix}indirizzo'],
+      ),
+      citta: attachedDatabase.typeMapping.read(
+        DriftSqlType.string,
+        data['${effectivePrefix}citta'],
+      ),
+      cap: attachedDatabase.typeMapping.read(
+        DriftSqlType.string,
+        data['${effectivePrefix}cap'],
+      ),
+      provincia: attachedDatabase.typeMapping.read(
+        DriftSqlType.string,
+        data['${effectivePrefix}provincia'],
+      ),
+      frazione: attachedDatabase.typeMapping.read(
+        DriftSqlType.string,
+        data['${effectivePrefix}frazione'],
+      ),
+      attivo: attachedDatabase.typeMapping.read(
+        DriftSqlType.int,
+        data['${effectivePrefix}attivo'],
+      )!,
+      modificaPrezzi: attachedDatabase.typeMapping.read(
+        DriftSqlType.int,
+        data['${effectivePrefix}modificaPrezzi'],
+      ),
+      capoArea: attachedDatabase.typeMapping.read(
+        DriftSqlType.string,
+        data['${effectivePrefix}capoArea'],
+      ),
+    );
+  }
+
+  @override
+  $AgentiTable createAlias(String alias) {
+    return $AgentiTable(attachedDatabase, alias);
+  }
+}
+
+class Agente extends DataClass implements Insertable<Agente> {
+  final int idAgente;
+  final String codAgente;
+  final String? ragioneSociale;
+  final String? pwd;
+  final String? telefono;
+  final String? cellulare;
+  final String? email;
+  final String? indirizzo;
+  final String? citta;
+  final String? cap;
+  final String? provincia;
+  final String? frazione;
+  final int attivo;
+  final int? modificaPrezzi;
+  final String? capoArea;
+  const Agente({
+    required this.idAgente,
+    required this.codAgente,
+    this.ragioneSociale,
+    this.pwd,
+    this.telefono,
+    this.cellulare,
+    this.email,
+    this.indirizzo,
+    this.citta,
+    this.cap,
+    this.provincia,
+    this.frazione,
+    required this.attivo,
+    this.modificaPrezzi,
+    this.capoArea,
+  });
+  @override
+  Map<String, Expression> toColumns(bool nullToAbsent) {
+    final map = <String, Expression>{};
+    map['idAgente'] = Variable<int>(idAgente);
+    map['codAgente'] = Variable<String>(codAgente);
+    if (!nullToAbsent || ragioneSociale != null) {
+      map['ragioneSociale'] = Variable<String>(ragioneSociale);
+    }
+    if (!nullToAbsent || pwd != null) {
+      map['pwd'] = Variable<String>(pwd);
+    }
+    if (!nullToAbsent || telefono != null) {
+      map['telefono'] = Variable<String>(telefono);
+    }
+    if (!nullToAbsent || cellulare != null) {
+      map['cellulare'] = Variable<String>(cellulare);
+    }
+    if (!nullToAbsent || email != null) {
+      map['email'] = Variable<String>(email);
+    }
+    if (!nullToAbsent || indirizzo != null) {
+      map['indirizzo'] = Variable<String>(indirizzo);
+    }
+    if (!nullToAbsent || citta != null) {
+      map['citta'] = Variable<String>(citta);
+    }
+    if (!nullToAbsent || cap != null) {
+      map['cap'] = Variable<String>(cap);
+    }
+    if (!nullToAbsent || provincia != null) {
+      map['provincia'] = Variable<String>(provincia);
+    }
+    if (!nullToAbsent || frazione != null) {
+      map['frazione'] = Variable<String>(frazione);
+    }
+    map['attivo'] = Variable<int>(attivo);
+    if (!nullToAbsent || modificaPrezzi != null) {
+      map['modificaPrezzi'] = Variable<int>(modificaPrezzi);
+    }
+    if (!nullToAbsent || capoArea != null) {
+      map['capoArea'] = Variable<String>(capoArea);
+    }
+    return map;
+  }
+
+  AgentiCompanion toCompanion(bool nullToAbsent) {
+    return AgentiCompanion(
+      idAgente: Value(idAgente),
+      codAgente: Value(codAgente),
+      ragioneSociale: ragioneSociale == null && nullToAbsent
+          ? const Value.absent()
+          : Value(ragioneSociale),
+      pwd: pwd == null && nullToAbsent ? const Value.absent() : Value(pwd),
+      telefono: telefono == null && nullToAbsent
+          ? const Value.absent()
+          : Value(telefono),
+      cellulare: cellulare == null && nullToAbsent
+          ? const Value.absent()
+          : Value(cellulare),
+      email: email == null && nullToAbsent
+          ? const Value.absent()
+          : Value(email),
+      indirizzo: indirizzo == null && nullToAbsent
+          ? const Value.absent()
+          : Value(indirizzo),
+      citta: citta == null && nullToAbsent
+          ? const Value.absent()
+          : Value(citta),
+      cap: cap == null && nullToAbsent ? const Value.absent() : Value(cap),
+      provincia: provincia == null && nullToAbsent
+          ? const Value.absent()
+          : Value(provincia),
+      frazione: frazione == null && nullToAbsent
+          ? const Value.absent()
+          : Value(frazione),
+      attivo: Value(attivo),
+      modificaPrezzi: modificaPrezzi == null && nullToAbsent
+          ? const Value.absent()
+          : Value(modificaPrezzi),
+      capoArea: capoArea == null && nullToAbsent
+          ? const Value.absent()
+          : Value(capoArea),
+    );
+  }
+
+  factory Agente.fromJson(
+    Map<String, dynamic> json, {
+    ValueSerializer? serializer,
+  }) {
+    serializer ??= driftRuntimeOptions.defaultSerializer;
+    return Agente(
+      idAgente: serializer.fromJson<int>(json['idAgente']),
+      codAgente: serializer.fromJson<String>(json['codAgente']),
+      ragioneSociale: serializer.fromJson<String?>(json['ragioneSociale']),
+      pwd: serializer.fromJson<String?>(json['pwd']),
+      telefono: serializer.fromJson<String?>(json['telefono']),
+      cellulare: serializer.fromJson<String?>(json['cellulare']),
+      email: serializer.fromJson<String?>(json['email']),
+      indirizzo: serializer.fromJson<String?>(json['indirizzo']),
+      citta: serializer.fromJson<String?>(json['citta']),
+      cap: serializer.fromJson<String?>(json['cap']),
+      provincia: serializer.fromJson<String?>(json['provincia']),
+      frazione: serializer.fromJson<String?>(json['frazione']),
+      attivo: serializer.fromJson<int>(json['attivo']),
+      modificaPrezzi: serializer.fromJson<int?>(json['modificaPrezzi']),
+      capoArea: serializer.fromJson<String?>(json['capoArea']),
+    );
+  }
+  @override
+  Map<String, dynamic> toJson({ValueSerializer? serializer}) {
+    serializer ??= driftRuntimeOptions.defaultSerializer;
+    return <String, dynamic>{
+      'idAgente': serializer.toJson<int>(idAgente),
+      'codAgente': serializer.toJson<String>(codAgente),
+      'ragioneSociale': serializer.toJson<String?>(ragioneSociale),
+      'pwd': serializer.toJson<String?>(pwd),
+      'telefono': serializer.toJson<String?>(telefono),
+      'cellulare': serializer.toJson<String?>(cellulare),
+      'email': serializer.toJson<String?>(email),
+      'indirizzo': serializer.toJson<String?>(indirizzo),
+      'citta': serializer.toJson<String?>(citta),
+      'cap': serializer.toJson<String?>(cap),
+      'provincia': serializer.toJson<String?>(provincia),
+      'frazione': serializer.toJson<String?>(frazione),
+      'attivo': serializer.toJson<int>(attivo),
+      'modificaPrezzi': serializer.toJson<int?>(modificaPrezzi),
+      'capoArea': serializer.toJson<String?>(capoArea),
+    };
+  }
+
+  Agente copyWith({
+    int? idAgente,
+    String? codAgente,
+    Value<String?> ragioneSociale = const Value.absent(),
+    Value<String?> pwd = const Value.absent(),
+    Value<String?> telefono = const Value.absent(),
+    Value<String?> cellulare = const Value.absent(),
+    Value<String?> email = const Value.absent(),
+    Value<String?> indirizzo = const Value.absent(),
+    Value<String?> citta = const Value.absent(),
+    Value<String?> cap = const Value.absent(),
+    Value<String?> provincia = const Value.absent(),
+    Value<String?> frazione = const Value.absent(),
+    int? attivo,
+    Value<int?> modificaPrezzi = const Value.absent(),
+    Value<String?> capoArea = const Value.absent(),
+  }) => Agente(
+    idAgente: idAgente ?? this.idAgente,
+    codAgente: codAgente ?? this.codAgente,
+    ragioneSociale: ragioneSociale.present
+        ? ragioneSociale.value
+        : this.ragioneSociale,
+    pwd: pwd.present ? pwd.value : this.pwd,
+    telefono: telefono.present ? telefono.value : this.telefono,
+    cellulare: cellulare.present ? cellulare.value : this.cellulare,
+    email: email.present ? email.value : this.email,
+    indirizzo: indirizzo.present ? indirizzo.value : this.indirizzo,
+    citta: citta.present ? citta.value : this.citta,
+    cap: cap.present ? cap.value : this.cap,
+    provincia: provincia.present ? provincia.value : this.provincia,
+    frazione: frazione.present ? frazione.value : this.frazione,
+    attivo: attivo ?? this.attivo,
+    modificaPrezzi: modificaPrezzi.present
+        ? modificaPrezzi.value
+        : this.modificaPrezzi,
+    capoArea: capoArea.present ? capoArea.value : this.capoArea,
+  );
+  Agente copyWithCompanion(AgentiCompanion data) {
+    return Agente(
+      idAgente: data.idAgente.present ? data.idAgente.value : this.idAgente,
+      codAgente: data.codAgente.present ? data.codAgente.value : this.codAgente,
+      ragioneSociale: data.ragioneSociale.present
+          ? data.ragioneSociale.value
+          : this.ragioneSociale,
+      pwd: data.pwd.present ? data.pwd.value : this.pwd,
+      telefono: data.telefono.present ? data.telefono.value : this.telefono,
+      cellulare: data.cellulare.present ? data.cellulare.value : this.cellulare,
+      email: data.email.present ? data.email.value : this.email,
+      indirizzo: data.indirizzo.present ? data.indirizzo.value : this.indirizzo,
+      citta: data.citta.present ? data.citta.value : this.citta,
+      cap: data.cap.present ? data.cap.value : this.cap,
+      provincia: data.provincia.present ? data.provincia.value : this.provincia,
+      frazione: data.frazione.present ? data.frazione.value : this.frazione,
+      attivo: data.attivo.present ? data.attivo.value : this.attivo,
+      modificaPrezzi: data.modificaPrezzi.present
+          ? data.modificaPrezzi.value
+          : this.modificaPrezzi,
+      capoArea: data.capoArea.present ? data.capoArea.value : this.capoArea,
+    );
+  }
+
+  @override
+  String toString() {
+    return (StringBuffer('Agente(')
+          ..write('idAgente: $idAgente, ')
+          ..write('codAgente: $codAgente, ')
+          ..write('ragioneSociale: $ragioneSociale, ')
+          ..write('pwd: $pwd, ')
+          ..write('telefono: $telefono, ')
+          ..write('cellulare: $cellulare, ')
+          ..write('email: $email, ')
+          ..write('indirizzo: $indirizzo, ')
+          ..write('citta: $citta, ')
+          ..write('cap: $cap, ')
+          ..write('provincia: $provincia, ')
+          ..write('frazione: $frazione, ')
+          ..write('attivo: $attivo, ')
+          ..write('modificaPrezzi: $modificaPrezzi, ')
+          ..write('capoArea: $capoArea')
+          ..write(')'))
+        .toString();
+  }
+
+  @override
+  int get hashCode => Object.hash(
+    idAgente,
+    codAgente,
+    ragioneSociale,
+    pwd,
+    telefono,
+    cellulare,
+    email,
+    indirizzo,
+    citta,
+    cap,
+    provincia,
+    frazione,
+    attivo,
+    modificaPrezzi,
+    capoArea,
+  );
+  @override
+  bool operator ==(Object other) =>
+      identical(this, other) ||
+      (other is Agente &&
+          other.idAgente == this.idAgente &&
+          other.codAgente == this.codAgente &&
+          other.ragioneSociale == this.ragioneSociale &&
+          other.pwd == this.pwd &&
+          other.telefono == this.telefono &&
+          other.cellulare == this.cellulare &&
+          other.email == this.email &&
+          other.indirizzo == this.indirizzo &&
+          other.citta == this.citta &&
+          other.cap == this.cap &&
+          other.provincia == this.provincia &&
+          other.frazione == this.frazione &&
+          other.attivo == this.attivo &&
+          other.modificaPrezzi == this.modificaPrezzi &&
+          other.capoArea == this.capoArea);
+}
+
+class AgentiCompanion extends UpdateCompanion<Agente> {
+  final Value<int> idAgente;
+  final Value<String> codAgente;
+  final Value<String?> ragioneSociale;
+  final Value<String?> pwd;
+  final Value<String?> telefono;
+  final Value<String?> cellulare;
+  final Value<String?> email;
+  final Value<String?> indirizzo;
+  final Value<String?> citta;
+  final Value<String?> cap;
+  final Value<String?> provincia;
+  final Value<String?> frazione;
+  final Value<int> attivo;
+  final Value<int?> modificaPrezzi;
+  final Value<String?> capoArea;
+  const AgentiCompanion({
+    this.idAgente = const Value.absent(),
+    this.codAgente = const Value.absent(),
+    this.ragioneSociale = const Value.absent(),
+    this.pwd = const Value.absent(),
+    this.telefono = const Value.absent(),
+    this.cellulare = const Value.absent(),
+    this.email = const Value.absent(),
+    this.indirizzo = const Value.absent(),
+    this.citta = const Value.absent(),
+    this.cap = const Value.absent(),
+    this.provincia = const Value.absent(),
+    this.frazione = const Value.absent(),
+    this.attivo = const Value.absent(),
+    this.modificaPrezzi = const Value.absent(),
+    this.capoArea = const Value.absent(),
+  });
+  AgentiCompanion.insert({
+    this.idAgente = const Value.absent(),
+    required String codAgente,
+    this.ragioneSociale = const Value.absent(),
+    this.pwd = const Value.absent(),
+    this.telefono = const Value.absent(),
+    this.cellulare = const Value.absent(),
+    this.email = const Value.absent(),
+    this.indirizzo = const Value.absent(),
+    this.citta = const Value.absent(),
+    this.cap = const Value.absent(),
+    this.provincia = const Value.absent(),
+    this.frazione = const Value.absent(),
+    this.attivo = const Value.absent(),
+    this.modificaPrezzi = const Value.absent(),
+    this.capoArea = const Value.absent(),
+  }) : codAgente = Value(codAgente);
+  static Insertable<Agente> custom({
+    Expression<int>? idAgente,
+    Expression<String>? codAgente,
+    Expression<String>? ragioneSociale,
+    Expression<String>? pwd,
+    Expression<String>? telefono,
+    Expression<String>? cellulare,
+    Expression<String>? email,
+    Expression<String>? indirizzo,
+    Expression<String>? citta,
+    Expression<String>? cap,
+    Expression<String>? provincia,
+    Expression<String>? frazione,
+    Expression<int>? attivo,
+    Expression<int>? modificaPrezzi,
+    Expression<String>? capoArea,
+  }) {
+    return RawValuesInsertable({
+      if (idAgente != null) 'idAgente': idAgente,
+      if (codAgente != null) 'codAgente': codAgente,
+      if (ragioneSociale != null) 'ragioneSociale': ragioneSociale,
+      if (pwd != null) 'pwd': pwd,
+      if (telefono != null) 'telefono': telefono,
+      if (cellulare != null) 'cellulare': cellulare,
+      if (email != null) 'email': email,
+      if (indirizzo != null) 'indirizzo': indirizzo,
+      if (citta != null) 'citta': citta,
+      if (cap != null) 'cap': cap,
+      if (provincia != null) 'provincia': provincia,
+      if (frazione != null) 'frazione': frazione,
+      if (attivo != null) 'attivo': attivo,
+      if (modificaPrezzi != null) 'modificaPrezzi': modificaPrezzi,
+      if (capoArea != null) 'capoArea': capoArea,
+    });
+  }
+
+  AgentiCompanion copyWith({
+    Value<int>? idAgente,
+    Value<String>? codAgente,
+    Value<String?>? ragioneSociale,
+    Value<String?>? pwd,
+    Value<String?>? telefono,
+    Value<String?>? cellulare,
+    Value<String?>? email,
+    Value<String?>? indirizzo,
+    Value<String?>? citta,
+    Value<String?>? cap,
+    Value<String?>? provincia,
+    Value<String?>? frazione,
+    Value<int>? attivo,
+    Value<int?>? modificaPrezzi,
+    Value<String?>? capoArea,
+  }) {
+    return AgentiCompanion(
+      idAgente: idAgente ?? this.idAgente,
+      codAgente: codAgente ?? this.codAgente,
+      ragioneSociale: ragioneSociale ?? this.ragioneSociale,
+      pwd: pwd ?? this.pwd,
+      telefono: telefono ?? this.telefono,
+      cellulare: cellulare ?? this.cellulare,
+      email: email ?? this.email,
+      indirizzo: indirizzo ?? this.indirizzo,
+      citta: citta ?? this.citta,
+      cap: cap ?? this.cap,
+      provincia: provincia ?? this.provincia,
+      frazione: frazione ?? this.frazione,
+      attivo: attivo ?? this.attivo,
+      modificaPrezzi: modificaPrezzi ?? this.modificaPrezzi,
+      capoArea: capoArea ?? this.capoArea,
+    );
+  }
+
+  @override
+  Map<String, Expression> toColumns(bool nullToAbsent) {
+    final map = <String, Expression>{};
+    if (idAgente.present) {
+      map['idAgente'] = Variable<int>(idAgente.value);
+    }
+    if (codAgente.present) {
+      map['codAgente'] = Variable<String>(codAgente.value);
+    }
+    if (ragioneSociale.present) {
+      map['ragioneSociale'] = Variable<String>(ragioneSociale.value);
+    }
+    if (pwd.present) {
+      map['pwd'] = Variable<String>(pwd.value);
+    }
+    if (telefono.present) {
+      map['telefono'] = Variable<String>(telefono.value);
+    }
+    if (cellulare.present) {
+      map['cellulare'] = Variable<String>(cellulare.value);
+    }
+    if (email.present) {
+      map['email'] = Variable<String>(email.value);
+    }
+    if (indirizzo.present) {
+      map['indirizzo'] = Variable<String>(indirizzo.value);
+    }
+    if (citta.present) {
+      map['citta'] = Variable<String>(citta.value);
+    }
+    if (cap.present) {
+      map['cap'] = Variable<String>(cap.value);
+    }
+    if (provincia.present) {
+      map['provincia'] = Variable<String>(provincia.value);
+    }
+    if (frazione.present) {
+      map['frazione'] = Variable<String>(frazione.value);
+    }
+    if (attivo.present) {
+      map['attivo'] = Variable<int>(attivo.value);
+    }
+    if (modificaPrezzi.present) {
+      map['modificaPrezzi'] = Variable<int>(modificaPrezzi.value);
+    }
+    if (capoArea.present) {
+      map['capoArea'] = Variable<String>(capoArea.value);
+    }
+    return map;
+  }
+
+  @override
+  String toString() {
+    return (StringBuffer('AgentiCompanion(')
+          ..write('idAgente: $idAgente, ')
+          ..write('codAgente: $codAgente, ')
+          ..write('ragioneSociale: $ragioneSociale, ')
+          ..write('pwd: $pwd, ')
+          ..write('telefono: $telefono, ')
+          ..write('cellulare: $cellulare, ')
+          ..write('email: $email, ')
+          ..write('indirizzo: $indirizzo, ')
+          ..write('citta: $citta, ')
+          ..write('cap: $cap, ')
+          ..write('provincia: $provincia, ')
+          ..write('frazione: $frazione, ')
+          ..write('attivo: $attivo, ')
+          ..write('modificaPrezzi: $modificaPrezzi, ')
+          ..write('capoArea: $capoArea')
+          ..write(')'))
+        .toString();
+  }
+}
+
+class $ArticoliTable extends Articoli with TableInfo<$ArticoliTable, Articolo> {
+  @override
+  final GeneratedDatabase attachedDatabase;
+  final String? _alias;
+  $ArticoliTable(this.attachedDatabase, [this._alias]);
+  static const VerificationMeta _idArticoloMeta = const VerificationMeta(
+    'idArticolo',
+  );
+  @override
+  late final GeneratedColumn<int> idArticolo = GeneratedColumn<int>(
+    'idArticolo',
+    aliasedName,
+    false,
+    hasAutoIncrement: true,
+    type: DriftSqlType.int,
+    requiredDuringInsert: false,
+    defaultConstraints: GeneratedColumn.constraintIsAlways(
+      'PRIMARY KEY AUTOINCREMENT',
+    ),
+  );
+  static const VerificationMeta _posizioneMeta = const VerificationMeta(
+    'posizione',
+  );
+  @override
+  late final GeneratedColumn<int> posizione = GeneratedColumn<int>(
+    'posizione',
+    aliasedName,
+    true,
+    type: DriftSqlType.int,
+    requiredDuringInsert: false,
+  );
+  static const VerificationMeta _codArticoloMeta = const VerificationMeta(
+    'codArticolo',
+  );
+  @override
+  late final GeneratedColumn<String> codArticolo = GeneratedColumn<String>(
+    'codArticolo',
+    aliasedName,
+    false,
+    type: DriftSqlType.string,
+    requiredDuringInsert: true,
+  );
+  static const VerificationMeta _descrizioneMeta = const VerificationMeta(
+    'descrizione',
+  );
+  @override
+  late final GeneratedColumn<String> descrizione = GeneratedColumn<String>(
+    'descrizione',
+    aliasedName,
+    true,
+    type: DriftSqlType.string,
+    requiredDuringInsert: false,
+  );
+  static const VerificationMeta _eanMeta = const VerificationMeta('ean');
+  @override
+  late final GeneratedColumn<String> ean = GeneratedColumn<String>(
+    'ean',
+    aliasedName,
+    true,
+    type: DriftSqlType.string,
+    requiredDuringInsert: false,
+  );
+  static const VerificationMeta _idIvaMeta = const VerificationMeta('idIva');
+  @override
+  late final GeneratedColumn<int> idIva = GeneratedColumn<int>(
+    'idIva',
+    aliasedName,
+    true,
+    type: DriftSqlType.int,
+    requiredDuringInsert: false,
+  );
+  static const VerificationMeta _idClassifica1Meta = const VerificationMeta(
+    'idClassifica1',
+  );
+  @override
+  late final GeneratedColumn<int> idClassifica1 = GeneratedColumn<int>(
+    'idClassifica1',
+    aliasedName,
+    true,
+    type: DriftSqlType.int,
+    requiredDuringInsert: false,
+  );
+  static const VerificationMeta _idClassifica2Meta = const VerificationMeta(
+    'idClassifica2',
+  );
+  @override
+  late final GeneratedColumn<int> idClassifica2 = GeneratedColumn<int>(
+    'idClassifica2',
+    aliasedName,
+    true,
+    type: DriftSqlType.int,
+    requiredDuringInsert: false,
+  );
+  static const VerificationMeta _idClassifica3Meta = const VerificationMeta(
+    'idClassifica3',
+  );
+  @override
+  late final GeneratedColumn<int> idClassifica3 = GeneratedColumn<int>(
+    'idClassifica3',
+    aliasedName,
+    true,
+    type: DriftSqlType.int,
+    requiredDuringInsert: false,
+  );
+  static const VerificationMeta _idClassifica4Meta = const VerificationMeta(
+    'idClassifica4',
+  );
+  @override
+  late final GeneratedColumn<int> idClassifica4 = GeneratedColumn<int>(
+    'idClassifica4',
+    aliasedName,
+    true,
+    type: DriftSqlType.int,
+    requiredDuringInsert: false,
+  );
+  static const VerificationMeta _pesoMeta = const VerificationMeta('peso');
+  @override
+  late final GeneratedColumn<double> peso = GeneratedColumn<double>(
+    'peso',
+    aliasedName,
+    true,
+    type: DriftSqlType.double,
+    requiredDuringInsert: false,
+  );
+  static const VerificationMeta _giacenzaMeta = const VerificationMeta(
+    'giacenza',
+  );
+  @override
+  late final GeneratedColumn<double> giacenza = GeneratedColumn<double>(
+    'giacenza',
+    aliasedName,
+    true,
+    type: DriftSqlType.double,
+    requiredDuringInsert: false,
+  );
+  static const VerificationMeta _unitaMisuraMeta = const VerificationMeta(
+    'unitaMisura',
+  );
+  @override
+  late final GeneratedColumn<String> unitaMisura = GeneratedColumn<String>(
+    'unitaMisura',
+    aliasedName,
+    true,
+    type: DriftSqlType.string,
+    requiredDuringInsert: false,
+  );
+  static const VerificationMeta _attivoMeta = const VerificationMeta('attivo');
+  @override
+  late final GeneratedColumn<int> attivo = GeneratedColumn<int>(
+    'attivo',
+    aliasedName,
+    false,
+    type: DriftSqlType.int,
+    requiredDuringInsert: false,
+    defaultValue: const Constant(1),
+  );
+  static const VerificationMeta _nonDisponibileMeta = const VerificationMeta(
+    'nonDisponibile',
+  );
+  @override
+  late final GeneratedColumn<int> nonDisponibile = GeneratedColumn<int>(
+    'nonDisponibile',
+    aliasedName,
+    true,
+    type: DriftSqlType.int,
+    requiredDuringInsert: false,
+  );
+  static const VerificationMeta _pezziConfezioneMeta = const VerificationMeta(
+    'pezziConfezione',
+  );
+  @override
+  late final GeneratedColumn<double> pezziConfezione = GeneratedColumn<double>(
+    'pezziConfezione',
+    aliasedName,
+    true,
+    type: DriftSqlType.double,
+    requiredDuringInsert: false,
+  );
+  static const VerificationMeta _fileFotoMeta = const VerificationMeta(
+    'fileFoto',
+  );
+  @override
+  late final GeneratedColumn<String> fileFoto = GeneratedColumn<String>(
+    'fileFoto',
+    aliasedName,
+    true,
+    type: DriftSqlType.string,
+    requiredDuringInsert: false,
+  );
+  static const VerificationMeta _schedaProdottoMeta = const VerificationMeta(
+    'schedaProdotto',
+  );
+  @override
+  late final GeneratedColumn<String> schedaProdotto = GeneratedColumn<String>(
+    'schedaProdotto',
+    aliasedName,
+    true,
+    type: DriftSqlType.string,
+    requiredDuringInsert: false,
+  );
+  static const VerificationMeta _prezzoBaseMeta = const VerificationMeta(
+    'prezzoBase',
+  );
+  @override
+  late final GeneratedColumn<String> prezzoBase = GeneratedColumn<String>(
+    'prezzoBase',
+    aliasedName,
+    true,
+    type: DriftSqlType.string,
+    requiredDuringInsert: false,
+  );
+  static const VerificationMeta _statoMeta = const VerificationMeta('stato');
+  @override
+  late final GeneratedColumn<String> stato = GeneratedColumn<String>(
+    'stato',
+    aliasedName,
+    true,
+    type: DriftSqlType.string,
+    requiredDuringInsert: false,
+  );
+  static const VerificationMeta _dataModificaMeta = const VerificationMeta(
+    'dataModifica',
+  );
+  @override
+  late final GeneratedColumn<String> dataModifica = GeneratedColumn<String>(
+    'dataModifica',
+    aliasedName,
+    true,
+    type: DriftSqlType.string,
+    requiredDuringInsert: false,
+  );
+  static const VerificationMeta _gruppoMeta = const VerificationMeta('gruppo');
+  @override
+  late final GeneratedColumn<String> gruppo = GeneratedColumn<String>(
+    'gruppo',
+    aliasedName,
+    true,
+    type: DriftSqlType.string,
+    requiredDuringInsert: false,
+  );
+  static const VerificationMeta _categoriaMeta = const VerificationMeta(
+    'categoria',
+  );
+  @override
+  late final GeneratedColumn<String> categoria = GeneratedColumn<String>(
+    'categoria',
+    aliasedName,
+    true,
+    type: DriftSqlType.string,
+    requiredDuringInsert: false,
+  );
+  static const VerificationMeta _colliPerStratoMeta = const VerificationMeta(
+    'colliPerStrato',
+  );
+  @override
+  late final GeneratedColumn<String> colliPerStrato = GeneratedColumn<String>(
+    'colliPerStrato',
+    aliasedName,
+    true,
+    type: DriftSqlType.string,
+    requiredDuringInsert: false,
+  );
+  static const VerificationMeta _stratiPerPalletMeta = const VerificationMeta(
+    'stratiPerPallet',
+  );
+  @override
+  late final GeneratedColumn<String> stratiPerPallet = GeneratedColumn<String>(
+    'stratiPerPallet',
+    aliasedName,
+    true,
+    type: DriftSqlType.string,
+    requiredDuringInsert: false,
+  );
+  @override
+  List<GeneratedColumn> get $columns => [
+    idArticolo,
+    posizione,
+    codArticolo,
+    descrizione,
+    ean,
+    idIva,
+    idClassifica1,
+    idClassifica2,
+    idClassifica3,
+    idClassifica4,
+    peso,
+    giacenza,
+    unitaMisura,
+    attivo,
+    nonDisponibile,
+    pezziConfezione,
+    fileFoto,
+    schedaProdotto,
+    prezzoBase,
+    stato,
+    dataModifica,
+    gruppo,
+    categoria,
+    colliPerStrato,
+    stratiPerPallet,
+  ];
+  @override
+  String get aliasedName => _alias ?? actualTableName;
+  @override
+  String get actualTableName => $name;
+  static const String $name = 'Articoli';
+  @override
+  VerificationContext validateIntegrity(
+    Insertable<Articolo> instance, {
+    bool isInserting = false,
+  }) {
+    final context = VerificationContext();
+    final data = instance.toColumns(true);
+    if (data.containsKey('idArticolo')) {
+      context.handle(
+        _idArticoloMeta,
+        idArticolo.isAcceptableOrUnknown(data['idArticolo']!, _idArticoloMeta),
+      );
+    }
+    if (data.containsKey('posizione')) {
+      context.handle(
+        _posizioneMeta,
+        posizione.isAcceptableOrUnknown(data['posizione']!, _posizioneMeta),
+      );
+    }
+    if (data.containsKey('codArticolo')) {
+      context.handle(
+        _codArticoloMeta,
+        codArticolo.isAcceptableOrUnknown(
+          data['codArticolo']!,
+          _codArticoloMeta,
+        ),
+      );
+    } else if (isInserting) {
+      context.missing(_codArticoloMeta);
+    }
+    if (data.containsKey('descrizione')) {
+      context.handle(
+        _descrizioneMeta,
+        descrizione.isAcceptableOrUnknown(
+          data['descrizione']!,
+          _descrizioneMeta,
+        ),
+      );
+    }
+    if (data.containsKey('ean')) {
+      context.handle(
+        _eanMeta,
+        ean.isAcceptableOrUnknown(data['ean']!, _eanMeta),
+      );
+    }
+    if (data.containsKey('idIva')) {
+      context.handle(
+        _idIvaMeta,
+        idIva.isAcceptableOrUnknown(data['idIva']!, _idIvaMeta),
+      );
+    }
+    if (data.containsKey('idClassifica1')) {
+      context.handle(
+        _idClassifica1Meta,
+        idClassifica1.isAcceptableOrUnknown(
+          data['idClassifica1']!,
+          _idClassifica1Meta,
+        ),
+      );
+    }
+    if (data.containsKey('idClassifica2')) {
+      context.handle(
+        _idClassifica2Meta,
+        idClassifica2.isAcceptableOrUnknown(
+          data['idClassifica2']!,
+          _idClassifica2Meta,
+        ),
+      );
+    }
+    if (data.containsKey('idClassifica3')) {
+      context.handle(
+        _idClassifica3Meta,
+        idClassifica3.isAcceptableOrUnknown(
+          data['idClassifica3']!,
+          _idClassifica3Meta,
+        ),
+      );
+    }
+    if (data.containsKey('idClassifica4')) {
+      context.handle(
+        _idClassifica4Meta,
+        idClassifica4.isAcceptableOrUnknown(
+          data['idClassifica4']!,
+          _idClassifica4Meta,
+        ),
+      );
+    }
+    if (data.containsKey('peso')) {
+      context.handle(
+        _pesoMeta,
+        peso.isAcceptableOrUnknown(data['peso']!, _pesoMeta),
+      );
+    }
+    if (data.containsKey('giacenza')) {
+      context.handle(
+        _giacenzaMeta,
+        giacenza.isAcceptableOrUnknown(data['giacenza']!, _giacenzaMeta),
+      );
+    }
+    if (data.containsKey('unitaMisura')) {
+      context.handle(
+        _unitaMisuraMeta,
+        unitaMisura.isAcceptableOrUnknown(
+          data['unitaMisura']!,
+          _unitaMisuraMeta,
+        ),
+      );
+    }
+    if (data.containsKey('attivo')) {
+      context.handle(
+        _attivoMeta,
+        attivo.isAcceptableOrUnknown(data['attivo']!, _attivoMeta),
+      );
+    }
+    if (data.containsKey('nonDisponibile')) {
+      context.handle(
+        _nonDisponibileMeta,
+        nonDisponibile.isAcceptableOrUnknown(
+          data['nonDisponibile']!,
+          _nonDisponibileMeta,
+        ),
+      );
+    }
+    if (data.containsKey('pezziConfezione')) {
+      context.handle(
+        _pezziConfezioneMeta,
+        pezziConfezione.isAcceptableOrUnknown(
+          data['pezziConfezione']!,
+          _pezziConfezioneMeta,
+        ),
+      );
+    }
+    if (data.containsKey('fileFoto')) {
+      context.handle(
+        _fileFotoMeta,
+        fileFoto.isAcceptableOrUnknown(data['fileFoto']!, _fileFotoMeta),
+      );
+    }
+    if (data.containsKey('schedaProdotto')) {
+      context.handle(
+        _schedaProdottoMeta,
+        schedaProdotto.isAcceptableOrUnknown(
+          data['schedaProdotto']!,
+          _schedaProdottoMeta,
+        ),
+      );
+    }
+    if (data.containsKey('prezzoBase')) {
+      context.handle(
+        _prezzoBaseMeta,
+        prezzoBase.isAcceptableOrUnknown(data['prezzoBase']!, _prezzoBaseMeta),
+      );
+    }
+    if (data.containsKey('stato')) {
+      context.handle(
+        _statoMeta,
+        stato.isAcceptableOrUnknown(data['stato']!, _statoMeta),
+      );
+    }
+    if (data.containsKey('dataModifica')) {
+      context.handle(
+        _dataModificaMeta,
+        dataModifica.isAcceptableOrUnknown(
+          data['dataModifica']!,
+          _dataModificaMeta,
+        ),
+      );
+    }
+    if (data.containsKey('gruppo')) {
+      context.handle(
+        _gruppoMeta,
+        gruppo.isAcceptableOrUnknown(data['gruppo']!, _gruppoMeta),
+      );
+    }
+    if (data.containsKey('categoria')) {
+      context.handle(
+        _categoriaMeta,
+        categoria.isAcceptableOrUnknown(data['categoria']!, _categoriaMeta),
+      );
+    }
+    if (data.containsKey('colliPerStrato')) {
+      context.handle(
+        _colliPerStratoMeta,
+        colliPerStrato.isAcceptableOrUnknown(
+          data['colliPerStrato']!,
+          _colliPerStratoMeta,
+        ),
+      );
+    }
+    if (data.containsKey('stratiPerPallet')) {
+      context.handle(
+        _stratiPerPalletMeta,
+        stratiPerPallet.isAcceptableOrUnknown(
+          data['stratiPerPallet']!,
+          _stratiPerPalletMeta,
+        ),
+      );
+    }
+    return context;
+  }
+
+  @override
+  Set<GeneratedColumn> get $primaryKey => {idArticolo};
+  @override
+  Articolo map(Map<String, dynamic> data, {String? tablePrefix}) {
+    final effectivePrefix = tablePrefix != null ? '$tablePrefix.' : '';
+    return Articolo(
+      idArticolo: attachedDatabase.typeMapping.read(
+        DriftSqlType.int,
+        data['${effectivePrefix}idArticolo'],
+      )!,
+      posizione: attachedDatabase.typeMapping.read(
+        DriftSqlType.int,
+        data['${effectivePrefix}posizione'],
+      ),
+      codArticolo: attachedDatabase.typeMapping.read(
+        DriftSqlType.string,
+        data['${effectivePrefix}codArticolo'],
+      )!,
+      descrizione: attachedDatabase.typeMapping.read(
+        DriftSqlType.string,
+        data['${effectivePrefix}descrizione'],
+      ),
+      ean: attachedDatabase.typeMapping.read(
+        DriftSqlType.string,
+        data['${effectivePrefix}ean'],
+      ),
+      idIva: attachedDatabase.typeMapping.read(
+        DriftSqlType.int,
+        data['${effectivePrefix}idIva'],
+      ),
+      idClassifica1: attachedDatabase.typeMapping.read(
+        DriftSqlType.int,
+        data['${effectivePrefix}idClassifica1'],
+      ),
+      idClassifica2: attachedDatabase.typeMapping.read(
+        DriftSqlType.int,
+        data['${effectivePrefix}idClassifica2'],
+      ),
+      idClassifica3: attachedDatabase.typeMapping.read(
+        DriftSqlType.int,
+        data['${effectivePrefix}idClassifica3'],
+      ),
+      idClassifica4: attachedDatabase.typeMapping.read(
+        DriftSqlType.int,
+        data['${effectivePrefix}idClassifica4'],
+      ),
+      peso: attachedDatabase.typeMapping.read(
+        DriftSqlType.double,
+        data['${effectivePrefix}peso'],
+      ),
+      giacenza: attachedDatabase.typeMapping.read(
+        DriftSqlType.double,
+        data['${effectivePrefix}giacenza'],
+      ),
+      unitaMisura: attachedDatabase.typeMapping.read(
+        DriftSqlType.string,
+        data['${effectivePrefix}unitaMisura'],
+      ),
+      attivo: attachedDatabase.typeMapping.read(
+        DriftSqlType.int,
+        data['${effectivePrefix}attivo'],
+      )!,
+      nonDisponibile: attachedDatabase.typeMapping.read(
+        DriftSqlType.int,
+        data['${effectivePrefix}nonDisponibile'],
+      ),
+      pezziConfezione: attachedDatabase.typeMapping.read(
+        DriftSqlType.double,
+        data['${effectivePrefix}pezziConfezione'],
+      ),
+      fileFoto: attachedDatabase.typeMapping.read(
+        DriftSqlType.string,
+        data['${effectivePrefix}fileFoto'],
+      ),
+      schedaProdotto: attachedDatabase.typeMapping.read(
+        DriftSqlType.string,
+        data['${effectivePrefix}schedaProdotto'],
+      ),
+      prezzoBase: attachedDatabase.typeMapping.read(
+        DriftSqlType.string,
+        data['${effectivePrefix}prezzoBase'],
+      ),
+      stato: attachedDatabase.typeMapping.read(
+        DriftSqlType.string,
+        data['${effectivePrefix}stato'],
+      ),
+      dataModifica: attachedDatabase.typeMapping.read(
+        DriftSqlType.string,
+        data['${effectivePrefix}dataModifica'],
+      ),
+      gruppo: attachedDatabase.typeMapping.read(
+        DriftSqlType.string,
+        data['${effectivePrefix}gruppo'],
+      ),
+      categoria: attachedDatabase.typeMapping.read(
+        DriftSqlType.string,
+        data['${effectivePrefix}categoria'],
+      ),
+      colliPerStrato: attachedDatabase.typeMapping.read(
+        DriftSqlType.string,
+        data['${effectivePrefix}colliPerStrato'],
+      ),
+      stratiPerPallet: attachedDatabase.typeMapping.read(
+        DriftSqlType.string,
+        data['${effectivePrefix}stratiPerPallet'],
+      ),
+    );
+  }
+
+  @override
+  $ArticoliTable createAlias(String alias) {
+    return $ArticoliTable(attachedDatabase, alias);
+  }
+}
+
+class Articolo extends DataClass implements Insertable<Articolo> {
+  final int idArticolo;
+  final int? posizione;
+  final String codArticolo;
+  final String? descrizione;
+  final String? ean;
+  final int? idIva;
+  final int? idClassifica1;
+  final int? idClassifica2;
+  final int? idClassifica3;
+  final int? idClassifica4;
+  final double? peso;
+  final double? giacenza;
+  final String? unitaMisura;
+  final int attivo;
+  final int? nonDisponibile;
+  final double? pezziConfezione;
+  final String? fileFoto;
+  final String? schedaProdotto;
+  final String? prezzoBase;
+  final String? stato;
+  final String? dataModifica;
+  final String? gruppo;
+  final String? categoria;
+  final String? colliPerStrato;
+  final String? stratiPerPallet;
+  const Articolo({
+    required this.idArticolo,
+    this.posizione,
+    required this.codArticolo,
+    this.descrizione,
+    this.ean,
+    this.idIva,
+    this.idClassifica1,
+    this.idClassifica2,
+    this.idClassifica3,
+    this.idClassifica4,
+    this.peso,
+    this.giacenza,
+    this.unitaMisura,
+    required this.attivo,
+    this.nonDisponibile,
+    this.pezziConfezione,
+    this.fileFoto,
+    this.schedaProdotto,
+    this.prezzoBase,
+    this.stato,
+    this.dataModifica,
+    this.gruppo,
+    this.categoria,
+    this.colliPerStrato,
+    this.stratiPerPallet,
+  });
+  @override
+  Map<String, Expression> toColumns(bool nullToAbsent) {
+    final map = <String, Expression>{};
+    map['idArticolo'] = Variable<int>(idArticolo);
+    if (!nullToAbsent || posizione != null) {
+      map['posizione'] = Variable<int>(posizione);
+    }
+    map['codArticolo'] = Variable<String>(codArticolo);
+    if (!nullToAbsent || descrizione != null) {
+      map['descrizione'] = Variable<String>(descrizione);
+    }
+    if (!nullToAbsent || ean != null) {
+      map['ean'] = Variable<String>(ean);
+    }
+    if (!nullToAbsent || idIva != null) {
+      map['idIva'] = Variable<int>(idIva);
+    }
+    if (!nullToAbsent || idClassifica1 != null) {
+      map['idClassifica1'] = Variable<int>(idClassifica1);
+    }
+    if (!nullToAbsent || idClassifica2 != null) {
+      map['idClassifica2'] = Variable<int>(idClassifica2);
+    }
+    if (!nullToAbsent || idClassifica3 != null) {
+      map['idClassifica3'] = Variable<int>(idClassifica3);
+    }
+    if (!nullToAbsent || idClassifica4 != null) {
+      map['idClassifica4'] = Variable<int>(idClassifica4);
+    }
+    if (!nullToAbsent || peso != null) {
+      map['peso'] = Variable<double>(peso);
+    }
+    if (!nullToAbsent || giacenza != null) {
+      map['giacenza'] = Variable<double>(giacenza);
+    }
+    if (!nullToAbsent || unitaMisura != null) {
+      map['unitaMisura'] = Variable<String>(unitaMisura);
+    }
+    map['attivo'] = Variable<int>(attivo);
+    if (!nullToAbsent || nonDisponibile != null) {
+      map['nonDisponibile'] = Variable<int>(nonDisponibile);
+    }
+    if (!nullToAbsent || pezziConfezione != null) {
+      map['pezziConfezione'] = Variable<double>(pezziConfezione);
+    }
+    if (!nullToAbsent || fileFoto != null) {
+      map['fileFoto'] = Variable<String>(fileFoto);
+    }
+    if (!nullToAbsent || schedaProdotto != null) {
+      map['schedaProdotto'] = Variable<String>(schedaProdotto);
+    }
+    if (!nullToAbsent || prezzoBase != null) {
+      map['prezzoBase'] = Variable<String>(prezzoBase);
+    }
+    if (!nullToAbsent || stato != null) {
+      map['stato'] = Variable<String>(stato);
+    }
+    if (!nullToAbsent || dataModifica != null) {
+      map['dataModifica'] = Variable<String>(dataModifica);
+    }
+    if (!nullToAbsent || gruppo != null) {
+      map['gruppo'] = Variable<String>(gruppo);
+    }
+    if (!nullToAbsent || categoria != null) {
+      map['categoria'] = Variable<String>(categoria);
+    }
+    if (!nullToAbsent || colliPerStrato != null) {
+      map['colliPerStrato'] = Variable<String>(colliPerStrato);
+    }
+    if (!nullToAbsent || stratiPerPallet != null) {
+      map['stratiPerPallet'] = Variable<String>(stratiPerPallet);
+    }
+    return map;
+  }
+
+  ArticoliCompanion toCompanion(bool nullToAbsent) {
+    return ArticoliCompanion(
+      idArticolo: Value(idArticolo),
+      posizione: posizione == null && nullToAbsent
+          ? const Value.absent()
+          : Value(posizione),
+      codArticolo: Value(codArticolo),
+      descrizione: descrizione == null && nullToAbsent
+          ? const Value.absent()
+          : Value(descrizione),
+      ean: ean == null && nullToAbsent ? const Value.absent() : Value(ean),
+      idIva: idIva == null && nullToAbsent
+          ? const Value.absent()
+          : Value(idIva),
+      idClassifica1: idClassifica1 == null && nullToAbsent
+          ? const Value.absent()
+          : Value(idClassifica1),
+      idClassifica2: idClassifica2 == null && nullToAbsent
+          ? const Value.absent()
+          : Value(idClassifica2),
+      idClassifica3: idClassifica3 == null && nullToAbsent
+          ? const Value.absent()
+          : Value(idClassifica3),
+      idClassifica4: idClassifica4 == null && nullToAbsent
+          ? const Value.absent()
+          : Value(idClassifica4),
+      peso: peso == null && nullToAbsent ? const Value.absent() : Value(peso),
+      giacenza: giacenza == null && nullToAbsent
+          ? const Value.absent()
+          : Value(giacenza),
+      unitaMisura: unitaMisura == null && nullToAbsent
+          ? const Value.absent()
+          : Value(unitaMisura),
+      attivo: Value(attivo),
+      nonDisponibile: nonDisponibile == null && nullToAbsent
+          ? const Value.absent()
+          : Value(nonDisponibile),
+      pezziConfezione: pezziConfezione == null && nullToAbsent
+          ? const Value.absent()
+          : Value(pezziConfezione),
+      fileFoto: fileFoto == null && nullToAbsent
+          ? const Value.absent()
+          : Value(fileFoto),
+      schedaProdotto: schedaProdotto == null && nullToAbsent
+          ? const Value.absent()
+          : Value(schedaProdotto),
+      prezzoBase: prezzoBase == null && nullToAbsent
+          ? const Value.absent()
+          : Value(prezzoBase),
+      stato: stato == null && nullToAbsent
+          ? const Value.absent()
+          : Value(stato),
+      dataModifica: dataModifica == null && nullToAbsent
+          ? const Value.absent()
+          : Value(dataModifica),
+      gruppo: gruppo == null && nullToAbsent
+          ? const Value.absent()
+          : Value(gruppo),
+      categoria: categoria == null && nullToAbsent
+          ? const Value.absent()
+          : Value(categoria),
+      colliPerStrato: colliPerStrato == null && nullToAbsent
+          ? const Value.absent()
+          : Value(colliPerStrato),
+      stratiPerPallet: stratiPerPallet == null && nullToAbsent
+          ? const Value.absent()
+          : Value(stratiPerPallet),
+    );
+  }
+
+  factory Articolo.fromJson(
+    Map<String, dynamic> json, {
+    ValueSerializer? serializer,
+  }) {
+    serializer ??= driftRuntimeOptions.defaultSerializer;
+    return Articolo(
+      idArticolo: serializer.fromJson<int>(json['idArticolo']),
+      posizione: serializer.fromJson<int?>(json['posizione']),
+      codArticolo: serializer.fromJson<String>(json['codArticolo']),
+      descrizione: serializer.fromJson<String?>(json['descrizione']),
+      ean: serializer.fromJson<String?>(json['ean']),
+      idIva: serializer.fromJson<int?>(json['idIva']),
+      idClassifica1: serializer.fromJson<int?>(json['idClassifica1']),
+      idClassifica2: serializer.fromJson<int?>(json['idClassifica2']),
+      idClassifica3: serializer.fromJson<int?>(json['idClassifica3']),
+      idClassifica4: serializer.fromJson<int?>(json['idClassifica4']),
+      peso: serializer.fromJson<double?>(json['peso']),
+      giacenza: serializer.fromJson<double?>(json['giacenza']),
+      unitaMisura: serializer.fromJson<String?>(json['unitaMisura']),
+      attivo: serializer.fromJson<int>(json['attivo']),
+      nonDisponibile: serializer.fromJson<int?>(json['nonDisponibile']),
+      pezziConfezione: serializer.fromJson<double?>(json['pezziConfezione']),
+      fileFoto: serializer.fromJson<String?>(json['fileFoto']),
+      schedaProdotto: serializer.fromJson<String?>(json['schedaProdotto']),
+      prezzoBase: serializer.fromJson<String?>(json['prezzoBase']),
+      stato: serializer.fromJson<String?>(json['stato']),
+      dataModifica: serializer.fromJson<String?>(json['dataModifica']),
+      gruppo: serializer.fromJson<String?>(json['gruppo']),
+      categoria: serializer.fromJson<String?>(json['categoria']),
+      colliPerStrato: serializer.fromJson<String?>(json['colliPerStrato']),
+      stratiPerPallet: serializer.fromJson<String?>(json['stratiPerPallet']),
+    );
+  }
+  @override
+  Map<String, dynamic> toJson({ValueSerializer? serializer}) {
+    serializer ??= driftRuntimeOptions.defaultSerializer;
+    return <String, dynamic>{
+      'idArticolo': serializer.toJson<int>(idArticolo),
+      'posizione': serializer.toJson<int?>(posizione),
+      'codArticolo': serializer.toJson<String>(codArticolo),
+      'descrizione': serializer.toJson<String?>(descrizione),
+      'ean': serializer.toJson<String?>(ean),
+      'idIva': serializer.toJson<int?>(idIva),
+      'idClassifica1': serializer.toJson<int?>(idClassifica1),
+      'idClassifica2': serializer.toJson<int?>(idClassifica2),
+      'idClassifica3': serializer.toJson<int?>(idClassifica3),
+      'idClassifica4': serializer.toJson<int?>(idClassifica4),
+      'peso': serializer.toJson<double?>(peso),
+      'giacenza': serializer.toJson<double?>(giacenza),
+      'unitaMisura': serializer.toJson<String?>(unitaMisura),
+      'attivo': serializer.toJson<int>(attivo),
+      'nonDisponibile': serializer.toJson<int?>(nonDisponibile),
+      'pezziConfezione': serializer.toJson<double?>(pezziConfezione),
+      'fileFoto': serializer.toJson<String?>(fileFoto),
+      'schedaProdotto': serializer.toJson<String?>(schedaProdotto),
+      'prezzoBase': serializer.toJson<String?>(prezzoBase),
+      'stato': serializer.toJson<String?>(stato),
+      'dataModifica': serializer.toJson<String?>(dataModifica),
+      'gruppo': serializer.toJson<String?>(gruppo),
+      'categoria': serializer.toJson<String?>(categoria),
+      'colliPerStrato': serializer.toJson<String?>(colliPerStrato),
+      'stratiPerPallet': serializer.toJson<String?>(stratiPerPallet),
+    };
+  }
+
+  Articolo copyWith({
+    int? idArticolo,
+    Value<int?> posizione = const Value.absent(),
+    String? codArticolo,
+    Value<String?> descrizione = const Value.absent(),
+    Value<String?> ean = const Value.absent(),
+    Value<int?> idIva = const Value.absent(),
+    Value<int?> idClassifica1 = const Value.absent(),
+    Value<int?> idClassifica2 = const Value.absent(),
+    Value<int?> idClassifica3 = const Value.absent(),
+    Value<int?> idClassifica4 = const Value.absent(),
+    Value<double?> peso = const Value.absent(),
+    Value<double?> giacenza = const Value.absent(),
+    Value<String?> unitaMisura = const Value.absent(),
+    int? attivo,
+    Value<int?> nonDisponibile = const Value.absent(),
+    Value<double?> pezziConfezione = const Value.absent(),
+    Value<String?> fileFoto = const Value.absent(),
+    Value<String?> schedaProdotto = const Value.absent(),
+    Value<String?> prezzoBase = const Value.absent(),
+    Value<String?> stato = const Value.absent(),
+    Value<String?> dataModifica = const Value.absent(),
+    Value<String?> gruppo = const Value.absent(),
+    Value<String?> categoria = const Value.absent(),
+    Value<String?> colliPerStrato = const Value.absent(),
+    Value<String?> stratiPerPallet = const Value.absent(),
+  }) => Articolo(
+    idArticolo: idArticolo ?? this.idArticolo,
+    posizione: posizione.present ? posizione.value : this.posizione,
+    codArticolo: codArticolo ?? this.codArticolo,
+    descrizione: descrizione.present ? descrizione.value : this.descrizione,
+    ean: ean.present ? ean.value : this.ean,
+    idIva: idIva.present ? idIva.value : this.idIva,
+    idClassifica1: idClassifica1.present
+        ? idClassifica1.value
+        : this.idClassifica1,
+    idClassifica2: idClassifica2.present
+        ? idClassifica2.value
+        : this.idClassifica2,
+    idClassifica3: idClassifica3.present
+        ? idClassifica3.value
+        : this.idClassifica3,
+    idClassifica4: idClassifica4.present
+        ? idClassifica4.value
+        : this.idClassifica4,
+    peso: peso.present ? peso.value : this.peso,
+    giacenza: giacenza.present ? giacenza.value : this.giacenza,
+    unitaMisura: unitaMisura.present ? unitaMisura.value : this.unitaMisura,
+    attivo: attivo ?? this.attivo,
+    nonDisponibile: nonDisponibile.present
+        ? nonDisponibile.value
+        : this.nonDisponibile,
+    pezziConfezione: pezziConfezione.present
+        ? pezziConfezione.value
+        : this.pezziConfezione,
+    fileFoto: fileFoto.present ? fileFoto.value : this.fileFoto,
+    schedaProdotto: schedaProdotto.present
+        ? schedaProdotto.value
+        : this.schedaProdotto,
+    prezzoBase: prezzoBase.present ? prezzoBase.value : this.prezzoBase,
+    stato: stato.present ? stato.value : this.stato,
+    dataModifica: dataModifica.present ? dataModifica.value : this.dataModifica,
+    gruppo: gruppo.present ? gruppo.value : this.gruppo,
+    categoria: categoria.present ? categoria.value : this.categoria,
+    colliPerStrato: colliPerStrato.present
+        ? colliPerStrato.value
+        : this.colliPerStrato,
+    stratiPerPallet: stratiPerPallet.present
+        ? stratiPerPallet.value
+        : this.stratiPerPallet,
+  );
+  Articolo copyWithCompanion(ArticoliCompanion data) {
+    return Articolo(
+      idArticolo: data.idArticolo.present
+          ? data.idArticolo.value
+          : this.idArticolo,
+      posizione: data.posizione.present ? data.posizione.value : this.posizione,
+      codArticolo: data.codArticolo.present
+          ? data.codArticolo.value
+          : this.codArticolo,
+      descrizione: data.descrizione.present
+          ? data.descrizione.value
+          : this.descrizione,
+      ean: data.ean.present ? data.ean.value : this.ean,
+      idIva: data.idIva.present ? data.idIva.value : this.idIva,
+      idClassifica1: data.idClassifica1.present
+          ? data.idClassifica1.value
+          : this.idClassifica1,
+      idClassifica2: data.idClassifica2.present
+          ? data.idClassifica2.value
+          : this.idClassifica2,
+      idClassifica3: data.idClassifica3.present
+          ? data.idClassifica3.value
+          : this.idClassifica3,
+      idClassifica4: data.idClassifica4.present
+          ? data.idClassifica4.value
+          : this.idClassifica4,
+      peso: data.peso.present ? data.peso.value : this.peso,
+      giacenza: data.giacenza.present ? data.giacenza.value : this.giacenza,
+      unitaMisura: data.unitaMisura.present
+          ? data.unitaMisura.value
+          : this.unitaMisura,
+      attivo: data.attivo.present ? data.attivo.value : this.attivo,
+      nonDisponibile: data.nonDisponibile.present
+          ? data.nonDisponibile.value
+          : this.nonDisponibile,
+      pezziConfezione: data.pezziConfezione.present
+          ? data.pezziConfezione.value
+          : this.pezziConfezione,
+      fileFoto: data.fileFoto.present ? data.fileFoto.value : this.fileFoto,
+      schedaProdotto: data.schedaProdotto.present
+          ? data.schedaProdotto.value
+          : this.schedaProdotto,
+      prezzoBase: data.prezzoBase.present
+          ? data.prezzoBase.value
+          : this.prezzoBase,
+      stato: data.stato.present ? data.stato.value : this.stato,
+      dataModifica: data.dataModifica.present
+          ? data.dataModifica.value
+          : this.dataModifica,
+      gruppo: data.gruppo.present ? data.gruppo.value : this.gruppo,
+      categoria: data.categoria.present ? data.categoria.value : this.categoria,
+      colliPerStrato: data.colliPerStrato.present
+          ? data.colliPerStrato.value
+          : this.colliPerStrato,
+      stratiPerPallet: data.stratiPerPallet.present
+          ? data.stratiPerPallet.value
+          : this.stratiPerPallet,
+    );
+  }
+
+  @override
+  String toString() {
+    return (StringBuffer('Articolo(')
+          ..write('idArticolo: $idArticolo, ')
+          ..write('posizione: $posizione, ')
+          ..write('codArticolo: $codArticolo, ')
+          ..write('descrizione: $descrizione, ')
+          ..write('ean: $ean, ')
+          ..write('idIva: $idIva, ')
+          ..write('idClassifica1: $idClassifica1, ')
+          ..write('idClassifica2: $idClassifica2, ')
+          ..write('idClassifica3: $idClassifica3, ')
+          ..write('idClassifica4: $idClassifica4, ')
+          ..write('peso: $peso, ')
+          ..write('giacenza: $giacenza, ')
+          ..write('unitaMisura: $unitaMisura, ')
+          ..write('attivo: $attivo, ')
+          ..write('nonDisponibile: $nonDisponibile, ')
+          ..write('pezziConfezione: $pezziConfezione, ')
+          ..write('fileFoto: $fileFoto, ')
+          ..write('schedaProdotto: $schedaProdotto, ')
+          ..write('prezzoBase: $prezzoBase, ')
+          ..write('stato: $stato, ')
+          ..write('dataModifica: $dataModifica, ')
+          ..write('gruppo: $gruppo, ')
+          ..write('categoria: $categoria, ')
+          ..write('colliPerStrato: $colliPerStrato, ')
+          ..write('stratiPerPallet: $stratiPerPallet')
+          ..write(')'))
+        .toString();
+  }
+
+  @override
+  int get hashCode => Object.hashAll([
+    idArticolo,
+    posizione,
+    codArticolo,
+    descrizione,
+    ean,
+    idIva,
+    idClassifica1,
+    idClassifica2,
+    idClassifica3,
+    idClassifica4,
+    peso,
+    giacenza,
+    unitaMisura,
+    attivo,
+    nonDisponibile,
+    pezziConfezione,
+    fileFoto,
+    schedaProdotto,
+    prezzoBase,
+    stato,
+    dataModifica,
+    gruppo,
+    categoria,
+    colliPerStrato,
+    stratiPerPallet,
+  ]);
+  @override
+  bool operator ==(Object other) =>
+      identical(this, other) ||
+      (other is Articolo &&
+          other.idArticolo == this.idArticolo &&
+          other.posizione == this.posizione &&
+          other.codArticolo == this.codArticolo &&
+          other.descrizione == this.descrizione &&
+          other.ean == this.ean &&
+          other.idIva == this.idIva &&
+          other.idClassifica1 == this.idClassifica1 &&
+          other.idClassifica2 == this.idClassifica2 &&
+          other.idClassifica3 == this.idClassifica3 &&
+          other.idClassifica4 == this.idClassifica4 &&
+          other.peso == this.peso &&
+          other.giacenza == this.giacenza &&
+          other.unitaMisura == this.unitaMisura &&
+          other.attivo == this.attivo &&
+          other.nonDisponibile == this.nonDisponibile &&
+          other.pezziConfezione == this.pezziConfezione &&
+          other.fileFoto == this.fileFoto &&
+          other.schedaProdotto == this.schedaProdotto &&
+          other.prezzoBase == this.prezzoBase &&
+          other.stato == this.stato &&
+          other.dataModifica == this.dataModifica &&
+          other.gruppo == this.gruppo &&
+          other.categoria == this.categoria &&
+          other.colliPerStrato == this.colliPerStrato &&
+          other.stratiPerPallet == this.stratiPerPallet);
+}
+
+class ArticoliCompanion extends UpdateCompanion<Articolo> {
+  final Value<int> idArticolo;
+  final Value<int?> posizione;
+  final Value<String> codArticolo;
+  final Value<String?> descrizione;
+  final Value<String?> ean;
+  final Value<int?> idIva;
+  final Value<int?> idClassifica1;
+  final Value<int?> idClassifica2;
+  final Value<int?> idClassifica3;
+  final Value<int?> idClassifica4;
+  final Value<double?> peso;
+  final Value<double?> giacenza;
+  final Value<String?> unitaMisura;
+  final Value<int> attivo;
+  final Value<int?> nonDisponibile;
+  final Value<double?> pezziConfezione;
+  final Value<String?> fileFoto;
+  final Value<String?> schedaProdotto;
+  final Value<String?> prezzoBase;
+  final Value<String?> stato;
+  final Value<String?> dataModifica;
+  final Value<String?> gruppo;
+  final Value<String?> categoria;
+  final Value<String?> colliPerStrato;
+  final Value<String?> stratiPerPallet;
+  const ArticoliCompanion({
+    this.idArticolo = const Value.absent(),
+    this.posizione = const Value.absent(),
+    this.codArticolo = const Value.absent(),
+    this.descrizione = const Value.absent(),
+    this.ean = const Value.absent(),
+    this.idIva = const Value.absent(),
+    this.idClassifica1 = const Value.absent(),
+    this.idClassifica2 = const Value.absent(),
+    this.idClassifica3 = const Value.absent(),
+    this.idClassifica4 = const Value.absent(),
+    this.peso = const Value.absent(),
+    this.giacenza = const Value.absent(),
+    this.unitaMisura = const Value.absent(),
+    this.attivo = const Value.absent(),
+    this.nonDisponibile = const Value.absent(),
+    this.pezziConfezione = const Value.absent(),
+    this.fileFoto = const Value.absent(),
+    this.schedaProdotto = const Value.absent(),
+    this.prezzoBase = const Value.absent(),
+    this.stato = const Value.absent(),
+    this.dataModifica = const Value.absent(),
+    this.gruppo = const Value.absent(),
+    this.categoria = const Value.absent(),
+    this.colliPerStrato = const Value.absent(),
+    this.stratiPerPallet = const Value.absent(),
+  });
+  ArticoliCompanion.insert({
+    this.idArticolo = const Value.absent(),
+    this.posizione = const Value.absent(),
+    required String codArticolo,
+    this.descrizione = const Value.absent(),
+    this.ean = const Value.absent(),
+    this.idIva = const Value.absent(),
+    this.idClassifica1 = const Value.absent(),
+    this.idClassifica2 = const Value.absent(),
+    this.idClassifica3 = const Value.absent(),
+    this.idClassifica4 = const Value.absent(),
+    this.peso = const Value.absent(),
+    this.giacenza = const Value.absent(),
+    this.unitaMisura = const Value.absent(),
+    this.attivo = const Value.absent(),
+    this.nonDisponibile = const Value.absent(),
+    this.pezziConfezione = const Value.absent(),
+    this.fileFoto = const Value.absent(),
+    this.schedaProdotto = const Value.absent(),
+    this.prezzoBase = const Value.absent(),
+    this.stato = const Value.absent(),
+    this.dataModifica = const Value.absent(),
+    this.gruppo = const Value.absent(),
+    this.categoria = const Value.absent(),
+    this.colliPerStrato = const Value.absent(),
+    this.stratiPerPallet = const Value.absent(),
+  }) : codArticolo = Value(codArticolo);
+  static Insertable<Articolo> custom({
+    Expression<int>? idArticolo,
+    Expression<int>? posizione,
+    Expression<String>? codArticolo,
+    Expression<String>? descrizione,
+    Expression<String>? ean,
+    Expression<int>? idIva,
+    Expression<int>? idClassifica1,
+    Expression<int>? idClassifica2,
+    Expression<int>? idClassifica3,
+    Expression<int>? idClassifica4,
+    Expression<double>? peso,
+    Expression<double>? giacenza,
+    Expression<String>? unitaMisura,
+    Expression<int>? attivo,
+    Expression<int>? nonDisponibile,
+    Expression<double>? pezziConfezione,
+    Expression<String>? fileFoto,
+    Expression<String>? schedaProdotto,
+    Expression<String>? prezzoBase,
+    Expression<String>? stato,
+    Expression<String>? dataModifica,
+    Expression<String>? gruppo,
+    Expression<String>? categoria,
+    Expression<String>? colliPerStrato,
+    Expression<String>? stratiPerPallet,
+  }) {
+    return RawValuesInsertable({
+      if (idArticolo != null) 'idArticolo': idArticolo,
+      if (posizione != null) 'posizione': posizione,
+      if (codArticolo != null) 'codArticolo': codArticolo,
+      if (descrizione != null) 'descrizione': descrizione,
+      if (ean != null) 'ean': ean,
+      if (idIva != null) 'idIva': idIva,
+      if (idClassifica1 != null) 'idClassifica1': idClassifica1,
+      if (idClassifica2 != null) 'idClassifica2': idClassifica2,
+      if (idClassifica3 != null) 'idClassifica3': idClassifica3,
+      if (idClassifica4 != null) 'idClassifica4': idClassifica4,
+      if (peso != null) 'peso': peso,
+      if (giacenza != null) 'giacenza': giacenza,
+      if (unitaMisura != null) 'unitaMisura': unitaMisura,
+      if (attivo != null) 'attivo': attivo,
+      if (nonDisponibile != null) 'nonDisponibile': nonDisponibile,
+      if (pezziConfezione != null) 'pezziConfezione': pezziConfezione,
+      if (fileFoto != null) 'fileFoto': fileFoto,
+      if (schedaProdotto != null) 'schedaProdotto': schedaProdotto,
+      if (prezzoBase != null) 'prezzoBase': prezzoBase,
+      if (stato != null) 'stato': stato,
+      if (dataModifica != null) 'dataModifica': dataModifica,
+      if (gruppo != null) 'gruppo': gruppo,
+      if (categoria != null) 'categoria': categoria,
+      if (colliPerStrato != null) 'colliPerStrato': colliPerStrato,
+      if (stratiPerPallet != null) 'stratiPerPallet': stratiPerPallet,
+    });
+  }
+
+  ArticoliCompanion copyWith({
+    Value<int>? idArticolo,
+    Value<int?>? posizione,
+    Value<String>? codArticolo,
+    Value<String?>? descrizione,
+    Value<String?>? ean,
+    Value<int?>? idIva,
+    Value<int?>? idClassifica1,
+    Value<int?>? idClassifica2,
+    Value<int?>? idClassifica3,
+    Value<int?>? idClassifica4,
+    Value<double?>? peso,
+    Value<double?>? giacenza,
+    Value<String?>? unitaMisura,
+    Value<int>? attivo,
+    Value<int?>? nonDisponibile,
+    Value<double?>? pezziConfezione,
+    Value<String?>? fileFoto,
+    Value<String?>? schedaProdotto,
+    Value<String?>? prezzoBase,
+    Value<String?>? stato,
+    Value<String?>? dataModifica,
+    Value<String?>? gruppo,
+    Value<String?>? categoria,
+    Value<String?>? colliPerStrato,
+    Value<String?>? stratiPerPallet,
+  }) {
+    return ArticoliCompanion(
+      idArticolo: idArticolo ?? this.idArticolo,
+      posizione: posizione ?? this.posizione,
+      codArticolo: codArticolo ?? this.codArticolo,
+      descrizione: descrizione ?? this.descrizione,
+      ean: ean ?? this.ean,
+      idIva: idIva ?? this.idIva,
+      idClassifica1: idClassifica1 ?? this.idClassifica1,
+      idClassifica2: idClassifica2 ?? this.idClassifica2,
+      idClassifica3: idClassifica3 ?? this.idClassifica3,
+      idClassifica4: idClassifica4 ?? this.idClassifica4,
+      peso: peso ?? this.peso,
+      giacenza: giacenza ?? this.giacenza,
+      unitaMisura: unitaMisura ?? this.unitaMisura,
+      attivo: attivo ?? this.attivo,
+      nonDisponibile: nonDisponibile ?? this.nonDisponibile,
+      pezziConfezione: pezziConfezione ?? this.pezziConfezione,
+      fileFoto: fileFoto ?? this.fileFoto,
+      schedaProdotto: schedaProdotto ?? this.schedaProdotto,
+      prezzoBase: prezzoBase ?? this.prezzoBase,
+      stato: stato ?? this.stato,
+      dataModifica: dataModifica ?? this.dataModifica,
+      gruppo: gruppo ?? this.gruppo,
+      categoria: categoria ?? this.categoria,
+      colliPerStrato: colliPerStrato ?? this.colliPerStrato,
+      stratiPerPallet: stratiPerPallet ?? this.stratiPerPallet,
+    );
+  }
+
+  @override
+  Map<String, Expression> toColumns(bool nullToAbsent) {
+    final map = <String, Expression>{};
+    if (idArticolo.present) {
+      map['idArticolo'] = Variable<int>(idArticolo.value);
+    }
+    if (posizione.present) {
+      map['posizione'] = Variable<int>(posizione.value);
+    }
+    if (codArticolo.present) {
+      map['codArticolo'] = Variable<String>(codArticolo.value);
+    }
+    if (descrizione.present) {
+      map['descrizione'] = Variable<String>(descrizione.value);
+    }
+    if (ean.present) {
+      map['ean'] = Variable<String>(ean.value);
+    }
+    if (idIva.present) {
+      map['idIva'] = Variable<int>(idIva.value);
+    }
+    if (idClassifica1.present) {
+      map['idClassifica1'] = Variable<int>(idClassifica1.value);
+    }
+    if (idClassifica2.present) {
+      map['idClassifica2'] = Variable<int>(idClassifica2.value);
+    }
+    if (idClassifica3.present) {
+      map['idClassifica3'] = Variable<int>(idClassifica3.value);
+    }
+    if (idClassifica4.present) {
+      map['idClassifica4'] = Variable<int>(idClassifica4.value);
+    }
+    if (peso.present) {
+      map['peso'] = Variable<double>(peso.value);
+    }
+    if (giacenza.present) {
+      map['giacenza'] = Variable<double>(giacenza.value);
+    }
+    if (unitaMisura.present) {
+      map['unitaMisura'] = Variable<String>(unitaMisura.value);
+    }
+    if (attivo.present) {
+      map['attivo'] = Variable<int>(attivo.value);
+    }
+    if (nonDisponibile.present) {
+      map['nonDisponibile'] = Variable<int>(nonDisponibile.value);
+    }
+    if (pezziConfezione.present) {
+      map['pezziConfezione'] = Variable<double>(pezziConfezione.value);
+    }
+    if (fileFoto.present) {
+      map['fileFoto'] = Variable<String>(fileFoto.value);
+    }
+    if (schedaProdotto.present) {
+      map['schedaProdotto'] = Variable<String>(schedaProdotto.value);
+    }
+    if (prezzoBase.present) {
+      map['prezzoBase'] = Variable<String>(prezzoBase.value);
+    }
+    if (stato.present) {
+      map['stato'] = Variable<String>(stato.value);
+    }
+    if (dataModifica.present) {
+      map['dataModifica'] = Variable<String>(dataModifica.value);
+    }
+    if (gruppo.present) {
+      map['gruppo'] = Variable<String>(gruppo.value);
+    }
+    if (categoria.present) {
+      map['categoria'] = Variable<String>(categoria.value);
+    }
+    if (colliPerStrato.present) {
+      map['colliPerStrato'] = Variable<String>(colliPerStrato.value);
+    }
+    if (stratiPerPallet.present) {
+      map['stratiPerPallet'] = Variable<String>(stratiPerPallet.value);
+    }
+    return map;
+  }
+
+  @override
+  String toString() {
+    return (StringBuffer('ArticoliCompanion(')
+          ..write('idArticolo: $idArticolo, ')
+          ..write('posizione: $posizione, ')
+          ..write('codArticolo: $codArticolo, ')
+          ..write('descrizione: $descrizione, ')
+          ..write('ean: $ean, ')
+          ..write('idIva: $idIva, ')
+          ..write('idClassifica1: $idClassifica1, ')
+          ..write('idClassifica2: $idClassifica2, ')
+          ..write('idClassifica3: $idClassifica3, ')
+          ..write('idClassifica4: $idClassifica4, ')
+          ..write('peso: $peso, ')
+          ..write('giacenza: $giacenza, ')
+          ..write('unitaMisura: $unitaMisura, ')
+          ..write('attivo: $attivo, ')
+          ..write('nonDisponibile: $nonDisponibile, ')
+          ..write('pezziConfezione: $pezziConfezione, ')
+          ..write('fileFoto: $fileFoto, ')
+          ..write('schedaProdotto: $schedaProdotto, ')
+          ..write('prezzoBase: $prezzoBase, ')
+          ..write('stato: $stato, ')
+          ..write('dataModifica: $dataModifica, ')
+          ..write('gruppo: $gruppo, ')
+          ..write('categoria: $categoria, ')
+          ..write('colliPerStrato: $colliPerStrato, ')
+          ..write('stratiPerPallet: $stratiPerPallet')
+          ..write(')'))
+        .toString();
+  }
+}
+
+class $ClientiTable extends Clienti with TableInfo<$ClientiTable, Cliente> {
+  @override
+  final GeneratedDatabase attachedDatabase;
+  final String? _alias;
+  $ClientiTable(this.attachedDatabase, [this._alias]);
+  static const VerificationMeta _idClienteMeta = const VerificationMeta(
+    'idCliente',
+  );
+  @override
+  late final GeneratedColumn<int> idCliente = GeneratedColumn<int>(
+    'idCliente',
+    aliasedName,
+    false,
+    hasAutoIncrement: true,
+    type: DriftSqlType.int,
+    requiredDuringInsert: false,
+    defaultConstraints: GeneratedColumn.constraintIsAlways(
+      'PRIMARY KEY AUTOINCREMENT',
+    ),
+  );
+  static const VerificationMeta _idClienteRemotoMeta = const VerificationMeta(
+    'idClienteRemoto',
+  );
+  @override
+  late final GeneratedColumn<int> idClienteRemoto = GeneratedColumn<int>(
+    'idClienteRemoto',
+    aliasedName,
+    true,
+    type: DriftSqlType.int,
+    requiredDuringInsert: false,
+  );
+  static const VerificationMeta _codClienteMeta = const VerificationMeta(
+    'codCliente',
+  );
+  @override
+  late final GeneratedColumn<String> codCliente = GeneratedColumn<String>(
+    'codCliente',
+    aliasedName,
+    true,
+    type: DriftSqlType.string,
+    requiredDuringInsert: false,
+  );
+  static const VerificationMeta _ragioneSocialeMeta = const VerificationMeta(
+    'ragioneSociale',
+  );
+  @override
+  late final GeneratedColumn<String> ragioneSociale = GeneratedColumn<String>(
+    'ragioneSociale',
+    aliasedName,
+    true,
+    type: DriftSqlType.string,
+    requiredDuringInsert: false,
+  );
+  static const VerificationMeta _indirizzoMeta = const VerificationMeta(
+    'indirizzo',
+  );
+  @override
+  late final GeneratedColumn<String> indirizzo = GeneratedColumn<String>(
+    'indirizzo',
+    aliasedName,
+    true,
+    type: DriftSqlType.string,
+    requiredDuringInsert: false,
+  );
+  static const VerificationMeta _cittaMeta = const VerificationMeta('citta');
+  @override
+  late final GeneratedColumn<String> citta = GeneratedColumn<String>(
+    'citta',
+    aliasedName,
+    true,
+    type: DriftSqlType.string,
+    requiredDuringInsert: false,
+  );
+  static const VerificationMeta _provinciaMeta = const VerificationMeta(
+    'provincia',
+  );
+  @override
+  late final GeneratedColumn<String> provincia = GeneratedColumn<String>(
+    'provincia',
+    aliasedName,
+    true,
+    type: DriftSqlType.string,
+    requiredDuringInsert: false,
+  );
+  static const VerificationMeta _capMeta = const VerificationMeta('cap');
+  @override
+  late final GeneratedColumn<String> cap = GeneratedColumn<String>(
+    'cap',
+    aliasedName,
+    true,
+    type: DriftSqlType.string,
+    requiredDuringInsert: false,
+  );
+  static const VerificationMeta _frazioneMeta = const VerificationMeta(
+    'frazione',
+  );
+  @override
+  late final GeneratedColumn<String> frazione = GeneratedColumn<String>(
+    'frazione',
+    aliasedName,
+    true,
+    type: DriftSqlType.string,
+    requiredDuringInsert: false,
+  );
+  static const VerificationMeta _nazioneMeta = const VerificationMeta(
+    'nazione',
+  );
+  @override
+  late final GeneratedColumn<String> nazione = GeneratedColumn<String>(
+    'nazione',
+    aliasedName,
+    true,
+    type: DriftSqlType.string,
+    requiredDuringInsert: false,
+  );
+  static const VerificationMeta _telefonoMeta = const VerificationMeta(
+    'telefono',
+  );
+  @override
+  late final GeneratedColumn<String> telefono = GeneratedColumn<String>(
+    'telefono',
+    aliasedName,
+    true,
+    type: DriftSqlType.string,
+    requiredDuringInsert: false,
+  );
+  static const VerificationMeta _cellulareMeta = const VerificationMeta(
+    'cellulare',
+  );
+  @override
+  late final GeneratedColumn<String> cellulare = GeneratedColumn<String>(
+    'cellulare',
+    aliasedName,
+    true,
+    type: DriftSqlType.string,
+    requiredDuringInsert: false,
+  );
+  static const VerificationMeta _faxMeta = const VerificationMeta('fax');
+  @override
+  late final GeneratedColumn<String> fax = GeneratedColumn<String>(
+    'fax',
+    aliasedName,
+    true,
+    type: DriftSqlType.string,
+    requiredDuringInsert: false,
+  );
+  static const VerificationMeta _emailMeta = const VerificationMeta('email');
+  @override
+  late final GeneratedColumn<String> email = GeneratedColumn<String>(
+    'email',
+    aliasedName,
+    true,
+    type: DriftSqlType.string,
+    requiredDuringInsert: false,
+  );
+  static const VerificationMeta _partitaIvaMeta = const VerificationMeta(
+    'partitaIva',
+  );
+  @override
+  late final GeneratedColumn<String> partitaIva = GeneratedColumn<String>(
+    'partitaIva',
+    aliasedName,
+    true,
+    type: DriftSqlType.string,
+    requiredDuringInsert: false,
+  );
+  static const VerificationMeta _codiceFiscaleMeta = const VerificationMeta(
+    'codiceFiscale',
+  );
+  @override
+  late final GeneratedColumn<String> codiceFiscale = GeneratedColumn<String>(
+    'codiceFiscale',
+    aliasedName,
+    true,
+    type: DriftSqlType.string,
+    requiredDuringInsert: false,
+  );
+  static const VerificationMeta _noteMeta = const VerificationMeta('note');
+  @override
+  late final GeneratedColumn<String> note = GeneratedColumn<String>(
+    'note',
+    aliasedName,
+    true,
+    type: DriftSqlType.string,
+    requiredDuringInsert: false,
+  );
+  static const VerificationMeta _noteOrdineMeta = const VerificationMeta(
+    'noteOrdine',
+  );
+  @override
+  late final GeneratedColumn<String> noteOrdine = GeneratedColumn<String>(
+    'noteOrdine',
+    aliasedName,
+    true,
+    type: DriftSqlType.string,
+    requiredDuringInsert: false,
+  );
+  static const VerificationMeta _statoMeta = const VerificationMeta('stato');
+  @override
+  late final GeneratedColumn<String> stato = GeneratedColumn<String>(
+    'stato',
+    aliasedName,
+    false,
+    type: DriftSqlType.string,
+    requiredDuringInsert: false,
+    defaultValue: const Constant('N'),
+  );
+  static const VerificationMeta _attivoMeta = const VerificationMeta('attivo');
+  @override
+  late final GeneratedColumn<int> attivo = GeneratedColumn<int>(
+    'attivo',
+    aliasedName,
+    false,
+    type: DriftSqlType.int,
+    requiredDuringInsert: false,
+    defaultValue: const Constant(1),
+  );
+  static const VerificationMeta _idPagamentoMeta = const VerificationMeta(
+    'idPagamento',
+  );
+  @override
+  late final GeneratedColumn<int> idPagamento = GeneratedColumn<int>(
+    'idPagamento',
+    aliasedName,
+    true,
+    type: DriftSqlType.int,
+    requiredDuringInsert: false,
+  );
+  static const VerificationMeta _idListinoMeta = const VerificationMeta(
+    'idListino',
+  );
+  @override
+  late final GeneratedColumn<int> idListino = GeneratedColumn<int>(
+    'idListino',
+    aliasedName,
+    true,
+    type: DriftSqlType.int,
+    requiredDuringInsert: false,
+  );
+  static const VerificationMeta _dataModificaMeta = const VerificationMeta(
+    'dataModifica',
+  );
+  @override
+  late final GeneratedColumn<String> dataModifica = GeneratedColumn<String>(
+    'dataModifica',
+    aliasedName,
+    true,
+    type: DriftSqlType.string,
+    requiredDuringInsert: false,
+  );
+  static const VerificationMeta _sdiMeta = const VerificationMeta('sdi');
+  @override
+  late final GeneratedColumn<String> sdi = GeneratedColumn<String>(
+    'sdi',
+    aliasedName,
+    true,
+    type: DriftSqlType.string,
+    requiredDuringInsert: false,
+  );
+  static const VerificationMeta _pecMeta = const VerificationMeta('pec');
+  @override
+  late final GeneratedColumn<String> pec = GeneratedColumn<String>(
+    'pec',
+    aliasedName,
+    true,
+    type: DriftSqlType.string,
+    requiredDuringInsert: false,
+  );
+  static const VerificationMeta _altreNoteMeta = const VerificationMeta(
+    'altreNote',
+  );
+  @override
+  late final GeneratedColumn<String> altreNote = GeneratedColumn<String>(
+    'altreNote',
+    aliasedName,
+    true,
+    type: DriftSqlType.string,
+    requiredDuringInsert: false,
+  );
+  static const VerificationMeta _numeroCivicoMeta = const VerificationMeta(
+    'numeroCivico',
+  );
+  @override
+  late final GeneratedColumn<String> numeroCivico = GeneratedColumn<String>(
+    'numeroCivico',
+    aliasedName,
+    true,
+    type: DriftSqlType.string,
+    requiredDuringInsert: false,
+  );
+  static const VerificationMeta _podMeta = const VerificationMeta('pod');
+  @override
+  late final GeneratedColumn<String> pod = GeneratedColumn<String>(
+    'pod',
+    aliasedName,
+    true,
+    type: DriftSqlType.string,
+    requiredDuringInsert: false,
+  );
+  static const VerificationMeta _pdrMeta = const VerificationMeta('pdr');
+  @override
+  late final GeneratedColumn<String> pdr = GeneratedColumn<String>(
+    'pdr',
+    aliasedName,
+    true,
+    type: DriftSqlType.string,
+    requiredDuringInsert: false,
+  );
+  static const VerificationMeta _ubicazioneMeta = const VerificationMeta(
+    'ubicazione',
+  );
+  @override
+  late final GeneratedColumn<String> ubicazione = GeneratedColumn<String>(
+    'ubicazione',
+    aliasedName,
+    true,
+    type: DriftSqlType.string,
+    requiredDuringInsert: false,
+  );
+  static const VerificationMeta _bancaMeta = const VerificationMeta('banca');
+  @override
+  late final GeneratedColumn<String> banca = GeneratedColumn<String>(
+    'banca',
+    aliasedName,
+    true,
+    type: DriftSqlType.string,
+    requiredDuringInsert: false,
+  );
+  static const VerificationMeta _bancaFilialeMeta = const VerificationMeta(
+    'bancaFiliale',
+  );
+  @override
+  late final GeneratedColumn<String> bancaFiliale = GeneratedColumn<String>(
+    'bancaFiliale',
+    aliasedName,
+    true,
+    type: DriftSqlType.string,
+    requiredDuringInsert: false,
+  );
+  static const VerificationMeta _codBloccoMeta = const VerificationMeta(
+    'codBlocco',
+  );
+  @override
+  late final GeneratedColumn<String> codBlocco = GeneratedColumn<String>(
+    'codBlocco',
+    aliasedName,
+    true,
+    type: DriftSqlType.string,
+    requiredDuringInsert: false,
+  );
+  @override
+  List<GeneratedColumn> get $columns => [
+    idCliente,
+    idClienteRemoto,
+    codCliente,
+    ragioneSociale,
+    indirizzo,
+    citta,
+    provincia,
+    cap,
+    frazione,
+    nazione,
+    telefono,
+    cellulare,
+    fax,
+    email,
+    partitaIva,
+    codiceFiscale,
+    note,
+    noteOrdine,
+    stato,
+    attivo,
+    idPagamento,
+    idListino,
+    dataModifica,
+    sdi,
+    pec,
+    altreNote,
+    numeroCivico,
+    pod,
+    pdr,
+    ubicazione,
+    banca,
+    bancaFiliale,
+    codBlocco,
+  ];
+  @override
+  String get aliasedName => _alias ?? actualTableName;
+  @override
+  String get actualTableName => $name;
+  static const String $name = 'Clienti';
+  @override
+  VerificationContext validateIntegrity(
+    Insertable<Cliente> instance, {
+    bool isInserting = false,
+  }) {
+    final context = VerificationContext();
+    final data = instance.toColumns(true);
+    if (data.containsKey('idCliente')) {
+      context.handle(
+        _idClienteMeta,
+        idCliente.isAcceptableOrUnknown(data['idCliente']!, _idClienteMeta),
+      );
+    }
+    if (data.containsKey('idClienteRemoto')) {
+      context.handle(
+        _idClienteRemotoMeta,
+        idClienteRemoto.isAcceptableOrUnknown(
+          data['idClienteRemoto']!,
+          _idClienteRemotoMeta,
+        ),
+      );
+    }
+    if (data.containsKey('codCliente')) {
+      context.handle(
+        _codClienteMeta,
+        codCliente.isAcceptableOrUnknown(data['codCliente']!, _codClienteMeta),
+      );
+    }
+    if (data.containsKey('ragioneSociale')) {
+      context.handle(
+        _ragioneSocialeMeta,
+        ragioneSociale.isAcceptableOrUnknown(
+          data['ragioneSociale']!,
+          _ragioneSocialeMeta,
+        ),
+      );
+    }
+    if (data.containsKey('indirizzo')) {
+      context.handle(
+        _indirizzoMeta,
+        indirizzo.isAcceptableOrUnknown(data['indirizzo']!, _indirizzoMeta),
+      );
+    }
+    if (data.containsKey('citta')) {
+      context.handle(
+        _cittaMeta,
+        citta.isAcceptableOrUnknown(data['citta']!, _cittaMeta),
+      );
+    }
+    if (data.containsKey('provincia')) {
+      context.handle(
+        _provinciaMeta,
+        provincia.isAcceptableOrUnknown(data['provincia']!, _provinciaMeta),
+      );
+    }
+    if (data.containsKey('cap')) {
+      context.handle(
+        _capMeta,
+        cap.isAcceptableOrUnknown(data['cap']!, _capMeta),
+      );
+    }
+    if (data.containsKey('frazione')) {
+      context.handle(
+        _frazioneMeta,
+        frazione.isAcceptableOrUnknown(data['frazione']!, _frazioneMeta),
+      );
+    }
+    if (data.containsKey('nazione')) {
+      context.handle(
+        _nazioneMeta,
+        nazione.isAcceptableOrUnknown(data['nazione']!, _nazioneMeta),
+      );
+    }
+    if (data.containsKey('telefono')) {
+      context.handle(
+        _telefonoMeta,
+        telefono.isAcceptableOrUnknown(data['telefono']!, _telefonoMeta),
+      );
+    }
+    if (data.containsKey('cellulare')) {
+      context.handle(
+        _cellulareMeta,
+        cellulare.isAcceptableOrUnknown(data['cellulare']!, _cellulareMeta),
+      );
+    }
+    if (data.containsKey('fax')) {
+      context.handle(
+        _faxMeta,
+        fax.isAcceptableOrUnknown(data['fax']!, _faxMeta),
+      );
+    }
+    if (data.containsKey('email')) {
+      context.handle(
+        _emailMeta,
+        email.isAcceptableOrUnknown(data['email']!, _emailMeta),
+      );
+    }
+    if (data.containsKey('partitaIva')) {
+      context.handle(
+        _partitaIvaMeta,
+        partitaIva.isAcceptableOrUnknown(data['partitaIva']!, _partitaIvaMeta),
+      );
+    }
+    if (data.containsKey('codiceFiscale')) {
+      context.handle(
+        _codiceFiscaleMeta,
+        codiceFiscale.isAcceptableOrUnknown(
+          data['codiceFiscale']!,
+          _codiceFiscaleMeta,
+        ),
+      );
+    }
+    if (data.containsKey('note')) {
+      context.handle(
+        _noteMeta,
+        note.isAcceptableOrUnknown(data['note']!, _noteMeta),
+      );
+    }
+    if (data.containsKey('noteOrdine')) {
+      context.handle(
+        _noteOrdineMeta,
+        noteOrdine.isAcceptableOrUnknown(data['noteOrdine']!, _noteOrdineMeta),
+      );
+    }
+    if (data.containsKey('stato')) {
+      context.handle(
+        _statoMeta,
+        stato.isAcceptableOrUnknown(data['stato']!, _statoMeta),
+      );
+    }
+    if (data.containsKey('attivo')) {
+      context.handle(
+        _attivoMeta,
+        attivo.isAcceptableOrUnknown(data['attivo']!, _attivoMeta),
+      );
+    }
+    if (data.containsKey('idPagamento')) {
+      context.handle(
+        _idPagamentoMeta,
+        idPagamento.isAcceptableOrUnknown(
+          data['idPagamento']!,
+          _idPagamentoMeta,
+        ),
+      );
+    }
+    if (data.containsKey('idListino')) {
+      context.handle(
+        _idListinoMeta,
+        idListino.isAcceptableOrUnknown(data['idListino']!, _idListinoMeta),
+      );
+    }
+    if (data.containsKey('dataModifica')) {
+      context.handle(
+        _dataModificaMeta,
+        dataModifica.isAcceptableOrUnknown(
+          data['dataModifica']!,
+          _dataModificaMeta,
+        ),
+      );
+    }
+    if (data.containsKey('sdi')) {
+      context.handle(
+        _sdiMeta,
+        sdi.isAcceptableOrUnknown(data['sdi']!, _sdiMeta),
+      );
+    }
+    if (data.containsKey('pec')) {
+      context.handle(
+        _pecMeta,
+        pec.isAcceptableOrUnknown(data['pec']!, _pecMeta),
+      );
+    }
+    if (data.containsKey('altreNote')) {
+      context.handle(
+        _altreNoteMeta,
+        altreNote.isAcceptableOrUnknown(data['altreNote']!, _altreNoteMeta),
+      );
+    }
+    if (data.containsKey('numeroCivico')) {
+      context.handle(
+        _numeroCivicoMeta,
+        numeroCivico.isAcceptableOrUnknown(
+          data['numeroCivico']!,
+          _numeroCivicoMeta,
+        ),
+      );
+    }
+    if (data.containsKey('pod')) {
+      context.handle(
+        _podMeta,
+        pod.isAcceptableOrUnknown(data['pod']!, _podMeta),
+      );
+    }
+    if (data.containsKey('pdr')) {
+      context.handle(
+        _pdrMeta,
+        pdr.isAcceptableOrUnknown(data['pdr']!, _pdrMeta),
+      );
+    }
+    if (data.containsKey('ubicazione')) {
+      context.handle(
+        _ubicazioneMeta,
+        ubicazione.isAcceptableOrUnknown(data['ubicazione']!, _ubicazioneMeta),
+      );
+    }
+    if (data.containsKey('banca')) {
+      context.handle(
+        _bancaMeta,
+        banca.isAcceptableOrUnknown(data['banca']!, _bancaMeta),
+      );
+    }
+    if (data.containsKey('bancaFiliale')) {
+      context.handle(
+        _bancaFilialeMeta,
+        bancaFiliale.isAcceptableOrUnknown(
+          data['bancaFiliale']!,
+          _bancaFilialeMeta,
+        ),
+      );
+    }
+    if (data.containsKey('codBlocco')) {
+      context.handle(
+        _codBloccoMeta,
+        codBlocco.isAcceptableOrUnknown(data['codBlocco']!, _codBloccoMeta),
+      );
+    }
+    return context;
+  }
+
+  @override
+  Set<GeneratedColumn> get $primaryKey => {idCliente};
+  @override
+  Cliente map(Map<String, dynamic> data, {String? tablePrefix}) {
+    final effectivePrefix = tablePrefix != null ? '$tablePrefix.' : '';
+    return Cliente(
+      idCliente: attachedDatabase.typeMapping.read(
+        DriftSqlType.int,
+        data['${effectivePrefix}idCliente'],
+      )!,
+      idClienteRemoto: attachedDatabase.typeMapping.read(
+        DriftSqlType.int,
+        data['${effectivePrefix}idClienteRemoto'],
+      ),
+      codCliente: attachedDatabase.typeMapping.read(
+        DriftSqlType.string,
+        data['${effectivePrefix}codCliente'],
+      ),
+      ragioneSociale: attachedDatabase.typeMapping.read(
+        DriftSqlType.string,
+        data['${effectivePrefix}ragioneSociale'],
+      ),
+      indirizzo: attachedDatabase.typeMapping.read(
+        DriftSqlType.string,
+        data['${effectivePrefix}indirizzo'],
+      ),
+      citta: attachedDatabase.typeMapping.read(
+        DriftSqlType.string,
+        data['${effectivePrefix}citta'],
+      ),
+      provincia: attachedDatabase.typeMapping.read(
+        DriftSqlType.string,
+        data['${effectivePrefix}provincia'],
+      ),
+      cap: attachedDatabase.typeMapping.read(
+        DriftSqlType.string,
+        data['${effectivePrefix}cap'],
+      ),
+      frazione: attachedDatabase.typeMapping.read(
+        DriftSqlType.string,
+        data['${effectivePrefix}frazione'],
+      ),
+      nazione: attachedDatabase.typeMapping.read(
+        DriftSqlType.string,
+        data['${effectivePrefix}nazione'],
+      ),
+      telefono: attachedDatabase.typeMapping.read(
+        DriftSqlType.string,
+        data['${effectivePrefix}telefono'],
+      ),
+      cellulare: attachedDatabase.typeMapping.read(
+        DriftSqlType.string,
+        data['${effectivePrefix}cellulare'],
+      ),
+      fax: attachedDatabase.typeMapping.read(
+        DriftSqlType.string,
+        data['${effectivePrefix}fax'],
+      ),
+      email: attachedDatabase.typeMapping.read(
+        DriftSqlType.string,
+        data['${effectivePrefix}email'],
+      ),
+      partitaIva: attachedDatabase.typeMapping.read(
+        DriftSqlType.string,
+        data['${effectivePrefix}partitaIva'],
+      ),
+      codiceFiscale: attachedDatabase.typeMapping.read(
+        DriftSqlType.string,
+        data['${effectivePrefix}codiceFiscale'],
+      ),
+      note: attachedDatabase.typeMapping.read(
+        DriftSqlType.string,
+        data['${effectivePrefix}note'],
+      ),
+      noteOrdine: attachedDatabase.typeMapping.read(
+        DriftSqlType.string,
+        data['${effectivePrefix}noteOrdine'],
+      ),
+      stato: attachedDatabase.typeMapping.read(
+        DriftSqlType.string,
+        data['${effectivePrefix}stato'],
+      )!,
+      attivo: attachedDatabase.typeMapping.read(
+        DriftSqlType.int,
+        data['${effectivePrefix}attivo'],
+      )!,
+      idPagamento: attachedDatabase.typeMapping.read(
+        DriftSqlType.int,
+        data['${effectivePrefix}idPagamento'],
+      ),
+      idListino: attachedDatabase.typeMapping.read(
+        DriftSqlType.int,
+        data['${effectivePrefix}idListino'],
+      ),
+      dataModifica: attachedDatabase.typeMapping.read(
+        DriftSqlType.string,
+        data['${effectivePrefix}dataModifica'],
+      ),
+      sdi: attachedDatabase.typeMapping.read(
+        DriftSqlType.string,
+        data['${effectivePrefix}sdi'],
+      ),
+      pec: attachedDatabase.typeMapping.read(
+        DriftSqlType.string,
+        data['${effectivePrefix}pec'],
+      ),
+      altreNote: attachedDatabase.typeMapping.read(
+        DriftSqlType.string,
+        data['${effectivePrefix}altreNote'],
+      ),
+      numeroCivico: attachedDatabase.typeMapping.read(
+        DriftSqlType.string,
+        data['${effectivePrefix}numeroCivico'],
+      ),
+      pod: attachedDatabase.typeMapping.read(
+        DriftSqlType.string,
+        data['${effectivePrefix}pod'],
+      ),
+      pdr: attachedDatabase.typeMapping.read(
+        DriftSqlType.string,
+        data['${effectivePrefix}pdr'],
+      ),
+      ubicazione: attachedDatabase.typeMapping.read(
+        DriftSqlType.string,
+        data['${effectivePrefix}ubicazione'],
+      ),
+      banca: attachedDatabase.typeMapping.read(
+        DriftSqlType.string,
+        data['${effectivePrefix}banca'],
+      ),
+      bancaFiliale: attachedDatabase.typeMapping.read(
+        DriftSqlType.string,
+        data['${effectivePrefix}bancaFiliale'],
+      ),
+      codBlocco: attachedDatabase.typeMapping.read(
+        DriftSqlType.string,
+        data['${effectivePrefix}codBlocco'],
+      ),
+    );
+  }
+
+  @override
+  $ClientiTable createAlias(String alias) {
+    return $ClientiTable(attachedDatabase, alias);
+  }
+}
+
+class Cliente extends DataClass implements Insertable<Cliente> {
+  final int idCliente;
+  final int? idClienteRemoto;
+  final String? codCliente;
+  final String? ragioneSociale;
+  final String? indirizzo;
+  final String? citta;
+  final String? provincia;
+  final String? cap;
+  final String? frazione;
+  final String? nazione;
+  final String? telefono;
+  final String? cellulare;
+  final String? fax;
+  final String? email;
+  final String? partitaIva;
+  final String? codiceFiscale;
+  final String? note;
+  final String? noteOrdine;
+  final String stato;
+  final int attivo;
+  final int? idPagamento;
+  final int? idListino;
+  final String? dataModifica;
+  final String? sdi;
+  final String? pec;
+  final String? altreNote;
+  final String? numeroCivico;
+  final String? pod;
+  final String? pdr;
+  final String? ubicazione;
+  final String? banca;
+  final String? bancaFiliale;
+  final String? codBlocco;
+  const Cliente({
+    required this.idCliente,
+    this.idClienteRemoto,
+    this.codCliente,
+    this.ragioneSociale,
+    this.indirizzo,
+    this.citta,
+    this.provincia,
+    this.cap,
+    this.frazione,
+    this.nazione,
+    this.telefono,
+    this.cellulare,
+    this.fax,
+    this.email,
+    this.partitaIva,
+    this.codiceFiscale,
+    this.note,
+    this.noteOrdine,
+    required this.stato,
+    required this.attivo,
+    this.idPagamento,
+    this.idListino,
+    this.dataModifica,
+    this.sdi,
+    this.pec,
+    this.altreNote,
+    this.numeroCivico,
+    this.pod,
+    this.pdr,
+    this.ubicazione,
+    this.banca,
+    this.bancaFiliale,
+    this.codBlocco,
+  });
+  @override
+  Map<String, Expression> toColumns(bool nullToAbsent) {
+    final map = <String, Expression>{};
+    map['idCliente'] = Variable<int>(idCliente);
+    if (!nullToAbsent || idClienteRemoto != null) {
+      map['idClienteRemoto'] = Variable<int>(idClienteRemoto);
+    }
+    if (!nullToAbsent || codCliente != null) {
+      map['codCliente'] = Variable<String>(codCliente);
+    }
+    if (!nullToAbsent || ragioneSociale != null) {
+      map['ragioneSociale'] = Variable<String>(ragioneSociale);
+    }
+    if (!nullToAbsent || indirizzo != null) {
+      map['indirizzo'] = Variable<String>(indirizzo);
+    }
+    if (!nullToAbsent || citta != null) {
+      map['citta'] = Variable<String>(citta);
+    }
+    if (!nullToAbsent || provincia != null) {
+      map['provincia'] = Variable<String>(provincia);
+    }
+    if (!nullToAbsent || cap != null) {
+      map['cap'] = Variable<String>(cap);
+    }
+    if (!nullToAbsent || frazione != null) {
+      map['frazione'] = Variable<String>(frazione);
+    }
+    if (!nullToAbsent || nazione != null) {
+      map['nazione'] = Variable<String>(nazione);
+    }
+    if (!nullToAbsent || telefono != null) {
+      map['telefono'] = Variable<String>(telefono);
+    }
+    if (!nullToAbsent || cellulare != null) {
+      map['cellulare'] = Variable<String>(cellulare);
+    }
+    if (!nullToAbsent || fax != null) {
+      map['fax'] = Variable<String>(fax);
+    }
+    if (!nullToAbsent || email != null) {
+      map['email'] = Variable<String>(email);
+    }
+    if (!nullToAbsent || partitaIva != null) {
+      map['partitaIva'] = Variable<String>(partitaIva);
+    }
+    if (!nullToAbsent || codiceFiscale != null) {
+      map['codiceFiscale'] = Variable<String>(codiceFiscale);
+    }
+    if (!nullToAbsent || note != null) {
+      map['note'] = Variable<String>(note);
+    }
+    if (!nullToAbsent || noteOrdine != null) {
+      map['noteOrdine'] = Variable<String>(noteOrdine);
+    }
+    map['stato'] = Variable<String>(stato);
+    map['attivo'] = Variable<int>(attivo);
+    if (!nullToAbsent || idPagamento != null) {
+      map['idPagamento'] = Variable<int>(idPagamento);
+    }
+    if (!nullToAbsent || idListino != null) {
+      map['idListino'] = Variable<int>(idListino);
+    }
+    if (!nullToAbsent || dataModifica != null) {
+      map['dataModifica'] = Variable<String>(dataModifica);
+    }
+    if (!nullToAbsent || sdi != null) {
+      map['sdi'] = Variable<String>(sdi);
+    }
+    if (!nullToAbsent || pec != null) {
+      map['pec'] = Variable<String>(pec);
+    }
+    if (!nullToAbsent || altreNote != null) {
+      map['altreNote'] = Variable<String>(altreNote);
+    }
+    if (!nullToAbsent || numeroCivico != null) {
+      map['numeroCivico'] = Variable<String>(numeroCivico);
+    }
+    if (!nullToAbsent || pod != null) {
+      map['pod'] = Variable<String>(pod);
+    }
+    if (!nullToAbsent || pdr != null) {
+      map['pdr'] = Variable<String>(pdr);
+    }
+    if (!nullToAbsent || ubicazione != null) {
+      map['ubicazione'] = Variable<String>(ubicazione);
+    }
+    if (!nullToAbsent || banca != null) {
+      map['banca'] = Variable<String>(banca);
+    }
+    if (!nullToAbsent || bancaFiliale != null) {
+      map['bancaFiliale'] = Variable<String>(bancaFiliale);
+    }
+    if (!nullToAbsent || codBlocco != null) {
+      map['codBlocco'] = Variable<String>(codBlocco);
+    }
+    return map;
+  }
+
+  ClientiCompanion toCompanion(bool nullToAbsent) {
+    return ClientiCompanion(
+      idCliente: Value(idCliente),
+      idClienteRemoto: idClienteRemoto == null && nullToAbsent
+          ? const Value.absent()
+          : Value(idClienteRemoto),
+      codCliente: codCliente == null && nullToAbsent
+          ? const Value.absent()
+          : Value(codCliente),
+      ragioneSociale: ragioneSociale == null && nullToAbsent
+          ? const Value.absent()
+          : Value(ragioneSociale),
+      indirizzo: indirizzo == null && nullToAbsent
+          ? const Value.absent()
+          : Value(indirizzo),
+      citta: citta == null && nullToAbsent
+          ? const Value.absent()
+          : Value(citta),
+      provincia: provincia == null && nullToAbsent
+          ? const Value.absent()
+          : Value(provincia),
+      cap: cap == null && nullToAbsent ? const Value.absent() : Value(cap),
+      frazione: frazione == null && nullToAbsent
+          ? const Value.absent()
+          : Value(frazione),
+      nazione: nazione == null && nullToAbsent
+          ? const Value.absent()
+          : Value(nazione),
+      telefono: telefono == null && nullToAbsent
+          ? const Value.absent()
+          : Value(telefono),
+      cellulare: cellulare == null && nullToAbsent
+          ? const Value.absent()
+          : Value(cellulare),
+      fax: fax == null && nullToAbsent ? const Value.absent() : Value(fax),
+      email: email == null && nullToAbsent
+          ? const Value.absent()
+          : Value(email),
+      partitaIva: partitaIva == null && nullToAbsent
+          ? const Value.absent()
+          : Value(partitaIva),
+      codiceFiscale: codiceFiscale == null && nullToAbsent
+          ? const Value.absent()
+          : Value(codiceFiscale),
+      note: note == null && nullToAbsent ? const Value.absent() : Value(note),
+      noteOrdine: noteOrdine == null && nullToAbsent
+          ? const Value.absent()
+          : Value(noteOrdine),
+      stato: Value(stato),
+      attivo: Value(attivo),
+      idPagamento: idPagamento == null && nullToAbsent
+          ? const Value.absent()
+          : Value(idPagamento),
+      idListino: idListino == null && nullToAbsent
+          ? const Value.absent()
+          : Value(idListino),
+      dataModifica: dataModifica == null && nullToAbsent
+          ? const Value.absent()
+          : Value(dataModifica),
+      sdi: sdi == null && nullToAbsent ? const Value.absent() : Value(sdi),
+      pec: pec == null && nullToAbsent ? const Value.absent() : Value(pec),
+      altreNote: altreNote == null && nullToAbsent
+          ? const Value.absent()
+          : Value(altreNote),
+      numeroCivico: numeroCivico == null && nullToAbsent
+          ? const Value.absent()
+          : Value(numeroCivico),
+      pod: pod == null && nullToAbsent ? const Value.absent() : Value(pod),
+      pdr: pdr == null && nullToAbsent ? const Value.absent() : Value(pdr),
+      ubicazione: ubicazione == null && nullToAbsent
+          ? const Value.absent()
+          : Value(ubicazione),
+      banca: banca == null && nullToAbsent
+          ? const Value.absent()
+          : Value(banca),
+      bancaFiliale: bancaFiliale == null && nullToAbsent
+          ? const Value.absent()
+          : Value(bancaFiliale),
+      codBlocco: codBlocco == null && nullToAbsent
+          ? const Value.absent()
+          : Value(codBlocco),
+    );
+  }
+
+  factory Cliente.fromJson(
+    Map<String, dynamic> json, {
+    ValueSerializer? serializer,
+  }) {
+    serializer ??= driftRuntimeOptions.defaultSerializer;
+    return Cliente(
+      idCliente: serializer.fromJson<int>(json['idCliente']),
+      idClienteRemoto: serializer.fromJson<int?>(json['idClienteRemoto']),
+      codCliente: serializer.fromJson<String?>(json['codCliente']),
+      ragioneSociale: serializer.fromJson<String?>(json['ragioneSociale']),
+      indirizzo: serializer.fromJson<String?>(json['indirizzo']),
+      citta: serializer.fromJson<String?>(json['citta']),
+      provincia: serializer.fromJson<String?>(json['provincia']),
+      cap: serializer.fromJson<String?>(json['cap']),
+      frazione: serializer.fromJson<String?>(json['frazione']),
+      nazione: serializer.fromJson<String?>(json['nazione']),
+      telefono: serializer.fromJson<String?>(json['telefono']),
+      cellulare: serializer.fromJson<String?>(json['cellulare']),
+      fax: serializer.fromJson<String?>(json['fax']),
+      email: serializer.fromJson<String?>(json['email']),
+      partitaIva: serializer.fromJson<String?>(json['partitaIva']),
+      codiceFiscale: serializer.fromJson<String?>(json['codiceFiscale']),
+      note: serializer.fromJson<String?>(json['note']),
+      noteOrdine: serializer.fromJson<String?>(json['noteOrdine']),
+      stato: serializer.fromJson<String>(json['stato']),
+      attivo: serializer.fromJson<int>(json['attivo']),
+      idPagamento: serializer.fromJson<int?>(json['idPagamento']),
+      idListino: serializer.fromJson<int?>(json['idListino']),
+      dataModifica: serializer.fromJson<String?>(json['dataModifica']),
+      sdi: serializer.fromJson<String?>(json['sdi']),
+      pec: serializer.fromJson<String?>(json['pec']),
+      altreNote: serializer.fromJson<String?>(json['altreNote']),
+      numeroCivico: serializer.fromJson<String?>(json['numeroCivico']),
+      pod: serializer.fromJson<String?>(json['pod']),
+      pdr: serializer.fromJson<String?>(json['pdr']),
+      ubicazione: serializer.fromJson<String?>(json['ubicazione']),
+      banca: serializer.fromJson<String?>(json['banca']),
+      bancaFiliale: serializer.fromJson<String?>(json['bancaFiliale']),
+      codBlocco: serializer.fromJson<String?>(json['codBlocco']),
+    );
+  }
+  @override
+  Map<String, dynamic> toJson({ValueSerializer? serializer}) {
+    serializer ??= driftRuntimeOptions.defaultSerializer;
+    return <String, dynamic>{
+      'idCliente': serializer.toJson<int>(idCliente),
+      'idClienteRemoto': serializer.toJson<int?>(idClienteRemoto),
+      'codCliente': serializer.toJson<String?>(codCliente),
+      'ragioneSociale': serializer.toJson<String?>(ragioneSociale),
+      'indirizzo': serializer.toJson<String?>(indirizzo),
+      'citta': serializer.toJson<String?>(citta),
+      'provincia': serializer.toJson<String?>(provincia),
+      'cap': serializer.toJson<String?>(cap),
+      'frazione': serializer.toJson<String?>(frazione),
+      'nazione': serializer.toJson<String?>(nazione),
+      'telefono': serializer.toJson<String?>(telefono),
+      'cellulare': serializer.toJson<String?>(cellulare),
+      'fax': serializer.toJson<String?>(fax),
+      'email': serializer.toJson<String?>(email),
+      'partitaIva': serializer.toJson<String?>(partitaIva),
+      'codiceFiscale': serializer.toJson<String?>(codiceFiscale),
+      'note': serializer.toJson<String?>(note),
+      'noteOrdine': serializer.toJson<String?>(noteOrdine),
+      'stato': serializer.toJson<String>(stato),
+      'attivo': serializer.toJson<int>(attivo),
+      'idPagamento': serializer.toJson<int?>(idPagamento),
+      'idListino': serializer.toJson<int?>(idListino),
+      'dataModifica': serializer.toJson<String?>(dataModifica),
+      'sdi': serializer.toJson<String?>(sdi),
+      'pec': serializer.toJson<String?>(pec),
+      'altreNote': serializer.toJson<String?>(altreNote),
+      'numeroCivico': serializer.toJson<String?>(numeroCivico),
+      'pod': serializer.toJson<String?>(pod),
+      'pdr': serializer.toJson<String?>(pdr),
+      'ubicazione': serializer.toJson<String?>(ubicazione),
+      'banca': serializer.toJson<String?>(banca),
+      'bancaFiliale': serializer.toJson<String?>(bancaFiliale),
+      'codBlocco': serializer.toJson<String?>(codBlocco),
+    };
+  }
+
+  Cliente copyWith({
+    int? idCliente,
+    Value<int?> idClienteRemoto = const Value.absent(),
+    Value<String?> codCliente = const Value.absent(),
+    Value<String?> ragioneSociale = const Value.absent(),
+    Value<String?> indirizzo = const Value.absent(),
+    Value<String?> citta = const Value.absent(),
+    Value<String?> provincia = const Value.absent(),
+    Value<String?> cap = const Value.absent(),
+    Value<String?> frazione = const Value.absent(),
+    Value<String?> nazione = const Value.absent(),
+    Value<String?> telefono = const Value.absent(),
+    Value<String?> cellulare = const Value.absent(),
+    Value<String?> fax = const Value.absent(),
+    Value<String?> email = const Value.absent(),
+    Value<String?> partitaIva = const Value.absent(),
+    Value<String?> codiceFiscale = const Value.absent(),
+    Value<String?> note = const Value.absent(),
+    Value<String?> noteOrdine = const Value.absent(),
+    String? stato,
+    int? attivo,
+    Value<int?> idPagamento = const Value.absent(),
+    Value<int?> idListino = const Value.absent(),
+    Value<String?> dataModifica = const Value.absent(),
+    Value<String?> sdi = const Value.absent(),
+    Value<String?> pec = const Value.absent(),
+    Value<String?> altreNote = const Value.absent(),
+    Value<String?> numeroCivico = const Value.absent(),
+    Value<String?> pod = const Value.absent(),
+    Value<String?> pdr = const Value.absent(),
+    Value<String?> ubicazione = const Value.absent(),
+    Value<String?> banca = const Value.absent(),
+    Value<String?> bancaFiliale = const Value.absent(),
+    Value<String?> codBlocco = const Value.absent(),
+  }) => Cliente(
+    idCliente: idCliente ?? this.idCliente,
+    idClienteRemoto: idClienteRemoto.present
+        ? idClienteRemoto.value
+        : this.idClienteRemoto,
+    codCliente: codCliente.present ? codCliente.value : this.codCliente,
+    ragioneSociale: ragioneSociale.present
+        ? ragioneSociale.value
+        : this.ragioneSociale,
+    indirizzo: indirizzo.present ? indirizzo.value : this.indirizzo,
+    citta: citta.present ? citta.value : this.citta,
+    provincia: provincia.present ? provincia.value : this.provincia,
+    cap: cap.present ? cap.value : this.cap,
+    frazione: frazione.present ? frazione.value : this.frazione,
+    nazione: nazione.present ? nazione.value : this.nazione,
+    telefono: telefono.present ? telefono.value : this.telefono,
+    cellulare: cellulare.present ? cellulare.value : this.cellulare,
+    fax: fax.present ? fax.value : this.fax,
+    email: email.present ? email.value : this.email,
+    partitaIva: partitaIva.present ? partitaIva.value : this.partitaIva,
+    codiceFiscale: codiceFiscale.present
+        ? codiceFiscale.value
+        : this.codiceFiscale,
+    note: note.present ? note.value : this.note,
+    noteOrdine: noteOrdine.present ? noteOrdine.value : this.noteOrdine,
+    stato: stato ?? this.stato,
+    attivo: attivo ?? this.attivo,
+    idPagamento: idPagamento.present ? idPagamento.value : this.idPagamento,
+    idListino: idListino.present ? idListino.value : this.idListino,
+    dataModifica: dataModifica.present ? dataModifica.value : this.dataModifica,
+    sdi: sdi.present ? sdi.value : this.sdi,
+    pec: pec.present ? pec.value : this.pec,
+    altreNote: altreNote.present ? altreNote.value : this.altreNote,
+    numeroCivico: numeroCivico.present ? numeroCivico.value : this.numeroCivico,
+    pod: pod.present ? pod.value : this.pod,
+    pdr: pdr.present ? pdr.value : this.pdr,
+    ubicazione: ubicazione.present ? ubicazione.value : this.ubicazione,
+    banca: banca.present ? banca.value : this.banca,
+    bancaFiliale: bancaFiliale.present ? bancaFiliale.value : this.bancaFiliale,
+    codBlocco: codBlocco.present ? codBlocco.value : this.codBlocco,
+  );
+  Cliente copyWithCompanion(ClientiCompanion data) {
+    return Cliente(
+      idCliente: data.idCliente.present ? data.idCliente.value : this.idCliente,
+      idClienteRemoto: data.idClienteRemoto.present
+          ? data.idClienteRemoto.value
+          : this.idClienteRemoto,
+      codCliente: data.codCliente.present
+          ? data.codCliente.value
+          : this.codCliente,
+      ragioneSociale: data.ragioneSociale.present
+          ? data.ragioneSociale.value
+          : this.ragioneSociale,
+      indirizzo: data.indirizzo.present ? data.indirizzo.value : this.indirizzo,
+      citta: data.citta.present ? data.citta.value : this.citta,
+      provincia: data.provincia.present ? data.provincia.value : this.provincia,
+      cap: data.cap.present ? data.cap.value : this.cap,
+      frazione: data.frazione.present ? data.frazione.value : this.frazione,
+      nazione: data.nazione.present ? data.nazione.value : this.nazione,
+      telefono: data.telefono.present ? data.telefono.value : this.telefono,
+      cellulare: data.cellulare.present ? data.cellulare.value : this.cellulare,
+      fax: data.fax.present ? data.fax.value : this.fax,
+      email: data.email.present ? data.email.value : this.email,
+      partitaIva: data.partitaIva.present
+          ? data.partitaIva.value
+          : this.partitaIva,
+      codiceFiscale: data.codiceFiscale.present
+          ? data.codiceFiscale.value
+          : this.codiceFiscale,
+      note: data.note.present ? data.note.value : this.note,
+      noteOrdine: data.noteOrdine.present
+          ? data.noteOrdine.value
+          : this.noteOrdine,
+      stato: data.stato.present ? data.stato.value : this.stato,
+      attivo: data.attivo.present ? data.attivo.value : this.attivo,
+      idPagamento: data.idPagamento.present
+          ? data.idPagamento.value
+          : this.idPagamento,
+      idListino: data.idListino.present ? data.idListino.value : this.idListino,
+      dataModifica: data.dataModifica.present
+          ? data.dataModifica.value
+          : this.dataModifica,
+      sdi: data.sdi.present ? data.sdi.value : this.sdi,
+      pec: data.pec.present ? data.pec.value : this.pec,
+      altreNote: data.altreNote.present ? data.altreNote.value : this.altreNote,
+      numeroCivico: data.numeroCivico.present
+          ? data.numeroCivico.value
+          : this.numeroCivico,
+      pod: data.pod.present ? data.pod.value : this.pod,
+      pdr: data.pdr.present ? data.pdr.value : this.pdr,
+      ubicazione: data.ubicazione.present
+          ? data.ubicazione.value
+          : this.ubicazione,
+      banca: data.banca.present ? data.banca.value : this.banca,
+      bancaFiliale: data.bancaFiliale.present
+          ? data.bancaFiliale.value
+          : this.bancaFiliale,
+      codBlocco: data.codBlocco.present ? data.codBlocco.value : this.codBlocco,
+    );
+  }
+
+  @override
+  String toString() {
+    return (StringBuffer('Cliente(')
+          ..write('idCliente: $idCliente, ')
+          ..write('idClienteRemoto: $idClienteRemoto, ')
+          ..write('codCliente: $codCliente, ')
+          ..write('ragioneSociale: $ragioneSociale, ')
+          ..write('indirizzo: $indirizzo, ')
+          ..write('citta: $citta, ')
+          ..write('provincia: $provincia, ')
+          ..write('cap: $cap, ')
+          ..write('frazione: $frazione, ')
+          ..write('nazione: $nazione, ')
+          ..write('telefono: $telefono, ')
+          ..write('cellulare: $cellulare, ')
+          ..write('fax: $fax, ')
+          ..write('email: $email, ')
+          ..write('partitaIva: $partitaIva, ')
+          ..write('codiceFiscale: $codiceFiscale, ')
+          ..write('note: $note, ')
+          ..write('noteOrdine: $noteOrdine, ')
+          ..write('stato: $stato, ')
+          ..write('attivo: $attivo, ')
+          ..write('idPagamento: $idPagamento, ')
+          ..write('idListino: $idListino, ')
+          ..write('dataModifica: $dataModifica, ')
+          ..write('sdi: $sdi, ')
+          ..write('pec: $pec, ')
+          ..write('altreNote: $altreNote, ')
+          ..write('numeroCivico: $numeroCivico, ')
+          ..write('pod: $pod, ')
+          ..write('pdr: $pdr, ')
+          ..write('ubicazione: $ubicazione, ')
+          ..write('banca: $banca, ')
+          ..write('bancaFiliale: $bancaFiliale, ')
+          ..write('codBlocco: $codBlocco')
+          ..write(')'))
+        .toString();
+  }
+
+  @override
+  int get hashCode => Object.hashAll([
+    idCliente,
+    idClienteRemoto,
+    codCliente,
+    ragioneSociale,
+    indirizzo,
+    citta,
+    provincia,
+    cap,
+    frazione,
+    nazione,
+    telefono,
+    cellulare,
+    fax,
+    email,
+    partitaIva,
+    codiceFiscale,
+    note,
+    noteOrdine,
+    stato,
+    attivo,
+    idPagamento,
+    idListino,
+    dataModifica,
+    sdi,
+    pec,
+    altreNote,
+    numeroCivico,
+    pod,
+    pdr,
+    ubicazione,
+    banca,
+    bancaFiliale,
+    codBlocco,
+  ]);
+  @override
+  bool operator ==(Object other) =>
+      identical(this, other) ||
+      (other is Cliente &&
+          other.idCliente == this.idCliente &&
+          other.idClienteRemoto == this.idClienteRemoto &&
+          other.codCliente == this.codCliente &&
+          other.ragioneSociale == this.ragioneSociale &&
+          other.indirizzo == this.indirizzo &&
+          other.citta == this.citta &&
+          other.provincia == this.provincia &&
+          other.cap == this.cap &&
+          other.frazione == this.frazione &&
+          other.nazione == this.nazione &&
+          other.telefono == this.telefono &&
+          other.cellulare == this.cellulare &&
+          other.fax == this.fax &&
+          other.email == this.email &&
+          other.partitaIva == this.partitaIva &&
+          other.codiceFiscale == this.codiceFiscale &&
+          other.note == this.note &&
+          other.noteOrdine == this.noteOrdine &&
+          other.stato == this.stato &&
+          other.attivo == this.attivo &&
+          other.idPagamento == this.idPagamento &&
+          other.idListino == this.idListino &&
+          other.dataModifica == this.dataModifica &&
+          other.sdi == this.sdi &&
+          other.pec == this.pec &&
+          other.altreNote == this.altreNote &&
+          other.numeroCivico == this.numeroCivico &&
+          other.pod == this.pod &&
+          other.pdr == this.pdr &&
+          other.ubicazione == this.ubicazione &&
+          other.banca == this.banca &&
+          other.bancaFiliale == this.bancaFiliale &&
+          other.codBlocco == this.codBlocco);
+}
+
+class ClientiCompanion extends UpdateCompanion<Cliente> {
+  final Value<int> idCliente;
+  final Value<int?> idClienteRemoto;
+  final Value<String?> codCliente;
+  final Value<String?> ragioneSociale;
+  final Value<String?> indirizzo;
+  final Value<String?> citta;
+  final Value<String?> provincia;
+  final Value<String?> cap;
+  final Value<String?> frazione;
+  final Value<String?> nazione;
+  final Value<String?> telefono;
+  final Value<String?> cellulare;
+  final Value<String?> fax;
+  final Value<String?> email;
+  final Value<String?> partitaIva;
+  final Value<String?> codiceFiscale;
+  final Value<String?> note;
+  final Value<String?> noteOrdine;
+  final Value<String> stato;
+  final Value<int> attivo;
+  final Value<int?> idPagamento;
+  final Value<int?> idListino;
+  final Value<String?> dataModifica;
+  final Value<String?> sdi;
+  final Value<String?> pec;
+  final Value<String?> altreNote;
+  final Value<String?> numeroCivico;
+  final Value<String?> pod;
+  final Value<String?> pdr;
+  final Value<String?> ubicazione;
+  final Value<String?> banca;
+  final Value<String?> bancaFiliale;
+  final Value<String?> codBlocco;
+  const ClientiCompanion({
+    this.idCliente = const Value.absent(),
+    this.idClienteRemoto = const Value.absent(),
+    this.codCliente = const Value.absent(),
+    this.ragioneSociale = const Value.absent(),
+    this.indirizzo = const Value.absent(),
+    this.citta = const Value.absent(),
+    this.provincia = const Value.absent(),
+    this.cap = const Value.absent(),
+    this.frazione = const Value.absent(),
+    this.nazione = const Value.absent(),
+    this.telefono = const Value.absent(),
+    this.cellulare = const Value.absent(),
+    this.fax = const Value.absent(),
+    this.email = const Value.absent(),
+    this.partitaIva = const Value.absent(),
+    this.codiceFiscale = const Value.absent(),
+    this.note = const Value.absent(),
+    this.noteOrdine = const Value.absent(),
+    this.stato = const Value.absent(),
+    this.attivo = const Value.absent(),
+    this.idPagamento = const Value.absent(),
+    this.idListino = const Value.absent(),
+    this.dataModifica = const Value.absent(),
+    this.sdi = const Value.absent(),
+    this.pec = const Value.absent(),
+    this.altreNote = const Value.absent(),
+    this.numeroCivico = const Value.absent(),
+    this.pod = const Value.absent(),
+    this.pdr = const Value.absent(),
+    this.ubicazione = const Value.absent(),
+    this.banca = const Value.absent(),
+    this.bancaFiliale = const Value.absent(),
+    this.codBlocco = const Value.absent(),
+  });
+  ClientiCompanion.insert({
+    this.idCliente = const Value.absent(),
+    this.idClienteRemoto = const Value.absent(),
+    this.codCliente = const Value.absent(),
+    this.ragioneSociale = const Value.absent(),
+    this.indirizzo = const Value.absent(),
+    this.citta = const Value.absent(),
+    this.provincia = const Value.absent(),
+    this.cap = const Value.absent(),
+    this.frazione = const Value.absent(),
+    this.nazione = const Value.absent(),
+    this.telefono = const Value.absent(),
+    this.cellulare = const Value.absent(),
+    this.fax = const Value.absent(),
+    this.email = const Value.absent(),
+    this.partitaIva = const Value.absent(),
+    this.codiceFiscale = const Value.absent(),
+    this.note = const Value.absent(),
+    this.noteOrdine = const Value.absent(),
+    this.stato = const Value.absent(),
+    this.attivo = const Value.absent(),
+    this.idPagamento = const Value.absent(),
+    this.idListino = const Value.absent(),
+    this.dataModifica = const Value.absent(),
+    this.sdi = const Value.absent(),
+    this.pec = const Value.absent(),
+    this.altreNote = const Value.absent(),
+    this.numeroCivico = const Value.absent(),
+    this.pod = const Value.absent(),
+    this.pdr = const Value.absent(),
+    this.ubicazione = const Value.absent(),
+    this.banca = const Value.absent(),
+    this.bancaFiliale = const Value.absent(),
+    this.codBlocco = const Value.absent(),
+  });
+  static Insertable<Cliente> custom({
+    Expression<int>? idCliente,
+    Expression<int>? idClienteRemoto,
+    Expression<String>? codCliente,
+    Expression<String>? ragioneSociale,
+    Expression<String>? indirizzo,
+    Expression<String>? citta,
+    Expression<String>? provincia,
+    Expression<String>? cap,
+    Expression<String>? frazione,
+    Expression<String>? nazione,
+    Expression<String>? telefono,
+    Expression<String>? cellulare,
+    Expression<String>? fax,
+    Expression<String>? email,
+    Expression<String>? partitaIva,
+    Expression<String>? codiceFiscale,
+    Expression<String>? note,
+    Expression<String>? noteOrdine,
+    Expression<String>? stato,
+    Expression<int>? attivo,
+    Expression<int>? idPagamento,
+    Expression<int>? idListino,
+    Expression<String>? dataModifica,
+    Expression<String>? sdi,
+    Expression<String>? pec,
+    Expression<String>? altreNote,
+    Expression<String>? numeroCivico,
+    Expression<String>? pod,
+    Expression<String>? pdr,
+    Expression<String>? ubicazione,
+    Expression<String>? banca,
+    Expression<String>? bancaFiliale,
+    Expression<String>? codBlocco,
+  }) {
+    return RawValuesInsertable({
+      if (idCliente != null) 'idCliente': idCliente,
+      if (idClienteRemoto != null) 'idClienteRemoto': idClienteRemoto,
+      if (codCliente != null) 'codCliente': codCliente,
+      if (ragioneSociale != null) 'ragioneSociale': ragioneSociale,
+      if (indirizzo != null) 'indirizzo': indirizzo,
+      if (citta != null) 'citta': citta,
+      if (provincia != null) 'provincia': provincia,
+      if (cap != null) 'cap': cap,
+      if (frazione != null) 'frazione': frazione,
+      if (nazione != null) 'nazione': nazione,
+      if (telefono != null) 'telefono': telefono,
+      if (cellulare != null) 'cellulare': cellulare,
+      if (fax != null) 'fax': fax,
+      if (email != null) 'email': email,
+      if (partitaIva != null) 'partitaIva': partitaIva,
+      if (codiceFiscale != null) 'codiceFiscale': codiceFiscale,
+      if (note != null) 'note': note,
+      if (noteOrdine != null) 'noteOrdine': noteOrdine,
+      if (stato != null) 'stato': stato,
+      if (attivo != null) 'attivo': attivo,
+      if (idPagamento != null) 'idPagamento': idPagamento,
+      if (idListino != null) 'idListino': idListino,
+      if (dataModifica != null) 'dataModifica': dataModifica,
+      if (sdi != null) 'sdi': sdi,
+      if (pec != null) 'pec': pec,
+      if (altreNote != null) 'altreNote': altreNote,
+      if (numeroCivico != null) 'numeroCivico': numeroCivico,
+      if (pod != null) 'pod': pod,
+      if (pdr != null) 'pdr': pdr,
+      if (ubicazione != null) 'ubicazione': ubicazione,
+      if (banca != null) 'banca': banca,
+      if (bancaFiliale != null) 'bancaFiliale': bancaFiliale,
+      if (codBlocco != null) 'codBlocco': codBlocco,
+    });
+  }
+
+  ClientiCompanion copyWith({
+    Value<int>? idCliente,
+    Value<int?>? idClienteRemoto,
+    Value<String?>? codCliente,
+    Value<String?>? ragioneSociale,
+    Value<String?>? indirizzo,
+    Value<String?>? citta,
+    Value<String?>? provincia,
+    Value<String?>? cap,
+    Value<String?>? frazione,
+    Value<String?>? nazione,
+    Value<String?>? telefono,
+    Value<String?>? cellulare,
+    Value<String?>? fax,
+    Value<String?>? email,
+    Value<String?>? partitaIva,
+    Value<String?>? codiceFiscale,
+    Value<String?>? note,
+    Value<String?>? noteOrdine,
+    Value<String>? stato,
+    Value<int>? attivo,
+    Value<int?>? idPagamento,
+    Value<int?>? idListino,
+    Value<String?>? dataModifica,
+    Value<String?>? sdi,
+    Value<String?>? pec,
+    Value<String?>? altreNote,
+    Value<String?>? numeroCivico,
+    Value<String?>? pod,
+    Value<String?>? pdr,
+    Value<String?>? ubicazione,
+    Value<String?>? banca,
+    Value<String?>? bancaFiliale,
+    Value<String?>? codBlocco,
+  }) {
+    return ClientiCompanion(
+      idCliente: idCliente ?? this.idCliente,
+      idClienteRemoto: idClienteRemoto ?? this.idClienteRemoto,
+      codCliente: codCliente ?? this.codCliente,
+      ragioneSociale: ragioneSociale ?? this.ragioneSociale,
+      indirizzo: indirizzo ?? this.indirizzo,
+      citta: citta ?? this.citta,
+      provincia: provincia ?? this.provincia,
+      cap: cap ?? this.cap,
+      frazione: frazione ?? this.frazione,
+      nazione: nazione ?? this.nazione,
+      telefono: telefono ?? this.telefono,
+      cellulare: cellulare ?? this.cellulare,
+      fax: fax ?? this.fax,
+      email: email ?? this.email,
+      partitaIva: partitaIva ?? this.partitaIva,
+      codiceFiscale: codiceFiscale ?? this.codiceFiscale,
+      note: note ?? this.note,
+      noteOrdine: noteOrdine ?? this.noteOrdine,
+      stato: stato ?? this.stato,
+      attivo: attivo ?? this.attivo,
+      idPagamento: idPagamento ?? this.idPagamento,
+      idListino: idListino ?? this.idListino,
+      dataModifica: dataModifica ?? this.dataModifica,
+      sdi: sdi ?? this.sdi,
+      pec: pec ?? this.pec,
+      altreNote: altreNote ?? this.altreNote,
+      numeroCivico: numeroCivico ?? this.numeroCivico,
+      pod: pod ?? this.pod,
+      pdr: pdr ?? this.pdr,
+      ubicazione: ubicazione ?? this.ubicazione,
+      banca: banca ?? this.banca,
+      bancaFiliale: bancaFiliale ?? this.bancaFiliale,
+      codBlocco: codBlocco ?? this.codBlocco,
+    );
+  }
+
+  @override
+  Map<String, Expression> toColumns(bool nullToAbsent) {
+    final map = <String, Expression>{};
+    if (idCliente.present) {
+      map['idCliente'] = Variable<int>(idCliente.value);
+    }
+    if (idClienteRemoto.present) {
+      map['idClienteRemoto'] = Variable<int>(idClienteRemoto.value);
+    }
+    if (codCliente.present) {
+      map['codCliente'] = Variable<String>(codCliente.value);
+    }
+    if (ragioneSociale.present) {
+      map['ragioneSociale'] = Variable<String>(ragioneSociale.value);
+    }
+    if (indirizzo.present) {
+      map['indirizzo'] = Variable<String>(indirizzo.value);
+    }
+    if (citta.present) {
+      map['citta'] = Variable<String>(citta.value);
+    }
+    if (provincia.present) {
+      map['provincia'] = Variable<String>(provincia.value);
+    }
+    if (cap.present) {
+      map['cap'] = Variable<String>(cap.value);
+    }
+    if (frazione.present) {
+      map['frazione'] = Variable<String>(frazione.value);
+    }
+    if (nazione.present) {
+      map['nazione'] = Variable<String>(nazione.value);
+    }
+    if (telefono.present) {
+      map['telefono'] = Variable<String>(telefono.value);
+    }
+    if (cellulare.present) {
+      map['cellulare'] = Variable<String>(cellulare.value);
+    }
+    if (fax.present) {
+      map['fax'] = Variable<String>(fax.value);
+    }
+    if (email.present) {
+      map['email'] = Variable<String>(email.value);
+    }
+    if (partitaIva.present) {
+      map['partitaIva'] = Variable<String>(partitaIva.value);
+    }
+    if (codiceFiscale.present) {
+      map['codiceFiscale'] = Variable<String>(codiceFiscale.value);
+    }
+    if (note.present) {
+      map['note'] = Variable<String>(note.value);
+    }
+    if (noteOrdine.present) {
+      map['noteOrdine'] = Variable<String>(noteOrdine.value);
+    }
+    if (stato.present) {
+      map['stato'] = Variable<String>(stato.value);
+    }
+    if (attivo.present) {
+      map['attivo'] = Variable<int>(attivo.value);
+    }
+    if (idPagamento.present) {
+      map['idPagamento'] = Variable<int>(idPagamento.value);
+    }
+    if (idListino.present) {
+      map['idListino'] = Variable<int>(idListino.value);
+    }
+    if (dataModifica.present) {
+      map['dataModifica'] = Variable<String>(dataModifica.value);
+    }
+    if (sdi.present) {
+      map['sdi'] = Variable<String>(sdi.value);
+    }
+    if (pec.present) {
+      map['pec'] = Variable<String>(pec.value);
+    }
+    if (altreNote.present) {
+      map['altreNote'] = Variable<String>(altreNote.value);
+    }
+    if (numeroCivico.present) {
+      map['numeroCivico'] = Variable<String>(numeroCivico.value);
+    }
+    if (pod.present) {
+      map['pod'] = Variable<String>(pod.value);
+    }
+    if (pdr.present) {
+      map['pdr'] = Variable<String>(pdr.value);
+    }
+    if (ubicazione.present) {
+      map['ubicazione'] = Variable<String>(ubicazione.value);
+    }
+    if (banca.present) {
+      map['banca'] = Variable<String>(banca.value);
+    }
+    if (bancaFiliale.present) {
+      map['bancaFiliale'] = Variable<String>(bancaFiliale.value);
+    }
+    if (codBlocco.present) {
+      map['codBlocco'] = Variable<String>(codBlocco.value);
+    }
+    return map;
+  }
+
+  @override
+  String toString() {
+    return (StringBuffer('ClientiCompanion(')
+          ..write('idCliente: $idCliente, ')
+          ..write('idClienteRemoto: $idClienteRemoto, ')
+          ..write('codCliente: $codCliente, ')
+          ..write('ragioneSociale: $ragioneSociale, ')
+          ..write('indirizzo: $indirizzo, ')
+          ..write('citta: $citta, ')
+          ..write('provincia: $provincia, ')
+          ..write('cap: $cap, ')
+          ..write('frazione: $frazione, ')
+          ..write('nazione: $nazione, ')
+          ..write('telefono: $telefono, ')
+          ..write('cellulare: $cellulare, ')
+          ..write('fax: $fax, ')
+          ..write('email: $email, ')
+          ..write('partitaIva: $partitaIva, ')
+          ..write('codiceFiscale: $codiceFiscale, ')
+          ..write('note: $note, ')
+          ..write('noteOrdine: $noteOrdine, ')
+          ..write('stato: $stato, ')
+          ..write('attivo: $attivo, ')
+          ..write('idPagamento: $idPagamento, ')
+          ..write('idListino: $idListino, ')
+          ..write('dataModifica: $dataModifica, ')
+          ..write('sdi: $sdi, ')
+          ..write('pec: $pec, ')
+          ..write('altreNote: $altreNote, ')
+          ..write('numeroCivico: $numeroCivico, ')
+          ..write('pod: $pod, ')
+          ..write('pdr: $pdr, ')
+          ..write('ubicazione: $ubicazione, ')
+          ..write('banca: $banca, ')
+          ..write('bancaFiliale: $bancaFiliale, ')
+          ..write('codBlocco: $codBlocco')
+          ..write(')'))
+        .toString();
+  }
+}
+
+class $OrdiniTable extends Ordini with TableInfo<$OrdiniTable, Ordine> {
+  @override
+  final GeneratedDatabase attachedDatabase;
+  final String? _alias;
+  $OrdiniTable(this.attachedDatabase, [this._alias]);
+  static const VerificationMeta _idOrdineMeta = const VerificationMeta(
+    'idOrdine',
+  );
+  @override
+  late final GeneratedColumn<int> idOrdine = GeneratedColumn<int>(
+    'idOrdine',
+    aliasedName,
+    false,
+    hasAutoIncrement: true,
+    type: DriftSqlType.int,
+    requiredDuringInsert: false,
+    defaultConstraints: GeneratedColumn.constraintIsAlways(
+      'PRIMARY KEY AUTOINCREMENT',
+    ),
+  );
+  static const VerificationMeta _idOrdineSedeMeta = const VerificationMeta(
+    'idOrdineSede',
+  );
+  @override
+  late final GeneratedColumn<int> idOrdineSede = GeneratedColumn<int>(
+    'idOrdineSede',
+    aliasedName,
+    true,
+    type: DriftSqlType.int,
+    requiredDuringInsert: false,
+  );
+  static const VerificationMeta _numeroOrdineMeta = const VerificationMeta(
+    'numeroOrdine',
+  );
+  @override
+  late final GeneratedColumn<int> numeroOrdine = GeneratedColumn<int>(
+    'numeroOrdine',
+    aliasedName,
+    true,
+    type: DriftSqlType.int,
+    requiredDuringInsert: false,
+  );
+  static const VerificationMeta _numeroOrdineSedeMeta = const VerificationMeta(
+    'numeroOrdineSede',
+  );
+  @override
+  late final GeneratedColumn<String> numeroOrdineSede = GeneratedColumn<String>(
+    'numeroOrdineSede',
+    aliasedName,
+    true,
+    type: DriftSqlType.string,
+    requiredDuringInsert: false,
+  );
+  static const VerificationMeta _dataOrdineMeta = const VerificationMeta(
+    'dataOrdine',
+  );
+  @override
+  late final GeneratedColumn<String> dataOrdine = GeneratedColumn<String>(
+    'dataOrdine',
+    aliasedName,
+    true,
+    type: DriftSqlType.string,
+    requiredDuringInsert: false,
+  );
+  static const VerificationMeta _dataConsegnaMeta = const VerificationMeta(
+    'dataConsegna',
+  );
+  @override
+  late final GeneratedColumn<String> dataConsegna = GeneratedColumn<String>(
+    'dataConsegna',
+    aliasedName,
+    true,
+    type: DriftSqlType.string,
+    requiredDuringInsert: false,
+  );
+  static const VerificationMeta _dataModificaMeta = const VerificationMeta(
+    'dataModifica',
+  );
+  @override
+  late final GeneratedColumn<String> dataModifica = GeneratedColumn<String>(
+    'dataModifica',
+    aliasedName,
+    true,
+    type: DriftSqlType.string,
+    requiredDuringInsert: false,
+  );
+  static const VerificationMeta _riferimentoMeta = const VerificationMeta(
+    'riferimento',
+  );
+  @override
+  late final GeneratedColumn<String> riferimento = GeneratedColumn<String>(
+    'riferimento',
+    aliasedName,
+    true,
+    type: DriftSqlType.string,
+    requiredDuringInsert: false,
+  );
+  static const VerificationMeta _noteClienteMeta = const VerificationMeta(
+    'noteCliente',
+  );
+  @override
+  late final GeneratedColumn<String> noteCliente = GeneratedColumn<String>(
+    'noteCliente',
+    aliasedName,
+    true,
+    type: DriftSqlType.string,
+    requiredDuringInsert: false,
+  );
+  static const VerificationMeta _noteOrdineMeta = const VerificationMeta(
+    'noteOrdine',
+  );
+  @override
+  late final GeneratedColumn<String> noteOrdine = GeneratedColumn<String>(
+    'noteOrdine',
+    aliasedName,
+    true,
+    type: DriftSqlType.string,
+    requiredDuringInsert: false,
+  );
+  static const VerificationMeta _idClienteMeta = const VerificationMeta(
+    'idCliente',
+  );
+  @override
+  late final GeneratedColumn<int> idCliente = GeneratedColumn<int>(
+    'idCliente',
+    aliasedName,
+    true,
+    type: DriftSqlType.int,
+    requiredDuringInsert: false,
+  );
+  static const VerificationMeta _idFilialeMeta = const VerificationMeta(
+    'idFiliale',
+  );
+  @override
+  late final GeneratedColumn<int> idFiliale = GeneratedColumn<int>(
+    'idFiliale',
+    aliasedName,
+    true,
+    type: DriftSqlType.int,
+    requiredDuringInsert: false,
+  );
+  static const VerificationMeta _statoMeta = const VerificationMeta('stato');
+  @override
+  late final GeneratedColumn<String> stato = GeneratedColumn<String>(
+    'stato',
+    aliasedName,
+    true,
+    type: DriftSqlType.string,
+    requiredDuringInsert: false,
+  );
+  static const VerificationMeta _idListinoMeta = const VerificationMeta(
+    'idListino',
+  );
+  @override
+  late final GeneratedColumn<int> idListino = GeneratedColumn<int>(
+    'idListino',
+    aliasedName,
+    true,
+    type: DriftSqlType.int,
+    requiredDuringInsert: false,
+  );
+  static const VerificationMeta _idAgenteMeta = const VerificationMeta(
+    'idAgente',
+  );
+  @override
+  late final GeneratedColumn<int> idAgente = GeneratedColumn<int>(
+    'idAgente',
+    aliasedName,
+    true,
+    type: DriftSqlType.int,
+    requiredDuringInsert: false,
+  );
+  static const VerificationMeta _idPagamentoMeta = const VerificationMeta(
+    'idPagamento',
+  );
+  @override
+  late final GeneratedColumn<int> idPagamento = GeneratedColumn<int>(
+    'idPagamento',
+    aliasedName,
+    true,
+    type: DriftSqlType.int,
+    requiredDuringInsert: false,
+  );
+  @override
+  List<GeneratedColumn> get $columns => [
+    idOrdine,
+    idOrdineSede,
+    numeroOrdine,
+    numeroOrdineSede,
+    dataOrdine,
+    dataConsegna,
+    dataModifica,
+    riferimento,
+    noteCliente,
+    noteOrdine,
+    idCliente,
+    idFiliale,
+    stato,
+    idListino,
+    idAgente,
+    idPagamento,
+  ];
+  @override
+  String get aliasedName => _alias ?? actualTableName;
+  @override
+  String get actualTableName => $name;
+  static const String $name = 'Ordini';
+  @override
+  VerificationContext validateIntegrity(
+    Insertable<Ordine> instance, {
+    bool isInserting = false,
+  }) {
+    final context = VerificationContext();
+    final data = instance.toColumns(true);
+    if (data.containsKey('idOrdine')) {
+      context.handle(
+        _idOrdineMeta,
+        idOrdine.isAcceptableOrUnknown(data['idOrdine']!, _idOrdineMeta),
+      );
+    }
+    if (data.containsKey('idOrdineSede')) {
+      context.handle(
+        _idOrdineSedeMeta,
+        idOrdineSede.isAcceptableOrUnknown(
+          data['idOrdineSede']!,
+          _idOrdineSedeMeta,
+        ),
+      );
+    }
+    if (data.containsKey('numeroOrdine')) {
+      context.handle(
+        _numeroOrdineMeta,
+        numeroOrdine.isAcceptableOrUnknown(
+          data['numeroOrdine']!,
+          _numeroOrdineMeta,
+        ),
+      );
+    }
+    if (data.containsKey('numeroOrdineSede')) {
+      context.handle(
+        _numeroOrdineSedeMeta,
+        numeroOrdineSede.isAcceptableOrUnknown(
+          data['numeroOrdineSede']!,
+          _numeroOrdineSedeMeta,
+        ),
+      );
+    }
+    if (data.containsKey('dataOrdine')) {
+      context.handle(
+        _dataOrdineMeta,
+        dataOrdine.isAcceptableOrUnknown(data['dataOrdine']!, _dataOrdineMeta),
+      );
+    }
+    if (data.containsKey('dataConsegna')) {
+      context.handle(
+        _dataConsegnaMeta,
+        dataConsegna.isAcceptableOrUnknown(
+          data['dataConsegna']!,
+          _dataConsegnaMeta,
+        ),
+      );
+    }
+    if (data.containsKey('dataModifica')) {
+      context.handle(
+        _dataModificaMeta,
+        dataModifica.isAcceptableOrUnknown(
+          data['dataModifica']!,
+          _dataModificaMeta,
+        ),
+      );
+    }
+    if (data.containsKey('riferimento')) {
+      context.handle(
+        _riferimentoMeta,
+        riferimento.isAcceptableOrUnknown(
+          data['riferimento']!,
+          _riferimentoMeta,
+        ),
+      );
+    }
+    if (data.containsKey('noteCliente')) {
+      context.handle(
+        _noteClienteMeta,
+        noteCliente.isAcceptableOrUnknown(
+          data['noteCliente']!,
+          _noteClienteMeta,
+        ),
+      );
+    }
+    if (data.containsKey('noteOrdine')) {
+      context.handle(
+        _noteOrdineMeta,
+        noteOrdine.isAcceptableOrUnknown(data['noteOrdine']!, _noteOrdineMeta),
+      );
+    }
+    if (data.containsKey('idCliente')) {
+      context.handle(
+        _idClienteMeta,
+        idCliente.isAcceptableOrUnknown(data['idCliente']!, _idClienteMeta),
+      );
+    }
+    if (data.containsKey('idFiliale')) {
+      context.handle(
+        _idFilialeMeta,
+        idFiliale.isAcceptableOrUnknown(data['idFiliale']!, _idFilialeMeta),
+      );
+    }
+    if (data.containsKey('stato')) {
+      context.handle(
+        _statoMeta,
+        stato.isAcceptableOrUnknown(data['stato']!, _statoMeta),
+      );
+    }
+    if (data.containsKey('idListino')) {
+      context.handle(
+        _idListinoMeta,
+        idListino.isAcceptableOrUnknown(data['idListino']!, _idListinoMeta),
+      );
+    }
+    if (data.containsKey('idAgente')) {
+      context.handle(
+        _idAgenteMeta,
+        idAgente.isAcceptableOrUnknown(data['idAgente']!, _idAgenteMeta),
+      );
+    }
+    if (data.containsKey('idPagamento')) {
+      context.handle(
+        _idPagamentoMeta,
+        idPagamento.isAcceptableOrUnknown(
+          data['idPagamento']!,
+          _idPagamentoMeta,
+        ),
+      );
+    }
+    return context;
+  }
+
+  @override
+  Set<GeneratedColumn> get $primaryKey => {idOrdine};
+  @override
+  Ordine map(Map<String, dynamic> data, {String? tablePrefix}) {
+    final effectivePrefix = tablePrefix != null ? '$tablePrefix.' : '';
+    return Ordine(
+      idOrdine: attachedDatabase.typeMapping.read(
+        DriftSqlType.int,
+        data['${effectivePrefix}idOrdine'],
+      )!,
+      idOrdineSede: attachedDatabase.typeMapping.read(
+        DriftSqlType.int,
+        data['${effectivePrefix}idOrdineSede'],
+      ),
+      numeroOrdine: attachedDatabase.typeMapping.read(
+        DriftSqlType.int,
+        data['${effectivePrefix}numeroOrdine'],
+      ),
+      numeroOrdineSede: attachedDatabase.typeMapping.read(
+        DriftSqlType.string,
+        data['${effectivePrefix}numeroOrdineSede'],
+      ),
+      dataOrdine: attachedDatabase.typeMapping.read(
+        DriftSqlType.string,
+        data['${effectivePrefix}dataOrdine'],
+      ),
+      dataConsegna: attachedDatabase.typeMapping.read(
+        DriftSqlType.string,
+        data['${effectivePrefix}dataConsegna'],
+      ),
+      dataModifica: attachedDatabase.typeMapping.read(
+        DriftSqlType.string,
+        data['${effectivePrefix}dataModifica'],
+      ),
+      riferimento: attachedDatabase.typeMapping.read(
+        DriftSqlType.string,
+        data['${effectivePrefix}riferimento'],
+      ),
+      noteCliente: attachedDatabase.typeMapping.read(
+        DriftSqlType.string,
+        data['${effectivePrefix}noteCliente'],
+      ),
+      noteOrdine: attachedDatabase.typeMapping.read(
+        DriftSqlType.string,
+        data['${effectivePrefix}noteOrdine'],
+      ),
+      idCliente: attachedDatabase.typeMapping.read(
+        DriftSqlType.int,
+        data['${effectivePrefix}idCliente'],
+      ),
+      idFiliale: attachedDatabase.typeMapping.read(
+        DriftSqlType.int,
+        data['${effectivePrefix}idFiliale'],
+      ),
+      stato: attachedDatabase.typeMapping.read(
+        DriftSqlType.string,
+        data['${effectivePrefix}stato'],
+      ),
+      idListino: attachedDatabase.typeMapping.read(
+        DriftSqlType.int,
+        data['${effectivePrefix}idListino'],
+      ),
+      idAgente: attachedDatabase.typeMapping.read(
+        DriftSqlType.int,
+        data['${effectivePrefix}idAgente'],
+      ),
+      idPagamento: attachedDatabase.typeMapping.read(
+        DriftSqlType.int,
+        data['${effectivePrefix}idPagamento'],
+      ),
+    );
+  }
+
+  @override
+  $OrdiniTable createAlias(String alias) {
+    return $OrdiniTable(attachedDatabase, alias);
+  }
+}
+
+class Ordine extends DataClass implements Insertable<Ordine> {
+  final int idOrdine;
+  final int? idOrdineSede;
+  final int? numeroOrdine;
+  final String? numeroOrdineSede;
+  final String? dataOrdine;
+  final String? dataConsegna;
+  final String? dataModifica;
+  final String? riferimento;
+  final String? noteCliente;
+  final String? noteOrdine;
+  final int? idCliente;
+  final int? idFiliale;
+  final String? stato;
+  final int? idListino;
+  final int? idAgente;
+  final int? idPagamento;
+  const Ordine({
+    required this.idOrdine,
+    this.idOrdineSede,
+    this.numeroOrdine,
+    this.numeroOrdineSede,
+    this.dataOrdine,
+    this.dataConsegna,
+    this.dataModifica,
+    this.riferimento,
+    this.noteCliente,
+    this.noteOrdine,
+    this.idCliente,
+    this.idFiliale,
+    this.stato,
+    this.idListino,
+    this.idAgente,
+    this.idPagamento,
+  });
+  @override
+  Map<String, Expression> toColumns(bool nullToAbsent) {
+    final map = <String, Expression>{};
+    map['idOrdine'] = Variable<int>(idOrdine);
+    if (!nullToAbsent || idOrdineSede != null) {
+      map['idOrdineSede'] = Variable<int>(idOrdineSede);
+    }
+    if (!nullToAbsent || numeroOrdine != null) {
+      map['numeroOrdine'] = Variable<int>(numeroOrdine);
+    }
+    if (!nullToAbsent || numeroOrdineSede != null) {
+      map['numeroOrdineSede'] = Variable<String>(numeroOrdineSede);
+    }
+    if (!nullToAbsent || dataOrdine != null) {
+      map['dataOrdine'] = Variable<String>(dataOrdine);
+    }
+    if (!nullToAbsent || dataConsegna != null) {
+      map['dataConsegna'] = Variable<String>(dataConsegna);
+    }
+    if (!nullToAbsent || dataModifica != null) {
+      map['dataModifica'] = Variable<String>(dataModifica);
+    }
+    if (!nullToAbsent || riferimento != null) {
+      map['riferimento'] = Variable<String>(riferimento);
+    }
+    if (!nullToAbsent || noteCliente != null) {
+      map['noteCliente'] = Variable<String>(noteCliente);
+    }
+    if (!nullToAbsent || noteOrdine != null) {
+      map['noteOrdine'] = Variable<String>(noteOrdine);
+    }
+    if (!nullToAbsent || idCliente != null) {
+      map['idCliente'] = Variable<int>(idCliente);
+    }
+    if (!nullToAbsent || idFiliale != null) {
+      map['idFiliale'] = Variable<int>(idFiliale);
+    }
+    if (!nullToAbsent || stato != null) {
+      map['stato'] = Variable<String>(stato);
+    }
+    if (!nullToAbsent || idListino != null) {
+      map['idListino'] = Variable<int>(idListino);
+    }
+    if (!nullToAbsent || idAgente != null) {
+      map['idAgente'] = Variable<int>(idAgente);
+    }
+    if (!nullToAbsent || idPagamento != null) {
+      map['idPagamento'] = Variable<int>(idPagamento);
+    }
+    return map;
+  }
+
+  OrdiniCompanion toCompanion(bool nullToAbsent) {
+    return OrdiniCompanion(
+      idOrdine: Value(idOrdine),
+      idOrdineSede: idOrdineSede == null && nullToAbsent
+          ? const Value.absent()
+          : Value(idOrdineSede),
+      numeroOrdine: numeroOrdine == null && nullToAbsent
+          ? const Value.absent()
+          : Value(numeroOrdine),
+      numeroOrdineSede: numeroOrdineSede == null && nullToAbsent
+          ? const Value.absent()
+          : Value(numeroOrdineSede),
+      dataOrdine: dataOrdine == null && nullToAbsent
+          ? const Value.absent()
+          : Value(dataOrdine),
+      dataConsegna: dataConsegna == null && nullToAbsent
+          ? const Value.absent()
+          : Value(dataConsegna),
+      dataModifica: dataModifica == null && nullToAbsent
+          ? const Value.absent()
+          : Value(dataModifica),
+      riferimento: riferimento == null && nullToAbsent
+          ? const Value.absent()
+          : Value(riferimento),
+      noteCliente: noteCliente == null && nullToAbsent
+          ? const Value.absent()
+          : Value(noteCliente),
+      noteOrdine: noteOrdine == null && nullToAbsent
+          ? const Value.absent()
+          : Value(noteOrdine),
+      idCliente: idCliente == null && nullToAbsent
+          ? const Value.absent()
+          : Value(idCliente),
+      idFiliale: idFiliale == null && nullToAbsent
+          ? const Value.absent()
+          : Value(idFiliale),
+      stato: stato == null && nullToAbsent
+          ? const Value.absent()
+          : Value(stato),
+      idListino: idListino == null && nullToAbsent
+          ? const Value.absent()
+          : Value(idListino),
+      idAgente: idAgente == null && nullToAbsent
+          ? const Value.absent()
+          : Value(idAgente),
+      idPagamento: idPagamento == null && nullToAbsent
+          ? const Value.absent()
+          : Value(idPagamento),
+    );
+  }
+
+  factory Ordine.fromJson(
+    Map<String, dynamic> json, {
+    ValueSerializer? serializer,
+  }) {
+    serializer ??= driftRuntimeOptions.defaultSerializer;
+    return Ordine(
+      idOrdine: serializer.fromJson<int>(json['idOrdine']),
+      idOrdineSede: serializer.fromJson<int?>(json['idOrdineSede']),
+      numeroOrdine: serializer.fromJson<int?>(json['numeroOrdine']),
+      numeroOrdineSede: serializer.fromJson<String?>(json['numeroOrdineSede']),
+      dataOrdine: serializer.fromJson<String?>(json['dataOrdine']),
+      dataConsegna: serializer.fromJson<String?>(json['dataConsegna']),
+      dataModifica: serializer.fromJson<String?>(json['dataModifica']),
+      riferimento: serializer.fromJson<String?>(json['riferimento']),
+      noteCliente: serializer.fromJson<String?>(json['noteCliente']),
+      noteOrdine: serializer.fromJson<String?>(json['noteOrdine']),
+      idCliente: serializer.fromJson<int?>(json['idCliente']),
+      idFiliale: serializer.fromJson<int?>(json['idFiliale']),
+      stato: serializer.fromJson<String?>(json['stato']),
+      idListino: serializer.fromJson<int?>(json['idListino']),
+      idAgente: serializer.fromJson<int?>(json['idAgente']),
+      idPagamento: serializer.fromJson<int?>(json['idPagamento']),
+    );
+  }
+  @override
+  Map<String, dynamic> toJson({ValueSerializer? serializer}) {
+    serializer ??= driftRuntimeOptions.defaultSerializer;
+    return <String, dynamic>{
+      'idOrdine': serializer.toJson<int>(idOrdine),
+      'idOrdineSede': serializer.toJson<int?>(idOrdineSede),
+      'numeroOrdine': serializer.toJson<int?>(numeroOrdine),
+      'numeroOrdineSede': serializer.toJson<String?>(numeroOrdineSede),
+      'dataOrdine': serializer.toJson<String?>(dataOrdine),
+      'dataConsegna': serializer.toJson<String?>(dataConsegna),
+      'dataModifica': serializer.toJson<String?>(dataModifica),
+      'riferimento': serializer.toJson<String?>(riferimento),
+      'noteCliente': serializer.toJson<String?>(noteCliente),
+      'noteOrdine': serializer.toJson<String?>(noteOrdine),
+      'idCliente': serializer.toJson<int?>(idCliente),
+      'idFiliale': serializer.toJson<int?>(idFiliale),
+      'stato': serializer.toJson<String?>(stato),
+      'idListino': serializer.toJson<int?>(idListino),
+      'idAgente': serializer.toJson<int?>(idAgente),
+      'idPagamento': serializer.toJson<int?>(idPagamento),
+    };
+  }
+
+  Ordine copyWith({
+    int? idOrdine,
+    Value<int?> idOrdineSede = const Value.absent(),
+    Value<int?> numeroOrdine = const Value.absent(),
+    Value<String?> numeroOrdineSede = const Value.absent(),
+    Value<String?> dataOrdine = const Value.absent(),
+    Value<String?> dataConsegna = const Value.absent(),
+    Value<String?> dataModifica = const Value.absent(),
+    Value<String?> riferimento = const Value.absent(),
+    Value<String?> noteCliente = const Value.absent(),
+    Value<String?> noteOrdine = const Value.absent(),
+    Value<int?> idCliente = const Value.absent(),
+    Value<int?> idFiliale = const Value.absent(),
+    Value<String?> stato = const Value.absent(),
+    Value<int?> idListino = const Value.absent(),
+    Value<int?> idAgente = const Value.absent(),
+    Value<int?> idPagamento = const Value.absent(),
+  }) => Ordine(
+    idOrdine: idOrdine ?? this.idOrdine,
+    idOrdineSede: idOrdineSede.present ? idOrdineSede.value : this.idOrdineSede,
+    numeroOrdine: numeroOrdine.present ? numeroOrdine.value : this.numeroOrdine,
+    numeroOrdineSede: numeroOrdineSede.present
+        ? numeroOrdineSede.value
+        : this.numeroOrdineSede,
+    dataOrdine: dataOrdine.present ? dataOrdine.value : this.dataOrdine,
+    dataConsegna: dataConsegna.present ? dataConsegna.value : this.dataConsegna,
+    dataModifica: dataModifica.present ? dataModifica.value : this.dataModifica,
+    riferimento: riferimento.present ? riferimento.value : this.riferimento,
+    noteCliente: noteCliente.present ? noteCliente.value : this.noteCliente,
+    noteOrdine: noteOrdine.present ? noteOrdine.value : this.noteOrdine,
+    idCliente: idCliente.present ? idCliente.value : this.idCliente,
+    idFiliale: idFiliale.present ? idFiliale.value : this.idFiliale,
+    stato: stato.present ? stato.value : this.stato,
+    idListino: idListino.present ? idListino.value : this.idListino,
+    idAgente: idAgente.present ? idAgente.value : this.idAgente,
+    idPagamento: idPagamento.present ? idPagamento.value : this.idPagamento,
+  );
+  Ordine copyWithCompanion(OrdiniCompanion data) {
+    return Ordine(
+      idOrdine: data.idOrdine.present ? data.idOrdine.value : this.idOrdine,
+      idOrdineSede: data.idOrdineSede.present
+          ? data.idOrdineSede.value
+          : this.idOrdineSede,
+      numeroOrdine: data.numeroOrdine.present
+          ? data.numeroOrdine.value
+          : this.numeroOrdine,
+      numeroOrdineSede: data.numeroOrdineSede.present
+          ? data.numeroOrdineSede.value
+          : this.numeroOrdineSede,
+      dataOrdine: data.dataOrdine.present
+          ? data.dataOrdine.value
+          : this.dataOrdine,
+      dataConsegna: data.dataConsegna.present
+          ? data.dataConsegna.value
+          : this.dataConsegna,
+      dataModifica: data.dataModifica.present
+          ? data.dataModifica.value
+          : this.dataModifica,
+      riferimento: data.riferimento.present
+          ? data.riferimento.value
+          : this.riferimento,
+      noteCliente: data.noteCliente.present
+          ? data.noteCliente.value
+          : this.noteCliente,
+      noteOrdine: data.noteOrdine.present
+          ? data.noteOrdine.value
+          : this.noteOrdine,
+      idCliente: data.idCliente.present ? data.idCliente.value : this.idCliente,
+      idFiliale: data.idFiliale.present ? data.idFiliale.value : this.idFiliale,
+      stato: data.stato.present ? data.stato.value : this.stato,
+      idListino: data.idListino.present ? data.idListino.value : this.idListino,
+      idAgente: data.idAgente.present ? data.idAgente.value : this.idAgente,
+      idPagamento: data.idPagamento.present
+          ? data.idPagamento.value
+          : this.idPagamento,
+    );
+  }
+
+  @override
+  String toString() {
+    return (StringBuffer('Ordine(')
+          ..write('idOrdine: $idOrdine, ')
+          ..write('idOrdineSede: $idOrdineSede, ')
+          ..write('numeroOrdine: $numeroOrdine, ')
+          ..write('numeroOrdineSede: $numeroOrdineSede, ')
+          ..write('dataOrdine: $dataOrdine, ')
+          ..write('dataConsegna: $dataConsegna, ')
+          ..write('dataModifica: $dataModifica, ')
+          ..write('riferimento: $riferimento, ')
+          ..write('noteCliente: $noteCliente, ')
+          ..write('noteOrdine: $noteOrdine, ')
+          ..write('idCliente: $idCliente, ')
+          ..write('idFiliale: $idFiliale, ')
+          ..write('stato: $stato, ')
+          ..write('idListino: $idListino, ')
+          ..write('idAgente: $idAgente, ')
+          ..write('idPagamento: $idPagamento')
+          ..write(')'))
+        .toString();
+  }
+
+  @override
+  int get hashCode => Object.hash(
+    idOrdine,
+    idOrdineSede,
+    numeroOrdine,
+    numeroOrdineSede,
+    dataOrdine,
+    dataConsegna,
+    dataModifica,
+    riferimento,
+    noteCliente,
+    noteOrdine,
+    idCliente,
+    idFiliale,
+    stato,
+    idListino,
+    idAgente,
+    idPagamento,
+  );
+  @override
+  bool operator ==(Object other) =>
+      identical(this, other) ||
+      (other is Ordine &&
+          other.idOrdine == this.idOrdine &&
+          other.idOrdineSede == this.idOrdineSede &&
+          other.numeroOrdine == this.numeroOrdine &&
+          other.numeroOrdineSede == this.numeroOrdineSede &&
+          other.dataOrdine == this.dataOrdine &&
+          other.dataConsegna == this.dataConsegna &&
+          other.dataModifica == this.dataModifica &&
+          other.riferimento == this.riferimento &&
+          other.noteCliente == this.noteCliente &&
+          other.noteOrdine == this.noteOrdine &&
+          other.idCliente == this.idCliente &&
+          other.idFiliale == this.idFiliale &&
+          other.stato == this.stato &&
+          other.idListino == this.idListino &&
+          other.idAgente == this.idAgente &&
+          other.idPagamento == this.idPagamento);
+}
+
+class OrdiniCompanion extends UpdateCompanion<Ordine> {
+  final Value<int> idOrdine;
+  final Value<int?> idOrdineSede;
+  final Value<int?> numeroOrdine;
+  final Value<String?> numeroOrdineSede;
+  final Value<String?> dataOrdine;
+  final Value<String?> dataConsegna;
+  final Value<String?> dataModifica;
+  final Value<String?> riferimento;
+  final Value<String?> noteCliente;
+  final Value<String?> noteOrdine;
+  final Value<int?> idCliente;
+  final Value<int?> idFiliale;
+  final Value<String?> stato;
+  final Value<int?> idListino;
+  final Value<int?> idAgente;
+  final Value<int?> idPagamento;
+  const OrdiniCompanion({
+    this.idOrdine = const Value.absent(),
+    this.idOrdineSede = const Value.absent(),
+    this.numeroOrdine = const Value.absent(),
+    this.numeroOrdineSede = const Value.absent(),
+    this.dataOrdine = const Value.absent(),
+    this.dataConsegna = const Value.absent(),
+    this.dataModifica = const Value.absent(),
+    this.riferimento = const Value.absent(),
+    this.noteCliente = const Value.absent(),
+    this.noteOrdine = const Value.absent(),
+    this.idCliente = const Value.absent(),
+    this.idFiliale = const Value.absent(),
+    this.stato = const Value.absent(),
+    this.idListino = const Value.absent(),
+    this.idAgente = const Value.absent(),
+    this.idPagamento = const Value.absent(),
+  });
+  OrdiniCompanion.insert({
+    this.idOrdine = const Value.absent(),
+    this.idOrdineSede = const Value.absent(),
+    this.numeroOrdine = const Value.absent(),
+    this.numeroOrdineSede = const Value.absent(),
+    this.dataOrdine = const Value.absent(),
+    this.dataConsegna = const Value.absent(),
+    this.dataModifica = const Value.absent(),
+    this.riferimento = const Value.absent(),
+    this.noteCliente = const Value.absent(),
+    this.noteOrdine = const Value.absent(),
+    this.idCliente = const Value.absent(),
+    this.idFiliale = const Value.absent(),
+    this.stato = const Value.absent(),
+    this.idListino = const Value.absent(),
+    this.idAgente = const Value.absent(),
+    this.idPagamento = const Value.absent(),
+  });
+  static Insertable<Ordine> custom({
+    Expression<int>? idOrdine,
+    Expression<int>? idOrdineSede,
+    Expression<int>? numeroOrdine,
+    Expression<String>? numeroOrdineSede,
+    Expression<String>? dataOrdine,
+    Expression<String>? dataConsegna,
+    Expression<String>? dataModifica,
+    Expression<String>? riferimento,
+    Expression<String>? noteCliente,
+    Expression<String>? noteOrdine,
+    Expression<int>? idCliente,
+    Expression<int>? idFiliale,
+    Expression<String>? stato,
+    Expression<int>? idListino,
+    Expression<int>? idAgente,
+    Expression<int>? idPagamento,
+  }) {
+    return RawValuesInsertable({
+      if (idOrdine != null) 'idOrdine': idOrdine,
+      if (idOrdineSede != null) 'idOrdineSede': idOrdineSede,
+      if (numeroOrdine != null) 'numeroOrdine': numeroOrdine,
+      if (numeroOrdineSede != null) 'numeroOrdineSede': numeroOrdineSede,
+      if (dataOrdine != null) 'dataOrdine': dataOrdine,
+      if (dataConsegna != null) 'dataConsegna': dataConsegna,
+      if (dataModifica != null) 'dataModifica': dataModifica,
+      if (riferimento != null) 'riferimento': riferimento,
+      if (noteCliente != null) 'noteCliente': noteCliente,
+      if (noteOrdine != null) 'noteOrdine': noteOrdine,
+      if (idCliente != null) 'idCliente': idCliente,
+      if (idFiliale != null) 'idFiliale': idFiliale,
+      if (stato != null) 'stato': stato,
+      if (idListino != null) 'idListino': idListino,
+      if (idAgente != null) 'idAgente': idAgente,
+      if (idPagamento != null) 'idPagamento': idPagamento,
+    });
+  }
+
+  OrdiniCompanion copyWith({
+    Value<int>? idOrdine,
+    Value<int?>? idOrdineSede,
+    Value<int?>? numeroOrdine,
+    Value<String?>? numeroOrdineSede,
+    Value<String?>? dataOrdine,
+    Value<String?>? dataConsegna,
+    Value<String?>? dataModifica,
+    Value<String?>? riferimento,
+    Value<String?>? noteCliente,
+    Value<String?>? noteOrdine,
+    Value<int?>? idCliente,
+    Value<int?>? idFiliale,
+    Value<String?>? stato,
+    Value<int?>? idListino,
+    Value<int?>? idAgente,
+    Value<int?>? idPagamento,
+  }) {
+    return OrdiniCompanion(
+      idOrdine: idOrdine ?? this.idOrdine,
+      idOrdineSede: idOrdineSede ?? this.idOrdineSede,
+      numeroOrdine: numeroOrdine ?? this.numeroOrdine,
+      numeroOrdineSede: numeroOrdineSede ?? this.numeroOrdineSede,
+      dataOrdine: dataOrdine ?? this.dataOrdine,
+      dataConsegna: dataConsegna ?? this.dataConsegna,
+      dataModifica: dataModifica ?? this.dataModifica,
+      riferimento: riferimento ?? this.riferimento,
+      noteCliente: noteCliente ?? this.noteCliente,
+      noteOrdine: noteOrdine ?? this.noteOrdine,
+      idCliente: idCliente ?? this.idCliente,
+      idFiliale: idFiliale ?? this.idFiliale,
+      stato: stato ?? this.stato,
+      idListino: idListino ?? this.idListino,
+      idAgente: idAgente ?? this.idAgente,
+      idPagamento: idPagamento ?? this.idPagamento,
+    );
+  }
+
+  @override
+  Map<String, Expression> toColumns(bool nullToAbsent) {
+    final map = <String, Expression>{};
+    if (idOrdine.present) {
+      map['idOrdine'] = Variable<int>(idOrdine.value);
+    }
+    if (idOrdineSede.present) {
+      map['idOrdineSede'] = Variable<int>(idOrdineSede.value);
+    }
+    if (numeroOrdine.present) {
+      map['numeroOrdine'] = Variable<int>(numeroOrdine.value);
+    }
+    if (numeroOrdineSede.present) {
+      map['numeroOrdineSede'] = Variable<String>(numeroOrdineSede.value);
+    }
+    if (dataOrdine.present) {
+      map['dataOrdine'] = Variable<String>(dataOrdine.value);
+    }
+    if (dataConsegna.present) {
+      map['dataConsegna'] = Variable<String>(dataConsegna.value);
+    }
+    if (dataModifica.present) {
+      map['dataModifica'] = Variable<String>(dataModifica.value);
+    }
+    if (riferimento.present) {
+      map['riferimento'] = Variable<String>(riferimento.value);
+    }
+    if (noteCliente.present) {
+      map['noteCliente'] = Variable<String>(noteCliente.value);
+    }
+    if (noteOrdine.present) {
+      map['noteOrdine'] = Variable<String>(noteOrdine.value);
+    }
+    if (idCliente.present) {
+      map['idCliente'] = Variable<int>(idCliente.value);
+    }
+    if (idFiliale.present) {
+      map['idFiliale'] = Variable<int>(idFiliale.value);
+    }
+    if (stato.present) {
+      map['stato'] = Variable<String>(stato.value);
+    }
+    if (idListino.present) {
+      map['idListino'] = Variable<int>(idListino.value);
+    }
+    if (idAgente.present) {
+      map['idAgente'] = Variable<int>(idAgente.value);
+    }
+    if (idPagamento.present) {
+      map['idPagamento'] = Variable<int>(idPagamento.value);
+    }
+    return map;
+  }
+
+  @override
+  String toString() {
+    return (StringBuffer('OrdiniCompanion(')
+          ..write('idOrdine: $idOrdine, ')
+          ..write('idOrdineSede: $idOrdineSede, ')
+          ..write('numeroOrdine: $numeroOrdine, ')
+          ..write('numeroOrdineSede: $numeroOrdineSede, ')
+          ..write('dataOrdine: $dataOrdine, ')
+          ..write('dataConsegna: $dataConsegna, ')
+          ..write('dataModifica: $dataModifica, ')
+          ..write('riferimento: $riferimento, ')
+          ..write('noteCliente: $noteCliente, ')
+          ..write('noteOrdine: $noteOrdine, ')
+          ..write('idCliente: $idCliente, ')
+          ..write('idFiliale: $idFiliale, ')
+          ..write('stato: $stato, ')
+          ..write('idListino: $idListino, ')
+          ..write('idAgente: $idAgente, ')
+          ..write('idPagamento: $idPagamento')
+          ..write(')'))
+        .toString();
+  }
+}
+
+class $RigheOrdineTable extends RigheOrdine
+    with TableInfo<$RigheOrdineTable, RigaOrdine> {
+  @override
+  final GeneratedDatabase attachedDatabase;
+  final String? _alias;
+  $RigheOrdineTable(this.attachedDatabase, [this._alias]);
+  static const VerificationMeta _idRigaOrdineMeta = const VerificationMeta(
+    'idRigaOrdine',
+  );
+  @override
+  late final GeneratedColumn<int> idRigaOrdine = GeneratedColumn<int>(
+    'idRigaOrdine',
+    aliasedName,
+    false,
+    hasAutoIncrement: true,
+    type: DriftSqlType.int,
+    requiredDuringInsert: false,
+    defaultConstraints: GeneratedColumn.constraintIsAlways(
+      'PRIMARY KEY AUTOINCREMENT',
+    ),
+  );
+  static const VerificationMeta _idOrdineMeta = const VerificationMeta(
+    'idOrdine',
+  );
+  @override
+  late final GeneratedColumn<int> idOrdine = GeneratedColumn<int>(
+    'idOrdine',
+    aliasedName,
+    true,
+    type: DriftSqlType.int,
+    requiredDuringInsert: false,
+  );
+  static const VerificationMeta _idArticoloMeta = const VerificationMeta(
+    'idArticolo',
+  );
+  @override
+  late final GeneratedColumn<int> idArticolo = GeneratedColumn<int>(
+    'idArticolo',
+    aliasedName,
+    true,
+    type: DriftSqlType.int,
+    requiredDuringInsert: false,
+  );
+  static const VerificationMeta _idListinoMeta = const VerificationMeta(
+    'idListino',
+  );
+  @override
+  late final GeneratedColumn<int> idListino = GeneratedColumn<int>(
+    'idListino',
+    aliasedName,
+    true,
+    type: DriftSqlType.int,
+    requiredDuringInsert: false,
+  );
+  static const VerificationMeta _quantitaMeta = const VerificationMeta(
+    'quantita',
+  );
+  @override
+  late final GeneratedColumn<double> quantita = GeneratedColumn<double>(
+    'quantita',
+    aliasedName,
+    true,
+    type: DriftSqlType.double,
+    requiredDuringInsert: false,
+  );
+  static const VerificationMeta _prezzoLordoMeta = const VerificationMeta(
+    'prezzoLordo',
+  );
+  @override
+  late final GeneratedColumn<double> prezzoLordo = GeneratedColumn<double>(
+    'prezzoLordo',
+    aliasedName,
+    true,
+    type: DriftSqlType.double,
+    requiredDuringInsert: false,
+  );
+  static const VerificationMeta _sconto1Meta = const VerificationMeta(
+    'sconto1',
+  );
+  @override
+  late final GeneratedColumn<double> sconto1 = GeneratedColumn<double>(
+    'sconto1',
+    aliasedName,
+    true,
+    type: DriftSqlType.double,
+    requiredDuringInsert: false,
+  );
+  static const VerificationMeta _sconto2Meta = const VerificationMeta(
+    'sconto2',
+  );
+  @override
+  late final GeneratedColumn<double> sconto2 = GeneratedColumn<double>(
+    'sconto2',
+    aliasedName,
+    true,
+    type: DriftSqlType.double,
+    requiredDuringInsert: false,
+  );
+  static const VerificationMeta _sconto3Meta = const VerificationMeta(
+    'sconto3',
+  );
+  @override
+  late final GeneratedColumn<double> sconto3 = GeneratedColumn<double>(
+    'sconto3',
+    aliasedName,
+    true,
+    type: DriftSqlType.double,
+    requiredDuringInsert: false,
+  );
+  static const VerificationMeta _sconto4Meta = const VerificationMeta(
+    'sconto4',
+  );
+  @override
+  late final GeneratedColumn<double> sconto4 = GeneratedColumn<double>(
+    'sconto4',
+    aliasedName,
+    true,
+    type: DriftSqlType.double,
+    requiredDuringInsert: false,
+  );
+  static const VerificationMeta _sconto5Meta = const VerificationMeta(
+    'sconto5',
+  );
+  @override
+  late final GeneratedColumn<double> sconto5 = GeneratedColumn<double>(
+    'sconto5',
+    aliasedName,
+    true,
+    type: DriftSqlType.double,
+    requiredDuringInsert: false,
+  );
+  static const VerificationMeta _prezzoNettoMeta = const VerificationMeta(
+    'prezzoNetto',
+  );
+  @override
+  late final GeneratedColumn<double> prezzoNetto = GeneratedColumn<double>(
+    'prezzoNetto',
+    aliasedName,
+    true,
+    type: DriftSqlType.double,
+    requiredDuringInsert: false,
+  );
+  static const VerificationMeta _scontoMerceMeta = const VerificationMeta(
+    'scontoMerce',
+  );
+  @override
+  late final GeneratedColumn<double> scontoMerce = GeneratedColumn<double>(
+    'scontoMerce',
+    aliasedName,
+    true,
+    type: DriftSqlType.double,
+    requiredDuringInsert: false,
+  );
+  static const VerificationMeta _totaleMeta = const VerificationMeta('totale');
+  @override
+  late final GeneratedColumn<double> totale = GeneratedColumn<double>(
+    'totale',
+    aliasedName,
+    true,
+    type: DriftSqlType.double,
+    requiredDuringInsert: false,
+  );
+  static const VerificationMeta _dataConsegnaMeta = const VerificationMeta(
+    'dataConsegna',
+  );
+  @override
+  late final GeneratedColumn<String> dataConsegna = GeneratedColumn<String>(
+    'dataConsegna',
+    aliasedName,
+    true,
+    type: DriftSqlType.string,
+    requiredDuringInsert: false,
+  );
+  static const VerificationMeta _dataModificaMeta = const VerificationMeta(
+    'dataModifica',
+  );
+  @override
+  late final GeneratedColumn<String> dataModifica = GeneratedColumn<String>(
+    'dataModifica',
+    aliasedName,
+    true,
+    type: DriftSqlType.string,
+    requiredDuringInsert: false,
+  );
+  static const VerificationMeta _qtaEvasaMeta = const VerificationMeta(
+    'qtaEvasa',
+  );
+  @override
+  late final GeneratedColumn<double> qtaEvasa = GeneratedColumn<double>(
+    'qtaEvasa',
+    aliasedName,
+    true,
+    type: DriftSqlType.double,
+    requiredDuringInsert: false,
+  );
+  static const VerificationMeta _statoMeta = const VerificationMeta('stato');
+  @override
+  late final GeneratedColumn<String> stato = GeneratedColumn<String>(
+    'stato',
+    aliasedName,
+    true,
+    type: DriftSqlType.string,
+    requiredDuringInsert: false,
+  );
+  static const VerificationMeta _colliMeta = const VerificationMeta('colli');
+  @override
+  late final GeneratedColumn<double> colli = GeneratedColumn<double>(
+    'colli',
+    aliasedName,
+    true,
+    type: DriftSqlType.double,
+    requiredDuringInsert: false,
+  );
+  static const VerificationMeta _promozioneMeta = const VerificationMeta(
+    'promozione',
+  );
+  @override
+  late final GeneratedColumn<int> promozione = GeneratedColumn<int>(
+    'promozione',
+    aliasedName,
+    true,
+    type: DriftSqlType.int,
+    requiredDuringInsert: false,
+  );
+  static const VerificationMeta _rigaPromozioneMeta = const VerificationMeta(
+    'rigaPromozione',
+  );
+  @override
+  late final GeneratedColumn<int> rigaPromozione = GeneratedColumn<int>(
+    'rigaPromozione',
+    aliasedName,
+    true,
+    type: DriftSqlType.int,
+    requiredDuringInsert: false,
+  );
+  static const VerificationMeta _prezzoManualeMeta = const VerificationMeta(
+    'prezzoManuale',
+  );
+  @override
+  late final GeneratedColumn<int> prezzoManuale = GeneratedColumn<int>(
+    'prezzoManuale',
+    aliasedName,
+    true,
+    type: DriftSqlType.int,
+    requiredDuringInsert: false,
+  );
+  @override
+  List<GeneratedColumn> get $columns => [
+    idRigaOrdine,
+    idOrdine,
+    idArticolo,
+    idListino,
+    quantita,
+    prezzoLordo,
+    sconto1,
+    sconto2,
+    sconto3,
+    sconto4,
+    sconto5,
+    prezzoNetto,
+    scontoMerce,
+    totale,
+    dataConsegna,
+    dataModifica,
+    qtaEvasa,
+    stato,
+    colli,
+    promozione,
+    rigaPromozione,
+    prezzoManuale,
+  ];
+  @override
+  String get aliasedName => _alias ?? actualTableName;
+  @override
+  String get actualTableName => $name;
+  static const String $name = 'Righe_ordine';
+  @override
+  VerificationContext validateIntegrity(
+    Insertable<RigaOrdine> instance, {
+    bool isInserting = false,
+  }) {
+    final context = VerificationContext();
+    final data = instance.toColumns(true);
+    if (data.containsKey('idRigaOrdine')) {
+      context.handle(
+        _idRigaOrdineMeta,
+        idRigaOrdine.isAcceptableOrUnknown(
+          data['idRigaOrdine']!,
+          _idRigaOrdineMeta,
+        ),
+      );
+    }
+    if (data.containsKey('idOrdine')) {
+      context.handle(
+        _idOrdineMeta,
+        idOrdine.isAcceptableOrUnknown(data['idOrdine']!, _idOrdineMeta),
+      );
+    }
+    if (data.containsKey('idArticolo')) {
+      context.handle(
+        _idArticoloMeta,
+        idArticolo.isAcceptableOrUnknown(data['idArticolo']!, _idArticoloMeta),
+      );
+    }
+    if (data.containsKey('idListino')) {
+      context.handle(
+        _idListinoMeta,
+        idListino.isAcceptableOrUnknown(data['idListino']!, _idListinoMeta),
+      );
+    }
+    if (data.containsKey('quantita')) {
+      context.handle(
+        _quantitaMeta,
+        quantita.isAcceptableOrUnknown(data['quantita']!, _quantitaMeta),
+      );
+    }
+    if (data.containsKey('prezzoLordo')) {
+      context.handle(
+        _prezzoLordoMeta,
+        prezzoLordo.isAcceptableOrUnknown(
+          data['prezzoLordo']!,
+          _prezzoLordoMeta,
+        ),
+      );
+    }
+    if (data.containsKey('sconto1')) {
+      context.handle(
+        _sconto1Meta,
+        sconto1.isAcceptableOrUnknown(data['sconto1']!, _sconto1Meta),
+      );
+    }
+    if (data.containsKey('sconto2')) {
+      context.handle(
+        _sconto2Meta,
+        sconto2.isAcceptableOrUnknown(data['sconto2']!, _sconto2Meta),
+      );
+    }
+    if (data.containsKey('sconto3')) {
+      context.handle(
+        _sconto3Meta,
+        sconto3.isAcceptableOrUnknown(data['sconto3']!, _sconto3Meta),
+      );
+    }
+    if (data.containsKey('sconto4')) {
+      context.handle(
+        _sconto4Meta,
+        sconto4.isAcceptableOrUnknown(data['sconto4']!, _sconto4Meta),
+      );
+    }
+    if (data.containsKey('sconto5')) {
+      context.handle(
+        _sconto5Meta,
+        sconto5.isAcceptableOrUnknown(data['sconto5']!, _sconto5Meta),
+      );
+    }
+    if (data.containsKey('prezzoNetto')) {
+      context.handle(
+        _prezzoNettoMeta,
+        prezzoNetto.isAcceptableOrUnknown(
+          data['prezzoNetto']!,
+          _prezzoNettoMeta,
+        ),
+      );
+    }
+    if (data.containsKey('scontoMerce')) {
+      context.handle(
+        _scontoMerceMeta,
+        scontoMerce.isAcceptableOrUnknown(
+          data['scontoMerce']!,
+          _scontoMerceMeta,
+        ),
+      );
+    }
+    if (data.containsKey('totale')) {
+      context.handle(
+        _totaleMeta,
+        totale.isAcceptableOrUnknown(data['totale']!, _totaleMeta),
+      );
+    }
+    if (data.containsKey('dataConsegna')) {
+      context.handle(
+        _dataConsegnaMeta,
+        dataConsegna.isAcceptableOrUnknown(
+          data['dataConsegna']!,
+          _dataConsegnaMeta,
+        ),
+      );
+    }
+    if (data.containsKey('dataModifica')) {
+      context.handle(
+        _dataModificaMeta,
+        dataModifica.isAcceptableOrUnknown(
+          data['dataModifica']!,
+          _dataModificaMeta,
+        ),
+      );
+    }
+    if (data.containsKey('qtaEvasa')) {
+      context.handle(
+        _qtaEvasaMeta,
+        qtaEvasa.isAcceptableOrUnknown(data['qtaEvasa']!, _qtaEvasaMeta),
+      );
+    }
+    if (data.containsKey('stato')) {
+      context.handle(
+        _statoMeta,
+        stato.isAcceptableOrUnknown(data['stato']!, _statoMeta),
+      );
+    }
+    if (data.containsKey('colli')) {
+      context.handle(
+        _colliMeta,
+        colli.isAcceptableOrUnknown(data['colli']!, _colliMeta),
+      );
+    }
+    if (data.containsKey('promozione')) {
+      context.handle(
+        _promozioneMeta,
+        promozione.isAcceptableOrUnknown(data['promozione']!, _promozioneMeta),
+      );
+    }
+    if (data.containsKey('rigaPromozione')) {
+      context.handle(
+        _rigaPromozioneMeta,
+        rigaPromozione.isAcceptableOrUnknown(
+          data['rigaPromozione']!,
+          _rigaPromozioneMeta,
+        ),
+      );
+    }
+    if (data.containsKey('prezzoManuale')) {
+      context.handle(
+        _prezzoManualeMeta,
+        prezzoManuale.isAcceptableOrUnknown(
+          data['prezzoManuale']!,
+          _prezzoManualeMeta,
+        ),
+      );
+    }
+    return context;
+  }
+
+  @override
+  Set<GeneratedColumn> get $primaryKey => {idRigaOrdine};
+  @override
+  RigaOrdine map(Map<String, dynamic> data, {String? tablePrefix}) {
+    final effectivePrefix = tablePrefix != null ? '$tablePrefix.' : '';
+    return RigaOrdine(
+      idRigaOrdine: attachedDatabase.typeMapping.read(
+        DriftSqlType.int,
+        data['${effectivePrefix}idRigaOrdine'],
+      )!,
+      idOrdine: attachedDatabase.typeMapping.read(
+        DriftSqlType.int,
+        data['${effectivePrefix}idOrdine'],
+      ),
+      idArticolo: attachedDatabase.typeMapping.read(
+        DriftSqlType.int,
+        data['${effectivePrefix}idArticolo'],
+      ),
+      idListino: attachedDatabase.typeMapping.read(
+        DriftSqlType.int,
+        data['${effectivePrefix}idListino'],
+      ),
+      quantita: attachedDatabase.typeMapping.read(
+        DriftSqlType.double,
+        data['${effectivePrefix}quantita'],
+      ),
+      prezzoLordo: attachedDatabase.typeMapping.read(
+        DriftSqlType.double,
+        data['${effectivePrefix}prezzoLordo'],
+      ),
+      sconto1: attachedDatabase.typeMapping.read(
+        DriftSqlType.double,
+        data['${effectivePrefix}sconto1'],
+      ),
+      sconto2: attachedDatabase.typeMapping.read(
+        DriftSqlType.double,
+        data['${effectivePrefix}sconto2'],
+      ),
+      sconto3: attachedDatabase.typeMapping.read(
+        DriftSqlType.double,
+        data['${effectivePrefix}sconto3'],
+      ),
+      sconto4: attachedDatabase.typeMapping.read(
+        DriftSqlType.double,
+        data['${effectivePrefix}sconto4'],
+      ),
+      sconto5: attachedDatabase.typeMapping.read(
+        DriftSqlType.double,
+        data['${effectivePrefix}sconto5'],
+      ),
+      prezzoNetto: attachedDatabase.typeMapping.read(
+        DriftSqlType.double,
+        data['${effectivePrefix}prezzoNetto'],
+      ),
+      scontoMerce: attachedDatabase.typeMapping.read(
+        DriftSqlType.double,
+        data['${effectivePrefix}scontoMerce'],
+      ),
+      totale: attachedDatabase.typeMapping.read(
+        DriftSqlType.double,
+        data['${effectivePrefix}totale'],
+      ),
+      dataConsegna: attachedDatabase.typeMapping.read(
+        DriftSqlType.string,
+        data['${effectivePrefix}dataConsegna'],
+      ),
+      dataModifica: attachedDatabase.typeMapping.read(
+        DriftSqlType.string,
+        data['${effectivePrefix}dataModifica'],
+      ),
+      qtaEvasa: attachedDatabase.typeMapping.read(
+        DriftSqlType.double,
+        data['${effectivePrefix}qtaEvasa'],
+      ),
+      stato: attachedDatabase.typeMapping.read(
+        DriftSqlType.string,
+        data['${effectivePrefix}stato'],
+      ),
+      colli: attachedDatabase.typeMapping.read(
+        DriftSqlType.double,
+        data['${effectivePrefix}colli'],
+      ),
+      promozione: attachedDatabase.typeMapping.read(
+        DriftSqlType.int,
+        data['${effectivePrefix}promozione'],
+      ),
+      rigaPromozione: attachedDatabase.typeMapping.read(
+        DriftSqlType.int,
+        data['${effectivePrefix}rigaPromozione'],
+      ),
+      prezzoManuale: attachedDatabase.typeMapping.read(
+        DriftSqlType.int,
+        data['${effectivePrefix}prezzoManuale'],
+      ),
+    );
+  }
+
+  @override
+  $RigheOrdineTable createAlias(String alias) {
+    return $RigheOrdineTable(attachedDatabase, alias);
+  }
+}
+
+class RigaOrdine extends DataClass implements Insertable<RigaOrdine> {
+  final int idRigaOrdine;
+  final int? idOrdine;
+  final int? idArticolo;
+  final int? idListino;
+  final double? quantita;
+  final double? prezzoLordo;
+  final double? sconto1;
+  final double? sconto2;
+  final double? sconto3;
+  final double? sconto4;
+  final double? sconto5;
+  final double? prezzoNetto;
+  final double? scontoMerce;
+  final double? totale;
+  final String? dataConsegna;
+  final String? dataModifica;
+  final double? qtaEvasa;
+  final String? stato;
+  final double? colli;
+  final int? promozione;
+  final int? rigaPromozione;
+  final int? prezzoManuale;
+  const RigaOrdine({
+    required this.idRigaOrdine,
+    this.idOrdine,
+    this.idArticolo,
+    this.idListino,
+    this.quantita,
+    this.prezzoLordo,
+    this.sconto1,
+    this.sconto2,
+    this.sconto3,
+    this.sconto4,
+    this.sconto5,
+    this.prezzoNetto,
+    this.scontoMerce,
+    this.totale,
+    this.dataConsegna,
+    this.dataModifica,
+    this.qtaEvasa,
+    this.stato,
+    this.colli,
+    this.promozione,
+    this.rigaPromozione,
+    this.prezzoManuale,
+  });
+  @override
+  Map<String, Expression> toColumns(bool nullToAbsent) {
+    final map = <String, Expression>{};
+    map['idRigaOrdine'] = Variable<int>(idRigaOrdine);
+    if (!nullToAbsent || idOrdine != null) {
+      map['idOrdine'] = Variable<int>(idOrdine);
+    }
+    if (!nullToAbsent || idArticolo != null) {
+      map['idArticolo'] = Variable<int>(idArticolo);
+    }
+    if (!nullToAbsent || idListino != null) {
+      map['idListino'] = Variable<int>(idListino);
+    }
+    if (!nullToAbsent || quantita != null) {
+      map['quantita'] = Variable<double>(quantita);
+    }
+    if (!nullToAbsent || prezzoLordo != null) {
+      map['prezzoLordo'] = Variable<double>(prezzoLordo);
+    }
+    if (!nullToAbsent || sconto1 != null) {
+      map['sconto1'] = Variable<double>(sconto1);
+    }
+    if (!nullToAbsent || sconto2 != null) {
+      map['sconto2'] = Variable<double>(sconto2);
+    }
+    if (!nullToAbsent || sconto3 != null) {
+      map['sconto3'] = Variable<double>(sconto3);
+    }
+    if (!nullToAbsent || sconto4 != null) {
+      map['sconto4'] = Variable<double>(sconto4);
+    }
+    if (!nullToAbsent || sconto5 != null) {
+      map['sconto5'] = Variable<double>(sconto5);
+    }
+    if (!nullToAbsent || prezzoNetto != null) {
+      map['prezzoNetto'] = Variable<double>(prezzoNetto);
+    }
+    if (!nullToAbsent || scontoMerce != null) {
+      map['scontoMerce'] = Variable<double>(scontoMerce);
+    }
+    if (!nullToAbsent || totale != null) {
+      map['totale'] = Variable<double>(totale);
+    }
+    if (!nullToAbsent || dataConsegna != null) {
+      map['dataConsegna'] = Variable<String>(dataConsegna);
+    }
+    if (!nullToAbsent || dataModifica != null) {
+      map['dataModifica'] = Variable<String>(dataModifica);
+    }
+    if (!nullToAbsent || qtaEvasa != null) {
+      map['qtaEvasa'] = Variable<double>(qtaEvasa);
+    }
+    if (!nullToAbsent || stato != null) {
+      map['stato'] = Variable<String>(stato);
+    }
+    if (!nullToAbsent || colli != null) {
+      map['colli'] = Variable<double>(colli);
+    }
+    if (!nullToAbsent || promozione != null) {
+      map['promozione'] = Variable<int>(promozione);
+    }
+    if (!nullToAbsent || rigaPromozione != null) {
+      map['rigaPromozione'] = Variable<int>(rigaPromozione);
+    }
+    if (!nullToAbsent || prezzoManuale != null) {
+      map['prezzoManuale'] = Variable<int>(prezzoManuale);
+    }
+    return map;
+  }
+
+  RigheOrdineCompanion toCompanion(bool nullToAbsent) {
+    return RigheOrdineCompanion(
+      idRigaOrdine: Value(idRigaOrdine),
+      idOrdine: idOrdine == null && nullToAbsent
+          ? const Value.absent()
+          : Value(idOrdine),
+      idArticolo: idArticolo == null && nullToAbsent
+          ? const Value.absent()
+          : Value(idArticolo),
+      idListino: idListino == null && nullToAbsent
+          ? const Value.absent()
+          : Value(idListino),
+      quantita: quantita == null && nullToAbsent
+          ? const Value.absent()
+          : Value(quantita),
+      prezzoLordo: prezzoLordo == null && nullToAbsent
+          ? const Value.absent()
+          : Value(prezzoLordo),
+      sconto1: sconto1 == null && nullToAbsent
+          ? const Value.absent()
+          : Value(sconto1),
+      sconto2: sconto2 == null && nullToAbsent
+          ? const Value.absent()
+          : Value(sconto2),
+      sconto3: sconto3 == null && nullToAbsent
+          ? const Value.absent()
+          : Value(sconto3),
+      sconto4: sconto4 == null && nullToAbsent
+          ? const Value.absent()
+          : Value(sconto4),
+      sconto5: sconto5 == null && nullToAbsent
+          ? const Value.absent()
+          : Value(sconto5),
+      prezzoNetto: prezzoNetto == null && nullToAbsent
+          ? const Value.absent()
+          : Value(prezzoNetto),
+      scontoMerce: scontoMerce == null && nullToAbsent
+          ? const Value.absent()
+          : Value(scontoMerce),
+      totale: totale == null && nullToAbsent
+          ? const Value.absent()
+          : Value(totale),
+      dataConsegna: dataConsegna == null && nullToAbsent
+          ? const Value.absent()
+          : Value(dataConsegna),
+      dataModifica: dataModifica == null && nullToAbsent
+          ? const Value.absent()
+          : Value(dataModifica),
+      qtaEvasa: qtaEvasa == null && nullToAbsent
+          ? const Value.absent()
+          : Value(qtaEvasa),
+      stato: stato == null && nullToAbsent
+          ? const Value.absent()
+          : Value(stato),
+      colli: colli == null && nullToAbsent
+          ? const Value.absent()
+          : Value(colli),
+      promozione: promozione == null && nullToAbsent
+          ? const Value.absent()
+          : Value(promozione),
+      rigaPromozione: rigaPromozione == null && nullToAbsent
+          ? const Value.absent()
+          : Value(rigaPromozione),
+      prezzoManuale: prezzoManuale == null && nullToAbsent
+          ? const Value.absent()
+          : Value(prezzoManuale),
+    );
+  }
+
+  factory RigaOrdine.fromJson(
+    Map<String, dynamic> json, {
+    ValueSerializer? serializer,
+  }) {
+    serializer ??= driftRuntimeOptions.defaultSerializer;
+    return RigaOrdine(
+      idRigaOrdine: serializer.fromJson<int>(json['idRigaOrdine']),
+      idOrdine: serializer.fromJson<int?>(json['idOrdine']),
+      idArticolo: serializer.fromJson<int?>(json['idArticolo']),
+      idListino: serializer.fromJson<int?>(json['idListino']),
+      quantita: serializer.fromJson<double?>(json['quantita']),
+      prezzoLordo: serializer.fromJson<double?>(json['prezzoLordo']),
+      sconto1: serializer.fromJson<double?>(json['sconto1']),
+      sconto2: serializer.fromJson<double?>(json['sconto2']),
+      sconto3: serializer.fromJson<double?>(json['sconto3']),
+      sconto4: serializer.fromJson<double?>(json['sconto4']),
+      sconto5: serializer.fromJson<double?>(json['sconto5']),
+      prezzoNetto: serializer.fromJson<double?>(json['prezzoNetto']),
+      scontoMerce: serializer.fromJson<double?>(json['scontoMerce']),
+      totale: serializer.fromJson<double?>(json['totale']),
+      dataConsegna: serializer.fromJson<String?>(json['dataConsegna']),
+      dataModifica: serializer.fromJson<String?>(json['dataModifica']),
+      qtaEvasa: serializer.fromJson<double?>(json['qtaEvasa']),
+      stato: serializer.fromJson<String?>(json['stato']),
+      colli: serializer.fromJson<double?>(json['colli']),
+      promozione: serializer.fromJson<int?>(json['promozione']),
+      rigaPromozione: serializer.fromJson<int?>(json['rigaPromozione']),
+      prezzoManuale: serializer.fromJson<int?>(json['prezzoManuale']),
+    );
+  }
+  @override
+  Map<String, dynamic> toJson({ValueSerializer? serializer}) {
+    serializer ??= driftRuntimeOptions.defaultSerializer;
+    return <String, dynamic>{
+      'idRigaOrdine': serializer.toJson<int>(idRigaOrdine),
+      'idOrdine': serializer.toJson<int?>(idOrdine),
+      'idArticolo': serializer.toJson<int?>(idArticolo),
+      'idListino': serializer.toJson<int?>(idListino),
+      'quantita': serializer.toJson<double?>(quantita),
+      'prezzoLordo': serializer.toJson<double?>(prezzoLordo),
+      'sconto1': serializer.toJson<double?>(sconto1),
+      'sconto2': serializer.toJson<double?>(sconto2),
+      'sconto3': serializer.toJson<double?>(sconto3),
+      'sconto4': serializer.toJson<double?>(sconto4),
+      'sconto5': serializer.toJson<double?>(sconto5),
+      'prezzoNetto': serializer.toJson<double?>(prezzoNetto),
+      'scontoMerce': serializer.toJson<double?>(scontoMerce),
+      'totale': serializer.toJson<double?>(totale),
+      'dataConsegna': serializer.toJson<String?>(dataConsegna),
+      'dataModifica': serializer.toJson<String?>(dataModifica),
+      'qtaEvasa': serializer.toJson<double?>(qtaEvasa),
+      'stato': serializer.toJson<String?>(stato),
+      'colli': serializer.toJson<double?>(colli),
+      'promozione': serializer.toJson<int?>(promozione),
+      'rigaPromozione': serializer.toJson<int?>(rigaPromozione),
+      'prezzoManuale': serializer.toJson<int?>(prezzoManuale),
+    };
+  }
+
+  RigaOrdine copyWith({
+    int? idRigaOrdine,
+    Value<int?> idOrdine = const Value.absent(),
+    Value<int?> idArticolo = const Value.absent(),
+    Value<int?> idListino = const Value.absent(),
+    Value<double?> quantita = const Value.absent(),
+    Value<double?> prezzoLordo = const Value.absent(),
+    Value<double?> sconto1 = const Value.absent(),
+    Value<double?> sconto2 = const Value.absent(),
+    Value<double?> sconto3 = const Value.absent(),
+    Value<double?> sconto4 = const Value.absent(),
+    Value<double?> sconto5 = const Value.absent(),
+    Value<double?> prezzoNetto = const Value.absent(),
+    Value<double?> scontoMerce = const Value.absent(),
+    Value<double?> totale = const Value.absent(),
+    Value<String?> dataConsegna = const Value.absent(),
+    Value<String?> dataModifica = const Value.absent(),
+    Value<double?> qtaEvasa = const Value.absent(),
+    Value<String?> stato = const Value.absent(),
+    Value<double?> colli = const Value.absent(),
+    Value<int?> promozione = const Value.absent(),
+    Value<int?> rigaPromozione = const Value.absent(),
+    Value<int?> prezzoManuale = const Value.absent(),
+  }) => RigaOrdine(
+    idRigaOrdine: idRigaOrdine ?? this.idRigaOrdine,
+    idOrdine: idOrdine.present ? idOrdine.value : this.idOrdine,
+    idArticolo: idArticolo.present ? idArticolo.value : this.idArticolo,
+    idListino: idListino.present ? idListino.value : this.idListino,
+    quantita: quantita.present ? quantita.value : this.quantita,
+    prezzoLordo: prezzoLordo.present ? prezzoLordo.value : this.prezzoLordo,
+    sconto1: sconto1.present ? sconto1.value : this.sconto1,
+    sconto2: sconto2.present ? sconto2.value : this.sconto2,
+    sconto3: sconto3.present ? sconto3.value : this.sconto3,
+    sconto4: sconto4.present ? sconto4.value : this.sconto4,
+    sconto5: sconto5.present ? sconto5.value : this.sconto5,
+    prezzoNetto: prezzoNetto.present ? prezzoNetto.value : this.prezzoNetto,
+    scontoMerce: scontoMerce.present ? scontoMerce.value : this.scontoMerce,
+    totale: totale.present ? totale.value : this.totale,
+    dataConsegna: dataConsegna.present ? dataConsegna.value : this.dataConsegna,
+    dataModifica: dataModifica.present ? dataModifica.value : this.dataModifica,
+    qtaEvasa: qtaEvasa.present ? qtaEvasa.value : this.qtaEvasa,
+    stato: stato.present ? stato.value : this.stato,
+    colli: colli.present ? colli.value : this.colli,
+    promozione: promozione.present ? promozione.value : this.promozione,
+    rigaPromozione: rigaPromozione.present
+        ? rigaPromozione.value
+        : this.rigaPromozione,
+    prezzoManuale: prezzoManuale.present
+        ? prezzoManuale.value
+        : this.prezzoManuale,
+  );
+  RigaOrdine copyWithCompanion(RigheOrdineCompanion data) {
+    return RigaOrdine(
+      idRigaOrdine: data.idRigaOrdine.present
+          ? data.idRigaOrdine.value
+          : this.idRigaOrdine,
+      idOrdine: data.idOrdine.present ? data.idOrdine.value : this.idOrdine,
+      idArticolo: data.idArticolo.present
+          ? data.idArticolo.value
+          : this.idArticolo,
+      idListino: data.idListino.present ? data.idListino.value : this.idListino,
+      quantita: data.quantita.present ? data.quantita.value : this.quantita,
+      prezzoLordo: data.prezzoLordo.present
+          ? data.prezzoLordo.value
+          : this.prezzoLordo,
+      sconto1: data.sconto1.present ? data.sconto1.value : this.sconto1,
+      sconto2: data.sconto2.present ? data.sconto2.value : this.sconto2,
+      sconto3: data.sconto3.present ? data.sconto3.value : this.sconto3,
+      sconto4: data.sconto4.present ? data.sconto4.value : this.sconto4,
+      sconto5: data.sconto5.present ? data.sconto5.value : this.sconto5,
+      prezzoNetto: data.prezzoNetto.present
+          ? data.prezzoNetto.value
+          : this.prezzoNetto,
+      scontoMerce: data.scontoMerce.present
+          ? data.scontoMerce.value
+          : this.scontoMerce,
+      totale: data.totale.present ? data.totale.value : this.totale,
+      dataConsegna: data.dataConsegna.present
+          ? data.dataConsegna.value
+          : this.dataConsegna,
+      dataModifica: data.dataModifica.present
+          ? data.dataModifica.value
+          : this.dataModifica,
+      qtaEvasa: data.qtaEvasa.present ? data.qtaEvasa.value : this.qtaEvasa,
+      stato: data.stato.present ? data.stato.value : this.stato,
+      colli: data.colli.present ? data.colli.value : this.colli,
+      promozione: data.promozione.present
+          ? data.promozione.value
+          : this.promozione,
+      rigaPromozione: data.rigaPromozione.present
+          ? data.rigaPromozione.value
+          : this.rigaPromozione,
+      prezzoManuale: data.prezzoManuale.present
+          ? data.prezzoManuale.value
+          : this.prezzoManuale,
+    );
+  }
+
+  @override
+  String toString() {
+    return (StringBuffer('RigaOrdine(')
+          ..write('idRigaOrdine: $idRigaOrdine, ')
+          ..write('idOrdine: $idOrdine, ')
+          ..write('idArticolo: $idArticolo, ')
+          ..write('idListino: $idListino, ')
+          ..write('quantita: $quantita, ')
+          ..write('prezzoLordo: $prezzoLordo, ')
+          ..write('sconto1: $sconto1, ')
+          ..write('sconto2: $sconto2, ')
+          ..write('sconto3: $sconto3, ')
+          ..write('sconto4: $sconto4, ')
+          ..write('sconto5: $sconto5, ')
+          ..write('prezzoNetto: $prezzoNetto, ')
+          ..write('scontoMerce: $scontoMerce, ')
+          ..write('totale: $totale, ')
+          ..write('dataConsegna: $dataConsegna, ')
+          ..write('dataModifica: $dataModifica, ')
+          ..write('qtaEvasa: $qtaEvasa, ')
+          ..write('stato: $stato, ')
+          ..write('colli: $colli, ')
+          ..write('promozione: $promozione, ')
+          ..write('rigaPromozione: $rigaPromozione, ')
+          ..write('prezzoManuale: $prezzoManuale')
+          ..write(')'))
+        .toString();
+  }
+
+  @override
+  int get hashCode => Object.hashAll([
+    idRigaOrdine,
+    idOrdine,
+    idArticolo,
+    idListino,
+    quantita,
+    prezzoLordo,
+    sconto1,
+    sconto2,
+    sconto3,
+    sconto4,
+    sconto5,
+    prezzoNetto,
+    scontoMerce,
+    totale,
+    dataConsegna,
+    dataModifica,
+    qtaEvasa,
+    stato,
+    colli,
+    promozione,
+    rigaPromozione,
+    prezzoManuale,
+  ]);
+  @override
+  bool operator ==(Object other) =>
+      identical(this, other) ||
+      (other is RigaOrdine &&
+          other.idRigaOrdine == this.idRigaOrdine &&
+          other.idOrdine == this.idOrdine &&
+          other.idArticolo == this.idArticolo &&
+          other.idListino == this.idListino &&
+          other.quantita == this.quantita &&
+          other.prezzoLordo == this.prezzoLordo &&
+          other.sconto1 == this.sconto1 &&
+          other.sconto2 == this.sconto2 &&
+          other.sconto3 == this.sconto3 &&
+          other.sconto4 == this.sconto4 &&
+          other.sconto5 == this.sconto5 &&
+          other.prezzoNetto == this.prezzoNetto &&
+          other.scontoMerce == this.scontoMerce &&
+          other.totale == this.totale &&
+          other.dataConsegna == this.dataConsegna &&
+          other.dataModifica == this.dataModifica &&
+          other.qtaEvasa == this.qtaEvasa &&
+          other.stato == this.stato &&
+          other.colli == this.colli &&
+          other.promozione == this.promozione &&
+          other.rigaPromozione == this.rigaPromozione &&
+          other.prezzoManuale == this.prezzoManuale);
+}
+
+class RigheOrdineCompanion extends UpdateCompanion<RigaOrdine> {
+  final Value<int> idRigaOrdine;
+  final Value<int?> idOrdine;
+  final Value<int?> idArticolo;
+  final Value<int?> idListino;
+  final Value<double?> quantita;
+  final Value<double?> prezzoLordo;
+  final Value<double?> sconto1;
+  final Value<double?> sconto2;
+  final Value<double?> sconto3;
+  final Value<double?> sconto4;
+  final Value<double?> sconto5;
+  final Value<double?> prezzoNetto;
+  final Value<double?> scontoMerce;
+  final Value<double?> totale;
+  final Value<String?> dataConsegna;
+  final Value<String?> dataModifica;
+  final Value<double?> qtaEvasa;
+  final Value<String?> stato;
+  final Value<double?> colli;
+  final Value<int?> promozione;
+  final Value<int?> rigaPromozione;
+  final Value<int?> prezzoManuale;
+  const RigheOrdineCompanion({
+    this.idRigaOrdine = const Value.absent(),
+    this.idOrdine = const Value.absent(),
+    this.idArticolo = const Value.absent(),
+    this.idListino = const Value.absent(),
+    this.quantita = const Value.absent(),
+    this.prezzoLordo = const Value.absent(),
+    this.sconto1 = const Value.absent(),
+    this.sconto2 = const Value.absent(),
+    this.sconto3 = const Value.absent(),
+    this.sconto4 = const Value.absent(),
+    this.sconto5 = const Value.absent(),
+    this.prezzoNetto = const Value.absent(),
+    this.scontoMerce = const Value.absent(),
+    this.totale = const Value.absent(),
+    this.dataConsegna = const Value.absent(),
+    this.dataModifica = const Value.absent(),
+    this.qtaEvasa = const Value.absent(),
+    this.stato = const Value.absent(),
+    this.colli = const Value.absent(),
+    this.promozione = const Value.absent(),
+    this.rigaPromozione = const Value.absent(),
+    this.prezzoManuale = const Value.absent(),
+  });
+  RigheOrdineCompanion.insert({
+    this.idRigaOrdine = const Value.absent(),
+    this.idOrdine = const Value.absent(),
+    this.idArticolo = const Value.absent(),
+    this.idListino = const Value.absent(),
+    this.quantita = const Value.absent(),
+    this.prezzoLordo = const Value.absent(),
+    this.sconto1 = const Value.absent(),
+    this.sconto2 = const Value.absent(),
+    this.sconto3 = const Value.absent(),
+    this.sconto4 = const Value.absent(),
+    this.sconto5 = const Value.absent(),
+    this.prezzoNetto = const Value.absent(),
+    this.scontoMerce = const Value.absent(),
+    this.totale = const Value.absent(),
+    this.dataConsegna = const Value.absent(),
+    this.dataModifica = const Value.absent(),
+    this.qtaEvasa = const Value.absent(),
+    this.stato = const Value.absent(),
+    this.colli = const Value.absent(),
+    this.promozione = const Value.absent(),
+    this.rigaPromozione = const Value.absent(),
+    this.prezzoManuale = const Value.absent(),
+  });
+  static Insertable<RigaOrdine> custom({
+    Expression<int>? idRigaOrdine,
+    Expression<int>? idOrdine,
+    Expression<int>? idArticolo,
+    Expression<int>? idListino,
+    Expression<double>? quantita,
+    Expression<double>? prezzoLordo,
+    Expression<double>? sconto1,
+    Expression<double>? sconto2,
+    Expression<double>? sconto3,
+    Expression<double>? sconto4,
+    Expression<double>? sconto5,
+    Expression<double>? prezzoNetto,
+    Expression<double>? scontoMerce,
+    Expression<double>? totale,
+    Expression<String>? dataConsegna,
+    Expression<String>? dataModifica,
+    Expression<double>? qtaEvasa,
+    Expression<String>? stato,
+    Expression<double>? colli,
+    Expression<int>? promozione,
+    Expression<int>? rigaPromozione,
+    Expression<int>? prezzoManuale,
+  }) {
+    return RawValuesInsertable({
+      if (idRigaOrdine != null) 'idRigaOrdine': idRigaOrdine,
+      if (idOrdine != null) 'idOrdine': idOrdine,
+      if (idArticolo != null) 'idArticolo': idArticolo,
+      if (idListino != null) 'idListino': idListino,
+      if (quantita != null) 'quantita': quantita,
+      if (prezzoLordo != null) 'prezzoLordo': prezzoLordo,
+      if (sconto1 != null) 'sconto1': sconto1,
+      if (sconto2 != null) 'sconto2': sconto2,
+      if (sconto3 != null) 'sconto3': sconto3,
+      if (sconto4 != null) 'sconto4': sconto4,
+      if (sconto5 != null) 'sconto5': sconto5,
+      if (prezzoNetto != null) 'prezzoNetto': prezzoNetto,
+      if (scontoMerce != null) 'scontoMerce': scontoMerce,
+      if (totale != null) 'totale': totale,
+      if (dataConsegna != null) 'dataConsegna': dataConsegna,
+      if (dataModifica != null) 'dataModifica': dataModifica,
+      if (qtaEvasa != null) 'qtaEvasa': qtaEvasa,
+      if (stato != null) 'stato': stato,
+      if (colli != null) 'colli': colli,
+      if (promozione != null) 'promozione': promozione,
+      if (rigaPromozione != null) 'rigaPromozione': rigaPromozione,
+      if (prezzoManuale != null) 'prezzoManuale': prezzoManuale,
+    });
+  }
+
+  RigheOrdineCompanion copyWith({
+    Value<int>? idRigaOrdine,
+    Value<int?>? idOrdine,
+    Value<int?>? idArticolo,
+    Value<int?>? idListino,
+    Value<double?>? quantita,
+    Value<double?>? prezzoLordo,
+    Value<double?>? sconto1,
+    Value<double?>? sconto2,
+    Value<double?>? sconto3,
+    Value<double?>? sconto4,
+    Value<double?>? sconto5,
+    Value<double?>? prezzoNetto,
+    Value<double?>? scontoMerce,
+    Value<double?>? totale,
+    Value<String?>? dataConsegna,
+    Value<String?>? dataModifica,
+    Value<double?>? qtaEvasa,
+    Value<String?>? stato,
+    Value<double?>? colli,
+    Value<int?>? promozione,
+    Value<int?>? rigaPromozione,
+    Value<int?>? prezzoManuale,
+  }) {
+    return RigheOrdineCompanion(
+      idRigaOrdine: idRigaOrdine ?? this.idRigaOrdine,
+      idOrdine: idOrdine ?? this.idOrdine,
+      idArticolo: idArticolo ?? this.idArticolo,
+      idListino: idListino ?? this.idListino,
+      quantita: quantita ?? this.quantita,
+      prezzoLordo: prezzoLordo ?? this.prezzoLordo,
+      sconto1: sconto1 ?? this.sconto1,
+      sconto2: sconto2 ?? this.sconto2,
+      sconto3: sconto3 ?? this.sconto3,
+      sconto4: sconto4 ?? this.sconto4,
+      sconto5: sconto5 ?? this.sconto5,
+      prezzoNetto: prezzoNetto ?? this.prezzoNetto,
+      scontoMerce: scontoMerce ?? this.scontoMerce,
+      totale: totale ?? this.totale,
+      dataConsegna: dataConsegna ?? this.dataConsegna,
+      dataModifica: dataModifica ?? this.dataModifica,
+      qtaEvasa: qtaEvasa ?? this.qtaEvasa,
+      stato: stato ?? this.stato,
+      colli: colli ?? this.colli,
+      promozione: promozione ?? this.promozione,
+      rigaPromozione: rigaPromozione ?? this.rigaPromozione,
+      prezzoManuale: prezzoManuale ?? this.prezzoManuale,
+    );
+  }
+
+  @override
+  Map<String, Expression> toColumns(bool nullToAbsent) {
+    final map = <String, Expression>{};
+    if (idRigaOrdine.present) {
+      map['idRigaOrdine'] = Variable<int>(idRigaOrdine.value);
+    }
+    if (idOrdine.present) {
+      map['idOrdine'] = Variable<int>(idOrdine.value);
+    }
+    if (idArticolo.present) {
+      map['idArticolo'] = Variable<int>(idArticolo.value);
+    }
+    if (idListino.present) {
+      map['idListino'] = Variable<int>(idListino.value);
+    }
+    if (quantita.present) {
+      map['quantita'] = Variable<double>(quantita.value);
+    }
+    if (prezzoLordo.present) {
+      map['prezzoLordo'] = Variable<double>(prezzoLordo.value);
+    }
+    if (sconto1.present) {
+      map['sconto1'] = Variable<double>(sconto1.value);
+    }
+    if (sconto2.present) {
+      map['sconto2'] = Variable<double>(sconto2.value);
+    }
+    if (sconto3.present) {
+      map['sconto3'] = Variable<double>(sconto3.value);
+    }
+    if (sconto4.present) {
+      map['sconto4'] = Variable<double>(sconto4.value);
+    }
+    if (sconto5.present) {
+      map['sconto5'] = Variable<double>(sconto5.value);
+    }
+    if (prezzoNetto.present) {
+      map['prezzoNetto'] = Variable<double>(prezzoNetto.value);
+    }
+    if (scontoMerce.present) {
+      map['scontoMerce'] = Variable<double>(scontoMerce.value);
+    }
+    if (totale.present) {
+      map['totale'] = Variable<double>(totale.value);
+    }
+    if (dataConsegna.present) {
+      map['dataConsegna'] = Variable<String>(dataConsegna.value);
+    }
+    if (dataModifica.present) {
+      map['dataModifica'] = Variable<String>(dataModifica.value);
+    }
+    if (qtaEvasa.present) {
+      map['qtaEvasa'] = Variable<double>(qtaEvasa.value);
+    }
+    if (stato.present) {
+      map['stato'] = Variable<String>(stato.value);
+    }
+    if (colli.present) {
+      map['colli'] = Variable<double>(colli.value);
+    }
+    if (promozione.present) {
+      map['promozione'] = Variable<int>(promozione.value);
+    }
+    if (rigaPromozione.present) {
+      map['rigaPromozione'] = Variable<int>(rigaPromozione.value);
+    }
+    if (prezzoManuale.present) {
+      map['prezzoManuale'] = Variable<int>(prezzoManuale.value);
+    }
+    return map;
+  }
+
+  @override
+  String toString() {
+    return (StringBuffer('RigheOrdineCompanion(')
+          ..write('idRigaOrdine: $idRigaOrdine, ')
+          ..write('idOrdine: $idOrdine, ')
+          ..write('idArticolo: $idArticolo, ')
+          ..write('idListino: $idListino, ')
+          ..write('quantita: $quantita, ')
+          ..write('prezzoLordo: $prezzoLordo, ')
+          ..write('sconto1: $sconto1, ')
+          ..write('sconto2: $sconto2, ')
+          ..write('sconto3: $sconto3, ')
+          ..write('sconto4: $sconto4, ')
+          ..write('sconto5: $sconto5, ')
+          ..write('prezzoNetto: $prezzoNetto, ')
+          ..write('scontoMerce: $scontoMerce, ')
+          ..write('totale: $totale, ')
+          ..write('dataConsegna: $dataConsegna, ')
+          ..write('dataModifica: $dataModifica, ')
+          ..write('qtaEvasa: $qtaEvasa, ')
+          ..write('stato: $stato, ')
+          ..write('colli: $colli, ')
+          ..write('promozione: $promozione, ')
+          ..write('rigaPromozione: $rigaPromozione, ')
+          ..write('prezzoManuale: $prezzoManuale')
+          ..write(')'))
+        .toString();
+  }
+}
+
+class $FilialiTable extends Filiali with TableInfo<$FilialiTable, Filiale> {
+  @override
+  final GeneratedDatabase attachedDatabase;
+  final String? _alias;
+  $FilialiTable(this.attachedDatabase, [this._alias]);
+  static const VerificationMeta _idFilialeMeta = const VerificationMeta(
+    'idFiliale',
+  );
+  @override
+  late final GeneratedColumn<int> idFiliale = GeneratedColumn<int>(
+    'idFiliale',
+    aliasedName,
+    false,
+    hasAutoIncrement: true,
+    type: DriftSqlType.int,
+    requiredDuringInsert: false,
+    defaultConstraints: GeneratedColumn.constraintIsAlways(
+      'PRIMARY KEY AUTOINCREMENT',
+    ),
+  );
+  static const VerificationMeta _idFilialeRemotoMeta = const VerificationMeta(
+    'idFilialeRemoto',
+  );
+  @override
+  late final GeneratedColumn<int> idFilialeRemoto = GeneratedColumn<int>(
+    'idFilialeRemoto',
+    aliasedName,
+    true,
+    type: DriftSqlType.int,
+    requiredDuringInsert: false,
+  );
+  static const VerificationMeta _idClienteMeta = const VerificationMeta(
+    'idCliente',
+  );
+  @override
+  late final GeneratedColumn<int> idCliente = GeneratedColumn<int>(
+    'idCliente',
+    aliasedName,
+    true,
+    type: DriftSqlType.int,
+    requiredDuringInsert: false,
+  );
+  static const VerificationMeta _idAgenteMeta = const VerificationMeta(
+    'idAgente',
+  );
+  @override
+  late final GeneratedColumn<int> idAgente = GeneratedColumn<int>(
+    'idAgente',
+    aliasedName,
+    true,
+    type: DriftSqlType.int,
+    requiredDuringInsert: false,
+  );
+  static const VerificationMeta _codFilialeMeta = const VerificationMeta(
+    'codFiliale',
+  );
+  @override
+  late final GeneratedColumn<String> codFiliale = GeneratedColumn<String>(
+    'codFiliale',
+    aliasedName,
+    true,
+    type: DriftSqlType.string,
+    requiredDuringInsert: false,
+  );
+  static const VerificationMeta _descrizioneMeta = const VerificationMeta(
+    'descrizione',
+  );
+  @override
+  late final GeneratedColumn<String> descrizione = GeneratedColumn<String>(
+    'descrizione',
+    aliasedName,
+    true,
+    type: DriftSqlType.string,
+    requiredDuringInsert: false,
+  );
+  static const VerificationMeta _indirizzoMeta = const VerificationMeta(
+    'indirizzo',
+  );
+  @override
+  late final GeneratedColumn<String> indirizzo = GeneratedColumn<String>(
+    'indirizzo',
+    aliasedName,
+    true,
+    type: DriftSqlType.string,
+    requiredDuringInsert: false,
+  );
+  static const VerificationMeta _cittaMeta = const VerificationMeta('citta');
+  @override
+  late final GeneratedColumn<String> citta = GeneratedColumn<String>(
+    'citta',
+    aliasedName,
+    true,
+    type: DriftSqlType.string,
+    requiredDuringInsert: false,
+  );
+  static const VerificationMeta _provinciaMeta = const VerificationMeta(
+    'provincia',
+  );
+  @override
+  late final GeneratedColumn<String> provincia = GeneratedColumn<String>(
+    'provincia',
+    aliasedName,
+    true,
+    type: DriftSqlType.string,
+    requiredDuringInsert: false,
+  );
+  static const VerificationMeta _capMeta = const VerificationMeta('cap');
+  @override
+  late final GeneratedColumn<String> cap = GeneratedColumn<String>(
+    'cap',
+    aliasedName,
+    true,
+    type: DriftSqlType.string,
+    requiredDuringInsert: false,
+  );
+  static const VerificationMeta _frazioneMeta = const VerificationMeta(
+    'frazione',
+  );
+  @override
+  late final GeneratedColumn<String> frazione = GeneratedColumn<String>(
+    'frazione',
+    aliasedName,
+    true,
+    type: DriftSqlType.string,
+    requiredDuringInsert: false,
+  );
+  static const VerificationMeta _nazioneMeta = const VerificationMeta(
+    'nazione',
+  );
+  @override
+  late final GeneratedColumn<String> nazione = GeneratedColumn<String>(
+    'nazione',
+    aliasedName,
+    true,
+    type: DriftSqlType.string,
+    requiredDuringInsert: false,
+  );
+  static const VerificationMeta _telefonoMeta = const VerificationMeta(
+    'telefono',
+  );
+  @override
+  late final GeneratedColumn<String> telefono = GeneratedColumn<String>(
+    'telefono',
+    aliasedName,
+    true,
+    type: DriftSqlType.string,
+    requiredDuringInsert: false,
+  );
+  static const VerificationMeta _cellulareMeta = const VerificationMeta(
+    'cellulare',
+  );
+  @override
+  late final GeneratedColumn<String> cellulare = GeneratedColumn<String>(
+    'cellulare',
+    aliasedName,
+    true,
+    type: DriftSqlType.string,
+    requiredDuringInsert: false,
+  );
+  static const VerificationMeta _faxMeta = const VerificationMeta('fax');
+  @override
+  late final GeneratedColumn<String> fax = GeneratedColumn<String>(
+    'fax',
+    aliasedName,
+    true,
+    type: DriftSqlType.string,
+    requiredDuringInsert: false,
+  );
+  static const VerificationMeta _emailMeta = const VerificationMeta('email');
+  @override
+  late final GeneratedColumn<String> email = GeneratedColumn<String>(
+    'email',
+    aliasedName,
+    true,
+    type: DriftSqlType.string,
+    requiredDuringInsert: false,
+  );
+  static const VerificationMeta _statoMeta = const VerificationMeta('stato');
+  @override
+  late final GeneratedColumn<String> stato = GeneratedColumn<String>(
+    'stato',
+    aliasedName,
+    true,
+    type: DriftSqlType.string,
+    requiredDuringInsert: false,
+  );
+  static const VerificationMeta _attivoMeta = const VerificationMeta('attivo');
+  @override
+  late final GeneratedColumn<int> attivo = GeneratedColumn<int>(
+    'attivo',
+    aliasedName,
+    false,
+    type: DriftSqlType.int,
+    requiredDuringInsert: false,
+    defaultValue: const Constant(1),
+  );
+  static const VerificationMeta _noteMeta = const VerificationMeta('note');
+  @override
+  late final GeneratedColumn<String> note = GeneratedColumn<String>(
+    'note',
+    aliasedName,
+    true,
+    type: DriftSqlType.string,
+    requiredDuringInsert: false,
+  );
+  @override
+  List<GeneratedColumn> get $columns => [
+    idFiliale,
+    idFilialeRemoto,
+    idCliente,
+    idAgente,
+    codFiliale,
+    descrizione,
+    indirizzo,
+    citta,
+    provincia,
+    cap,
+    frazione,
+    nazione,
+    telefono,
+    cellulare,
+    fax,
+    email,
+    stato,
+    attivo,
+    note,
+  ];
+  @override
+  String get aliasedName => _alias ?? actualTableName;
+  @override
+  String get actualTableName => $name;
+  static const String $name = 'Filiali';
+  @override
+  VerificationContext validateIntegrity(
+    Insertable<Filiale> instance, {
+    bool isInserting = false,
+  }) {
+    final context = VerificationContext();
+    final data = instance.toColumns(true);
+    if (data.containsKey('idFiliale')) {
+      context.handle(
+        _idFilialeMeta,
+        idFiliale.isAcceptableOrUnknown(data['idFiliale']!, _idFilialeMeta),
+      );
+    }
+    if (data.containsKey('idFilialeRemoto')) {
+      context.handle(
+        _idFilialeRemotoMeta,
+        idFilialeRemoto.isAcceptableOrUnknown(
+          data['idFilialeRemoto']!,
+          _idFilialeRemotoMeta,
+        ),
+      );
+    }
+    if (data.containsKey('idCliente')) {
+      context.handle(
+        _idClienteMeta,
+        idCliente.isAcceptableOrUnknown(data['idCliente']!, _idClienteMeta),
+      );
+    }
+    if (data.containsKey('idAgente')) {
+      context.handle(
+        _idAgenteMeta,
+        idAgente.isAcceptableOrUnknown(data['idAgente']!, _idAgenteMeta),
+      );
+    }
+    if (data.containsKey('codFiliale')) {
+      context.handle(
+        _codFilialeMeta,
+        codFiliale.isAcceptableOrUnknown(data['codFiliale']!, _codFilialeMeta),
+      );
+    }
+    if (data.containsKey('descrizione')) {
+      context.handle(
+        _descrizioneMeta,
+        descrizione.isAcceptableOrUnknown(
+          data['descrizione']!,
+          _descrizioneMeta,
+        ),
+      );
+    }
+    if (data.containsKey('indirizzo')) {
+      context.handle(
+        _indirizzoMeta,
+        indirizzo.isAcceptableOrUnknown(data['indirizzo']!, _indirizzoMeta),
+      );
+    }
+    if (data.containsKey('citta')) {
+      context.handle(
+        _cittaMeta,
+        citta.isAcceptableOrUnknown(data['citta']!, _cittaMeta),
+      );
+    }
+    if (data.containsKey('provincia')) {
+      context.handle(
+        _provinciaMeta,
+        provincia.isAcceptableOrUnknown(data['provincia']!, _provinciaMeta),
+      );
+    }
+    if (data.containsKey('cap')) {
+      context.handle(
+        _capMeta,
+        cap.isAcceptableOrUnknown(data['cap']!, _capMeta),
+      );
+    }
+    if (data.containsKey('frazione')) {
+      context.handle(
+        _frazioneMeta,
+        frazione.isAcceptableOrUnknown(data['frazione']!, _frazioneMeta),
+      );
+    }
+    if (data.containsKey('nazione')) {
+      context.handle(
+        _nazioneMeta,
+        nazione.isAcceptableOrUnknown(data['nazione']!, _nazioneMeta),
+      );
+    }
+    if (data.containsKey('telefono')) {
+      context.handle(
+        _telefonoMeta,
+        telefono.isAcceptableOrUnknown(data['telefono']!, _telefonoMeta),
+      );
+    }
+    if (data.containsKey('cellulare')) {
+      context.handle(
+        _cellulareMeta,
+        cellulare.isAcceptableOrUnknown(data['cellulare']!, _cellulareMeta),
+      );
+    }
+    if (data.containsKey('fax')) {
+      context.handle(
+        _faxMeta,
+        fax.isAcceptableOrUnknown(data['fax']!, _faxMeta),
+      );
+    }
+    if (data.containsKey('email')) {
+      context.handle(
+        _emailMeta,
+        email.isAcceptableOrUnknown(data['email']!, _emailMeta),
+      );
+    }
+    if (data.containsKey('stato')) {
+      context.handle(
+        _statoMeta,
+        stato.isAcceptableOrUnknown(data['stato']!, _statoMeta),
+      );
+    }
+    if (data.containsKey('attivo')) {
+      context.handle(
+        _attivoMeta,
+        attivo.isAcceptableOrUnknown(data['attivo']!, _attivoMeta),
+      );
+    }
+    if (data.containsKey('note')) {
+      context.handle(
+        _noteMeta,
+        note.isAcceptableOrUnknown(data['note']!, _noteMeta),
+      );
+    }
+    return context;
+  }
+
+  @override
+  Set<GeneratedColumn> get $primaryKey => {idFiliale};
+  @override
+  Filiale map(Map<String, dynamic> data, {String? tablePrefix}) {
+    final effectivePrefix = tablePrefix != null ? '$tablePrefix.' : '';
+    return Filiale(
+      idFiliale: attachedDatabase.typeMapping.read(
+        DriftSqlType.int,
+        data['${effectivePrefix}idFiliale'],
+      )!,
+      idFilialeRemoto: attachedDatabase.typeMapping.read(
+        DriftSqlType.int,
+        data['${effectivePrefix}idFilialeRemoto'],
+      ),
+      idCliente: attachedDatabase.typeMapping.read(
+        DriftSqlType.int,
+        data['${effectivePrefix}idCliente'],
+      ),
+      idAgente: attachedDatabase.typeMapping.read(
+        DriftSqlType.int,
+        data['${effectivePrefix}idAgente'],
+      ),
+      codFiliale: attachedDatabase.typeMapping.read(
+        DriftSqlType.string,
+        data['${effectivePrefix}codFiliale'],
+      ),
+      descrizione: attachedDatabase.typeMapping.read(
+        DriftSqlType.string,
+        data['${effectivePrefix}descrizione'],
+      ),
+      indirizzo: attachedDatabase.typeMapping.read(
+        DriftSqlType.string,
+        data['${effectivePrefix}indirizzo'],
+      ),
+      citta: attachedDatabase.typeMapping.read(
+        DriftSqlType.string,
+        data['${effectivePrefix}citta'],
+      ),
+      provincia: attachedDatabase.typeMapping.read(
+        DriftSqlType.string,
+        data['${effectivePrefix}provincia'],
+      ),
+      cap: attachedDatabase.typeMapping.read(
+        DriftSqlType.string,
+        data['${effectivePrefix}cap'],
+      ),
+      frazione: attachedDatabase.typeMapping.read(
+        DriftSqlType.string,
+        data['${effectivePrefix}frazione'],
+      ),
+      nazione: attachedDatabase.typeMapping.read(
+        DriftSqlType.string,
+        data['${effectivePrefix}nazione'],
+      ),
+      telefono: attachedDatabase.typeMapping.read(
+        DriftSqlType.string,
+        data['${effectivePrefix}telefono'],
+      ),
+      cellulare: attachedDatabase.typeMapping.read(
+        DriftSqlType.string,
+        data['${effectivePrefix}cellulare'],
+      ),
+      fax: attachedDatabase.typeMapping.read(
+        DriftSqlType.string,
+        data['${effectivePrefix}fax'],
+      ),
+      email: attachedDatabase.typeMapping.read(
+        DriftSqlType.string,
+        data['${effectivePrefix}email'],
+      ),
+      stato: attachedDatabase.typeMapping.read(
+        DriftSqlType.string,
+        data['${effectivePrefix}stato'],
+      ),
+      attivo: attachedDatabase.typeMapping.read(
+        DriftSqlType.int,
+        data['${effectivePrefix}attivo'],
+      )!,
+      note: attachedDatabase.typeMapping.read(
+        DriftSqlType.string,
+        data['${effectivePrefix}note'],
+      ),
+    );
+  }
+
+  @override
+  $FilialiTable createAlias(String alias) {
+    return $FilialiTable(attachedDatabase, alias);
+  }
+}
+
+class Filiale extends DataClass implements Insertable<Filiale> {
+  final int idFiliale;
+  final int? idFilialeRemoto;
+  final int? idCliente;
+  final int? idAgente;
+  final String? codFiliale;
+  final String? descrizione;
+  final String? indirizzo;
+  final String? citta;
+  final String? provincia;
+  final String? cap;
+  final String? frazione;
+  final String? nazione;
+  final String? telefono;
+  final String? cellulare;
+  final String? fax;
+  final String? email;
+  final String? stato;
+  final int attivo;
+  final String? note;
+  const Filiale({
+    required this.idFiliale,
+    this.idFilialeRemoto,
+    this.idCliente,
+    this.idAgente,
+    this.codFiliale,
+    this.descrizione,
+    this.indirizzo,
+    this.citta,
+    this.provincia,
+    this.cap,
+    this.frazione,
+    this.nazione,
+    this.telefono,
+    this.cellulare,
+    this.fax,
+    this.email,
+    this.stato,
+    required this.attivo,
+    this.note,
+  });
+  @override
+  Map<String, Expression> toColumns(bool nullToAbsent) {
+    final map = <String, Expression>{};
+    map['idFiliale'] = Variable<int>(idFiliale);
+    if (!nullToAbsent || idFilialeRemoto != null) {
+      map['idFilialeRemoto'] = Variable<int>(idFilialeRemoto);
+    }
+    if (!nullToAbsent || idCliente != null) {
+      map['idCliente'] = Variable<int>(idCliente);
+    }
+    if (!nullToAbsent || idAgente != null) {
+      map['idAgente'] = Variable<int>(idAgente);
+    }
+    if (!nullToAbsent || codFiliale != null) {
+      map['codFiliale'] = Variable<String>(codFiliale);
+    }
+    if (!nullToAbsent || descrizione != null) {
+      map['descrizione'] = Variable<String>(descrizione);
+    }
+    if (!nullToAbsent || indirizzo != null) {
+      map['indirizzo'] = Variable<String>(indirizzo);
+    }
+    if (!nullToAbsent || citta != null) {
+      map['citta'] = Variable<String>(citta);
+    }
+    if (!nullToAbsent || provincia != null) {
+      map['provincia'] = Variable<String>(provincia);
+    }
+    if (!nullToAbsent || cap != null) {
+      map['cap'] = Variable<String>(cap);
+    }
+    if (!nullToAbsent || frazione != null) {
+      map['frazione'] = Variable<String>(frazione);
+    }
+    if (!nullToAbsent || nazione != null) {
+      map['nazione'] = Variable<String>(nazione);
+    }
+    if (!nullToAbsent || telefono != null) {
+      map['telefono'] = Variable<String>(telefono);
+    }
+    if (!nullToAbsent || cellulare != null) {
+      map['cellulare'] = Variable<String>(cellulare);
+    }
+    if (!nullToAbsent || fax != null) {
+      map['fax'] = Variable<String>(fax);
+    }
+    if (!nullToAbsent || email != null) {
+      map['email'] = Variable<String>(email);
+    }
+    if (!nullToAbsent || stato != null) {
+      map['stato'] = Variable<String>(stato);
+    }
+    map['attivo'] = Variable<int>(attivo);
+    if (!nullToAbsent || note != null) {
+      map['note'] = Variable<String>(note);
+    }
+    return map;
+  }
+
+  FilialiCompanion toCompanion(bool nullToAbsent) {
+    return FilialiCompanion(
+      idFiliale: Value(idFiliale),
+      idFilialeRemoto: idFilialeRemoto == null && nullToAbsent
+          ? const Value.absent()
+          : Value(idFilialeRemoto),
+      idCliente: idCliente == null && nullToAbsent
+          ? const Value.absent()
+          : Value(idCliente),
+      idAgente: idAgente == null && nullToAbsent
+          ? const Value.absent()
+          : Value(idAgente),
+      codFiliale: codFiliale == null && nullToAbsent
+          ? const Value.absent()
+          : Value(codFiliale),
+      descrizione: descrizione == null && nullToAbsent
+          ? const Value.absent()
+          : Value(descrizione),
+      indirizzo: indirizzo == null && nullToAbsent
+          ? const Value.absent()
+          : Value(indirizzo),
+      citta: citta == null && nullToAbsent
+          ? const Value.absent()
+          : Value(citta),
+      provincia: provincia == null && nullToAbsent
+          ? const Value.absent()
+          : Value(provincia),
+      cap: cap == null && nullToAbsent ? const Value.absent() : Value(cap),
+      frazione: frazione == null && nullToAbsent
+          ? const Value.absent()
+          : Value(frazione),
+      nazione: nazione == null && nullToAbsent
+          ? const Value.absent()
+          : Value(nazione),
+      telefono: telefono == null && nullToAbsent
+          ? const Value.absent()
+          : Value(telefono),
+      cellulare: cellulare == null && nullToAbsent
+          ? const Value.absent()
+          : Value(cellulare),
+      fax: fax == null && nullToAbsent ? const Value.absent() : Value(fax),
+      email: email == null && nullToAbsent
+          ? const Value.absent()
+          : Value(email),
+      stato: stato == null && nullToAbsent
+          ? const Value.absent()
+          : Value(stato),
+      attivo: Value(attivo),
+      note: note == null && nullToAbsent ? const Value.absent() : Value(note),
+    );
+  }
+
+  factory Filiale.fromJson(
+    Map<String, dynamic> json, {
+    ValueSerializer? serializer,
+  }) {
+    serializer ??= driftRuntimeOptions.defaultSerializer;
+    return Filiale(
+      idFiliale: serializer.fromJson<int>(json['idFiliale']),
+      idFilialeRemoto: serializer.fromJson<int?>(json['idFilialeRemoto']),
+      idCliente: serializer.fromJson<int?>(json['idCliente']),
+      idAgente: serializer.fromJson<int?>(json['idAgente']),
+      codFiliale: serializer.fromJson<String?>(json['codFiliale']),
+      descrizione: serializer.fromJson<String?>(json['descrizione']),
+      indirizzo: serializer.fromJson<String?>(json['indirizzo']),
+      citta: serializer.fromJson<String?>(json['citta']),
+      provincia: serializer.fromJson<String?>(json['provincia']),
+      cap: serializer.fromJson<String?>(json['cap']),
+      frazione: serializer.fromJson<String?>(json['frazione']),
+      nazione: serializer.fromJson<String?>(json['nazione']),
+      telefono: serializer.fromJson<String?>(json['telefono']),
+      cellulare: serializer.fromJson<String?>(json['cellulare']),
+      fax: serializer.fromJson<String?>(json['fax']),
+      email: serializer.fromJson<String?>(json['email']),
+      stato: serializer.fromJson<String?>(json['stato']),
+      attivo: serializer.fromJson<int>(json['attivo']),
+      note: serializer.fromJson<String?>(json['note']),
+    );
+  }
+  @override
+  Map<String, dynamic> toJson({ValueSerializer? serializer}) {
+    serializer ??= driftRuntimeOptions.defaultSerializer;
+    return <String, dynamic>{
+      'idFiliale': serializer.toJson<int>(idFiliale),
+      'idFilialeRemoto': serializer.toJson<int?>(idFilialeRemoto),
+      'idCliente': serializer.toJson<int?>(idCliente),
+      'idAgente': serializer.toJson<int?>(idAgente),
+      'codFiliale': serializer.toJson<String?>(codFiliale),
+      'descrizione': serializer.toJson<String?>(descrizione),
+      'indirizzo': serializer.toJson<String?>(indirizzo),
+      'citta': serializer.toJson<String?>(citta),
+      'provincia': serializer.toJson<String?>(provincia),
+      'cap': serializer.toJson<String?>(cap),
+      'frazione': serializer.toJson<String?>(frazione),
+      'nazione': serializer.toJson<String?>(nazione),
+      'telefono': serializer.toJson<String?>(telefono),
+      'cellulare': serializer.toJson<String?>(cellulare),
+      'fax': serializer.toJson<String?>(fax),
+      'email': serializer.toJson<String?>(email),
+      'stato': serializer.toJson<String?>(stato),
+      'attivo': serializer.toJson<int>(attivo),
+      'note': serializer.toJson<String?>(note),
+    };
+  }
+
+  Filiale copyWith({
+    int? idFiliale,
+    Value<int?> idFilialeRemoto = const Value.absent(),
+    Value<int?> idCliente = const Value.absent(),
+    Value<int?> idAgente = const Value.absent(),
+    Value<String?> codFiliale = const Value.absent(),
+    Value<String?> descrizione = const Value.absent(),
+    Value<String?> indirizzo = const Value.absent(),
+    Value<String?> citta = const Value.absent(),
+    Value<String?> provincia = const Value.absent(),
+    Value<String?> cap = const Value.absent(),
+    Value<String?> frazione = const Value.absent(),
+    Value<String?> nazione = const Value.absent(),
+    Value<String?> telefono = const Value.absent(),
+    Value<String?> cellulare = const Value.absent(),
+    Value<String?> fax = const Value.absent(),
+    Value<String?> email = const Value.absent(),
+    Value<String?> stato = const Value.absent(),
+    int? attivo,
+    Value<String?> note = const Value.absent(),
+  }) => Filiale(
+    idFiliale: idFiliale ?? this.idFiliale,
+    idFilialeRemoto: idFilialeRemoto.present
+        ? idFilialeRemoto.value
+        : this.idFilialeRemoto,
+    idCliente: idCliente.present ? idCliente.value : this.idCliente,
+    idAgente: idAgente.present ? idAgente.value : this.idAgente,
+    codFiliale: codFiliale.present ? codFiliale.value : this.codFiliale,
+    descrizione: descrizione.present ? descrizione.value : this.descrizione,
+    indirizzo: indirizzo.present ? indirizzo.value : this.indirizzo,
+    citta: citta.present ? citta.value : this.citta,
+    provincia: provincia.present ? provincia.value : this.provincia,
+    cap: cap.present ? cap.value : this.cap,
+    frazione: frazione.present ? frazione.value : this.frazione,
+    nazione: nazione.present ? nazione.value : this.nazione,
+    telefono: telefono.present ? telefono.value : this.telefono,
+    cellulare: cellulare.present ? cellulare.value : this.cellulare,
+    fax: fax.present ? fax.value : this.fax,
+    email: email.present ? email.value : this.email,
+    stato: stato.present ? stato.value : this.stato,
+    attivo: attivo ?? this.attivo,
+    note: note.present ? note.value : this.note,
+  );
+  Filiale copyWithCompanion(FilialiCompanion data) {
+    return Filiale(
+      idFiliale: data.idFiliale.present ? data.idFiliale.value : this.idFiliale,
+      idFilialeRemoto: data.idFilialeRemoto.present
+          ? data.idFilialeRemoto.value
+          : this.idFilialeRemoto,
+      idCliente: data.idCliente.present ? data.idCliente.value : this.idCliente,
+      idAgente: data.idAgente.present ? data.idAgente.value : this.idAgente,
+      codFiliale: data.codFiliale.present
+          ? data.codFiliale.value
+          : this.codFiliale,
+      descrizione: data.descrizione.present
+          ? data.descrizione.value
+          : this.descrizione,
+      indirizzo: data.indirizzo.present ? data.indirizzo.value : this.indirizzo,
+      citta: data.citta.present ? data.citta.value : this.citta,
+      provincia: data.provincia.present ? data.provincia.value : this.provincia,
+      cap: data.cap.present ? data.cap.value : this.cap,
+      frazione: data.frazione.present ? data.frazione.value : this.frazione,
+      nazione: data.nazione.present ? data.nazione.value : this.nazione,
+      telefono: data.telefono.present ? data.telefono.value : this.telefono,
+      cellulare: data.cellulare.present ? data.cellulare.value : this.cellulare,
+      fax: data.fax.present ? data.fax.value : this.fax,
+      email: data.email.present ? data.email.value : this.email,
+      stato: data.stato.present ? data.stato.value : this.stato,
+      attivo: data.attivo.present ? data.attivo.value : this.attivo,
+      note: data.note.present ? data.note.value : this.note,
+    );
+  }
+
+  @override
+  String toString() {
+    return (StringBuffer('Filiale(')
+          ..write('idFiliale: $idFiliale, ')
+          ..write('idFilialeRemoto: $idFilialeRemoto, ')
+          ..write('idCliente: $idCliente, ')
+          ..write('idAgente: $idAgente, ')
+          ..write('codFiliale: $codFiliale, ')
+          ..write('descrizione: $descrizione, ')
+          ..write('indirizzo: $indirizzo, ')
+          ..write('citta: $citta, ')
+          ..write('provincia: $provincia, ')
+          ..write('cap: $cap, ')
+          ..write('frazione: $frazione, ')
+          ..write('nazione: $nazione, ')
+          ..write('telefono: $telefono, ')
+          ..write('cellulare: $cellulare, ')
+          ..write('fax: $fax, ')
+          ..write('email: $email, ')
+          ..write('stato: $stato, ')
+          ..write('attivo: $attivo, ')
+          ..write('note: $note')
+          ..write(')'))
+        .toString();
+  }
+
+  @override
+  int get hashCode => Object.hash(
+    idFiliale,
+    idFilialeRemoto,
+    idCliente,
+    idAgente,
+    codFiliale,
+    descrizione,
+    indirizzo,
+    citta,
+    provincia,
+    cap,
+    frazione,
+    nazione,
+    telefono,
+    cellulare,
+    fax,
+    email,
+    stato,
+    attivo,
+    note,
+  );
+  @override
+  bool operator ==(Object other) =>
+      identical(this, other) ||
+      (other is Filiale &&
+          other.idFiliale == this.idFiliale &&
+          other.idFilialeRemoto == this.idFilialeRemoto &&
+          other.idCliente == this.idCliente &&
+          other.idAgente == this.idAgente &&
+          other.codFiliale == this.codFiliale &&
+          other.descrizione == this.descrizione &&
+          other.indirizzo == this.indirizzo &&
+          other.citta == this.citta &&
+          other.provincia == this.provincia &&
+          other.cap == this.cap &&
+          other.frazione == this.frazione &&
+          other.nazione == this.nazione &&
+          other.telefono == this.telefono &&
+          other.cellulare == this.cellulare &&
+          other.fax == this.fax &&
+          other.email == this.email &&
+          other.stato == this.stato &&
+          other.attivo == this.attivo &&
+          other.note == this.note);
+}
+
+class FilialiCompanion extends UpdateCompanion<Filiale> {
+  final Value<int> idFiliale;
+  final Value<int?> idFilialeRemoto;
+  final Value<int?> idCliente;
+  final Value<int?> idAgente;
+  final Value<String?> codFiliale;
+  final Value<String?> descrizione;
+  final Value<String?> indirizzo;
+  final Value<String?> citta;
+  final Value<String?> provincia;
+  final Value<String?> cap;
+  final Value<String?> frazione;
+  final Value<String?> nazione;
+  final Value<String?> telefono;
+  final Value<String?> cellulare;
+  final Value<String?> fax;
+  final Value<String?> email;
+  final Value<String?> stato;
+  final Value<int> attivo;
+  final Value<String?> note;
+  const FilialiCompanion({
+    this.idFiliale = const Value.absent(),
+    this.idFilialeRemoto = const Value.absent(),
+    this.idCliente = const Value.absent(),
+    this.idAgente = const Value.absent(),
+    this.codFiliale = const Value.absent(),
+    this.descrizione = const Value.absent(),
+    this.indirizzo = const Value.absent(),
+    this.citta = const Value.absent(),
+    this.provincia = const Value.absent(),
+    this.cap = const Value.absent(),
+    this.frazione = const Value.absent(),
+    this.nazione = const Value.absent(),
+    this.telefono = const Value.absent(),
+    this.cellulare = const Value.absent(),
+    this.fax = const Value.absent(),
+    this.email = const Value.absent(),
+    this.stato = const Value.absent(),
+    this.attivo = const Value.absent(),
+    this.note = const Value.absent(),
+  });
+  FilialiCompanion.insert({
+    this.idFiliale = const Value.absent(),
+    this.idFilialeRemoto = const Value.absent(),
+    this.idCliente = const Value.absent(),
+    this.idAgente = const Value.absent(),
+    this.codFiliale = const Value.absent(),
+    this.descrizione = const Value.absent(),
+    this.indirizzo = const Value.absent(),
+    this.citta = const Value.absent(),
+    this.provincia = const Value.absent(),
+    this.cap = const Value.absent(),
+    this.frazione = const Value.absent(),
+    this.nazione = const Value.absent(),
+    this.telefono = const Value.absent(),
+    this.cellulare = const Value.absent(),
+    this.fax = const Value.absent(),
+    this.email = const Value.absent(),
+    this.stato = const Value.absent(),
+    this.attivo = const Value.absent(),
+    this.note = const Value.absent(),
+  });
+  static Insertable<Filiale> custom({
+    Expression<int>? idFiliale,
+    Expression<int>? idFilialeRemoto,
+    Expression<int>? idCliente,
+    Expression<int>? idAgente,
+    Expression<String>? codFiliale,
+    Expression<String>? descrizione,
+    Expression<String>? indirizzo,
+    Expression<String>? citta,
+    Expression<String>? provincia,
+    Expression<String>? cap,
+    Expression<String>? frazione,
+    Expression<String>? nazione,
+    Expression<String>? telefono,
+    Expression<String>? cellulare,
+    Expression<String>? fax,
+    Expression<String>? email,
+    Expression<String>? stato,
+    Expression<int>? attivo,
+    Expression<String>? note,
+  }) {
+    return RawValuesInsertable({
+      if (idFiliale != null) 'idFiliale': idFiliale,
+      if (idFilialeRemoto != null) 'idFilialeRemoto': idFilialeRemoto,
+      if (idCliente != null) 'idCliente': idCliente,
+      if (idAgente != null) 'idAgente': idAgente,
+      if (codFiliale != null) 'codFiliale': codFiliale,
+      if (descrizione != null) 'descrizione': descrizione,
+      if (indirizzo != null) 'indirizzo': indirizzo,
+      if (citta != null) 'citta': citta,
+      if (provincia != null) 'provincia': provincia,
+      if (cap != null) 'cap': cap,
+      if (frazione != null) 'frazione': frazione,
+      if (nazione != null) 'nazione': nazione,
+      if (telefono != null) 'telefono': telefono,
+      if (cellulare != null) 'cellulare': cellulare,
+      if (fax != null) 'fax': fax,
+      if (email != null) 'email': email,
+      if (stato != null) 'stato': stato,
+      if (attivo != null) 'attivo': attivo,
+      if (note != null) 'note': note,
+    });
+  }
+
+  FilialiCompanion copyWith({
+    Value<int>? idFiliale,
+    Value<int?>? idFilialeRemoto,
+    Value<int?>? idCliente,
+    Value<int?>? idAgente,
+    Value<String?>? codFiliale,
+    Value<String?>? descrizione,
+    Value<String?>? indirizzo,
+    Value<String?>? citta,
+    Value<String?>? provincia,
+    Value<String?>? cap,
+    Value<String?>? frazione,
+    Value<String?>? nazione,
+    Value<String?>? telefono,
+    Value<String?>? cellulare,
+    Value<String?>? fax,
+    Value<String?>? email,
+    Value<String?>? stato,
+    Value<int>? attivo,
+    Value<String?>? note,
+  }) {
+    return FilialiCompanion(
+      idFiliale: idFiliale ?? this.idFiliale,
+      idFilialeRemoto: idFilialeRemoto ?? this.idFilialeRemoto,
+      idCliente: idCliente ?? this.idCliente,
+      idAgente: idAgente ?? this.idAgente,
+      codFiliale: codFiliale ?? this.codFiliale,
+      descrizione: descrizione ?? this.descrizione,
+      indirizzo: indirizzo ?? this.indirizzo,
+      citta: citta ?? this.citta,
+      provincia: provincia ?? this.provincia,
+      cap: cap ?? this.cap,
+      frazione: frazione ?? this.frazione,
+      nazione: nazione ?? this.nazione,
+      telefono: telefono ?? this.telefono,
+      cellulare: cellulare ?? this.cellulare,
+      fax: fax ?? this.fax,
+      email: email ?? this.email,
+      stato: stato ?? this.stato,
+      attivo: attivo ?? this.attivo,
+      note: note ?? this.note,
+    );
+  }
+
+  @override
+  Map<String, Expression> toColumns(bool nullToAbsent) {
+    final map = <String, Expression>{};
+    if (idFiliale.present) {
+      map['idFiliale'] = Variable<int>(idFiliale.value);
+    }
+    if (idFilialeRemoto.present) {
+      map['idFilialeRemoto'] = Variable<int>(idFilialeRemoto.value);
+    }
+    if (idCliente.present) {
+      map['idCliente'] = Variable<int>(idCliente.value);
+    }
+    if (idAgente.present) {
+      map['idAgente'] = Variable<int>(idAgente.value);
+    }
+    if (codFiliale.present) {
+      map['codFiliale'] = Variable<String>(codFiliale.value);
+    }
+    if (descrizione.present) {
+      map['descrizione'] = Variable<String>(descrizione.value);
+    }
+    if (indirizzo.present) {
+      map['indirizzo'] = Variable<String>(indirizzo.value);
+    }
+    if (citta.present) {
+      map['citta'] = Variable<String>(citta.value);
+    }
+    if (provincia.present) {
+      map['provincia'] = Variable<String>(provincia.value);
+    }
+    if (cap.present) {
+      map['cap'] = Variable<String>(cap.value);
+    }
+    if (frazione.present) {
+      map['frazione'] = Variable<String>(frazione.value);
+    }
+    if (nazione.present) {
+      map['nazione'] = Variable<String>(nazione.value);
+    }
+    if (telefono.present) {
+      map['telefono'] = Variable<String>(telefono.value);
+    }
+    if (cellulare.present) {
+      map['cellulare'] = Variable<String>(cellulare.value);
+    }
+    if (fax.present) {
+      map['fax'] = Variable<String>(fax.value);
+    }
+    if (email.present) {
+      map['email'] = Variable<String>(email.value);
+    }
+    if (stato.present) {
+      map['stato'] = Variable<String>(stato.value);
+    }
+    if (attivo.present) {
+      map['attivo'] = Variable<int>(attivo.value);
+    }
+    if (note.present) {
+      map['note'] = Variable<String>(note.value);
+    }
+    return map;
+  }
+
+  @override
+  String toString() {
+    return (StringBuffer('FilialiCompanion(')
+          ..write('idFiliale: $idFiliale, ')
+          ..write('idFilialeRemoto: $idFilialeRemoto, ')
+          ..write('idCliente: $idCliente, ')
+          ..write('idAgente: $idAgente, ')
+          ..write('codFiliale: $codFiliale, ')
+          ..write('descrizione: $descrizione, ')
+          ..write('indirizzo: $indirizzo, ')
+          ..write('citta: $citta, ')
+          ..write('provincia: $provincia, ')
+          ..write('cap: $cap, ')
+          ..write('frazione: $frazione, ')
+          ..write('nazione: $nazione, ')
+          ..write('telefono: $telefono, ')
+          ..write('cellulare: $cellulare, ')
+          ..write('fax: $fax, ')
+          ..write('email: $email, ')
+          ..write('stato: $stato, ')
+          ..write('attivo: $attivo, ')
+          ..write('note: $note')
+          ..write(')'))
+        .toString();
+  }
+}
+
+class $ListiniTable extends Listini with TableInfo<$ListiniTable, Listino> {
+  @override
+  final GeneratedDatabase attachedDatabase;
+  final String? _alias;
+  $ListiniTable(this.attachedDatabase, [this._alias]);
+  static const VerificationMeta _idListinoMeta = const VerificationMeta(
+    'idListino',
+  );
+  @override
+  late final GeneratedColumn<int> idListino = GeneratedColumn<int>(
+    'idListino',
+    aliasedName,
+    false,
+    hasAutoIncrement: true,
+    type: DriftSqlType.int,
+    requiredDuringInsert: false,
+    defaultConstraints: GeneratedColumn.constraintIsAlways(
+      'PRIMARY KEY AUTOINCREMENT',
+    ),
+  );
+  static const VerificationMeta _codListinoMeta = const VerificationMeta(
+    'codListino',
+  );
+  @override
+  late final GeneratedColumn<String> codListino = GeneratedColumn<String>(
+    'codListino',
+    aliasedName,
+    true,
+    type: DriftSqlType.string,
+    requiredDuringInsert: false,
+  );
+  static const VerificationMeta _descrizioneMeta = const VerificationMeta(
+    'descrizione',
+  );
+  @override
+  late final GeneratedColumn<String> descrizione = GeneratedColumn<String>(
+    'descrizione',
+    aliasedName,
+    true,
+    type: DriftSqlType.string,
+    requiredDuringInsert: false,
+  );
+  static const VerificationMeta _validoDaMeta = const VerificationMeta(
+    'validoDa',
+  );
+  @override
+  late final GeneratedColumn<String> validoDa = GeneratedColumn<String>(
+    'validoDa',
+    aliasedName,
+    true,
+    type: DriftSqlType.string,
+    requiredDuringInsert: false,
+  );
+  static const VerificationMeta _validoAMeta = const VerificationMeta(
+    'validoA',
+  );
+  @override
+  late final GeneratedColumn<String> validoA = GeneratedColumn<String>(
+    'validoA',
+    aliasedName,
+    true,
+    type: DriftSqlType.string,
+    requiredDuringInsert: false,
+  );
+  static const VerificationMeta _attivoMeta = const VerificationMeta('attivo');
+  @override
+  late final GeneratedColumn<int> attivo = GeneratedColumn<int>(
+    'attivo',
+    aliasedName,
+    false,
+    type: DriftSqlType.int,
+    requiredDuringInsert: false,
+    defaultValue: const Constant(1),
+  );
+  static const VerificationMeta _dataModificaMeta = const VerificationMeta(
+    'dataModifica',
+  );
+  @override
+  late final GeneratedColumn<String> dataModifica = GeneratedColumn<String>(
+    'dataModifica',
+    aliasedName,
+    true,
+    type: DriftSqlType.string,
+    requiredDuringInsert: false,
+  );
+  @override
+  List<GeneratedColumn> get $columns => [
+    idListino,
+    codListino,
+    descrizione,
+    validoDa,
+    validoA,
+    attivo,
+    dataModifica,
+  ];
+  @override
+  String get aliasedName => _alias ?? actualTableName;
+  @override
+  String get actualTableName => $name;
+  static const String $name = 'Listini';
+  @override
+  VerificationContext validateIntegrity(
+    Insertable<Listino> instance, {
+    bool isInserting = false,
+  }) {
+    final context = VerificationContext();
+    final data = instance.toColumns(true);
+    if (data.containsKey('idListino')) {
+      context.handle(
+        _idListinoMeta,
+        idListino.isAcceptableOrUnknown(data['idListino']!, _idListinoMeta),
+      );
+    }
+    if (data.containsKey('codListino')) {
+      context.handle(
+        _codListinoMeta,
+        codListino.isAcceptableOrUnknown(data['codListino']!, _codListinoMeta),
+      );
+    }
+    if (data.containsKey('descrizione')) {
+      context.handle(
+        _descrizioneMeta,
+        descrizione.isAcceptableOrUnknown(
+          data['descrizione']!,
+          _descrizioneMeta,
+        ),
+      );
+    }
+    if (data.containsKey('validoDa')) {
+      context.handle(
+        _validoDaMeta,
+        validoDa.isAcceptableOrUnknown(data['validoDa']!, _validoDaMeta),
+      );
+    }
+    if (data.containsKey('validoA')) {
+      context.handle(
+        _validoAMeta,
+        validoA.isAcceptableOrUnknown(data['validoA']!, _validoAMeta),
+      );
+    }
+    if (data.containsKey('attivo')) {
+      context.handle(
+        _attivoMeta,
+        attivo.isAcceptableOrUnknown(data['attivo']!, _attivoMeta),
+      );
+    }
+    if (data.containsKey('dataModifica')) {
+      context.handle(
+        _dataModificaMeta,
+        dataModifica.isAcceptableOrUnknown(
+          data['dataModifica']!,
+          _dataModificaMeta,
+        ),
+      );
+    }
+    return context;
+  }
+
+  @override
+  Set<GeneratedColumn> get $primaryKey => {idListino};
+  @override
+  Listino map(Map<String, dynamic> data, {String? tablePrefix}) {
+    final effectivePrefix = tablePrefix != null ? '$tablePrefix.' : '';
+    return Listino(
+      idListino: attachedDatabase.typeMapping.read(
+        DriftSqlType.int,
+        data['${effectivePrefix}idListino'],
+      )!,
+      codListino: attachedDatabase.typeMapping.read(
+        DriftSqlType.string,
+        data['${effectivePrefix}codListino'],
+      ),
+      descrizione: attachedDatabase.typeMapping.read(
+        DriftSqlType.string,
+        data['${effectivePrefix}descrizione'],
+      ),
+      validoDa: attachedDatabase.typeMapping.read(
+        DriftSqlType.string,
+        data['${effectivePrefix}validoDa'],
+      ),
+      validoA: attachedDatabase.typeMapping.read(
+        DriftSqlType.string,
+        data['${effectivePrefix}validoA'],
+      ),
+      attivo: attachedDatabase.typeMapping.read(
+        DriftSqlType.int,
+        data['${effectivePrefix}attivo'],
+      )!,
+      dataModifica: attachedDatabase.typeMapping.read(
+        DriftSqlType.string,
+        data['${effectivePrefix}dataModifica'],
+      ),
+    );
+  }
+
+  @override
+  $ListiniTable createAlias(String alias) {
+    return $ListiniTable(attachedDatabase, alias);
+  }
+}
+
+class Listino extends DataClass implements Insertable<Listino> {
+  final int idListino;
+  final String? codListino;
+  final String? descrizione;
+  final String? validoDa;
+  final String? validoA;
+  final int attivo;
+  final String? dataModifica;
+  const Listino({
+    required this.idListino,
+    this.codListino,
+    this.descrizione,
+    this.validoDa,
+    this.validoA,
+    required this.attivo,
+    this.dataModifica,
+  });
+  @override
+  Map<String, Expression> toColumns(bool nullToAbsent) {
+    final map = <String, Expression>{};
+    map['idListino'] = Variable<int>(idListino);
+    if (!nullToAbsent || codListino != null) {
+      map['codListino'] = Variable<String>(codListino);
+    }
+    if (!nullToAbsent || descrizione != null) {
+      map['descrizione'] = Variable<String>(descrizione);
+    }
+    if (!nullToAbsent || validoDa != null) {
+      map['validoDa'] = Variable<String>(validoDa);
+    }
+    if (!nullToAbsent || validoA != null) {
+      map['validoA'] = Variable<String>(validoA);
+    }
+    map['attivo'] = Variable<int>(attivo);
+    if (!nullToAbsent || dataModifica != null) {
+      map['dataModifica'] = Variable<String>(dataModifica);
+    }
+    return map;
+  }
+
+  ListiniCompanion toCompanion(bool nullToAbsent) {
+    return ListiniCompanion(
+      idListino: Value(idListino),
+      codListino: codListino == null && nullToAbsent
+          ? const Value.absent()
+          : Value(codListino),
+      descrizione: descrizione == null && nullToAbsent
+          ? const Value.absent()
+          : Value(descrizione),
+      validoDa: validoDa == null && nullToAbsent
+          ? const Value.absent()
+          : Value(validoDa),
+      validoA: validoA == null && nullToAbsent
+          ? const Value.absent()
+          : Value(validoA),
+      attivo: Value(attivo),
+      dataModifica: dataModifica == null && nullToAbsent
+          ? const Value.absent()
+          : Value(dataModifica),
+    );
+  }
+
+  factory Listino.fromJson(
+    Map<String, dynamic> json, {
+    ValueSerializer? serializer,
+  }) {
+    serializer ??= driftRuntimeOptions.defaultSerializer;
+    return Listino(
+      idListino: serializer.fromJson<int>(json['idListino']),
+      codListino: serializer.fromJson<String?>(json['codListino']),
+      descrizione: serializer.fromJson<String?>(json['descrizione']),
+      validoDa: serializer.fromJson<String?>(json['validoDa']),
+      validoA: serializer.fromJson<String?>(json['validoA']),
+      attivo: serializer.fromJson<int>(json['attivo']),
+      dataModifica: serializer.fromJson<String?>(json['dataModifica']),
+    );
+  }
+  @override
+  Map<String, dynamic> toJson({ValueSerializer? serializer}) {
+    serializer ??= driftRuntimeOptions.defaultSerializer;
+    return <String, dynamic>{
+      'idListino': serializer.toJson<int>(idListino),
+      'codListino': serializer.toJson<String?>(codListino),
+      'descrizione': serializer.toJson<String?>(descrizione),
+      'validoDa': serializer.toJson<String?>(validoDa),
+      'validoA': serializer.toJson<String?>(validoA),
+      'attivo': serializer.toJson<int>(attivo),
+      'dataModifica': serializer.toJson<String?>(dataModifica),
+    };
+  }
+
+  Listino copyWith({
+    int? idListino,
+    Value<String?> codListino = const Value.absent(),
+    Value<String?> descrizione = const Value.absent(),
+    Value<String?> validoDa = const Value.absent(),
+    Value<String?> validoA = const Value.absent(),
+    int? attivo,
+    Value<String?> dataModifica = const Value.absent(),
+  }) => Listino(
+    idListino: idListino ?? this.idListino,
+    codListino: codListino.present ? codListino.value : this.codListino,
+    descrizione: descrizione.present ? descrizione.value : this.descrizione,
+    validoDa: validoDa.present ? validoDa.value : this.validoDa,
+    validoA: validoA.present ? validoA.value : this.validoA,
+    attivo: attivo ?? this.attivo,
+    dataModifica: dataModifica.present ? dataModifica.value : this.dataModifica,
+  );
+  Listino copyWithCompanion(ListiniCompanion data) {
+    return Listino(
+      idListino: data.idListino.present ? data.idListino.value : this.idListino,
+      codListino: data.codListino.present
+          ? data.codListino.value
+          : this.codListino,
+      descrizione: data.descrizione.present
+          ? data.descrizione.value
+          : this.descrizione,
+      validoDa: data.validoDa.present ? data.validoDa.value : this.validoDa,
+      validoA: data.validoA.present ? data.validoA.value : this.validoA,
+      attivo: data.attivo.present ? data.attivo.value : this.attivo,
+      dataModifica: data.dataModifica.present
+          ? data.dataModifica.value
+          : this.dataModifica,
+    );
+  }
+
+  @override
+  String toString() {
+    return (StringBuffer('Listino(')
+          ..write('idListino: $idListino, ')
+          ..write('codListino: $codListino, ')
+          ..write('descrizione: $descrizione, ')
+          ..write('validoDa: $validoDa, ')
+          ..write('validoA: $validoA, ')
+          ..write('attivo: $attivo, ')
+          ..write('dataModifica: $dataModifica')
+          ..write(')'))
+        .toString();
+  }
+
+  @override
+  int get hashCode => Object.hash(
+    idListino,
+    codListino,
+    descrizione,
+    validoDa,
+    validoA,
+    attivo,
+    dataModifica,
+  );
+  @override
+  bool operator ==(Object other) =>
+      identical(this, other) ||
+      (other is Listino &&
+          other.idListino == this.idListino &&
+          other.codListino == this.codListino &&
+          other.descrizione == this.descrizione &&
+          other.validoDa == this.validoDa &&
+          other.validoA == this.validoA &&
+          other.attivo == this.attivo &&
+          other.dataModifica == this.dataModifica);
+}
+
+class ListiniCompanion extends UpdateCompanion<Listino> {
+  final Value<int> idListino;
+  final Value<String?> codListino;
+  final Value<String?> descrizione;
+  final Value<String?> validoDa;
+  final Value<String?> validoA;
+  final Value<int> attivo;
+  final Value<String?> dataModifica;
+  const ListiniCompanion({
+    this.idListino = const Value.absent(),
+    this.codListino = const Value.absent(),
+    this.descrizione = const Value.absent(),
+    this.validoDa = const Value.absent(),
+    this.validoA = const Value.absent(),
+    this.attivo = const Value.absent(),
+    this.dataModifica = const Value.absent(),
+  });
+  ListiniCompanion.insert({
+    this.idListino = const Value.absent(),
+    this.codListino = const Value.absent(),
+    this.descrizione = const Value.absent(),
+    this.validoDa = const Value.absent(),
+    this.validoA = const Value.absent(),
+    this.attivo = const Value.absent(),
+    this.dataModifica = const Value.absent(),
+  });
+  static Insertable<Listino> custom({
+    Expression<int>? idListino,
+    Expression<String>? codListino,
+    Expression<String>? descrizione,
+    Expression<String>? validoDa,
+    Expression<String>? validoA,
+    Expression<int>? attivo,
+    Expression<String>? dataModifica,
+  }) {
+    return RawValuesInsertable({
+      if (idListino != null) 'idListino': idListino,
+      if (codListino != null) 'codListino': codListino,
+      if (descrizione != null) 'descrizione': descrizione,
+      if (validoDa != null) 'validoDa': validoDa,
+      if (validoA != null) 'validoA': validoA,
+      if (attivo != null) 'attivo': attivo,
+      if (dataModifica != null) 'dataModifica': dataModifica,
+    });
+  }
+
+  ListiniCompanion copyWith({
+    Value<int>? idListino,
+    Value<String?>? codListino,
+    Value<String?>? descrizione,
+    Value<String?>? validoDa,
+    Value<String?>? validoA,
+    Value<int>? attivo,
+    Value<String?>? dataModifica,
+  }) {
+    return ListiniCompanion(
+      idListino: idListino ?? this.idListino,
+      codListino: codListino ?? this.codListino,
+      descrizione: descrizione ?? this.descrizione,
+      validoDa: validoDa ?? this.validoDa,
+      validoA: validoA ?? this.validoA,
+      attivo: attivo ?? this.attivo,
+      dataModifica: dataModifica ?? this.dataModifica,
+    );
+  }
+
+  @override
+  Map<String, Expression> toColumns(bool nullToAbsent) {
+    final map = <String, Expression>{};
+    if (idListino.present) {
+      map['idListino'] = Variable<int>(idListino.value);
+    }
+    if (codListino.present) {
+      map['codListino'] = Variable<String>(codListino.value);
+    }
+    if (descrizione.present) {
+      map['descrizione'] = Variable<String>(descrizione.value);
+    }
+    if (validoDa.present) {
+      map['validoDa'] = Variable<String>(validoDa.value);
+    }
+    if (validoA.present) {
+      map['validoA'] = Variable<String>(validoA.value);
+    }
+    if (attivo.present) {
+      map['attivo'] = Variable<int>(attivo.value);
+    }
+    if (dataModifica.present) {
+      map['dataModifica'] = Variable<String>(dataModifica.value);
+    }
+    return map;
+  }
+
+  @override
+  String toString() {
+    return (StringBuffer('ListiniCompanion(')
+          ..write('idListino: $idListino, ')
+          ..write('codListino: $codListino, ')
+          ..write('descrizione: $descrizione, ')
+          ..write('validoDa: $validoDa, ')
+          ..write('validoA: $validoA, ')
+          ..write('attivo: $attivo, ')
+          ..write('dataModifica: $dataModifica')
+          ..write(')'))
+        .toString();
+  }
+}
+
+class $ListiniArticoloTable extends ListiniArticolo
+    with TableInfo<$ListiniArticoloTable, ListinoArticolo> {
+  @override
+  final GeneratedDatabase attachedDatabase;
+  final String? _alias;
+  $ListiniArticoloTable(this.attachedDatabase, [this._alias]);
+  static const VerificationMeta _idListinoArticoliMeta = const VerificationMeta(
+    'idListinoArticoli',
+  );
+  @override
+  late final GeneratedColumn<int> idListinoArticoli = GeneratedColumn<int>(
+    'idListino_articoli',
+    aliasedName,
+    false,
+    hasAutoIncrement: true,
+    type: DriftSqlType.int,
+    requiredDuringInsert: false,
+    defaultConstraints: GeneratedColumn.constraintIsAlways(
+      'PRIMARY KEY AUTOINCREMENT',
+    ),
+  );
+  static const VerificationMeta _idListinoMeta = const VerificationMeta(
+    'idListino',
+  );
+  @override
+  late final GeneratedColumn<int> idListino = GeneratedColumn<int>(
+    'idListino',
+    aliasedName,
+    true,
+    type: DriftSqlType.int,
+    requiredDuringInsert: false,
+  );
+  static const VerificationMeta _idArticoloMeta = const VerificationMeta(
+    'idArticolo',
+  );
+  @override
+  late final GeneratedColumn<int> idArticolo = GeneratedColumn<int>(
+    'idArticolo',
+    aliasedName,
+    true,
+    type: DriftSqlType.int,
+    requiredDuringInsert: false,
+  );
+  static const VerificationMeta _prezzoMeta = const VerificationMeta('prezzo');
+  @override
+  late final GeneratedColumn<double> prezzo = GeneratedColumn<double>(
+    'prezzo',
+    aliasedName,
+    true,
+    type: DriftSqlType.double,
+    requiredDuringInsert: false,
+  );
+  static const VerificationMeta _idScontoMeta = const VerificationMeta(
+    'idSconto',
+  );
+  @override
+  late final GeneratedColumn<int> idSconto = GeneratedColumn<int>(
+    'idSconto',
+    aliasedName,
+    true,
+    type: DriftSqlType.int,
+    requiredDuringInsert: false,
+  );
+  static const VerificationMeta _validoDaMeta = const VerificationMeta(
+    'validoDa',
+  );
+  @override
+  late final GeneratedColumn<String> validoDa = GeneratedColumn<String>(
+    'validoDa',
+    aliasedName,
+    true,
+    type: DriftSqlType.string,
+    requiredDuringInsert: false,
+  );
+  static const VerificationMeta _validoAMeta = const VerificationMeta(
+    'validoA',
+  );
+  @override
+  late final GeneratedColumn<String> validoA = GeneratedColumn<String>(
+    'validoA',
+    aliasedName,
+    true,
+    type: DriftSqlType.string,
+    requiredDuringInsert: false,
+  );
+  static const VerificationMeta _attivoMeta = const VerificationMeta('attivo');
+  @override
+  late final GeneratedColumn<int> attivo = GeneratedColumn<int>(
+    'attivo',
+    aliasedName,
+    false,
+    type: DriftSqlType.int,
+    requiredDuringInsert: false,
+    defaultValue: const Constant(1),
+  );
+  @override
+  List<GeneratedColumn> get $columns => [
+    idListinoArticoli,
+    idListino,
+    idArticolo,
+    prezzo,
+    idSconto,
+    validoDa,
+    validoA,
+    attivo,
+  ];
+  @override
+  String get aliasedName => _alias ?? actualTableName;
+  @override
+  String get actualTableName => $name;
+  static const String $name = 'Listini_articolo';
+  @override
+  VerificationContext validateIntegrity(
+    Insertable<ListinoArticolo> instance, {
+    bool isInserting = false,
+  }) {
+    final context = VerificationContext();
+    final data = instance.toColumns(true);
+    if (data.containsKey('idListino_articoli')) {
+      context.handle(
+        _idListinoArticoliMeta,
+        idListinoArticoli.isAcceptableOrUnknown(
+          data['idListino_articoli']!,
+          _idListinoArticoliMeta,
+        ),
+      );
+    }
+    if (data.containsKey('idListino')) {
+      context.handle(
+        _idListinoMeta,
+        idListino.isAcceptableOrUnknown(data['idListino']!, _idListinoMeta),
+      );
+    }
+    if (data.containsKey('idArticolo')) {
+      context.handle(
+        _idArticoloMeta,
+        idArticolo.isAcceptableOrUnknown(data['idArticolo']!, _idArticoloMeta),
+      );
+    }
+    if (data.containsKey('prezzo')) {
+      context.handle(
+        _prezzoMeta,
+        prezzo.isAcceptableOrUnknown(data['prezzo']!, _prezzoMeta),
+      );
+    }
+    if (data.containsKey('idSconto')) {
+      context.handle(
+        _idScontoMeta,
+        idSconto.isAcceptableOrUnknown(data['idSconto']!, _idScontoMeta),
+      );
+    }
+    if (data.containsKey('validoDa')) {
+      context.handle(
+        _validoDaMeta,
+        validoDa.isAcceptableOrUnknown(data['validoDa']!, _validoDaMeta),
+      );
+    }
+    if (data.containsKey('validoA')) {
+      context.handle(
+        _validoAMeta,
+        validoA.isAcceptableOrUnknown(data['validoA']!, _validoAMeta),
+      );
+    }
+    if (data.containsKey('attivo')) {
+      context.handle(
+        _attivoMeta,
+        attivo.isAcceptableOrUnknown(data['attivo']!, _attivoMeta),
+      );
+    }
+    return context;
+  }
+
+  @override
+  Set<GeneratedColumn> get $primaryKey => {idListinoArticoli};
+  @override
+  ListinoArticolo map(Map<String, dynamic> data, {String? tablePrefix}) {
+    final effectivePrefix = tablePrefix != null ? '$tablePrefix.' : '';
+    return ListinoArticolo(
+      idListinoArticoli: attachedDatabase.typeMapping.read(
+        DriftSqlType.int,
+        data['${effectivePrefix}idListino_articoli'],
+      )!,
+      idListino: attachedDatabase.typeMapping.read(
+        DriftSqlType.int,
+        data['${effectivePrefix}idListino'],
+      ),
+      idArticolo: attachedDatabase.typeMapping.read(
+        DriftSqlType.int,
+        data['${effectivePrefix}idArticolo'],
+      ),
+      prezzo: attachedDatabase.typeMapping.read(
+        DriftSqlType.double,
+        data['${effectivePrefix}prezzo'],
+      ),
+      idSconto: attachedDatabase.typeMapping.read(
+        DriftSqlType.int,
+        data['${effectivePrefix}idSconto'],
+      ),
+      validoDa: attachedDatabase.typeMapping.read(
+        DriftSqlType.string,
+        data['${effectivePrefix}validoDa'],
+      ),
+      validoA: attachedDatabase.typeMapping.read(
+        DriftSqlType.string,
+        data['${effectivePrefix}validoA'],
+      ),
+      attivo: attachedDatabase.typeMapping.read(
+        DriftSqlType.int,
+        data['${effectivePrefix}attivo'],
+      )!,
+    );
+  }
+
+  @override
+  $ListiniArticoloTable createAlias(String alias) {
+    return $ListiniArticoloTable(attachedDatabase, alias);
+  }
+}
+
+class ListinoArticolo extends DataClass implements Insertable<ListinoArticolo> {
+  final int idListinoArticoli;
+  final int? idListino;
+  final int? idArticolo;
+  final double? prezzo;
+  final int? idSconto;
+  final String? validoDa;
+  final String? validoA;
+  final int attivo;
+  const ListinoArticolo({
+    required this.idListinoArticoli,
+    this.idListino,
+    this.idArticolo,
+    this.prezzo,
+    this.idSconto,
+    this.validoDa,
+    this.validoA,
+    required this.attivo,
+  });
+  @override
+  Map<String, Expression> toColumns(bool nullToAbsent) {
+    final map = <String, Expression>{};
+    map['idListino_articoli'] = Variable<int>(idListinoArticoli);
+    if (!nullToAbsent || idListino != null) {
+      map['idListino'] = Variable<int>(idListino);
+    }
+    if (!nullToAbsent || idArticolo != null) {
+      map['idArticolo'] = Variable<int>(idArticolo);
+    }
+    if (!nullToAbsent || prezzo != null) {
+      map['prezzo'] = Variable<double>(prezzo);
+    }
+    if (!nullToAbsent || idSconto != null) {
+      map['idSconto'] = Variable<int>(idSconto);
+    }
+    if (!nullToAbsent || validoDa != null) {
+      map['validoDa'] = Variable<String>(validoDa);
+    }
+    if (!nullToAbsent || validoA != null) {
+      map['validoA'] = Variable<String>(validoA);
+    }
+    map['attivo'] = Variable<int>(attivo);
+    return map;
+  }
+
+  ListiniArticoloCompanion toCompanion(bool nullToAbsent) {
+    return ListiniArticoloCompanion(
+      idListinoArticoli: Value(idListinoArticoli),
+      idListino: idListino == null && nullToAbsent
+          ? const Value.absent()
+          : Value(idListino),
+      idArticolo: idArticolo == null && nullToAbsent
+          ? const Value.absent()
+          : Value(idArticolo),
+      prezzo: prezzo == null && nullToAbsent
+          ? const Value.absent()
+          : Value(prezzo),
+      idSconto: idSconto == null && nullToAbsent
+          ? const Value.absent()
+          : Value(idSconto),
+      validoDa: validoDa == null && nullToAbsent
+          ? const Value.absent()
+          : Value(validoDa),
+      validoA: validoA == null && nullToAbsent
+          ? const Value.absent()
+          : Value(validoA),
+      attivo: Value(attivo),
+    );
+  }
+
+  factory ListinoArticolo.fromJson(
+    Map<String, dynamic> json, {
+    ValueSerializer? serializer,
+  }) {
+    serializer ??= driftRuntimeOptions.defaultSerializer;
+    return ListinoArticolo(
+      idListinoArticoli: serializer.fromJson<int>(json['idListinoArticoli']),
+      idListino: serializer.fromJson<int?>(json['idListino']),
+      idArticolo: serializer.fromJson<int?>(json['idArticolo']),
+      prezzo: serializer.fromJson<double?>(json['prezzo']),
+      idSconto: serializer.fromJson<int?>(json['idSconto']),
+      validoDa: serializer.fromJson<String?>(json['validoDa']),
+      validoA: serializer.fromJson<String?>(json['validoA']),
+      attivo: serializer.fromJson<int>(json['attivo']),
+    );
+  }
+  @override
+  Map<String, dynamic> toJson({ValueSerializer? serializer}) {
+    serializer ??= driftRuntimeOptions.defaultSerializer;
+    return <String, dynamic>{
+      'idListinoArticoli': serializer.toJson<int>(idListinoArticoli),
+      'idListino': serializer.toJson<int?>(idListino),
+      'idArticolo': serializer.toJson<int?>(idArticolo),
+      'prezzo': serializer.toJson<double?>(prezzo),
+      'idSconto': serializer.toJson<int?>(idSconto),
+      'validoDa': serializer.toJson<String?>(validoDa),
+      'validoA': serializer.toJson<String?>(validoA),
+      'attivo': serializer.toJson<int>(attivo),
+    };
+  }
+
+  ListinoArticolo copyWith({
+    int? idListinoArticoli,
+    Value<int?> idListino = const Value.absent(),
+    Value<int?> idArticolo = const Value.absent(),
+    Value<double?> prezzo = const Value.absent(),
+    Value<int?> idSconto = const Value.absent(),
+    Value<String?> validoDa = const Value.absent(),
+    Value<String?> validoA = const Value.absent(),
+    int? attivo,
+  }) => ListinoArticolo(
+    idListinoArticoli: idListinoArticoli ?? this.idListinoArticoli,
+    idListino: idListino.present ? idListino.value : this.idListino,
+    idArticolo: idArticolo.present ? idArticolo.value : this.idArticolo,
+    prezzo: prezzo.present ? prezzo.value : this.prezzo,
+    idSconto: idSconto.present ? idSconto.value : this.idSconto,
+    validoDa: validoDa.present ? validoDa.value : this.validoDa,
+    validoA: validoA.present ? validoA.value : this.validoA,
+    attivo: attivo ?? this.attivo,
+  );
+  ListinoArticolo copyWithCompanion(ListiniArticoloCompanion data) {
+    return ListinoArticolo(
+      idListinoArticoli: data.idListinoArticoli.present
+          ? data.idListinoArticoli.value
+          : this.idListinoArticoli,
+      idListino: data.idListino.present ? data.idListino.value : this.idListino,
+      idArticolo: data.idArticolo.present
+          ? data.idArticolo.value
+          : this.idArticolo,
+      prezzo: data.prezzo.present ? data.prezzo.value : this.prezzo,
+      idSconto: data.idSconto.present ? data.idSconto.value : this.idSconto,
+      validoDa: data.validoDa.present ? data.validoDa.value : this.validoDa,
+      validoA: data.validoA.present ? data.validoA.value : this.validoA,
+      attivo: data.attivo.present ? data.attivo.value : this.attivo,
+    );
+  }
+
+  @override
+  String toString() {
+    return (StringBuffer('ListinoArticolo(')
+          ..write('idListinoArticoli: $idListinoArticoli, ')
+          ..write('idListino: $idListino, ')
+          ..write('idArticolo: $idArticolo, ')
+          ..write('prezzo: $prezzo, ')
+          ..write('idSconto: $idSconto, ')
+          ..write('validoDa: $validoDa, ')
+          ..write('validoA: $validoA, ')
+          ..write('attivo: $attivo')
+          ..write(')'))
+        .toString();
+  }
+
+  @override
+  int get hashCode => Object.hash(
+    idListinoArticoli,
+    idListino,
+    idArticolo,
+    prezzo,
+    idSconto,
+    validoDa,
+    validoA,
+    attivo,
+  );
+  @override
+  bool operator ==(Object other) =>
+      identical(this, other) ||
+      (other is ListinoArticolo &&
+          other.idListinoArticoli == this.idListinoArticoli &&
+          other.idListino == this.idListino &&
+          other.idArticolo == this.idArticolo &&
+          other.prezzo == this.prezzo &&
+          other.idSconto == this.idSconto &&
+          other.validoDa == this.validoDa &&
+          other.validoA == this.validoA &&
+          other.attivo == this.attivo);
+}
+
+class ListiniArticoloCompanion extends UpdateCompanion<ListinoArticolo> {
+  final Value<int> idListinoArticoli;
+  final Value<int?> idListino;
+  final Value<int?> idArticolo;
+  final Value<double?> prezzo;
+  final Value<int?> idSconto;
+  final Value<String?> validoDa;
+  final Value<String?> validoA;
+  final Value<int> attivo;
+  const ListiniArticoloCompanion({
+    this.idListinoArticoli = const Value.absent(),
+    this.idListino = const Value.absent(),
+    this.idArticolo = const Value.absent(),
+    this.prezzo = const Value.absent(),
+    this.idSconto = const Value.absent(),
+    this.validoDa = const Value.absent(),
+    this.validoA = const Value.absent(),
+    this.attivo = const Value.absent(),
+  });
+  ListiniArticoloCompanion.insert({
+    this.idListinoArticoli = const Value.absent(),
+    this.idListino = const Value.absent(),
+    this.idArticolo = const Value.absent(),
+    this.prezzo = const Value.absent(),
+    this.idSconto = const Value.absent(),
+    this.validoDa = const Value.absent(),
+    this.validoA = const Value.absent(),
+    this.attivo = const Value.absent(),
+  });
+  static Insertable<ListinoArticolo> custom({
+    Expression<int>? idListinoArticoli,
+    Expression<int>? idListino,
+    Expression<int>? idArticolo,
+    Expression<double>? prezzo,
+    Expression<int>? idSconto,
+    Expression<String>? validoDa,
+    Expression<String>? validoA,
+    Expression<int>? attivo,
+  }) {
+    return RawValuesInsertable({
+      if (idListinoArticoli != null) 'idListino_articoli': idListinoArticoli,
+      if (idListino != null) 'idListino': idListino,
+      if (idArticolo != null) 'idArticolo': idArticolo,
+      if (prezzo != null) 'prezzo': prezzo,
+      if (idSconto != null) 'idSconto': idSconto,
+      if (validoDa != null) 'validoDa': validoDa,
+      if (validoA != null) 'validoA': validoA,
+      if (attivo != null) 'attivo': attivo,
+    });
+  }
+
+  ListiniArticoloCompanion copyWith({
+    Value<int>? idListinoArticoli,
+    Value<int?>? idListino,
+    Value<int?>? idArticolo,
+    Value<double?>? prezzo,
+    Value<int?>? idSconto,
+    Value<String?>? validoDa,
+    Value<String?>? validoA,
+    Value<int>? attivo,
+  }) {
+    return ListiniArticoloCompanion(
+      idListinoArticoli: idListinoArticoli ?? this.idListinoArticoli,
+      idListino: idListino ?? this.idListino,
+      idArticolo: idArticolo ?? this.idArticolo,
+      prezzo: prezzo ?? this.prezzo,
+      idSconto: idSconto ?? this.idSconto,
+      validoDa: validoDa ?? this.validoDa,
+      validoA: validoA ?? this.validoA,
+      attivo: attivo ?? this.attivo,
+    );
+  }
+
+  @override
+  Map<String, Expression> toColumns(bool nullToAbsent) {
+    final map = <String, Expression>{};
+    if (idListinoArticoli.present) {
+      map['idListino_articoli'] = Variable<int>(idListinoArticoli.value);
+    }
+    if (idListino.present) {
+      map['idListino'] = Variable<int>(idListino.value);
+    }
+    if (idArticolo.present) {
+      map['idArticolo'] = Variable<int>(idArticolo.value);
+    }
+    if (prezzo.present) {
+      map['prezzo'] = Variable<double>(prezzo.value);
+    }
+    if (idSconto.present) {
+      map['idSconto'] = Variable<int>(idSconto.value);
+    }
+    if (validoDa.present) {
+      map['validoDa'] = Variable<String>(validoDa.value);
+    }
+    if (validoA.present) {
+      map['validoA'] = Variable<String>(validoA.value);
+    }
+    if (attivo.present) {
+      map['attivo'] = Variable<int>(attivo.value);
+    }
+    return map;
+  }
+
+  @override
+  String toString() {
+    return (StringBuffer('ListiniArticoloCompanion(')
+          ..write('idListinoArticoli: $idListinoArticoli, ')
+          ..write('idListino: $idListino, ')
+          ..write('idArticolo: $idArticolo, ')
+          ..write('prezzo: $prezzo, ')
+          ..write('idSconto: $idSconto, ')
+          ..write('validoDa: $validoDa, ')
+          ..write('validoA: $validoA, ')
+          ..write('attivo: $attivo')
+          ..write(')'))
+        .toString();
+  }
+}
+
+class $ListiniClienteTable extends ListiniCliente
+    with TableInfo<$ListiniClienteTable, ListinoCliente> {
+  @override
+  final GeneratedDatabase attachedDatabase;
+  final String? _alias;
+  $ListiniClienteTable(this.attachedDatabase, [this._alias]);
+  static const VerificationMeta _idListinoClienteMeta = const VerificationMeta(
+    'idListinoCliente',
+  );
+  @override
+  late final GeneratedColumn<int> idListinoCliente = GeneratedColumn<int>(
+    'idListino_cliente',
+    aliasedName,
+    false,
+    hasAutoIncrement: true,
+    type: DriftSqlType.int,
+    requiredDuringInsert: false,
+    defaultConstraints: GeneratedColumn.constraintIsAlways(
+      'PRIMARY KEY AUTOINCREMENT',
+    ),
+  );
+  static const VerificationMeta _idListinoMeta = const VerificationMeta(
+    'idListino',
+  );
+  @override
+  late final GeneratedColumn<int> idListino = GeneratedColumn<int>(
+    'idListino',
+    aliasedName,
+    true,
+    type: DriftSqlType.int,
+    requiredDuringInsert: false,
+  );
+  static const VerificationMeta _idClienteMeta = const VerificationMeta(
+    'idCliente',
+  );
+  @override
+  late final GeneratedColumn<int> idCliente = GeneratedColumn<int>(
+    'idCliente',
+    aliasedName,
+    true,
+    type: DriftSqlType.int,
+    requiredDuringInsert: false,
+  );
+  static const VerificationMeta _idArticoloMeta = const VerificationMeta(
+    'idArticolo',
+  );
+  @override
+  late final GeneratedColumn<int> idArticolo = GeneratedColumn<int>(
+    'idArticolo',
+    aliasedName,
+    true,
+    type: DriftSqlType.int,
+    requiredDuringInsert: false,
+  );
+  static const VerificationMeta _idScontoMeta = const VerificationMeta(
+    'idSconto',
+  );
+  @override
+  late final GeneratedColumn<int> idSconto = GeneratedColumn<int>(
+    'idSconto',
+    aliasedName,
+    true,
+    type: DriftSqlType.int,
+    requiredDuringInsert: false,
+  );
+  static const VerificationMeta _validoDaMeta = const VerificationMeta(
+    'validoDa',
+  );
+  @override
+  late final GeneratedColumn<String> validoDa = GeneratedColumn<String>(
+    'validoDa',
+    aliasedName,
+    true,
+    type: DriftSqlType.string,
+    requiredDuringInsert: false,
+  );
+  static const VerificationMeta _validoAMeta = const VerificationMeta(
+    'validoA',
+  );
+  @override
+  late final GeneratedColumn<String> validoA = GeneratedColumn<String>(
+    'validoA',
+    aliasedName,
+    true,
+    type: DriftSqlType.string,
+    requiredDuringInsert: false,
+  );
+  static const VerificationMeta _prezzoMeta = const VerificationMeta('prezzo');
+  @override
+  late final GeneratedColumn<double> prezzo = GeneratedColumn<double>(
+    'prezzo',
+    aliasedName,
+    true,
+    type: DriftSqlType.double,
+    requiredDuringInsert: false,
+  );
+  static const VerificationMeta _attivoMeta = const VerificationMeta('attivo');
+  @override
+  late final GeneratedColumn<int> attivo = GeneratedColumn<int>(
+    'attivo',
+    aliasedName,
+    false,
+    type: DriftSqlType.int,
+    requiredDuringInsert: false,
+    defaultValue: const Constant(1),
+  );
+  static const VerificationMeta _annullatoMeta = const VerificationMeta(
+    'annullato',
+  );
+  @override
+  late final GeneratedColumn<String> annullato = GeneratedColumn<String>(
+    'annullato',
+    aliasedName,
+    false,
+    type: DriftSqlType.string,
+    requiredDuringInsert: false,
+    defaultValue: const Constant('N'),
+  );
+  static const VerificationMeta _listinoSostitutivoMeta =
+      const VerificationMeta('listinoSostitutivo');
+  @override
+  late final GeneratedColumn<String> listinoSostitutivo =
+      GeneratedColumn<String>(
+        'listinoSostitutivo',
+        aliasedName,
+        true,
+        type: DriftSqlType.string,
+        requiredDuringInsert: false,
+      );
+  static const VerificationMeta _statoMeta = const VerificationMeta('stato');
+  @override
+  late final GeneratedColumn<String> stato = GeneratedColumn<String>(
+    'stato',
+    aliasedName,
+    true,
+    type: DriftSqlType.string,
+    requiredDuringInsert: false,
+  );
+  @override
+  List<GeneratedColumn> get $columns => [
+    idListinoCliente,
+    idListino,
+    idCliente,
+    idArticolo,
+    idSconto,
+    validoDa,
+    validoA,
+    prezzo,
+    attivo,
+    annullato,
+    listinoSostitutivo,
+    stato,
+  ];
+  @override
+  String get aliasedName => _alias ?? actualTableName;
+  @override
+  String get actualTableName => $name;
+  static const String $name = 'Listini_cliente';
+  @override
+  VerificationContext validateIntegrity(
+    Insertable<ListinoCliente> instance, {
+    bool isInserting = false,
+  }) {
+    final context = VerificationContext();
+    final data = instance.toColumns(true);
+    if (data.containsKey('idListino_cliente')) {
+      context.handle(
+        _idListinoClienteMeta,
+        idListinoCliente.isAcceptableOrUnknown(
+          data['idListino_cliente']!,
+          _idListinoClienteMeta,
+        ),
+      );
+    }
+    if (data.containsKey('idListino')) {
+      context.handle(
+        _idListinoMeta,
+        idListino.isAcceptableOrUnknown(data['idListino']!, _idListinoMeta),
+      );
+    }
+    if (data.containsKey('idCliente')) {
+      context.handle(
+        _idClienteMeta,
+        idCliente.isAcceptableOrUnknown(data['idCliente']!, _idClienteMeta),
+      );
+    }
+    if (data.containsKey('idArticolo')) {
+      context.handle(
+        _idArticoloMeta,
+        idArticolo.isAcceptableOrUnknown(data['idArticolo']!, _idArticoloMeta),
+      );
+    }
+    if (data.containsKey('idSconto')) {
+      context.handle(
+        _idScontoMeta,
+        idSconto.isAcceptableOrUnknown(data['idSconto']!, _idScontoMeta),
+      );
+    }
+    if (data.containsKey('validoDa')) {
+      context.handle(
+        _validoDaMeta,
+        validoDa.isAcceptableOrUnknown(data['validoDa']!, _validoDaMeta),
+      );
+    }
+    if (data.containsKey('validoA')) {
+      context.handle(
+        _validoAMeta,
+        validoA.isAcceptableOrUnknown(data['validoA']!, _validoAMeta),
+      );
+    }
+    if (data.containsKey('prezzo')) {
+      context.handle(
+        _prezzoMeta,
+        prezzo.isAcceptableOrUnknown(data['prezzo']!, _prezzoMeta),
+      );
+    }
+    if (data.containsKey('attivo')) {
+      context.handle(
+        _attivoMeta,
+        attivo.isAcceptableOrUnknown(data['attivo']!, _attivoMeta),
+      );
+    }
+    if (data.containsKey('annullato')) {
+      context.handle(
+        _annullatoMeta,
+        annullato.isAcceptableOrUnknown(data['annullato']!, _annullatoMeta),
+      );
+    }
+    if (data.containsKey('listinoSostitutivo')) {
+      context.handle(
+        _listinoSostitutivoMeta,
+        listinoSostitutivo.isAcceptableOrUnknown(
+          data['listinoSostitutivo']!,
+          _listinoSostitutivoMeta,
+        ),
+      );
+    }
+    if (data.containsKey('stato')) {
+      context.handle(
+        _statoMeta,
+        stato.isAcceptableOrUnknown(data['stato']!, _statoMeta),
+      );
+    }
+    return context;
+  }
+
+  @override
+  Set<GeneratedColumn> get $primaryKey => {idListinoCliente};
+  @override
+  ListinoCliente map(Map<String, dynamic> data, {String? tablePrefix}) {
+    final effectivePrefix = tablePrefix != null ? '$tablePrefix.' : '';
+    return ListinoCliente(
+      idListinoCliente: attachedDatabase.typeMapping.read(
+        DriftSqlType.int,
+        data['${effectivePrefix}idListino_cliente'],
+      )!,
+      idListino: attachedDatabase.typeMapping.read(
+        DriftSqlType.int,
+        data['${effectivePrefix}idListino'],
+      ),
+      idCliente: attachedDatabase.typeMapping.read(
+        DriftSqlType.int,
+        data['${effectivePrefix}idCliente'],
+      ),
+      idArticolo: attachedDatabase.typeMapping.read(
+        DriftSqlType.int,
+        data['${effectivePrefix}idArticolo'],
+      ),
+      idSconto: attachedDatabase.typeMapping.read(
+        DriftSqlType.int,
+        data['${effectivePrefix}idSconto'],
+      ),
+      validoDa: attachedDatabase.typeMapping.read(
+        DriftSqlType.string,
+        data['${effectivePrefix}validoDa'],
+      ),
+      validoA: attachedDatabase.typeMapping.read(
+        DriftSqlType.string,
+        data['${effectivePrefix}validoA'],
+      ),
+      prezzo: attachedDatabase.typeMapping.read(
+        DriftSqlType.double,
+        data['${effectivePrefix}prezzo'],
+      ),
+      attivo: attachedDatabase.typeMapping.read(
+        DriftSqlType.int,
+        data['${effectivePrefix}attivo'],
+      )!,
+      annullato: attachedDatabase.typeMapping.read(
+        DriftSqlType.string,
+        data['${effectivePrefix}annullato'],
+      )!,
+      listinoSostitutivo: attachedDatabase.typeMapping.read(
+        DriftSqlType.string,
+        data['${effectivePrefix}listinoSostitutivo'],
+      ),
+      stato: attachedDatabase.typeMapping.read(
+        DriftSqlType.string,
+        data['${effectivePrefix}stato'],
+      ),
+    );
+  }
+
+  @override
+  $ListiniClienteTable createAlias(String alias) {
+    return $ListiniClienteTable(attachedDatabase, alias);
+  }
+}
+
+class ListinoCliente extends DataClass implements Insertable<ListinoCliente> {
+  final int idListinoCliente;
+  final int? idListino;
+  final int? idCliente;
+  final int? idArticolo;
+  final int? idSconto;
+  final String? validoDa;
+  final String? validoA;
+  final double? prezzo;
+  final int attivo;
+  final String annullato;
+  final String? listinoSostitutivo;
+  final String? stato;
+  const ListinoCliente({
+    required this.idListinoCliente,
+    this.idListino,
+    this.idCliente,
+    this.idArticolo,
+    this.idSconto,
+    this.validoDa,
+    this.validoA,
+    this.prezzo,
+    required this.attivo,
+    required this.annullato,
+    this.listinoSostitutivo,
+    this.stato,
+  });
+  @override
+  Map<String, Expression> toColumns(bool nullToAbsent) {
+    final map = <String, Expression>{};
+    map['idListino_cliente'] = Variable<int>(idListinoCliente);
+    if (!nullToAbsent || idListino != null) {
+      map['idListino'] = Variable<int>(idListino);
+    }
+    if (!nullToAbsent || idCliente != null) {
+      map['idCliente'] = Variable<int>(idCliente);
+    }
+    if (!nullToAbsent || idArticolo != null) {
+      map['idArticolo'] = Variable<int>(idArticolo);
+    }
+    if (!nullToAbsent || idSconto != null) {
+      map['idSconto'] = Variable<int>(idSconto);
+    }
+    if (!nullToAbsent || validoDa != null) {
+      map['validoDa'] = Variable<String>(validoDa);
+    }
+    if (!nullToAbsent || validoA != null) {
+      map['validoA'] = Variable<String>(validoA);
+    }
+    if (!nullToAbsent || prezzo != null) {
+      map['prezzo'] = Variable<double>(prezzo);
+    }
+    map['attivo'] = Variable<int>(attivo);
+    map['annullato'] = Variable<String>(annullato);
+    if (!nullToAbsent || listinoSostitutivo != null) {
+      map['listinoSostitutivo'] = Variable<String>(listinoSostitutivo);
+    }
+    if (!nullToAbsent || stato != null) {
+      map['stato'] = Variable<String>(stato);
+    }
+    return map;
+  }
+
+  ListiniClienteCompanion toCompanion(bool nullToAbsent) {
+    return ListiniClienteCompanion(
+      idListinoCliente: Value(idListinoCliente),
+      idListino: idListino == null && nullToAbsent
+          ? const Value.absent()
+          : Value(idListino),
+      idCliente: idCliente == null && nullToAbsent
+          ? const Value.absent()
+          : Value(idCliente),
+      idArticolo: idArticolo == null && nullToAbsent
+          ? const Value.absent()
+          : Value(idArticolo),
+      idSconto: idSconto == null && nullToAbsent
+          ? const Value.absent()
+          : Value(idSconto),
+      validoDa: validoDa == null && nullToAbsent
+          ? const Value.absent()
+          : Value(validoDa),
+      validoA: validoA == null && nullToAbsent
+          ? const Value.absent()
+          : Value(validoA),
+      prezzo: prezzo == null && nullToAbsent
+          ? const Value.absent()
+          : Value(prezzo),
+      attivo: Value(attivo),
+      annullato: Value(annullato),
+      listinoSostitutivo: listinoSostitutivo == null && nullToAbsent
+          ? const Value.absent()
+          : Value(listinoSostitutivo),
+      stato: stato == null && nullToAbsent
+          ? const Value.absent()
+          : Value(stato),
+    );
+  }
+
+  factory ListinoCliente.fromJson(
+    Map<String, dynamic> json, {
+    ValueSerializer? serializer,
+  }) {
+    serializer ??= driftRuntimeOptions.defaultSerializer;
+    return ListinoCliente(
+      idListinoCliente: serializer.fromJson<int>(json['idListinoCliente']),
+      idListino: serializer.fromJson<int?>(json['idListino']),
+      idCliente: serializer.fromJson<int?>(json['idCliente']),
+      idArticolo: serializer.fromJson<int?>(json['idArticolo']),
+      idSconto: serializer.fromJson<int?>(json['idSconto']),
+      validoDa: serializer.fromJson<String?>(json['validoDa']),
+      validoA: serializer.fromJson<String?>(json['validoA']),
+      prezzo: serializer.fromJson<double?>(json['prezzo']),
+      attivo: serializer.fromJson<int>(json['attivo']),
+      annullato: serializer.fromJson<String>(json['annullato']),
+      listinoSostitutivo: serializer.fromJson<String?>(
+        json['listinoSostitutivo'],
+      ),
+      stato: serializer.fromJson<String?>(json['stato']),
+    );
+  }
+  @override
+  Map<String, dynamic> toJson({ValueSerializer? serializer}) {
+    serializer ??= driftRuntimeOptions.defaultSerializer;
+    return <String, dynamic>{
+      'idListinoCliente': serializer.toJson<int>(idListinoCliente),
+      'idListino': serializer.toJson<int?>(idListino),
+      'idCliente': serializer.toJson<int?>(idCliente),
+      'idArticolo': serializer.toJson<int?>(idArticolo),
+      'idSconto': serializer.toJson<int?>(idSconto),
+      'validoDa': serializer.toJson<String?>(validoDa),
+      'validoA': serializer.toJson<String?>(validoA),
+      'prezzo': serializer.toJson<double?>(prezzo),
+      'attivo': serializer.toJson<int>(attivo),
+      'annullato': serializer.toJson<String>(annullato),
+      'listinoSostitutivo': serializer.toJson<String?>(listinoSostitutivo),
+      'stato': serializer.toJson<String?>(stato),
+    };
+  }
+
+  ListinoCliente copyWith({
+    int? idListinoCliente,
+    Value<int?> idListino = const Value.absent(),
+    Value<int?> idCliente = const Value.absent(),
+    Value<int?> idArticolo = const Value.absent(),
+    Value<int?> idSconto = const Value.absent(),
+    Value<String?> validoDa = const Value.absent(),
+    Value<String?> validoA = const Value.absent(),
+    Value<double?> prezzo = const Value.absent(),
+    int? attivo,
+    String? annullato,
+    Value<String?> listinoSostitutivo = const Value.absent(),
+    Value<String?> stato = const Value.absent(),
+  }) => ListinoCliente(
+    idListinoCliente: idListinoCliente ?? this.idListinoCliente,
+    idListino: idListino.present ? idListino.value : this.idListino,
+    idCliente: idCliente.present ? idCliente.value : this.idCliente,
+    idArticolo: idArticolo.present ? idArticolo.value : this.idArticolo,
+    idSconto: idSconto.present ? idSconto.value : this.idSconto,
+    validoDa: validoDa.present ? validoDa.value : this.validoDa,
+    validoA: validoA.present ? validoA.value : this.validoA,
+    prezzo: prezzo.present ? prezzo.value : this.prezzo,
+    attivo: attivo ?? this.attivo,
+    annullato: annullato ?? this.annullato,
+    listinoSostitutivo: listinoSostitutivo.present
+        ? listinoSostitutivo.value
+        : this.listinoSostitutivo,
+    stato: stato.present ? stato.value : this.stato,
+  );
+  ListinoCliente copyWithCompanion(ListiniClienteCompanion data) {
+    return ListinoCliente(
+      idListinoCliente: data.idListinoCliente.present
+          ? data.idListinoCliente.value
+          : this.idListinoCliente,
+      idListino: data.idListino.present ? data.idListino.value : this.idListino,
+      idCliente: data.idCliente.present ? data.idCliente.value : this.idCliente,
+      idArticolo: data.idArticolo.present
+          ? data.idArticolo.value
+          : this.idArticolo,
+      idSconto: data.idSconto.present ? data.idSconto.value : this.idSconto,
+      validoDa: data.validoDa.present ? data.validoDa.value : this.validoDa,
+      validoA: data.validoA.present ? data.validoA.value : this.validoA,
+      prezzo: data.prezzo.present ? data.prezzo.value : this.prezzo,
+      attivo: data.attivo.present ? data.attivo.value : this.attivo,
+      annullato: data.annullato.present ? data.annullato.value : this.annullato,
+      listinoSostitutivo: data.listinoSostitutivo.present
+          ? data.listinoSostitutivo.value
+          : this.listinoSostitutivo,
+      stato: data.stato.present ? data.stato.value : this.stato,
+    );
+  }
+
+  @override
+  String toString() {
+    return (StringBuffer('ListinoCliente(')
+          ..write('idListinoCliente: $idListinoCliente, ')
+          ..write('idListino: $idListino, ')
+          ..write('idCliente: $idCliente, ')
+          ..write('idArticolo: $idArticolo, ')
+          ..write('idSconto: $idSconto, ')
+          ..write('validoDa: $validoDa, ')
+          ..write('validoA: $validoA, ')
+          ..write('prezzo: $prezzo, ')
+          ..write('attivo: $attivo, ')
+          ..write('annullato: $annullato, ')
+          ..write('listinoSostitutivo: $listinoSostitutivo, ')
+          ..write('stato: $stato')
+          ..write(')'))
+        .toString();
+  }
+
+  @override
+  int get hashCode => Object.hash(
+    idListinoCliente,
+    idListino,
+    idCliente,
+    idArticolo,
+    idSconto,
+    validoDa,
+    validoA,
+    prezzo,
+    attivo,
+    annullato,
+    listinoSostitutivo,
+    stato,
+  );
+  @override
+  bool operator ==(Object other) =>
+      identical(this, other) ||
+      (other is ListinoCliente &&
+          other.idListinoCliente == this.idListinoCliente &&
+          other.idListino == this.idListino &&
+          other.idCliente == this.idCliente &&
+          other.idArticolo == this.idArticolo &&
+          other.idSconto == this.idSconto &&
+          other.validoDa == this.validoDa &&
+          other.validoA == this.validoA &&
+          other.prezzo == this.prezzo &&
+          other.attivo == this.attivo &&
+          other.annullato == this.annullato &&
+          other.listinoSostitutivo == this.listinoSostitutivo &&
+          other.stato == this.stato);
+}
+
+class ListiniClienteCompanion extends UpdateCompanion<ListinoCliente> {
+  final Value<int> idListinoCliente;
+  final Value<int?> idListino;
+  final Value<int?> idCliente;
+  final Value<int?> idArticolo;
+  final Value<int?> idSconto;
+  final Value<String?> validoDa;
+  final Value<String?> validoA;
+  final Value<double?> prezzo;
+  final Value<int> attivo;
+  final Value<String> annullato;
+  final Value<String?> listinoSostitutivo;
+  final Value<String?> stato;
+  const ListiniClienteCompanion({
+    this.idListinoCliente = const Value.absent(),
+    this.idListino = const Value.absent(),
+    this.idCliente = const Value.absent(),
+    this.idArticolo = const Value.absent(),
+    this.idSconto = const Value.absent(),
+    this.validoDa = const Value.absent(),
+    this.validoA = const Value.absent(),
+    this.prezzo = const Value.absent(),
+    this.attivo = const Value.absent(),
+    this.annullato = const Value.absent(),
+    this.listinoSostitutivo = const Value.absent(),
+    this.stato = const Value.absent(),
+  });
+  ListiniClienteCompanion.insert({
+    this.idListinoCliente = const Value.absent(),
+    this.idListino = const Value.absent(),
+    this.idCliente = const Value.absent(),
+    this.idArticolo = const Value.absent(),
+    this.idSconto = const Value.absent(),
+    this.validoDa = const Value.absent(),
+    this.validoA = const Value.absent(),
+    this.prezzo = const Value.absent(),
+    this.attivo = const Value.absent(),
+    this.annullato = const Value.absent(),
+    this.listinoSostitutivo = const Value.absent(),
+    this.stato = const Value.absent(),
+  });
+  static Insertable<ListinoCliente> custom({
+    Expression<int>? idListinoCliente,
+    Expression<int>? idListino,
+    Expression<int>? idCliente,
+    Expression<int>? idArticolo,
+    Expression<int>? idSconto,
+    Expression<String>? validoDa,
+    Expression<String>? validoA,
+    Expression<double>? prezzo,
+    Expression<int>? attivo,
+    Expression<String>? annullato,
+    Expression<String>? listinoSostitutivo,
+    Expression<String>? stato,
+  }) {
+    return RawValuesInsertable({
+      if (idListinoCliente != null) 'idListino_cliente': idListinoCliente,
+      if (idListino != null) 'idListino': idListino,
+      if (idCliente != null) 'idCliente': idCliente,
+      if (idArticolo != null) 'idArticolo': idArticolo,
+      if (idSconto != null) 'idSconto': idSconto,
+      if (validoDa != null) 'validoDa': validoDa,
+      if (validoA != null) 'validoA': validoA,
+      if (prezzo != null) 'prezzo': prezzo,
+      if (attivo != null) 'attivo': attivo,
+      if (annullato != null) 'annullato': annullato,
+      if (listinoSostitutivo != null) 'listinoSostitutivo': listinoSostitutivo,
+      if (stato != null) 'stato': stato,
+    });
+  }
+
+  ListiniClienteCompanion copyWith({
+    Value<int>? idListinoCliente,
+    Value<int?>? idListino,
+    Value<int?>? idCliente,
+    Value<int?>? idArticolo,
+    Value<int?>? idSconto,
+    Value<String?>? validoDa,
+    Value<String?>? validoA,
+    Value<double?>? prezzo,
+    Value<int>? attivo,
+    Value<String>? annullato,
+    Value<String?>? listinoSostitutivo,
+    Value<String?>? stato,
+  }) {
+    return ListiniClienteCompanion(
+      idListinoCliente: idListinoCliente ?? this.idListinoCliente,
+      idListino: idListino ?? this.idListino,
+      idCliente: idCliente ?? this.idCliente,
+      idArticolo: idArticolo ?? this.idArticolo,
+      idSconto: idSconto ?? this.idSconto,
+      validoDa: validoDa ?? this.validoDa,
+      validoA: validoA ?? this.validoA,
+      prezzo: prezzo ?? this.prezzo,
+      attivo: attivo ?? this.attivo,
+      annullato: annullato ?? this.annullato,
+      listinoSostitutivo: listinoSostitutivo ?? this.listinoSostitutivo,
+      stato: stato ?? this.stato,
+    );
+  }
+
+  @override
+  Map<String, Expression> toColumns(bool nullToAbsent) {
+    final map = <String, Expression>{};
+    if (idListinoCliente.present) {
+      map['idListino_cliente'] = Variable<int>(idListinoCliente.value);
+    }
+    if (idListino.present) {
+      map['idListino'] = Variable<int>(idListino.value);
+    }
+    if (idCliente.present) {
+      map['idCliente'] = Variable<int>(idCliente.value);
+    }
+    if (idArticolo.present) {
+      map['idArticolo'] = Variable<int>(idArticolo.value);
+    }
+    if (idSconto.present) {
+      map['idSconto'] = Variable<int>(idSconto.value);
+    }
+    if (validoDa.present) {
+      map['validoDa'] = Variable<String>(validoDa.value);
+    }
+    if (validoA.present) {
+      map['validoA'] = Variable<String>(validoA.value);
+    }
+    if (prezzo.present) {
+      map['prezzo'] = Variable<double>(prezzo.value);
+    }
+    if (attivo.present) {
+      map['attivo'] = Variable<int>(attivo.value);
+    }
+    if (annullato.present) {
+      map['annullato'] = Variable<String>(annullato.value);
+    }
+    if (listinoSostitutivo.present) {
+      map['listinoSostitutivo'] = Variable<String>(listinoSostitutivo.value);
+    }
+    if (stato.present) {
+      map['stato'] = Variable<String>(stato.value);
+    }
+    return map;
+  }
+
+  @override
+  String toString() {
+    return (StringBuffer('ListiniClienteCompanion(')
+          ..write('idListinoCliente: $idListinoCliente, ')
+          ..write('idListino: $idListino, ')
+          ..write('idCliente: $idCliente, ')
+          ..write('idArticolo: $idArticolo, ')
+          ..write('idSconto: $idSconto, ')
+          ..write('validoDa: $validoDa, ')
+          ..write('validoA: $validoA, ')
+          ..write('prezzo: $prezzo, ')
+          ..write('attivo: $attivo, ')
+          ..write('annullato: $annullato, ')
+          ..write('listinoSostitutivo: $listinoSostitutivo, ')
+          ..write('stato: $stato')
+          ..write(')'))
+        .toString();
+  }
+}
+
+class $ScontiTable extends Sconti with TableInfo<$ScontiTable, Sconto> {
+  @override
+  final GeneratedDatabase attachedDatabase;
+  final String? _alias;
+  $ScontiTable(this.attachedDatabase, [this._alias]);
+  static const VerificationMeta _idScontoMeta = const VerificationMeta(
+    'idSconto',
+  );
+  @override
+  late final GeneratedColumn<int> idSconto = GeneratedColumn<int>(
+    'idSconto',
+    aliasedName,
+    false,
+    hasAutoIncrement: true,
+    type: DriftSqlType.int,
+    requiredDuringInsert: false,
+    defaultConstraints: GeneratedColumn.constraintIsAlways(
+      'PRIMARY KEY AUTOINCREMENT',
+    ),
+  );
+  static const VerificationMeta _codScontoMeta = const VerificationMeta(
+    'codSconto',
+  );
+  @override
+  late final GeneratedColumn<String> codSconto = GeneratedColumn<String>(
+    'codSconto',
+    aliasedName,
+    true,
+    type: DriftSqlType.string,
+    requiredDuringInsert: false,
+  );
+  static const VerificationMeta _descrizioneMeta = const VerificationMeta(
+    'descrizione',
+  );
+  @override
+  late final GeneratedColumn<String> descrizione = GeneratedColumn<String>(
+    'descrizione',
+    aliasedName,
+    true,
+    type: DriftSqlType.string,
+    requiredDuringInsert: false,
+  );
+  static const VerificationMeta _sconto1Meta = const VerificationMeta(
+    'sconto1',
+  );
+  @override
+  late final GeneratedColumn<double> sconto1 = GeneratedColumn<double>(
+    'sconto1',
+    aliasedName,
+    true,
+    type: DriftSqlType.double,
+    requiredDuringInsert: false,
+  );
+  static const VerificationMeta _sconto2Meta = const VerificationMeta(
+    'sconto2',
+  );
+  @override
+  late final GeneratedColumn<double> sconto2 = GeneratedColumn<double>(
+    'sconto2',
+    aliasedName,
+    true,
+    type: DriftSqlType.double,
+    requiredDuringInsert: false,
+  );
+  static const VerificationMeta _sconto3Meta = const VerificationMeta(
+    'sconto3',
+  );
+  @override
+  late final GeneratedColumn<double> sconto3 = GeneratedColumn<double>(
+    'sconto3',
+    aliasedName,
+    true,
+    type: DriftSqlType.double,
+    requiredDuringInsert: false,
+  );
+  static const VerificationMeta _sconto4Meta = const VerificationMeta(
+    'sconto4',
+  );
+  @override
+  late final GeneratedColumn<double> sconto4 = GeneratedColumn<double>(
+    'sconto4',
+    aliasedName,
+    true,
+    type: DriftSqlType.double,
+    requiredDuringInsert: false,
+  );
+  static const VerificationMeta _sconto5Meta = const VerificationMeta(
+    'sconto5',
+  );
+  @override
+  late final GeneratedColumn<double> sconto5 = GeneratedColumn<double>(
+    'sconto5',
+    aliasedName,
+    true,
+    type: DriftSqlType.double,
+    requiredDuringInsert: false,
+  );
+  @override
+  List<GeneratedColumn> get $columns => [
+    idSconto,
+    codSconto,
+    descrizione,
+    sconto1,
+    sconto2,
+    sconto3,
+    sconto4,
+    sconto5,
+  ];
+  @override
+  String get aliasedName => _alias ?? actualTableName;
+  @override
+  String get actualTableName => $name;
+  static const String $name = 'Sconti';
+  @override
+  VerificationContext validateIntegrity(
+    Insertable<Sconto> instance, {
+    bool isInserting = false,
+  }) {
+    final context = VerificationContext();
+    final data = instance.toColumns(true);
+    if (data.containsKey('idSconto')) {
+      context.handle(
+        _idScontoMeta,
+        idSconto.isAcceptableOrUnknown(data['idSconto']!, _idScontoMeta),
+      );
+    }
+    if (data.containsKey('codSconto')) {
+      context.handle(
+        _codScontoMeta,
+        codSconto.isAcceptableOrUnknown(data['codSconto']!, _codScontoMeta),
+      );
+    }
+    if (data.containsKey('descrizione')) {
+      context.handle(
+        _descrizioneMeta,
+        descrizione.isAcceptableOrUnknown(
+          data['descrizione']!,
+          _descrizioneMeta,
+        ),
+      );
+    }
+    if (data.containsKey('sconto1')) {
+      context.handle(
+        _sconto1Meta,
+        sconto1.isAcceptableOrUnknown(data['sconto1']!, _sconto1Meta),
+      );
+    }
+    if (data.containsKey('sconto2')) {
+      context.handle(
+        _sconto2Meta,
+        sconto2.isAcceptableOrUnknown(data['sconto2']!, _sconto2Meta),
+      );
+    }
+    if (data.containsKey('sconto3')) {
+      context.handle(
+        _sconto3Meta,
+        sconto3.isAcceptableOrUnknown(data['sconto3']!, _sconto3Meta),
+      );
+    }
+    if (data.containsKey('sconto4')) {
+      context.handle(
+        _sconto4Meta,
+        sconto4.isAcceptableOrUnknown(data['sconto4']!, _sconto4Meta),
+      );
+    }
+    if (data.containsKey('sconto5')) {
+      context.handle(
+        _sconto5Meta,
+        sconto5.isAcceptableOrUnknown(data['sconto5']!, _sconto5Meta),
+      );
+    }
+    return context;
+  }
+
+  @override
+  Set<GeneratedColumn> get $primaryKey => {idSconto};
+  @override
+  Sconto map(Map<String, dynamic> data, {String? tablePrefix}) {
+    final effectivePrefix = tablePrefix != null ? '$tablePrefix.' : '';
+    return Sconto(
+      idSconto: attachedDatabase.typeMapping.read(
+        DriftSqlType.int,
+        data['${effectivePrefix}idSconto'],
+      )!,
+      codSconto: attachedDatabase.typeMapping.read(
+        DriftSqlType.string,
+        data['${effectivePrefix}codSconto'],
+      ),
+      descrizione: attachedDatabase.typeMapping.read(
+        DriftSqlType.string,
+        data['${effectivePrefix}descrizione'],
+      ),
+      sconto1: attachedDatabase.typeMapping.read(
+        DriftSqlType.double,
+        data['${effectivePrefix}sconto1'],
+      ),
+      sconto2: attachedDatabase.typeMapping.read(
+        DriftSqlType.double,
+        data['${effectivePrefix}sconto2'],
+      ),
+      sconto3: attachedDatabase.typeMapping.read(
+        DriftSqlType.double,
+        data['${effectivePrefix}sconto3'],
+      ),
+      sconto4: attachedDatabase.typeMapping.read(
+        DriftSqlType.double,
+        data['${effectivePrefix}sconto4'],
+      ),
+      sconto5: attachedDatabase.typeMapping.read(
+        DriftSqlType.double,
+        data['${effectivePrefix}sconto5'],
+      ),
+    );
+  }
+
+  @override
+  $ScontiTable createAlias(String alias) {
+    return $ScontiTable(attachedDatabase, alias);
+  }
+}
+
+class Sconto extends DataClass implements Insertable<Sconto> {
+  final int idSconto;
+  final String? codSconto;
+  final String? descrizione;
+  final double? sconto1;
+  final double? sconto2;
+  final double? sconto3;
+  final double? sconto4;
+  final double? sconto5;
+  const Sconto({
+    required this.idSconto,
+    this.codSconto,
+    this.descrizione,
+    this.sconto1,
+    this.sconto2,
+    this.sconto3,
+    this.sconto4,
+    this.sconto5,
+  });
+  @override
+  Map<String, Expression> toColumns(bool nullToAbsent) {
+    final map = <String, Expression>{};
+    map['idSconto'] = Variable<int>(idSconto);
+    if (!nullToAbsent || codSconto != null) {
+      map['codSconto'] = Variable<String>(codSconto);
+    }
+    if (!nullToAbsent || descrizione != null) {
+      map['descrizione'] = Variable<String>(descrizione);
+    }
+    if (!nullToAbsent || sconto1 != null) {
+      map['sconto1'] = Variable<double>(sconto1);
+    }
+    if (!nullToAbsent || sconto2 != null) {
+      map['sconto2'] = Variable<double>(sconto2);
+    }
+    if (!nullToAbsent || sconto3 != null) {
+      map['sconto3'] = Variable<double>(sconto3);
+    }
+    if (!nullToAbsent || sconto4 != null) {
+      map['sconto4'] = Variable<double>(sconto4);
+    }
+    if (!nullToAbsent || sconto5 != null) {
+      map['sconto5'] = Variable<double>(sconto5);
+    }
+    return map;
+  }
+
+  ScontiCompanion toCompanion(bool nullToAbsent) {
+    return ScontiCompanion(
+      idSconto: Value(idSconto),
+      codSconto: codSconto == null && nullToAbsent
+          ? const Value.absent()
+          : Value(codSconto),
+      descrizione: descrizione == null && nullToAbsent
+          ? const Value.absent()
+          : Value(descrizione),
+      sconto1: sconto1 == null && nullToAbsent
+          ? const Value.absent()
+          : Value(sconto1),
+      sconto2: sconto2 == null && nullToAbsent
+          ? const Value.absent()
+          : Value(sconto2),
+      sconto3: sconto3 == null && nullToAbsent
+          ? const Value.absent()
+          : Value(sconto3),
+      sconto4: sconto4 == null && nullToAbsent
+          ? const Value.absent()
+          : Value(sconto4),
+      sconto5: sconto5 == null && nullToAbsent
+          ? const Value.absent()
+          : Value(sconto5),
+    );
+  }
+
+  factory Sconto.fromJson(
+    Map<String, dynamic> json, {
+    ValueSerializer? serializer,
+  }) {
+    serializer ??= driftRuntimeOptions.defaultSerializer;
+    return Sconto(
+      idSconto: serializer.fromJson<int>(json['idSconto']),
+      codSconto: serializer.fromJson<String?>(json['codSconto']),
+      descrizione: serializer.fromJson<String?>(json['descrizione']),
+      sconto1: serializer.fromJson<double?>(json['sconto1']),
+      sconto2: serializer.fromJson<double?>(json['sconto2']),
+      sconto3: serializer.fromJson<double?>(json['sconto3']),
+      sconto4: serializer.fromJson<double?>(json['sconto4']),
+      sconto5: serializer.fromJson<double?>(json['sconto5']),
+    );
+  }
+  @override
+  Map<String, dynamic> toJson({ValueSerializer? serializer}) {
+    serializer ??= driftRuntimeOptions.defaultSerializer;
+    return <String, dynamic>{
+      'idSconto': serializer.toJson<int>(idSconto),
+      'codSconto': serializer.toJson<String?>(codSconto),
+      'descrizione': serializer.toJson<String?>(descrizione),
+      'sconto1': serializer.toJson<double?>(sconto1),
+      'sconto2': serializer.toJson<double?>(sconto2),
+      'sconto3': serializer.toJson<double?>(sconto3),
+      'sconto4': serializer.toJson<double?>(sconto4),
+      'sconto5': serializer.toJson<double?>(sconto5),
+    };
+  }
+
+  Sconto copyWith({
+    int? idSconto,
+    Value<String?> codSconto = const Value.absent(),
+    Value<String?> descrizione = const Value.absent(),
+    Value<double?> sconto1 = const Value.absent(),
+    Value<double?> sconto2 = const Value.absent(),
+    Value<double?> sconto3 = const Value.absent(),
+    Value<double?> sconto4 = const Value.absent(),
+    Value<double?> sconto5 = const Value.absent(),
+  }) => Sconto(
+    idSconto: idSconto ?? this.idSconto,
+    codSconto: codSconto.present ? codSconto.value : this.codSconto,
+    descrizione: descrizione.present ? descrizione.value : this.descrizione,
+    sconto1: sconto1.present ? sconto1.value : this.sconto1,
+    sconto2: sconto2.present ? sconto2.value : this.sconto2,
+    sconto3: sconto3.present ? sconto3.value : this.sconto3,
+    sconto4: sconto4.present ? sconto4.value : this.sconto4,
+    sconto5: sconto5.present ? sconto5.value : this.sconto5,
+  );
+  Sconto copyWithCompanion(ScontiCompanion data) {
+    return Sconto(
+      idSconto: data.idSconto.present ? data.idSconto.value : this.idSconto,
+      codSconto: data.codSconto.present ? data.codSconto.value : this.codSconto,
+      descrizione: data.descrizione.present
+          ? data.descrizione.value
+          : this.descrizione,
+      sconto1: data.sconto1.present ? data.sconto1.value : this.sconto1,
+      sconto2: data.sconto2.present ? data.sconto2.value : this.sconto2,
+      sconto3: data.sconto3.present ? data.sconto3.value : this.sconto3,
+      sconto4: data.sconto4.present ? data.sconto4.value : this.sconto4,
+      sconto5: data.sconto5.present ? data.sconto5.value : this.sconto5,
+    );
+  }
+
+  @override
+  String toString() {
+    return (StringBuffer('Sconto(')
+          ..write('idSconto: $idSconto, ')
+          ..write('codSconto: $codSconto, ')
+          ..write('descrizione: $descrizione, ')
+          ..write('sconto1: $sconto1, ')
+          ..write('sconto2: $sconto2, ')
+          ..write('sconto3: $sconto3, ')
+          ..write('sconto4: $sconto4, ')
+          ..write('sconto5: $sconto5')
+          ..write(')'))
+        .toString();
+  }
+
+  @override
+  int get hashCode => Object.hash(
+    idSconto,
+    codSconto,
+    descrizione,
+    sconto1,
+    sconto2,
+    sconto3,
+    sconto4,
+    sconto5,
+  );
+  @override
+  bool operator ==(Object other) =>
+      identical(this, other) ||
+      (other is Sconto &&
+          other.idSconto == this.idSconto &&
+          other.codSconto == this.codSconto &&
+          other.descrizione == this.descrizione &&
+          other.sconto1 == this.sconto1 &&
+          other.sconto2 == this.sconto2 &&
+          other.sconto3 == this.sconto3 &&
+          other.sconto4 == this.sconto4 &&
+          other.sconto5 == this.sconto5);
+}
+
+class ScontiCompanion extends UpdateCompanion<Sconto> {
+  final Value<int> idSconto;
+  final Value<String?> codSconto;
+  final Value<String?> descrizione;
+  final Value<double?> sconto1;
+  final Value<double?> sconto2;
+  final Value<double?> sconto3;
+  final Value<double?> sconto4;
+  final Value<double?> sconto5;
+  const ScontiCompanion({
+    this.idSconto = const Value.absent(),
+    this.codSconto = const Value.absent(),
+    this.descrizione = const Value.absent(),
+    this.sconto1 = const Value.absent(),
+    this.sconto2 = const Value.absent(),
+    this.sconto3 = const Value.absent(),
+    this.sconto4 = const Value.absent(),
+    this.sconto5 = const Value.absent(),
+  });
+  ScontiCompanion.insert({
+    this.idSconto = const Value.absent(),
+    this.codSconto = const Value.absent(),
+    this.descrizione = const Value.absent(),
+    this.sconto1 = const Value.absent(),
+    this.sconto2 = const Value.absent(),
+    this.sconto3 = const Value.absent(),
+    this.sconto4 = const Value.absent(),
+    this.sconto5 = const Value.absent(),
+  });
+  static Insertable<Sconto> custom({
+    Expression<int>? idSconto,
+    Expression<String>? codSconto,
+    Expression<String>? descrizione,
+    Expression<double>? sconto1,
+    Expression<double>? sconto2,
+    Expression<double>? sconto3,
+    Expression<double>? sconto4,
+    Expression<double>? sconto5,
+  }) {
+    return RawValuesInsertable({
+      if (idSconto != null) 'idSconto': idSconto,
+      if (codSconto != null) 'codSconto': codSconto,
+      if (descrizione != null) 'descrizione': descrizione,
+      if (sconto1 != null) 'sconto1': sconto1,
+      if (sconto2 != null) 'sconto2': sconto2,
+      if (sconto3 != null) 'sconto3': sconto3,
+      if (sconto4 != null) 'sconto4': sconto4,
+      if (sconto5 != null) 'sconto5': sconto5,
+    });
+  }
+
+  ScontiCompanion copyWith({
+    Value<int>? idSconto,
+    Value<String?>? codSconto,
+    Value<String?>? descrizione,
+    Value<double?>? sconto1,
+    Value<double?>? sconto2,
+    Value<double?>? sconto3,
+    Value<double?>? sconto4,
+    Value<double?>? sconto5,
+  }) {
+    return ScontiCompanion(
+      idSconto: idSconto ?? this.idSconto,
+      codSconto: codSconto ?? this.codSconto,
+      descrizione: descrizione ?? this.descrizione,
+      sconto1: sconto1 ?? this.sconto1,
+      sconto2: sconto2 ?? this.sconto2,
+      sconto3: sconto3 ?? this.sconto3,
+      sconto4: sconto4 ?? this.sconto4,
+      sconto5: sconto5 ?? this.sconto5,
+    );
+  }
+
+  @override
+  Map<String, Expression> toColumns(bool nullToAbsent) {
+    final map = <String, Expression>{};
+    if (idSconto.present) {
+      map['idSconto'] = Variable<int>(idSconto.value);
+    }
+    if (codSconto.present) {
+      map['codSconto'] = Variable<String>(codSconto.value);
+    }
+    if (descrizione.present) {
+      map['descrizione'] = Variable<String>(descrizione.value);
+    }
+    if (sconto1.present) {
+      map['sconto1'] = Variable<double>(sconto1.value);
+    }
+    if (sconto2.present) {
+      map['sconto2'] = Variable<double>(sconto2.value);
+    }
+    if (sconto3.present) {
+      map['sconto3'] = Variable<double>(sconto3.value);
+    }
+    if (sconto4.present) {
+      map['sconto4'] = Variable<double>(sconto4.value);
+    }
+    if (sconto5.present) {
+      map['sconto5'] = Variable<double>(sconto5.value);
+    }
+    return map;
+  }
+
+  @override
+  String toString() {
+    return (StringBuffer('ScontiCompanion(')
+          ..write('idSconto: $idSconto, ')
+          ..write('codSconto: $codSconto, ')
+          ..write('descrizione: $descrizione, ')
+          ..write('sconto1: $sconto1, ')
+          ..write('sconto2: $sconto2, ')
+          ..write('sconto3: $sconto3, ')
+          ..write('sconto4: $sconto4, ')
+          ..write('sconto5: $sconto5')
+          ..write(')'))
+        .toString();
+  }
+}
+
+class $ScontiClienteTable extends ScontiCliente
+    with TableInfo<$ScontiClienteTable, ScontoCliente> {
+  @override
+  final GeneratedDatabase attachedDatabase;
+  final String? _alias;
+  $ScontiClienteTable(this.attachedDatabase, [this._alias]);
+  static const VerificationMeta _idScontoClienteMeta = const VerificationMeta(
+    'idScontoCliente',
+  );
+  @override
+  late final GeneratedColumn<int> idScontoCliente = GeneratedColumn<int>(
+    'idSconto_cliente',
+    aliasedName,
+    false,
+    hasAutoIncrement: true,
+    type: DriftSqlType.int,
+    requiredDuringInsert: false,
+    defaultConstraints: GeneratedColumn.constraintIsAlways(
+      'PRIMARY KEY AUTOINCREMENT',
+    ),
+  );
+  static const VerificationMeta _idClienteMeta = const VerificationMeta(
+    'idCliente',
+  );
+  @override
+  late final GeneratedColumn<int> idCliente = GeneratedColumn<int>(
+    'idCliente',
+    aliasedName,
+    true,
+    type: DriftSqlType.int,
+    requiredDuringInsert: false,
+  );
+  static const VerificationMeta _idArticoloMeta = const VerificationMeta(
+    'idArticolo',
+  );
+  @override
+  late final GeneratedColumn<int> idArticolo = GeneratedColumn<int>(
+    'idArticolo',
+    aliasedName,
+    true,
+    type: DriftSqlType.int,
+    requiredDuringInsert: false,
+  );
+  static const VerificationMeta _lineaMeta = const VerificationMeta('linea');
+  @override
+  late final GeneratedColumn<String> linea = GeneratedColumn<String>(
+    'linea',
+    aliasedName,
+    true,
+    type: DriftSqlType.string,
+    requiredDuringInsert: false,
+  );
+  static const VerificationMeta _idScontoMeta = const VerificationMeta(
+    'idSconto',
+  );
+  @override
+  late final GeneratedColumn<int> idSconto = GeneratedColumn<int>(
+    'idSconto',
+    aliasedName,
+    true,
+    type: DriftSqlType.int,
+    requiredDuringInsert: false,
+  );
+  static const VerificationMeta _validoDaMeta = const VerificationMeta(
+    'validoDa',
+  );
+  @override
+  late final GeneratedColumn<String> validoDa = GeneratedColumn<String>(
+    'validoDa',
+    aliasedName,
+    true,
+    type: DriftSqlType.string,
+    requiredDuringInsert: false,
+  );
+  static const VerificationMeta _validoAMeta = const VerificationMeta(
+    'validoA',
+  );
+  @override
+  late final GeneratedColumn<String> validoA = GeneratedColumn<String>(
+    'validoA',
+    aliasedName,
+    true,
+    type: DriftSqlType.string,
+    requiredDuringInsert: false,
+  );
+  static const VerificationMeta _statoMeta = const VerificationMeta('stato');
+  @override
+  late final GeneratedColumn<String> stato = GeneratedColumn<String>(
+    'stato',
+    aliasedName,
+    true,
+    type: DriftSqlType.string,
+    requiredDuringInsert: false,
+  );
+  static const VerificationMeta _dataModificaMeta = const VerificationMeta(
+    'dataModifica',
+  );
+  @override
+  late final GeneratedColumn<String> dataModifica = GeneratedColumn<String>(
+    'dataModifica',
+    aliasedName,
+    true,
+    type: DriftSqlType.string,
+    requiredDuringInsert: false,
+  );
+  @override
+  List<GeneratedColumn> get $columns => [
+    idScontoCliente,
+    idCliente,
+    idArticolo,
+    linea,
+    idSconto,
+    validoDa,
+    validoA,
+    stato,
+    dataModifica,
+  ];
+  @override
+  String get aliasedName => _alias ?? actualTableName;
+  @override
+  String get actualTableName => $name;
+  static const String $name = 'Sconto_cliente';
+  @override
+  VerificationContext validateIntegrity(
+    Insertable<ScontoCliente> instance, {
+    bool isInserting = false,
+  }) {
+    final context = VerificationContext();
+    final data = instance.toColumns(true);
+    if (data.containsKey('idSconto_cliente')) {
+      context.handle(
+        _idScontoClienteMeta,
+        idScontoCliente.isAcceptableOrUnknown(
+          data['idSconto_cliente']!,
+          _idScontoClienteMeta,
+        ),
+      );
+    }
+    if (data.containsKey('idCliente')) {
+      context.handle(
+        _idClienteMeta,
+        idCliente.isAcceptableOrUnknown(data['idCliente']!, _idClienteMeta),
+      );
+    }
+    if (data.containsKey('idArticolo')) {
+      context.handle(
+        _idArticoloMeta,
+        idArticolo.isAcceptableOrUnknown(data['idArticolo']!, _idArticoloMeta),
+      );
+    }
+    if (data.containsKey('linea')) {
+      context.handle(
+        _lineaMeta,
+        linea.isAcceptableOrUnknown(data['linea']!, _lineaMeta),
+      );
+    }
+    if (data.containsKey('idSconto')) {
+      context.handle(
+        _idScontoMeta,
+        idSconto.isAcceptableOrUnknown(data['idSconto']!, _idScontoMeta),
+      );
+    }
+    if (data.containsKey('validoDa')) {
+      context.handle(
+        _validoDaMeta,
+        validoDa.isAcceptableOrUnknown(data['validoDa']!, _validoDaMeta),
+      );
+    }
+    if (data.containsKey('validoA')) {
+      context.handle(
+        _validoAMeta,
+        validoA.isAcceptableOrUnknown(data['validoA']!, _validoAMeta),
+      );
+    }
+    if (data.containsKey('stato')) {
+      context.handle(
+        _statoMeta,
+        stato.isAcceptableOrUnknown(data['stato']!, _statoMeta),
+      );
+    }
+    if (data.containsKey('dataModifica')) {
+      context.handle(
+        _dataModificaMeta,
+        dataModifica.isAcceptableOrUnknown(
+          data['dataModifica']!,
+          _dataModificaMeta,
+        ),
+      );
+    }
+    return context;
+  }
+
+  @override
+  Set<GeneratedColumn> get $primaryKey => {idScontoCliente};
+  @override
+  ScontoCliente map(Map<String, dynamic> data, {String? tablePrefix}) {
+    final effectivePrefix = tablePrefix != null ? '$tablePrefix.' : '';
+    return ScontoCliente(
+      idScontoCliente: attachedDatabase.typeMapping.read(
+        DriftSqlType.int,
+        data['${effectivePrefix}idSconto_cliente'],
+      )!,
+      idCliente: attachedDatabase.typeMapping.read(
+        DriftSqlType.int,
+        data['${effectivePrefix}idCliente'],
+      ),
+      idArticolo: attachedDatabase.typeMapping.read(
+        DriftSqlType.int,
+        data['${effectivePrefix}idArticolo'],
+      ),
+      linea: attachedDatabase.typeMapping.read(
+        DriftSqlType.string,
+        data['${effectivePrefix}linea'],
+      ),
+      idSconto: attachedDatabase.typeMapping.read(
+        DriftSqlType.int,
+        data['${effectivePrefix}idSconto'],
+      ),
+      validoDa: attachedDatabase.typeMapping.read(
+        DriftSqlType.string,
+        data['${effectivePrefix}validoDa'],
+      ),
+      validoA: attachedDatabase.typeMapping.read(
+        DriftSqlType.string,
+        data['${effectivePrefix}validoA'],
+      ),
+      stato: attachedDatabase.typeMapping.read(
+        DriftSqlType.string,
+        data['${effectivePrefix}stato'],
+      ),
+      dataModifica: attachedDatabase.typeMapping.read(
+        DriftSqlType.string,
+        data['${effectivePrefix}dataModifica'],
+      ),
+    );
+  }
+
+  @override
+  $ScontiClienteTable createAlias(String alias) {
+    return $ScontiClienteTable(attachedDatabase, alias);
+  }
+}
+
+class ScontoCliente extends DataClass implements Insertable<ScontoCliente> {
+  final int idScontoCliente;
+  final int? idCliente;
+  final int? idArticolo;
+  final String? linea;
+  final int? idSconto;
+  final String? validoDa;
+  final String? validoA;
+  final String? stato;
+  final String? dataModifica;
+  const ScontoCliente({
+    required this.idScontoCliente,
+    this.idCliente,
+    this.idArticolo,
+    this.linea,
+    this.idSconto,
+    this.validoDa,
+    this.validoA,
+    this.stato,
+    this.dataModifica,
+  });
+  @override
+  Map<String, Expression> toColumns(bool nullToAbsent) {
+    final map = <String, Expression>{};
+    map['idSconto_cliente'] = Variable<int>(idScontoCliente);
+    if (!nullToAbsent || idCliente != null) {
+      map['idCliente'] = Variable<int>(idCliente);
+    }
+    if (!nullToAbsent || idArticolo != null) {
+      map['idArticolo'] = Variable<int>(idArticolo);
+    }
+    if (!nullToAbsent || linea != null) {
+      map['linea'] = Variable<String>(linea);
+    }
+    if (!nullToAbsent || idSconto != null) {
+      map['idSconto'] = Variable<int>(idSconto);
+    }
+    if (!nullToAbsent || validoDa != null) {
+      map['validoDa'] = Variable<String>(validoDa);
+    }
+    if (!nullToAbsent || validoA != null) {
+      map['validoA'] = Variable<String>(validoA);
+    }
+    if (!nullToAbsent || stato != null) {
+      map['stato'] = Variable<String>(stato);
+    }
+    if (!nullToAbsent || dataModifica != null) {
+      map['dataModifica'] = Variable<String>(dataModifica);
+    }
+    return map;
+  }
+
+  ScontiClienteCompanion toCompanion(bool nullToAbsent) {
+    return ScontiClienteCompanion(
+      idScontoCliente: Value(idScontoCliente),
+      idCliente: idCliente == null && nullToAbsent
+          ? const Value.absent()
+          : Value(idCliente),
+      idArticolo: idArticolo == null && nullToAbsent
+          ? const Value.absent()
+          : Value(idArticolo),
+      linea: linea == null && nullToAbsent
+          ? const Value.absent()
+          : Value(linea),
+      idSconto: idSconto == null && nullToAbsent
+          ? const Value.absent()
+          : Value(idSconto),
+      validoDa: validoDa == null && nullToAbsent
+          ? const Value.absent()
+          : Value(validoDa),
+      validoA: validoA == null && nullToAbsent
+          ? const Value.absent()
+          : Value(validoA),
+      stato: stato == null && nullToAbsent
+          ? const Value.absent()
+          : Value(stato),
+      dataModifica: dataModifica == null && nullToAbsent
+          ? const Value.absent()
+          : Value(dataModifica),
+    );
+  }
+
+  factory ScontoCliente.fromJson(
+    Map<String, dynamic> json, {
+    ValueSerializer? serializer,
+  }) {
+    serializer ??= driftRuntimeOptions.defaultSerializer;
+    return ScontoCliente(
+      idScontoCliente: serializer.fromJson<int>(json['idScontoCliente']),
+      idCliente: serializer.fromJson<int?>(json['idCliente']),
+      idArticolo: serializer.fromJson<int?>(json['idArticolo']),
+      linea: serializer.fromJson<String?>(json['linea']),
+      idSconto: serializer.fromJson<int?>(json['idSconto']),
+      validoDa: serializer.fromJson<String?>(json['validoDa']),
+      validoA: serializer.fromJson<String?>(json['validoA']),
+      stato: serializer.fromJson<String?>(json['stato']),
+      dataModifica: serializer.fromJson<String?>(json['dataModifica']),
+    );
+  }
+  @override
+  Map<String, dynamic> toJson({ValueSerializer? serializer}) {
+    serializer ??= driftRuntimeOptions.defaultSerializer;
+    return <String, dynamic>{
+      'idScontoCliente': serializer.toJson<int>(idScontoCliente),
+      'idCliente': serializer.toJson<int?>(idCliente),
+      'idArticolo': serializer.toJson<int?>(idArticolo),
+      'linea': serializer.toJson<String?>(linea),
+      'idSconto': serializer.toJson<int?>(idSconto),
+      'validoDa': serializer.toJson<String?>(validoDa),
+      'validoA': serializer.toJson<String?>(validoA),
+      'stato': serializer.toJson<String?>(stato),
+      'dataModifica': serializer.toJson<String?>(dataModifica),
+    };
+  }
+
+  ScontoCliente copyWith({
+    int? idScontoCliente,
+    Value<int?> idCliente = const Value.absent(),
+    Value<int?> idArticolo = const Value.absent(),
+    Value<String?> linea = const Value.absent(),
+    Value<int?> idSconto = const Value.absent(),
+    Value<String?> validoDa = const Value.absent(),
+    Value<String?> validoA = const Value.absent(),
+    Value<String?> stato = const Value.absent(),
+    Value<String?> dataModifica = const Value.absent(),
+  }) => ScontoCliente(
+    idScontoCliente: idScontoCliente ?? this.idScontoCliente,
+    idCliente: idCliente.present ? idCliente.value : this.idCliente,
+    idArticolo: idArticolo.present ? idArticolo.value : this.idArticolo,
+    linea: linea.present ? linea.value : this.linea,
+    idSconto: idSconto.present ? idSconto.value : this.idSconto,
+    validoDa: validoDa.present ? validoDa.value : this.validoDa,
+    validoA: validoA.present ? validoA.value : this.validoA,
+    stato: stato.present ? stato.value : this.stato,
+    dataModifica: dataModifica.present ? dataModifica.value : this.dataModifica,
+  );
+  ScontoCliente copyWithCompanion(ScontiClienteCompanion data) {
+    return ScontoCliente(
+      idScontoCliente: data.idScontoCliente.present
+          ? data.idScontoCliente.value
+          : this.idScontoCliente,
+      idCliente: data.idCliente.present ? data.idCliente.value : this.idCliente,
+      idArticolo: data.idArticolo.present
+          ? data.idArticolo.value
+          : this.idArticolo,
+      linea: data.linea.present ? data.linea.value : this.linea,
+      idSconto: data.idSconto.present ? data.idSconto.value : this.idSconto,
+      validoDa: data.validoDa.present ? data.validoDa.value : this.validoDa,
+      validoA: data.validoA.present ? data.validoA.value : this.validoA,
+      stato: data.stato.present ? data.stato.value : this.stato,
+      dataModifica: data.dataModifica.present
+          ? data.dataModifica.value
+          : this.dataModifica,
+    );
+  }
+
+  @override
+  String toString() {
+    return (StringBuffer('ScontoCliente(')
+          ..write('idScontoCliente: $idScontoCliente, ')
+          ..write('idCliente: $idCliente, ')
+          ..write('idArticolo: $idArticolo, ')
+          ..write('linea: $linea, ')
+          ..write('idSconto: $idSconto, ')
+          ..write('validoDa: $validoDa, ')
+          ..write('validoA: $validoA, ')
+          ..write('stato: $stato, ')
+          ..write('dataModifica: $dataModifica')
+          ..write(')'))
+        .toString();
+  }
+
+  @override
+  int get hashCode => Object.hash(
+    idScontoCliente,
+    idCliente,
+    idArticolo,
+    linea,
+    idSconto,
+    validoDa,
+    validoA,
+    stato,
+    dataModifica,
+  );
+  @override
+  bool operator ==(Object other) =>
+      identical(this, other) ||
+      (other is ScontoCliente &&
+          other.idScontoCliente == this.idScontoCliente &&
+          other.idCliente == this.idCliente &&
+          other.idArticolo == this.idArticolo &&
+          other.linea == this.linea &&
+          other.idSconto == this.idSconto &&
+          other.validoDa == this.validoDa &&
+          other.validoA == this.validoA &&
+          other.stato == this.stato &&
+          other.dataModifica == this.dataModifica);
+}
+
+class ScontiClienteCompanion extends UpdateCompanion<ScontoCliente> {
+  final Value<int> idScontoCliente;
+  final Value<int?> idCliente;
+  final Value<int?> idArticolo;
+  final Value<String?> linea;
+  final Value<int?> idSconto;
+  final Value<String?> validoDa;
+  final Value<String?> validoA;
+  final Value<String?> stato;
+  final Value<String?> dataModifica;
+  const ScontiClienteCompanion({
+    this.idScontoCliente = const Value.absent(),
+    this.idCliente = const Value.absent(),
+    this.idArticolo = const Value.absent(),
+    this.linea = const Value.absent(),
+    this.idSconto = const Value.absent(),
+    this.validoDa = const Value.absent(),
+    this.validoA = const Value.absent(),
+    this.stato = const Value.absent(),
+    this.dataModifica = const Value.absent(),
+  });
+  ScontiClienteCompanion.insert({
+    this.idScontoCliente = const Value.absent(),
+    this.idCliente = const Value.absent(),
+    this.idArticolo = const Value.absent(),
+    this.linea = const Value.absent(),
+    this.idSconto = const Value.absent(),
+    this.validoDa = const Value.absent(),
+    this.validoA = const Value.absent(),
+    this.stato = const Value.absent(),
+    this.dataModifica = const Value.absent(),
+  });
+  static Insertable<ScontoCliente> custom({
+    Expression<int>? idScontoCliente,
+    Expression<int>? idCliente,
+    Expression<int>? idArticolo,
+    Expression<String>? linea,
+    Expression<int>? idSconto,
+    Expression<String>? validoDa,
+    Expression<String>? validoA,
+    Expression<String>? stato,
+    Expression<String>? dataModifica,
+  }) {
+    return RawValuesInsertable({
+      if (idScontoCliente != null) 'idSconto_cliente': idScontoCliente,
+      if (idCliente != null) 'idCliente': idCliente,
+      if (idArticolo != null) 'idArticolo': idArticolo,
+      if (linea != null) 'linea': linea,
+      if (idSconto != null) 'idSconto': idSconto,
+      if (validoDa != null) 'validoDa': validoDa,
+      if (validoA != null) 'validoA': validoA,
+      if (stato != null) 'stato': stato,
+      if (dataModifica != null) 'dataModifica': dataModifica,
+    });
+  }
+
+  ScontiClienteCompanion copyWith({
+    Value<int>? idScontoCliente,
+    Value<int?>? idCliente,
+    Value<int?>? idArticolo,
+    Value<String?>? linea,
+    Value<int?>? idSconto,
+    Value<String?>? validoDa,
+    Value<String?>? validoA,
+    Value<String?>? stato,
+    Value<String?>? dataModifica,
+  }) {
+    return ScontiClienteCompanion(
+      idScontoCliente: idScontoCliente ?? this.idScontoCliente,
+      idCliente: idCliente ?? this.idCliente,
+      idArticolo: idArticolo ?? this.idArticolo,
+      linea: linea ?? this.linea,
+      idSconto: idSconto ?? this.idSconto,
+      validoDa: validoDa ?? this.validoDa,
+      validoA: validoA ?? this.validoA,
+      stato: stato ?? this.stato,
+      dataModifica: dataModifica ?? this.dataModifica,
+    );
+  }
+
+  @override
+  Map<String, Expression> toColumns(bool nullToAbsent) {
+    final map = <String, Expression>{};
+    if (idScontoCliente.present) {
+      map['idSconto_cliente'] = Variable<int>(idScontoCliente.value);
+    }
+    if (idCliente.present) {
+      map['idCliente'] = Variable<int>(idCliente.value);
+    }
+    if (idArticolo.present) {
+      map['idArticolo'] = Variable<int>(idArticolo.value);
+    }
+    if (linea.present) {
+      map['linea'] = Variable<String>(linea.value);
+    }
+    if (idSconto.present) {
+      map['idSconto'] = Variable<int>(idSconto.value);
+    }
+    if (validoDa.present) {
+      map['validoDa'] = Variable<String>(validoDa.value);
+    }
+    if (validoA.present) {
+      map['validoA'] = Variable<String>(validoA.value);
+    }
+    if (stato.present) {
+      map['stato'] = Variable<String>(stato.value);
+    }
+    if (dataModifica.present) {
+      map['dataModifica'] = Variable<String>(dataModifica.value);
+    }
+    return map;
+  }
+
+  @override
+  String toString() {
+    return (StringBuffer('ScontiClienteCompanion(')
+          ..write('idScontoCliente: $idScontoCliente, ')
+          ..write('idCliente: $idCliente, ')
+          ..write('idArticolo: $idArticolo, ')
+          ..write('linea: $linea, ')
+          ..write('idSconto: $idSconto, ')
+          ..write('validoDa: $validoDa, ')
+          ..write('validoA: $validoA, ')
+          ..write('stato: $stato, ')
+          ..write('dataModifica: $dataModifica')
+          ..write(')'))
+        .toString();
+  }
+}
+
+class $PagamentiTable extends Pagamenti
+    with TableInfo<$PagamentiTable, Pagamento> {
+  @override
+  final GeneratedDatabase attachedDatabase;
+  final String? _alias;
+  $PagamentiTable(this.attachedDatabase, [this._alias]);
+  static const VerificationMeta _idPagamentoMeta = const VerificationMeta(
+    'idPagamento',
+  );
+  @override
+  late final GeneratedColumn<int> idPagamento = GeneratedColumn<int>(
+    'idPagamento',
+    aliasedName,
+    false,
+    hasAutoIncrement: true,
+    type: DriftSqlType.int,
+    requiredDuringInsert: false,
+    defaultConstraints: GeneratedColumn.constraintIsAlways(
+      'PRIMARY KEY AUTOINCREMENT',
+    ),
+  );
+  static const VerificationMeta _codPagamentoMeta = const VerificationMeta(
+    'codPagamento',
+  );
+  @override
+  late final GeneratedColumn<String> codPagamento = GeneratedColumn<String>(
+    'codPagamento',
+    aliasedName,
+    true,
+    type: DriftSqlType.string,
+    requiredDuringInsert: false,
+  );
+  static const VerificationMeta _descrizioneMeta = const VerificationMeta(
+    'descrizione',
+  );
+  @override
+  late final GeneratedColumn<String> descrizione = GeneratedColumn<String>(
+    'descrizione',
+    aliasedName,
+    true,
+    type: DriftSqlType.string,
+    requiredDuringInsert: false,
+  );
+  static const VerificationMeta _dataModificaMeta = const VerificationMeta(
+    'dataModifica',
+  );
+  @override
+  late final GeneratedColumn<String> dataModifica = GeneratedColumn<String>(
+    'dataModifica',
+    aliasedName,
+    true,
+    type: DriftSqlType.string,
+    requiredDuringInsert: false,
+  );
+  static const VerificationMeta _attivoMeta = const VerificationMeta('attivo');
+  @override
+  late final GeneratedColumn<int> attivo = GeneratedColumn<int>(
+    'attivo',
+    aliasedName,
+    true,
+    type: DriftSqlType.int,
+    requiredDuringInsert: false,
+  );
+  @override
+  List<GeneratedColumn> get $columns => [
+    idPagamento,
+    codPagamento,
+    descrizione,
+    dataModifica,
+    attivo,
+  ];
+  @override
+  String get aliasedName => _alias ?? actualTableName;
+  @override
+  String get actualTableName => $name;
+  static const String $name = 'Pagamenti';
+  @override
+  VerificationContext validateIntegrity(
+    Insertable<Pagamento> instance, {
+    bool isInserting = false,
+  }) {
+    final context = VerificationContext();
+    final data = instance.toColumns(true);
+    if (data.containsKey('idPagamento')) {
+      context.handle(
+        _idPagamentoMeta,
+        idPagamento.isAcceptableOrUnknown(
+          data['idPagamento']!,
+          _idPagamentoMeta,
+        ),
+      );
+    }
+    if (data.containsKey('codPagamento')) {
+      context.handle(
+        _codPagamentoMeta,
+        codPagamento.isAcceptableOrUnknown(
+          data['codPagamento']!,
+          _codPagamentoMeta,
+        ),
+      );
+    }
+    if (data.containsKey('descrizione')) {
+      context.handle(
+        _descrizioneMeta,
+        descrizione.isAcceptableOrUnknown(
+          data['descrizione']!,
+          _descrizioneMeta,
+        ),
+      );
+    }
+    if (data.containsKey('dataModifica')) {
+      context.handle(
+        _dataModificaMeta,
+        dataModifica.isAcceptableOrUnknown(
+          data['dataModifica']!,
+          _dataModificaMeta,
+        ),
+      );
+    }
+    if (data.containsKey('attivo')) {
+      context.handle(
+        _attivoMeta,
+        attivo.isAcceptableOrUnknown(data['attivo']!, _attivoMeta),
+      );
+    }
+    return context;
+  }
+
+  @override
+  Set<GeneratedColumn> get $primaryKey => {idPagamento};
+  @override
+  Pagamento map(Map<String, dynamic> data, {String? tablePrefix}) {
+    final effectivePrefix = tablePrefix != null ? '$tablePrefix.' : '';
+    return Pagamento(
+      idPagamento: attachedDatabase.typeMapping.read(
+        DriftSqlType.int,
+        data['${effectivePrefix}idPagamento'],
+      )!,
+      codPagamento: attachedDatabase.typeMapping.read(
+        DriftSqlType.string,
+        data['${effectivePrefix}codPagamento'],
+      ),
+      descrizione: attachedDatabase.typeMapping.read(
+        DriftSqlType.string,
+        data['${effectivePrefix}descrizione'],
+      ),
+      dataModifica: attachedDatabase.typeMapping.read(
+        DriftSqlType.string,
+        data['${effectivePrefix}dataModifica'],
+      ),
+      attivo: attachedDatabase.typeMapping.read(
+        DriftSqlType.int,
+        data['${effectivePrefix}attivo'],
+      ),
+    );
+  }
+
+  @override
+  $PagamentiTable createAlias(String alias) {
+    return $PagamentiTable(attachedDatabase, alias);
+  }
+}
+
+class Pagamento extends DataClass implements Insertable<Pagamento> {
+  final int idPagamento;
+  final String? codPagamento;
+  final String? descrizione;
+  final String? dataModifica;
+  final int? attivo;
+  const Pagamento({
+    required this.idPagamento,
+    this.codPagamento,
+    this.descrizione,
+    this.dataModifica,
+    this.attivo,
+  });
+  @override
+  Map<String, Expression> toColumns(bool nullToAbsent) {
+    final map = <String, Expression>{};
+    map['idPagamento'] = Variable<int>(idPagamento);
+    if (!nullToAbsent || codPagamento != null) {
+      map['codPagamento'] = Variable<String>(codPagamento);
+    }
+    if (!nullToAbsent || descrizione != null) {
+      map['descrizione'] = Variable<String>(descrizione);
+    }
+    if (!nullToAbsent || dataModifica != null) {
+      map['dataModifica'] = Variable<String>(dataModifica);
+    }
+    if (!nullToAbsent || attivo != null) {
+      map['attivo'] = Variable<int>(attivo);
+    }
+    return map;
+  }
+
+  PagamentiCompanion toCompanion(bool nullToAbsent) {
+    return PagamentiCompanion(
+      idPagamento: Value(idPagamento),
+      codPagamento: codPagamento == null && nullToAbsent
+          ? const Value.absent()
+          : Value(codPagamento),
+      descrizione: descrizione == null && nullToAbsent
+          ? const Value.absent()
+          : Value(descrizione),
+      dataModifica: dataModifica == null && nullToAbsent
+          ? const Value.absent()
+          : Value(dataModifica),
+      attivo: attivo == null && nullToAbsent
+          ? const Value.absent()
+          : Value(attivo),
+    );
+  }
+
+  factory Pagamento.fromJson(
+    Map<String, dynamic> json, {
+    ValueSerializer? serializer,
+  }) {
+    serializer ??= driftRuntimeOptions.defaultSerializer;
+    return Pagamento(
+      idPagamento: serializer.fromJson<int>(json['idPagamento']),
+      codPagamento: serializer.fromJson<String?>(json['codPagamento']),
+      descrizione: serializer.fromJson<String?>(json['descrizione']),
+      dataModifica: serializer.fromJson<String?>(json['dataModifica']),
+      attivo: serializer.fromJson<int?>(json['attivo']),
+    );
+  }
+  @override
+  Map<String, dynamic> toJson({ValueSerializer? serializer}) {
+    serializer ??= driftRuntimeOptions.defaultSerializer;
+    return <String, dynamic>{
+      'idPagamento': serializer.toJson<int>(idPagamento),
+      'codPagamento': serializer.toJson<String?>(codPagamento),
+      'descrizione': serializer.toJson<String?>(descrizione),
+      'dataModifica': serializer.toJson<String?>(dataModifica),
+      'attivo': serializer.toJson<int?>(attivo),
+    };
+  }
+
+  Pagamento copyWith({
+    int? idPagamento,
+    Value<String?> codPagamento = const Value.absent(),
+    Value<String?> descrizione = const Value.absent(),
+    Value<String?> dataModifica = const Value.absent(),
+    Value<int?> attivo = const Value.absent(),
+  }) => Pagamento(
+    idPagamento: idPagamento ?? this.idPagamento,
+    codPagamento: codPagamento.present ? codPagamento.value : this.codPagamento,
+    descrizione: descrizione.present ? descrizione.value : this.descrizione,
+    dataModifica: dataModifica.present ? dataModifica.value : this.dataModifica,
+    attivo: attivo.present ? attivo.value : this.attivo,
+  );
+  Pagamento copyWithCompanion(PagamentiCompanion data) {
+    return Pagamento(
+      idPagamento: data.idPagamento.present
+          ? data.idPagamento.value
+          : this.idPagamento,
+      codPagamento: data.codPagamento.present
+          ? data.codPagamento.value
+          : this.codPagamento,
+      descrizione: data.descrizione.present
+          ? data.descrizione.value
+          : this.descrizione,
+      dataModifica: data.dataModifica.present
+          ? data.dataModifica.value
+          : this.dataModifica,
+      attivo: data.attivo.present ? data.attivo.value : this.attivo,
+    );
+  }
+
+  @override
+  String toString() {
+    return (StringBuffer('Pagamento(')
+          ..write('idPagamento: $idPagamento, ')
+          ..write('codPagamento: $codPagamento, ')
+          ..write('descrizione: $descrizione, ')
+          ..write('dataModifica: $dataModifica, ')
+          ..write('attivo: $attivo')
+          ..write(')'))
+        .toString();
+  }
+
+  @override
+  int get hashCode =>
+      Object.hash(idPagamento, codPagamento, descrizione, dataModifica, attivo);
+  @override
+  bool operator ==(Object other) =>
+      identical(this, other) ||
+      (other is Pagamento &&
+          other.idPagamento == this.idPagamento &&
+          other.codPagamento == this.codPagamento &&
+          other.descrizione == this.descrizione &&
+          other.dataModifica == this.dataModifica &&
+          other.attivo == this.attivo);
+}
+
+class PagamentiCompanion extends UpdateCompanion<Pagamento> {
+  final Value<int> idPagamento;
+  final Value<String?> codPagamento;
+  final Value<String?> descrizione;
+  final Value<String?> dataModifica;
+  final Value<int?> attivo;
+  const PagamentiCompanion({
+    this.idPagamento = const Value.absent(),
+    this.codPagamento = const Value.absent(),
+    this.descrizione = const Value.absent(),
+    this.dataModifica = const Value.absent(),
+    this.attivo = const Value.absent(),
+  });
+  PagamentiCompanion.insert({
+    this.idPagamento = const Value.absent(),
+    this.codPagamento = const Value.absent(),
+    this.descrizione = const Value.absent(),
+    this.dataModifica = const Value.absent(),
+    this.attivo = const Value.absent(),
+  });
+  static Insertable<Pagamento> custom({
+    Expression<int>? idPagamento,
+    Expression<String>? codPagamento,
+    Expression<String>? descrizione,
+    Expression<String>? dataModifica,
+    Expression<int>? attivo,
+  }) {
+    return RawValuesInsertable({
+      if (idPagamento != null) 'idPagamento': idPagamento,
+      if (codPagamento != null) 'codPagamento': codPagamento,
+      if (descrizione != null) 'descrizione': descrizione,
+      if (dataModifica != null) 'dataModifica': dataModifica,
+      if (attivo != null) 'attivo': attivo,
+    });
+  }
+
+  PagamentiCompanion copyWith({
+    Value<int>? idPagamento,
+    Value<String?>? codPagamento,
+    Value<String?>? descrizione,
+    Value<String?>? dataModifica,
+    Value<int?>? attivo,
+  }) {
+    return PagamentiCompanion(
+      idPagamento: idPagamento ?? this.idPagamento,
+      codPagamento: codPagamento ?? this.codPagamento,
+      descrizione: descrizione ?? this.descrizione,
+      dataModifica: dataModifica ?? this.dataModifica,
+      attivo: attivo ?? this.attivo,
+    );
+  }
+
+  @override
+  Map<String, Expression> toColumns(bool nullToAbsent) {
+    final map = <String, Expression>{};
+    if (idPagamento.present) {
+      map['idPagamento'] = Variable<int>(idPagamento.value);
+    }
+    if (codPagamento.present) {
+      map['codPagamento'] = Variable<String>(codPagamento.value);
+    }
+    if (descrizione.present) {
+      map['descrizione'] = Variable<String>(descrizione.value);
+    }
+    if (dataModifica.present) {
+      map['dataModifica'] = Variable<String>(dataModifica.value);
+    }
+    if (attivo.present) {
+      map['attivo'] = Variable<int>(attivo.value);
+    }
+    return map;
+  }
+
+  @override
+  String toString() {
+    return (StringBuffer('PagamentiCompanion(')
+          ..write('idPagamento: $idPagamento, ')
+          ..write('codPagamento: $codPagamento, ')
+          ..write('descrizione: $descrizione, ')
+          ..write('dataModifica: $dataModifica, ')
+          ..write('attivo: $attivo')
+          ..write(')'))
+        .toString();
+  }
+}
+
+class $ParametriTable extends Parametri
+    with TableInfo<$ParametriTable, Parametro> {
+  @override
+  final GeneratedDatabase attachedDatabase;
+  final String? _alias;
+  $ParametriTable(this.attachedDatabase, [this._alias]);
+  static const VerificationMeta _nomeMeta = const VerificationMeta('nome');
+  @override
+  late final GeneratedColumn<String> nome = GeneratedColumn<String>(
+    'nome',
+    aliasedName,
+    false,
+    type: DriftSqlType.string,
+    requiredDuringInsert: true,
+  );
+  static const VerificationMeta _valoreMeta = const VerificationMeta('valore');
+  @override
+  late final GeneratedColumn<String> valore = GeneratedColumn<String>(
+    'valore',
+    aliasedName,
+    true,
+    type: DriftSqlType.string,
+    requiredDuringInsert: false,
+  );
+  @override
+  List<GeneratedColumn> get $columns => [nome, valore];
+  @override
+  String get aliasedName => _alias ?? actualTableName;
+  @override
+  String get actualTableName => $name;
+  static const String $name = 'Parametri';
+  @override
+  VerificationContext validateIntegrity(
+    Insertable<Parametro> instance, {
+    bool isInserting = false,
+  }) {
+    final context = VerificationContext();
+    final data = instance.toColumns(true);
+    if (data.containsKey('nome')) {
+      context.handle(
+        _nomeMeta,
+        nome.isAcceptableOrUnknown(data['nome']!, _nomeMeta),
+      );
+    } else if (isInserting) {
+      context.missing(_nomeMeta);
+    }
+    if (data.containsKey('valore')) {
+      context.handle(
+        _valoreMeta,
+        valore.isAcceptableOrUnknown(data['valore']!, _valoreMeta),
+      );
+    }
+    return context;
+  }
+
+  @override
+  Set<GeneratedColumn> get $primaryKey => {nome};
+  @override
+  Parametro map(Map<String, dynamic> data, {String? tablePrefix}) {
+    final effectivePrefix = tablePrefix != null ? '$tablePrefix.' : '';
+    return Parametro(
+      nome: attachedDatabase.typeMapping.read(
+        DriftSqlType.string,
+        data['${effectivePrefix}nome'],
+      )!,
+      valore: attachedDatabase.typeMapping.read(
+        DriftSqlType.string,
+        data['${effectivePrefix}valore'],
+      ),
+    );
+  }
+
+  @override
+  $ParametriTable createAlias(String alias) {
+    return $ParametriTable(attachedDatabase, alias);
+  }
+}
+
+class Parametro extends DataClass implements Insertable<Parametro> {
+  final String nome;
+  final String? valore;
+  const Parametro({required this.nome, this.valore});
+  @override
+  Map<String, Expression> toColumns(bool nullToAbsent) {
+    final map = <String, Expression>{};
+    map['nome'] = Variable<String>(nome);
+    if (!nullToAbsent || valore != null) {
+      map['valore'] = Variable<String>(valore);
+    }
+    return map;
+  }
+
+  ParametriCompanion toCompanion(bool nullToAbsent) {
+    return ParametriCompanion(
+      nome: Value(nome),
+      valore: valore == null && nullToAbsent
+          ? const Value.absent()
+          : Value(valore),
+    );
+  }
+
+  factory Parametro.fromJson(
+    Map<String, dynamic> json, {
+    ValueSerializer? serializer,
+  }) {
+    serializer ??= driftRuntimeOptions.defaultSerializer;
+    return Parametro(
+      nome: serializer.fromJson<String>(json['nome']),
+      valore: serializer.fromJson<String?>(json['valore']),
+    );
+  }
+  @override
+  Map<String, dynamic> toJson({ValueSerializer? serializer}) {
+    serializer ??= driftRuntimeOptions.defaultSerializer;
+    return <String, dynamic>{
+      'nome': serializer.toJson<String>(nome),
+      'valore': serializer.toJson<String?>(valore),
+    };
+  }
+
+  Parametro copyWith({
+    String? nome,
+    Value<String?> valore = const Value.absent(),
+  }) => Parametro(
+    nome: nome ?? this.nome,
+    valore: valore.present ? valore.value : this.valore,
+  );
+  Parametro copyWithCompanion(ParametriCompanion data) {
+    return Parametro(
+      nome: data.nome.present ? data.nome.value : this.nome,
+      valore: data.valore.present ? data.valore.value : this.valore,
+    );
+  }
+
+  @override
+  String toString() {
+    return (StringBuffer('Parametro(')
+          ..write('nome: $nome, ')
+          ..write('valore: $valore')
+          ..write(')'))
+        .toString();
+  }
+
+  @override
+  int get hashCode => Object.hash(nome, valore);
+  @override
+  bool operator ==(Object other) =>
+      identical(this, other) ||
+      (other is Parametro &&
+          other.nome == this.nome &&
+          other.valore == this.valore);
+}
+
+class ParametriCompanion extends UpdateCompanion<Parametro> {
+  final Value<String> nome;
+  final Value<String?> valore;
+  final Value<int> rowid;
+  const ParametriCompanion({
+    this.nome = const Value.absent(),
+    this.valore = const Value.absent(),
+    this.rowid = const Value.absent(),
+  });
+  ParametriCompanion.insert({
+    required String nome,
+    this.valore = const Value.absent(),
+    this.rowid = const Value.absent(),
+  }) : nome = Value(nome);
+  static Insertable<Parametro> custom({
+    Expression<String>? nome,
+    Expression<String>? valore,
+    Expression<int>? rowid,
+  }) {
+    return RawValuesInsertable({
+      if (nome != null) 'nome': nome,
+      if (valore != null) 'valore': valore,
+      if (rowid != null) 'rowid': rowid,
+    });
+  }
+
+  ParametriCompanion copyWith({
+    Value<String>? nome,
+    Value<String?>? valore,
+    Value<int>? rowid,
+  }) {
+    return ParametriCompanion(
+      nome: nome ?? this.nome,
+      valore: valore ?? this.valore,
+      rowid: rowid ?? this.rowid,
+    );
+  }
+
+  @override
+  Map<String, Expression> toColumns(bool nullToAbsent) {
+    final map = <String, Expression>{};
+    if (nome.present) {
+      map['nome'] = Variable<String>(nome.value);
+    }
+    if (valore.present) {
+      map['valore'] = Variable<String>(valore.value);
+    }
+    if (rowid.present) {
+      map['rowid'] = Variable<int>(rowid.value);
+    }
+    return map;
+  }
+
+  @override
+  String toString() {
+    return (StringBuffer('ParametriCompanion(')
+          ..write('nome: $nome, ')
+          ..write('valore: $valore, ')
+          ..write('rowid: $rowid')
+          ..write(')'))
+        .toString();
+  }
+}
+
+class $TabelleTable extends Tabelle with TableInfo<$TabelleTable, Tabella> {
+  @override
+  final GeneratedDatabase attachedDatabase;
+  final String? _alias;
+  $TabelleTable(this.attachedDatabase, [this._alias]);
+  static const VerificationMeta _idTabellaMeta = const VerificationMeta(
+    'idTabella',
+  );
+  @override
+  late final GeneratedColumn<int> idTabella = GeneratedColumn<int>(
+    'idTabella',
+    aliasedName,
+    false,
+    hasAutoIncrement: true,
+    type: DriftSqlType.int,
+    requiredDuringInsert: false,
+    defaultConstraints: GeneratedColumn.constraintIsAlways(
+      'PRIMARY KEY AUTOINCREMENT',
+    ),
+  );
+  static const VerificationMeta _tipoTabellaMeta = const VerificationMeta(
+    'tipoTabella',
+  );
+  @override
+  late final GeneratedColumn<String> tipoTabella = GeneratedColumn<String>(
+    'tipoTabella',
+    aliasedName,
+    false,
+    type: DriftSqlType.string,
+    requiredDuringInsert: true,
+  );
+  static const VerificationMeta _codTabellaMeta = const VerificationMeta(
+    'codTabella',
+  );
+  @override
+  late final GeneratedColumn<String> codTabella = GeneratedColumn<String>(
+    'codTabella',
+    aliasedName,
+    true,
+    type: DriftSqlType.string,
+    requiredDuringInsert: false,
+  );
+  static const VerificationMeta _descrizioneMeta = const VerificationMeta(
+    'descrizione',
+  );
+  @override
+  late final GeneratedColumn<String> descrizione = GeneratedColumn<String>(
+    'descrizione',
+    aliasedName,
+    true,
+    type: DriftSqlType.string,
+    requiredDuringInsert: false,
+  );
+  static const VerificationMeta _stringa1Meta = const VerificationMeta(
+    'stringa1',
+  );
+  @override
+  late final GeneratedColumn<String> stringa1 = GeneratedColumn<String>(
+    'stringa1',
+    aliasedName,
+    true,
+    type: DriftSqlType.string,
+    requiredDuringInsert: false,
+  );
+  static const VerificationMeta _stringa2Meta = const VerificationMeta(
+    'stringa2',
+  );
+  @override
+  late final GeneratedColumn<String> stringa2 = GeneratedColumn<String>(
+    'stringa2',
+    aliasedName,
+    true,
+    type: DriftSqlType.string,
+    requiredDuringInsert: false,
+  );
+  static const VerificationMeta _stringa3Meta = const VerificationMeta(
+    'stringa3',
+  );
+  @override
+  late final GeneratedColumn<String> stringa3 = GeneratedColumn<String>(
+    'stringa3',
+    aliasedName,
+    true,
+    type: DriftSqlType.string,
+    requiredDuringInsert: false,
+  );
+  static const VerificationMeta _stringa4Meta = const VerificationMeta(
+    'stringa4',
+  );
+  @override
+  late final GeneratedColumn<String> stringa4 = GeneratedColumn<String>(
+    'stringa4',
+    aliasedName,
+    true,
+    type: DriftSqlType.string,
+    requiredDuringInsert: false,
+  );
+  static const VerificationMeta _stringa5Meta = const VerificationMeta(
+    'stringa5',
+  );
+  @override
+  late final GeneratedColumn<String> stringa5 = GeneratedColumn<String>(
+    'stringa5',
+    aliasedName,
+    true,
+    type: DriftSqlType.string,
+    requiredDuringInsert: false,
+  );
+  static const VerificationMeta _valore1Meta = const VerificationMeta(
+    'valore1',
+  );
+  @override
+  late final GeneratedColumn<double> valore1 = GeneratedColumn<double>(
+    'valore1',
+    aliasedName,
+    true,
+    type: DriftSqlType.double,
+    requiredDuringInsert: false,
+  );
+  static const VerificationMeta _valore2Meta = const VerificationMeta(
+    'valore2',
+  );
+  @override
+  late final GeneratedColumn<double> valore2 = GeneratedColumn<double>(
+    'valore2',
+    aliasedName,
+    true,
+    type: DriftSqlType.double,
+    requiredDuringInsert: false,
+  );
+  static const VerificationMeta _valore3Meta = const VerificationMeta(
+    'valore3',
+  );
+  @override
+  late final GeneratedColumn<double> valore3 = GeneratedColumn<double>(
+    'valore3',
+    aliasedName,
+    true,
+    type: DriftSqlType.double,
+    requiredDuringInsert: false,
+  );
+  static const VerificationMeta _valore4Meta = const VerificationMeta(
+    'valore4',
+  );
+  @override
+  late final GeneratedColumn<double> valore4 = GeneratedColumn<double>(
+    'valore4',
+    aliasedName,
+    true,
+    type: DriftSqlType.double,
+    requiredDuringInsert: false,
+  );
+  static const VerificationMeta _valore5Meta = const VerificationMeta(
+    'valore5',
+  );
+  @override
+  late final GeneratedColumn<double> valore5 = GeneratedColumn<double>(
+    'valore5',
+    aliasedName,
+    true,
+    type: DriftSqlType.double,
+    requiredDuringInsert: false,
+  );
+  static const VerificationMeta _dataModificaMeta = const VerificationMeta(
+    'dataModifica',
+  );
+  @override
+  late final GeneratedColumn<String> dataModifica = GeneratedColumn<String>(
+    'dataModifica',
+    aliasedName,
+    true,
+    type: DriftSqlType.string,
+    requiredDuringInsert: false,
+  );
+  @override
+  List<GeneratedColumn> get $columns => [
+    idTabella,
+    tipoTabella,
+    codTabella,
+    descrizione,
+    stringa1,
+    stringa2,
+    stringa3,
+    stringa4,
+    stringa5,
+    valore1,
+    valore2,
+    valore3,
+    valore4,
+    valore5,
+    dataModifica,
+  ];
+  @override
+  String get aliasedName => _alias ?? actualTableName;
+  @override
+  String get actualTableName => $name;
+  static const String $name = 'Tabelle';
+  @override
+  VerificationContext validateIntegrity(
+    Insertable<Tabella> instance, {
+    bool isInserting = false,
+  }) {
+    final context = VerificationContext();
+    final data = instance.toColumns(true);
+    if (data.containsKey('idTabella')) {
+      context.handle(
+        _idTabellaMeta,
+        idTabella.isAcceptableOrUnknown(data['idTabella']!, _idTabellaMeta),
+      );
+    }
+    if (data.containsKey('tipoTabella')) {
+      context.handle(
+        _tipoTabellaMeta,
+        tipoTabella.isAcceptableOrUnknown(
+          data['tipoTabella']!,
+          _tipoTabellaMeta,
+        ),
+      );
+    } else if (isInserting) {
+      context.missing(_tipoTabellaMeta);
+    }
+    if (data.containsKey('codTabella')) {
+      context.handle(
+        _codTabellaMeta,
+        codTabella.isAcceptableOrUnknown(data['codTabella']!, _codTabellaMeta),
+      );
+    }
+    if (data.containsKey('descrizione')) {
+      context.handle(
+        _descrizioneMeta,
+        descrizione.isAcceptableOrUnknown(
+          data['descrizione']!,
+          _descrizioneMeta,
+        ),
+      );
+    }
+    if (data.containsKey('stringa1')) {
+      context.handle(
+        _stringa1Meta,
+        stringa1.isAcceptableOrUnknown(data['stringa1']!, _stringa1Meta),
+      );
+    }
+    if (data.containsKey('stringa2')) {
+      context.handle(
+        _stringa2Meta,
+        stringa2.isAcceptableOrUnknown(data['stringa2']!, _stringa2Meta),
+      );
+    }
+    if (data.containsKey('stringa3')) {
+      context.handle(
+        _stringa3Meta,
+        stringa3.isAcceptableOrUnknown(data['stringa3']!, _stringa3Meta),
+      );
+    }
+    if (data.containsKey('stringa4')) {
+      context.handle(
+        _stringa4Meta,
+        stringa4.isAcceptableOrUnknown(data['stringa4']!, _stringa4Meta),
+      );
+    }
+    if (data.containsKey('stringa5')) {
+      context.handle(
+        _stringa5Meta,
+        stringa5.isAcceptableOrUnknown(data['stringa5']!, _stringa5Meta),
+      );
+    }
+    if (data.containsKey('valore1')) {
+      context.handle(
+        _valore1Meta,
+        valore1.isAcceptableOrUnknown(data['valore1']!, _valore1Meta),
+      );
+    }
+    if (data.containsKey('valore2')) {
+      context.handle(
+        _valore2Meta,
+        valore2.isAcceptableOrUnknown(data['valore2']!, _valore2Meta),
+      );
+    }
+    if (data.containsKey('valore3')) {
+      context.handle(
+        _valore3Meta,
+        valore3.isAcceptableOrUnknown(data['valore3']!, _valore3Meta),
+      );
+    }
+    if (data.containsKey('valore4')) {
+      context.handle(
+        _valore4Meta,
+        valore4.isAcceptableOrUnknown(data['valore4']!, _valore4Meta),
+      );
+    }
+    if (data.containsKey('valore5')) {
+      context.handle(
+        _valore5Meta,
+        valore5.isAcceptableOrUnknown(data['valore5']!, _valore5Meta),
+      );
+    }
+    if (data.containsKey('dataModifica')) {
+      context.handle(
+        _dataModificaMeta,
+        dataModifica.isAcceptableOrUnknown(
+          data['dataModifica']!,
+          _dataModificaMeta,
+        ),
+      );
+    }
+    return context;
+  }
+
+  @override
+  Set<GeneratedColumn> get $primaryKey => {idTabella};
+  @override
+  Tabella map(Map<String, dynamic> data, {String? tablePrefix}) {
+    final effectivePrefix = tablePrefix != null ? '$tablePrefix.' : '';
+    return Tabella(
+      idTabella: attachedDatabase.typeMapping.read(
+        DriftSqlType.int,
+        data['${effectivePrefix}idTabella'],
+      )!,
+      tipoTabella: attachedDatabase.typeMapping.read(
+        DriftSqlType.string,
+        data['${effectivePrefix}tipoTabella'],
+      )!,
+      codTabella: attachedDatabase.typeMapping.read(
+        DriftSqlType.string,
+        data['${effectivePrefix}codTabella'],
+      ),
+      descrizione: attachedDatabase.typeMapping.read(
+        DriftSqlType.string,
+        data['${effectivePrefix}descrizione'],
+      ),
+      stringa1: attachedDatabase.typeMapping.read(
+        DriftSqlType.string,
+        data['${effectivePrefix}stringa1'],
+      ),
+      stringa2: attachedDatabase.typeMapping.read(
+        DriftSqlType.string,
+        data['${effectivePrefix}stringa2'],
+      ),
+      stringa3: attachedDatabase.typeMapping.read(
+        DriftSqlType.string,
+        data['${effectivePrefix}stringa3'],
+      ),
+      stringa4: attachedDatabase.typeMapping.read(
+        DriftSqlType.string,
+        data['${effectivePrefix}stringa4'],
+      ),
+      stringa5: attachedDatabase.typeMapping.read(
+        DriftSqlType.string,
+        data['${effectivePrefix}stringa5'],
+      ),
+      valore1: attachedDatabase.typeMapping.read(
+        DriftSqlType.double,
+        data['${effectivePrefix}valore1'],
+      ),
+      valore2: attachedDatabase.typeMapping.read(
+        DriftSqlType.double,
+        data['${effectivePrefix}valore2'],
+      ),
+      valore3: attachedDatabase.typeMapping.read(
+        DriftSqlType.double,
+        data['${effectivePrefix}valore3'],
+      ),
+      valore4: attachedDatabase.typeMapping.read(
+        DriftSqlType.double,
+        data['${effectivePrefix}valore4'],
+      ),
+      valore5: attachedDatabase.typeMapping.read(
+        DriftSqlType.double,
+        data['${effectivePrefix}valore5'],
+      ),
+      dataModifica: attachedDatabase.typeMapping.read(
+        DriftSqlType.string,
+        data['${effectivePrefix}dataModifica'],
+      ),
+    );
+  }
+
+  @override
+  $TabelleTable createAlias(String alias) {
+    return $TabelleTable(attachedDatabase, alias);
+  }
+}
+
+class Tabella extends DataClass implements Insertable<Tabella> {
+  final int idTabella;
+  final String tipoTabella;
+  final String? codTabella;
+  final String? descrizione;
+  final String? stringa1;
+  final String? stringa2;
+  final String? stringa3;
+  final String? stringa4;
+  final String? stringa5;
+  final double? valore1;
+  final double? valore2;
+  final double? valore3;
+  final double? valore4;
+  final double? valore5;
+  final String? dataModifica;
+  const Tabella({
+    required this.idTabella,
+    required this.tipoTabella,
+    this.codTabella,
+    this.descrizione,
+    this.stringa1,
+    this.stringa2,
+    this.stringa3,
+    this.stringa4,
+    this.stringa5,
+    this.valore1,
+    this.valore2,
+    this.valore3,
+    this.valore4,
+    this.valore5,
+    this.dataModifica,
+  });
+  @override
+  Map<String, Expression> toColumns(bool nullToAbsent) {
+    final map = <String, Expression>{};
+    map['idTabella'] = Variable<int>(idTabella);
+    map['tipoTabella'] = Variable<String>(tipoTabella);
+    if (!nullToAbsent || codTabella != null) {
+      map['codTabella'] = Variable<String>(codTabella);
+    }
+    if (!nullToAbsent || descrizione != null) {
+      map['descrizione'] = Variable<String>(descrizione);
+    }
+    if (!nullToAbsent || stringa1 != null) {
+      map['stringa1'] = Variable<String>(stringa1);
+    }
+    if (!nullToAbsent || stringa2 != null) {
+      map['stringa2'] = Variable<String>(stringa2);
+    }
+    if (!nullToAbsent || stringa3 != null) {
+      map['stringa3'] = Variable<String>(stringa3);
+    }
+    if (!nullToAbsent || stringa4 != null) {
+      map['stringa4'] = Variable<String>(stringa4);
+    }
+    if (!nullToAbsent || stringa5 != null) {
+      map['stringa5'] = Variable<String>(stringa5);
+    }
+    if (!nullToAbsent || valore1 != null) {
+      map['valore1'] = Variable<double>(valore1);
+    }
+    if (!nullToAbsent || valore2 != null) {
+      map['valore2'] = Variable<double>(valore2);
+    }
+    if (!nullToAbsent || valore3 != null) {
+      map['valore3'] = Variable<double>(valore3);
+    }
+    if (!nullToAbsent || valore4 != null) {
+      map['valore4'] = Variable<double>(valore4);
+    }
+    if (!nullToAbsent || valore5 != null) {
+      map['valore5'] = Variable<double>(valore5);
+    }
+    if (!nullToAbsent || dataModifica != null) {
+      map['dataModifica'] = Variable<String>(dataModifica);
+    }
+    return map;
+  }
+
+  TabelleCompanion toCompanion(bool nullToAbsent) {
+    return TabelleCompanion(
+      idTabella: Value(idTabella),
+      tipoTabella: Value(tipoTabella),
+      codTabella: codTabella == null && nullToAbsent
+          ? const Value.absent()
+          : Value(codTabella),
+      descrizione: descrizione == null && nullToAbsent
+          ? const Value.absent()
+          : Value(descrizione),
+      stringa1: stringa1 == null && nullToAbsent
+          ? const Value.absent()
+          : Value(stringa1),
+      stringa2: stringa2 == null && nullToAbsent
+          ? const Value.absent()
+          : Value(stringa2),
+      stringa3: stringa3 == null && nullToAbsent
+          ? const Value.absent()
+          : Value(stringa3),
+      stringa4: stringa4 == null && nullToAbsent
+          ? const Value.absent()
+          : Value(stringa4),
+      stringa5: stringa5 == null && nullToAbsent
+          ? const Value.absent()
+          : Value(stringa5),
+      valore1: valore1 == null && nullToAbsent
+          ? const Value.absent()
+          : Value(valore1),
+      valore2: valore2 == null && nullToAbsent
+          ? const Value.absent()
+          : Value(valore2),
+      valore3: valore3 == null && nullToAbsent
+          ? const Value.absent()
+          : Value(valore3),
+      valore4: valore4 == null && nullToAbsent
+          ? const Value.absent()
+          : Value(valore4),
+      valore5: valore5 == null && nullToAbsent
+          ? const Value.absent()
+          : Value(valore5),
+      dataModifica: dataModifica == null && nullToAbsent
+          ? const Value.absent()
+          : Value(dataModifica),
+    );
+  }
+
+  factory Tabella.fromJson(
+    Map<String, dynamic> json, {
+    ValueSerializer? serializer,
+  }) {
+    serializer ??= driftRuntimeOptions.defaultSerializer;
+    return Tabella(
+      idTabella: serializer.fromJson<int>(json['idTabella']),
+      tipoTabella: serializer.fromJson<String>(json['tipoTabella']),
+      codTabella: serializer.fromJson<String?>(json['codTabella']),
+      descrizione: serializer.fromJson<String?>(json['descrizione']),
+      stringa1: serializer.fromJson<String?>(json['stringa1']),
+      stringa2: serializer.fromJson<String?>(json['stringa2']),
+      stringa3: serializer.fromJson<String?>(json['stringa3']),
+      stringa4: serializer.fromJson<String?>(json['stringa4']),
+      stringa5: serializer.fromJson<String?>(json['stringa5']),
+      valore1: serializer.fromJson<double?>(json['valore1']),
+      valore2: serializer.fromJson<double?>(json['valore2']),
+      valore3: serializer.fromJson<double?>(json['valore3']),
+      valore4: serializer.fromJson<double?>(json['valore4']),
+      valore5: serializer.fromJson<double?>(json['valore5']),
+      dataModifica: serializer.fromJson<String?>(json['dataModifica']),
+    );
+  }
+  @override
+  Map<String, dynamic> toJson({ValueSerializer? serializer}) {
+    serializer ??= driftRuntimeOptions.defaultSerializer;
+    return <String, dynamic>{
+      'idTabella': serializer.toJson<int>(idTabella),
+      'tipoTabella': serializer.toJson<String>(tipoTabella),
+      'codTabella': serializer.toJson<String?>(codTabella),
+      'descrizione': serializer.toJson<String?>(descrizione),
+      'stringa1': serializer.toJson<String?>(stringa1),
+      'stringa2': serializer.toJson<String?>(stringa2),
+      'stringa3': serializer.toJson<String?>(stringa3),
+      'stringa4': serializer.toJson<String?>(stringa4),
+      'stringa5': serializer.toJson<String?>(stringa5),
+      'valore1': serializer.toJson<double?>(valore1),
+      'valore2': serializer.toJson<double?>(valore2),
+      'valore3': serializer.toJson<double?>(valore3),
+      'valore4': serializer.toJson<double?>(valore4),
+      'valore5': serializer.toJson<double?>(valore5),
+      'dataModifica': serializer.toJson<String?>(dataModifica),
+    };
+  }
+
+  Tabella copyWith({
+    int? idTabella,
+    String? tipoTabella,
+    Value<String?> codTabella = const Value.absent(),
+    Value<String?> descrizione = const Value.absent(),
+    Value<String?> stringa1 = const Value.absent(),
+    Value<String?> stringa2 = const Value.absent(),
+    Value<String?> stringa3 = const Value.absent(),
+    Value<String?> stringa4 = const Value.absent(),
+    Value<String?> stringa5 = const Value.absent(),
+    Value<double?> valore1 = const Value.absent(),
+    Value<double?> valore2 = const Value.absent(),
+    Value<double?> valore3 = const Value.absent(),
+    Value<double?> valore4 = const Value.absent(),
+    Value<double?> valore5 = const Value.absent(),
+    Value<String?> dataModifica = const Value.absent(),
+  }) => Tabella(
+    idTabella: idTabella ?? this.idTabella,
+    tipoTabella: tipoTabella ?? this.tipoTabella,
+    codTabella: codTabella.present ? codTabella.value : this.codTabella,
+    descrizione: descrizione.present ? descrizione.value : this.descrizione,
+    stringa1: stringa1.present ? stringa1.value : this.stringa1,
+    stringa2: stringa2.present ? stringa2.value : this.stringa2,
+    stringa3: stringa3.present ? stringa3.value : this.stringa3,
+    stringa4: stringa4.present ? stringa4.value : this.stringa4,
+    stringa5: stringa5.present ? stringa5.value : this.stringa5,
+    valore1: valore1.present ? valore1.value : this.valore1,
+    valore2: valore2.present ? valore2.value : this.valore2,
+    valore3: valore3.present ? valore3.value : this.valore3,
+    valore4: valore4.present ? valore4.value : this.valore4,
+    valore5: valore5.present ? valore5.value : this.valore5,
+    dataModifica: dataModifica.present ? dataModifica.value : this.dataModifica,
+  );
+  Tabella copyWithCompanion(TabelleCompanion data) {
+    return Tabella(
+      idTabella: data.idTabella.present ? data.idTabella.value : this.idTabella,
+      tipoTabella: data.tipoTabella.present
+          ? data.tipoTabella.value
+          : this.tipoTabella,
+      codTabella: data.codTabella.present
+          ? data.codTabella.value
+          : this.codTabella,
+      descrizione: data.descrizione.present
+          ? data.descrizione.value
+          : this.descrizione,
+      stringa1: data.stringa1.present ? data.stringa1.value : this.stringa1,
+      stringa2: data.stringa2.present ? data.stringa2.value : this.stringa2,
+      stringa3: data.stringa3.present ? data.stringa3.value : this.stringa3,
+      stringa4: data.stringa4.present ? data.stringa4.value : this.stringa4,
+      stringa5: data.stringa5.present ? data.stringa5.value : this.stringa5,
+      valore1: data.valore1.present ? data.valore1.value : this.valore1,
+      valore2: data.valore2.present ? data.valore2.value : this.valore2,
+      valore3: data.valore3.present ? data.valore3.value : this.valore3,
+      valore4: data.valore4.present ? data.valore4.value : this.valore4,
+      valore5: data.valore5.present ? data.valore5.value : this.valore5,
+      dataModifica: data.dataModifica.present
+          ? data.dataModifica.value
+          : this.dataModifica,
+    );
+  }
+
+  @override
+  String toString() {
+    return (StringBuffer('Tabella(')
+          ..write('idTabella: $idTabella, ')
+          ..write('tipoTabella: $tipoTabella, ')
+          ..write('codTabella: $codTabella, ')
+          ..write('descrizione: $descrizione, ')
+          ..write('stringa1: $stringa1, ')
+          ..write('stringa2: $stringa2, ')
+          ..write('stringa3: $stringa3, ')
+          ..write('stringa4: $stringa4, ')
+          ..write('stringa5: $stringa5, ')
+          ..write('valore1: $valore1, ')
+          ..write('valore2: $valore2, ')
+          ..write('valore3: $valore3, ')
+          ..write('valore4: $valore4, ')
+          ..write('valore5: $valore5, ')
+          ..write('dataModifica: $dataModifica')
+          ..write(')'))
+        .toString();
+  }
+
+  @override
+  int get hashCode => Object.hash(
+    idTabella,
+    tipoTabella,
+    codTabella,
+    descrizione,
+    stringa1,
+    stringa2,
+    stringa3,
+    stringa4,
+    stringa5,
+    valore1,
+    valore2,
+    valore3,
+    valore4,
+    valore5,
+    dataModifica,
+  );
+  @override
+  bool operator ==(Object other) =>
+      identical(this, other) ||
+      (other is Tabella &&
+          other.idTabella == this.idTabella &&
+          other.tipoTabella == this.tipoTabella &&
+          other.codTabella == this.codTabella &&
+          other.descrizione == this.descrizione &&
+          other.stringa1 == this.stringa1 &&
+          other.stringa2 == this.stringa2 &&
+          other.stringa3 == this.stringa3 &&
+          other.stringa4 == this.stringa4 &&
+          other.stringa5 == this.stringa5 &&
+          other.valore1 == this.valore1 &&
+          other.valore2 == this.valore2 &&
+          other.valore3 == this.valore3 &&
+          other.valore4 == this.valore4 &&
+          other.valore5 == this.valore5 &&
+          other.dataModifica == this.dataModifica);
+}
+
+class TabelleCompanion extends UpdateCompanion<Tabella> {
+  final Value<int> idTabella;
+  final Value<String> tipoTabella;
+  final Value<String?> codTabella;
+  final Value<String?> descrizione;
+  final Value<String?> stringa1;
+  final Value<String?> stringa2;
+  final Value<String?> stringa3;
+  final Value<String?> stringa4;
+  final Value<String?> stringa5;
+  final Value<double?> valore1;
+  final Value<double?> valore2;
+  final Value<double?> valore3;
+  final Value<double?> valore4;
+  final Value<double?> valore5;
+  final Value<String?> dataModifica;
+  const TabelleCompanion({
+    this.idTabella = const Value.absent(),
+    this.tipoTabella = const Value.absent(),
+    this.codTabella = const Value.absent(),
+    this.descrizione = const Value.absent(),
+    this.stringa1 = const Value.absent(),
+    this.stringa2 = const Value.absent(),
+    this.stringa3 = const Value.absent(),
+    this.stringa4 = const Value.absent(),
+    this.stringa5 = const Value.absent(),
+    this.valore1 = const Value.absent(),
+    this.valore2 = const Value.absent(),
+    this.valore3 = const Value.absent(),
+    this.valore4 = const Value.absent(),
+    this.valore5 = const Value.absent(),
+    this.dataModifica = const Value.absent(),
+  });
+  TabelleCompanion.insert({
+    this.idTabella = const Value.absent(),
+    required String tipoTabella,
+    this.codTabella = const Value.absent(),
+    this.descrizione = const Value.absent(),
+    this.stringa1 = const Value.absent(),
+    this.stringa2 = const Value.absent(),
+    this.stringa3 = const Value.absent(),
+    this.stringa4 = const Value.absent(),
+    this.stringa5 = const Value.absent(),
+    this.valore1 = const Value.absent(),
+    this.valore2 = const Value.absent(),
+    this.valore3 = const Value.absent(),
+    this.valore4 = const Value.absent(),
+    this.valore5 = const Value.absent(),
+    this.dataModifica = const Value.absent(),
+  }) : tipoTabella = Value(tipoTabella);
+  static Insertable<Tabella> custom({
+    Expression<int>? idTabella,
+    Expression<String>? tipoTabella,
+    Expression<String>? codTabella,
+    Expression<String>? descrizione,
+    Expression<String>? stringa1,
+    Expression<String>? stringa2,
+    Expression<String>? stringa3,
+    Expression<String>? stringa4,
+    Expression<String>? stringa5,
+    Expression<double>? valore1,
+    Expression<double>? valore2,
+    Expression<double>? valore3,
+    Expression<double>? valore4,
+    Expression<double>? valore5,
+    Expression<String>? dataModifica,
+  }) {
+    return RawValuesInsertable({
+      if (idTabella != null) 'idTabella': idTabella,
+      if (tipoTabella != null) 'tipoTabella': tipoTabella,
+      if (codTabella != null) 'codTabella': codTabella,
+      if (descrizione != null) 'descrizione': descrizione,
+      if (stringa1 != null) 'stringa1': stringa1,
+      if (stringa2 != null) 'stringa2': stringa2,
+      if (stringa3 != null) 'stringa3': stringa3,
+      if (stringa4 != null) 'stringa4': stringa4,
+      if (stringa5 != null) 'stringa5': stringa5,
+      if (valore1 != null) 'valore1': valore1,
+      if (valore2 != null) 'valore2': valore2,
+      if (valore3 != null) 'valore3': valore3,
+      if (valore4 != null) 'valore4': valore4,
+      if (valore5 != null) 'valore5': valore5,
+      if (dataModifica != null) 'dataModifica': dataModifica,
+    });
+  }
+
+  TabelleCompanion copyWith({
+    Value<int>? idTabella,
+    Value<String>? tipoTabella,
+    Value<String?>? codTabella,
+    Value<String?>? descrizione,
+    Value<String?>? stringa1,
+    Value<String?>? stringa2,
+    Value<String?>? stringa3,
+    Value<String?>? stringa4,
+    Value<String?>? stringa5,
+    Value<double?>? valore1,
+    Value<double?>? valore2,
+    Value<double?>? valore3,
+    Value<double?>? valore4,
+    Value<double?>? valore5,
+    Value<String?>? dataModifica,
+  }) {
+    return TabelleCompanion(
+      idTabella: idTabella ?? this.idTabella,
+      tipoTabella: tipoTabella ?? this.tipoTabella,
+      codTabella: codTabella ?? this.codTabella,
+      descrizione: descrizione ?? this.descrizione,
+      stringa1: stringa1 ?? this.stringa1,
+      stringa2: stringa2 ?? this.stringa2,
+      stringa3: stringa3 ?? this.stringa3,
+      stringa4: stringa4 ?? this.stringa4,
+      stringa5: stringa5 ?? this.stringa5,
+      valore1: valore1 ?? this.valore1,
+      valore2: valore2 ?? this.valore2,
+      valore3: valore3 ?? this.valore3,
+      valore4: valore4 ?? this.valore4,
+      valore5: valore5 ?? this.valore5,
+      dataModifica: dataModifica ?? this.dataModifica,
+    );
+  }
+
+  @override
+  Map<String, Expression> toColumns(bool nullToAbsent) {
+    final map = <String, Expression>{};
+    if (idTabella.present) {
+      map['idTabella'] = Variable<int>(idTabella.value);
+    }
+    if (tipoTabella.present) {
+      map['tipoTabella'] = Variable<String>(tipoTabella.value);
+    }
+    if (codTabella.present) {
+      map['codTabella'] = Variable<String>(codTabella.value);
+    }
+    if (descrizione.present) {
+      map['descrizione'] = Variable<String>(descrizione.value);
+    }
+    if (stringa1.present) {
+      map['stringa1'] = Variable<String>(stringa1.value);
+    }
+    if (stringa2.present) {
+      map['stringa2'] = Variable<String>(stringa2.value);
+    }
+    if (stringa3.present) {
+      map['stringa3'] = Variable<String>(stringa3.value);
+    }
+    if (stringa4.present) {
+      map['stringa4'] = Variable<String>(stringa4.value);
+    }
+    if (stringa5.present) {
+      map['stringa5'] = Variable<String>(stringa5.value);
+    }
+    if (valore1.present) {
+      map['valore1'] = Variable<double>(valore1.value);
+    }
+    if (valore2.present) {
+      map['valore2'] = Variable<double>(valore2.value);
+    }
+    if (valore3.present) {
+      map['valore3'] = Variable<double>(valore3.value);
+    }
+    if (valore4.present) {
+      map['valore4'] = Variable<double>(valore4.value);
+    }
+    if (valore5.present) {
+      map['valore5'] = Variable<double>(valore5.value);
+    }
+    if (dataModifica.present) {
+      map['dataModifica'] = Variable<String>(dataModifica.value);
+    }
+    return map;
+  }
+
+  @override
+  String toString() {
+    return (StringBuffer('TabelleCompanion(')
+          ..write('idTabella: $idTabella, ')
+          ..write('tipoTabella: $tipoTabella, ')
+          ..write('codTabella: $codTabella, ')
+          ..write('descrizione: $descrizione, ')
+          ..write('stringa1: $stringa1, ')
+          ..write('stringa2: $stringa2, ')
+          ..write('stringa3: $stringa3, ')
+          ..write('stringa4: $stringa4, ')
+          ..write('stringa5: $stringa5, ')
+          ..write('valore1: $valore1, ')
+          ..write('valore2: $valore2, ')
+          ..write('valore3: $valore3, ')
+          ..write('valore4: $valore4, ')
+          ..write('valore5: $valore5, ')
+          ..write('dataModifica: $dataModifica')
+          ..write(')'))
+        .toString();
+  }
+}
+
+class $PromozioniTable extends Promozioni
+    with TableInfo<$PromozioniTable, Promozione> {
+  @override
+  final GeneratedDatabase attachedDatabase;
+  final String? _alias;
+  $PromozioniTable(this.attachedDatabase, [this._alias]);
+  static const VerificationMeta _progressivoMeta = const VerificationMeta(
+    'progressivo',
+  );
+  @override
+  late final GeneratedColumn<int> progressivo = GeneratedColumn<int>(
+    'progressivo',
+    aliasedName,
+    false,
+    hasAutoIncrement: true,
+    type: DriftSqlType.int,
+    requiredDuringInsert: false,
+    defaultConstraints: GeneratedColumn.constraintIsAlways(
+      'PRIMARY KEY AUTOINCREMENT',
+    ),
+  );
+  static const VerificationMeta _tipoPromozioneMeta = const VerificationMeta(
+    'tipoPromozione',
+  );
+  @override
+  late final GeneratedColumn<int> tipoPromozione = GeneratedColumn<int>(
+    'tipoPromozione',
+    aliasedName,
+    true,
+    type: DriftSqlType.int,
+    requiredDuringInsert: false,
+  );
+  static const VerificationMeta _descrizioneMeta = const VerificationMeta(
+    'descrizione',
+  );
+  @override
+  late final GeneratedColumn<String> descrizione = GeneratedColumn<String>(
+    'descrizione',
+    aliasedName,
+    true,
+    type: DriftSqlType.string,
+    requiredDuringInsert: false,
+  );
+  static const VerificationMeta _dataInizioMeta = const VerificationMeta(
+    'dataInizio',
+  );
+  @override
+  late final GeneratedColumn<String> dataInizio = GeneratedColumn<String>(
+    'dataInizio',
+    aliasedName,
+    true,
+    type: DriftSqlType.string,
+    requiredDuringInsert: false,
+  );
+  static const VerificationMeta _dataFineMeta = const VerificationMeta(
+    'dataFine',
+  );
+  @override
+  late final GeneratedColumn<String> dataFine = GeneratedColumn<String>(
+    'dataFine',
+    aliasedName,
+    true,
+    type: DriftSqlType.string,
+    requiredDuringInsert: false,
+  );
+  static const VerificationMeta _limiteQtaMeta = const VerificationMeta(
+    'limiteQta',
+  );
+  @override
+  late final GeneratedColumn<double> limiteQta = GeneratedColumn<double>(
+    'limiteQta',
+    aliasedName,
+    true,
+    type: DriftSqlType.double,
+    requiredDuringInsert: false,
+  );
+  static const VerificationMeta _quantitaOmaggioMeta = const VerificationMeta(
+    'quantitaOmaggio',
+  );
+  @override
+  late final GeneratedColumn<double> quantitaOmaggio = GeneratedColumn<double>(
+    'quantitaOmaggio',
+    aliasedName,
+    true,
+    type: DriftSqlType.double,
+    requiredDuringInsert: false,
+  );
+  static const VerificationMeta _limiteImportoMeta = const VerificationMeta(
+    'limiteImporto',
+  );
+  @override
+  late final GeneratedColumn<double> limiteImporto = GeneratedColumn<double>(
+    'limiteImporto',
+    aliasedName,
+    true,
+    type: DriftSqlType.double,
+    requiredDuringInsert: false,
+  );
+  static const VerificationMeta _statoMeta = const VerificationMeta('stato');
+  @override
+  late final GeneratedColumn<String> stato = GeneratedColumn<String>(
+    'stato',
+    aliasedName,
+    true,
+    type: DriftSqlType.string,
+    requiredDuringInsert: false,
+  );
+  static const VerificationMeta _prioritaMeta = const VerificationMeta(
+    'priorita',
+  );
+  @override
+  late final GeneratedColumn<int> priorita = GeneratedColumn<int>(
+    'priorita',
+    aliasedName,
+    true,
+    type: DriftSqlType.int,
+    requiredDuringInsert: false,
+  );
+  static const VerificationMeta _codiceMeta = const VerificationMeta('codice');
+  @override
+  late final GeneratedColumn<int> codice = GeneratedColumn<int>(
+    'codice',
+    aliasedName,
+    true,
+    type: DriftSqlType.int,
+    requiredDuringInsert: false,
+  );
+  static const VerificationMeta _idArticoloOmaggioMeta = const VerificationMeta(
+    'idArticoloOmaggio',
+  );
+  @override
+  late final GeneratedColumn<int> idArticoloOmaggio = GeneratedColumn<int>(
+    'idArticoloOmaggio',
+    aliasedName,
+    true,
+    type: DriftSqlType.int,
+    requiredDuringInsert: false,
+  );
+  static const VerificationMeta _idScontoMeta = const VerificationMeta(
+    'idSconto',
+  );
+  @override
+  late final GeneratedColumn<int> idSconto = GeneratedColumn<int>(
+    'idSconto',
+    aliasedName,
+    true,
+    type: DriftSqlType.int,
+    requiredDuringInsert: false,
+  );
+  static const VerificationMeta _idListinoMeta = const VerificationMeta(
+    'idListino',
+  );
+  @override
+  late final GeneratedColumn<int> idListino = GeneratedColumn<int>(
+    'idListino',
+    aliasedName,
+    true,
+    type: DriftSqlType.int,
+    requiredDuringInsert: false,
+  );
+  @override
+  List<GeneratedColumn> get $columns => [
+    progressivo,
+    tipoPromozione,
+    descrizione,
+    dataInizio,
+    dataFine,
+    limiteQta,
+    quantitaOmaggio,
+    limiteImporto,
+    stato,
+    priorita,
+    codice,
+    idArticoloOmaggio,
+    idSconto,
+    idListino,
+  ];
+  @override
+  String get aliasedName => _alias ?? actualTableName;
+  @override
+  String get actualTableName => $name;
+  static const String $name = 'Promozioni';
+  @override
+  VerificationContext validateIntegrity(
+    Insertable<Promozione> instance, {
+    bool isInserting = false,
+  }) {
+    final context = VerificationContext();
+    final data = instance.toColumns(true);
+    if (data.containsKey('progressivo')) {
+      context.handle(
+        _progressivoMeta,
+        progressivo.isAcceptableOrUnknown(
+          data['progressivo']!,
+          _progressivoMeta,
+        ),
+      );
+    }
+    if (data.containsKey('tipoPromozione')) {
+      context.handle(
+        _tipoPromozioneMeta,
+        tipoPromozione.isAcceptableOrUnknown(
+          data['tipoPromozione']!,
+          _tipoPromozioneMeta,
+        ),
+      );
+    }
+    if (data.containsKey('descrizione')) {
+      context.handle(
+        _descrizioneMeta,
+        descrizione.isAcceptableOrUnknown(
+          data['descrizione']!,
+          _descrizioneMeta,
+        ),
+      );
+    }
+    if (data.containsKey('dataInizio')) {
+      context.handle(
+        _dataInizioMeta,
+        dataInizio.isAcceptableOrUnknown(data['dataInizio']!, _dataInizioMeta),
+      );
+    }
+    if (data.containsKey('dataFine')) {
+      context.handle(
+        _dataFineMeta,
+        dataFine.isAcceptableOrUnknown(data['dataFine']!, _dataFineMeta),
+      );
+    }
+    if (data.containsKey('limiteQta')) {
+      context.handle(
+        _limiteQtaMeta,
+        limiteQta.isAcceptableOrUnknown(data['limiteQta']!, _limiteQtaMeta),
+      );
+    }
+    if (data.containsKey('quantitaOmaggio')) {
+      context.handle(
+        _quantitaOmaggioMeta,
+        quantitaOmaggio.isAcceptableOrUnknown(
+          data['quantitaOmaggio']!,
+          _quantitaOmaggioMeta,
+        ),
+      );
+    }
+    if (data.containsKey('limiteImporto')) {
+      context.handle(
+        _limiteImportoMeta,
+        limiteImporto.isAcceptableOrUnknown(
+          data['limiteImporto']!,
+          _limiteImportoMeta,
+        ),
+      );
+    }
+    if (data.containsKey('stato')) {
+      context.handle(
+        _statoMeta,
+        stato.isAcceptableOrUnknown(data['stato']!, _statoMeta),
+      );
+    }
+    if (data.containsKey('priorita')) {
+      context.handle(
+        _prioritaMeta,
+        priorita.isAcceptableOrUnknown(data['priorita']!, _prioritaMeta),
+      );
+    }
+    if (data.containsKey('codice')) {
+      context.handle(
+        _codiceMeta,
+        codice.isAcceptableOrUnknown(data['codice']!, _codiceMeta),
+      );
+    }
+    if (data.containsKey('idArticoloOmaggio')) {
+      context.handle(
+        _idArticoloOmaggioMeta,
+        idArticoloOmaggio.isAcceptableOrUnknown(
+          data['idArticoloOmaggio']!,
+          _idArticoloOmaggioMeta,
+        ),
+      );
+    }
+    if (data.containsKey('idSconto')) {
+      context.handle(
+        _idScontoMeta,
+        idSconto.isAcceptableOrUnknown(data['idSconto']!, _idScontoMeta),
+      );
+    }
+    if (data.containsKey('idListino')) {
+      context.handle(
+        _idListinoMeta,
+        idListino.isAcceptableOrUnknown(data['idListino']!, _idListinoMeta),
+      );
+    }
+    return context;
+  }
+
+  @override
+  Set<GeneratedColumn> get $primaryKey => {progressivo};
+  @override
+  Promozione map(Map<String, dynamic> data, {String? tablePrefix}) {
+    final effectivePrefix = tablePrefix != null ? '$tablePrefix.' : '';
+    return Promozione(
+      progressivo: attachedDatabase.typeMapping.read(
+        DriftSqlType.int,
+        data['${effectivePrefix}progressivo'],
+      )!,
+      tipoPromozione: attachedDatabase.typeMapping.read(
+        DriftSqlType.int,
+        data['${effectivePrefix}tipoPromozione'],
+      ),
+      descrizione: attachedDatabase.typeMapping.read(
+        DriftSqlType.string,
+        data['${effectivePrefix}descrizione'],
+      ),
+      dataInizio: attachedDatabase.typeMapping.read(
+        DriftSqlType.string,
+        data['${effectivePrefix}dataInizio'],
+      ),
+      dataFine: attachedDatabase.typeMapping.read(
+        DriftSqlType.string,
+        data['${effectivePrefix}dataFine'],
+      ),
+      limiteQta: attachedDatabase.typeMapping.read(
+        DriftSqlType.double,
+        data['${effectivePrefix}limiteQta'],
+      ),
+      quantitaOmaggio: attachedDatabase.typeMapping.read(
+        DriftSqlType.double,
+        data['${effectivePrefix}quantitaOmaggio'],
+      ),
+      limiteImporto: attachedDatabase.typeMapping.read(
+        DriftSqlType.double,
+        data['${effectivePrefix}limiteImporto'],
+      ),
+      stato: attachedDatabase.typeMapping.read(
+        DriftSqlType.string,
+        data['${effectivePrefix}stato'],
+      ),
+      priorita: attachedDatabase.typeMapping.read(
+        DriftSqlType.int,
+        data['${effectivePrefix}priorita'],
+      ),
+      codice: attachedDatabase.typeMapping.read(
+        DriftSqlType.int,
+        data['${effectivePrefix}codice'],
+      ),
+      idArticoloOmaggio: attachedDatabase.typeMapping.read(
+        DriftSqlType.int,
+        data['${effectivePrefix}idArticoloOmaggio'],
+      ),
+      idSconto: attachedDatabase.typeMapping.read(
+        DriftSqlType.int,
+        data['${effectivePrefix}idSconto'],
+      ),
+      idListino: attachedDatabase.typeMapping.read(
+        DriftSqlType.int,
+        data['${effectivePrefix}idListino'],
+      ),
+    );
+  }
+
+  @override
+  $PromozioniTable createAlias(String alias) {
+    return $PromozioniTable(attachedDatabase, alias);
+  }
+}
+
+class Promozione extends DataClass implements Insertable<Promozione> {
+  final int progressivo;
+  final int? tipoPromozione;
+  final String? descrizione;
+  final String? dataInizio;
+  final String? dataFine;
+  final double? limiteQta;
+  final double? quantitaOmaggio;
+  final double? limiteImporto;
+  final String? stato;
+  final int? priorita;
+  final int? codice;
+  final int? idArticoloOmaggio;
+  final int? idSconto;
+  final int? idListino;
+  const Promozione({
+    required this.progressivo,
+    this.tipoPromozione,
+    this.descrizione,
+    this.dataInizio,
+    this.dataFine,
+    this.limiteQta,
+    this.quantitaOmaggio,
+    this.limiteImporto,
+    this.stato,
+    this.priorita,
+    this.codice,
+    this.idArticoloOmaggio,
+    this.idSconto,
+    this.idListino,
+  });
+  @override
+  Map<String, Expression> toColumns(bool nullToAbsent) {
+    final map = <String, Expression>{};
+    map['progressivo'] = Variable<int>(progressivo);
+    if (!nullToAbsent || tipoPromozione != null) {
+      map['tipoPromozione'] = Variable<int>(tipoPromozione);
+    }
+    if (!nullToAbsent || descrizione != null) {
+      map['descrizione'] = Variable<String>(descrizione);
+    }
+    if (!nullToAbsent || dataInizio != null) {
+      map['dataInizio'] = Variable<String>(dataInizio);
+    }
+    if (!nullToAbsent || dataFine != null) {
+      map['dataFine'] = Variable<String>(dataFine);
+    }
+    if (!nullToAbsent || limiteQta != null) {
+      map['limiteQta'] = Variable<double>(limiteQta);
+    }
+    if (!nullToAbsent || quantitaOmaggio != null) {
+      map['quantitaOmaggio'] = Variable<double>(quantitaOmaggio);
+    }
+    if (!nullToAbsent || limiteImporto != null) {
+      map['limiteImporto'] = Variable<double>(limiteImporto);
+    }
+    if (!nullToAbsent || stato != null) {
+      map['stato'] = Variable<String>(stato);
+    }
+    if (!nullToAbsent || priorita != null) {
+      map['priorita'] = Variable<int>(priorita);
+    }
+    if (!nullToAbsent || codice != null) {
+      map['codice'] = Variable<int>(codice);
+    }
+    if (!nullToAbsent || idArticoloOmaggio != null) {
+      map['idArticoloOmaggio'] = Variable<int>(idArticoloOmaggio);
+    }
+    if (!nullToAbsent || idSconto != null) {
+      map['idSconto'] = Variable<int>(idSconto);
+    }
+    if (!nullToAbsent || idListino != null) {
+      map['idListino'] = Variable<int>(idListino);
+    }
+    return map;
+  }
+
+  PromozioniCompanion toCompanion(bool nullToAbsent) {
+    return PromozioniCompanion(
+      progressivo: Value(progressivo),
+      tipoPromozione: tipoPromozione == null && nullToAbsent
+          ? const Value.absent()
+          : Value(tipoPromozione),
+      descrizione: descrizione == null && nullToAbsent
+          ? const Value.absent()
+          : Value(descrizione),
+      dataInizio: dataInizio == null && nullToAbsent
+          ? const Value.absent()
+          : Value(dataInizio),
+      dataFine: dataFine == null && nullToAbsent
+          ? const Value.absent()
+          : Value(dataFine),
+      limiteQta: limiteQta == null && nullToAbsent
+          ? const Value.absent()
+          : Value(limiteQta),
+      quantitaOmaggio: quantitaOmaggio == null && nullToAbsent
+          ? const Value.absent()
+          : Value(quantitaOmaggio),
+      limiteImporto: limiteImporto == null && nullToAbsent
+          ? const Value.absent()
+          : Value(limiteImporto),
+      stato: stato == null && nullToAbsent
+          ? const Value.absent()
+          : Value(stato),
+      priorita: priorita == null && nullToAbsent
+          ? const Value.absent()
+          : Value(priorita),
+      codice: codice == null && nullToAbsent
+          ? const Value.absent()
+          : Value(codice),
+      idArticoloOmaggio: idArticoloOmaggio == null && nullToAbsent
+          ? const Value.absent()
+          : Value(idArticoloOmaggio),
+      idSconto: idSconto == null && nullToAbsent
+          ? const Value.absent()
+          : Value(idSconto),
+      idListino: idListino == null && nullToAbsent
+          ? const Value.absent()
+          : Value(idListino),
+    );
+  }
+
+  factory Promozione.fromJson(
+    Map<String, dynamic> json, {
+    ValueSerializer? serializer,
+  }) {
+    serializer ??= driftRuntimeOptions.defaultSerializer;
+    return Promozione(
+      progressivo: serializer.fromJson<int>(json['progressivo']),
+      tipoPromozione: serializer.fromJson<int?>(json['tipoPromozione']),
+      descrizione: serializer.fromJson<String?>(json['descrizione']),
+      dataInizio: serializer.fromJson<String?>(json['dataInizio']),
+      dataFine: serializer.fromJson<String?>(json['dataFine']),
+      limiteQta: serializer.fromJson<double?>(json['limiteQta']),
+      quantitaOmaggio: serializer.fromJson<double?>(json['quantitaOmaggio']),
+      limiteImporto: serializer.fromJson<double?>(json['limiteImporto']),
+      stato: serializer.fromJson<String?>(json['stato']),
+      priorita: serializer.fromJson<int?>(json['priorita']),
+      codice: serializer.fromJson<int?>(json['codice']),
+      idArticoloOmaggio: serializer.fromJson<int?>(json['idArticoloOmaggio']),
+      idSconto: serializer.fromJson<int?>(json['idSconto']),
+      idListino: serializer.fromJson<int?>(json['idListino']),
+    );
+  }
+  @override
+  Map<String, dynamic> toJson({ValueSerializer? serializer}) {
+    serializer ??= driftRuntimeOptions.defaultSerializer;
+    return <String, dynamic>{
+      'progressivo': serializer.toJson<int>(progressivo),
+      'tipoPromozione': serializer.toJson<int?>(tipoPromozione),
+      'descrizione': serializer.toJson<String?>(descrizione),
+      'dataInizio': serializer.toJson<String?>(dataInizio),
+      'dataFine': serializer.toJson<String?>(dataFine),
+      'limiteQta': serializer.toJson<double?>(limiteQta),
+      'quantitaOmaggio': serializer.toJson<double?>(quantitaOmaggio),
+      'limiteImporto': serializer.toJson<double?>(limiteImporto),
+      'stato': serializer.toJson<String?>(stato),
+      'priorita': serializer.toJson<int?>(priorita),
+      'codice': serializer.toJson<int?>(codice),
+      'idArticoloOmaggio': serializer.toJson<int?>(idArticoloOmaggio),
+      'idSconto': serializer.toJson<int?>(idSconto),
+      'idListino': serializer.toJson<int?>(idListino),
+    };
+  }
+
+  Promozione copyWith({
+    int? progressivo,
+    Value<int?> tipoPromozione = const Value.absent(),
+    Value<String?> descrizione = const Value.absent(),
+    Value<String?> dataInizio = const Value.absent(),
+    Value<String?> dataFine = const Value.absent(),
+    Value<double?> limiteQta = const Value.absent(),
+    Value<double?> quantitaOmaggio = const Value.absent(),
+    Value<double?> limiteImporto = const Value.absent(),
+    Value<String?> stato = const Value.absent(),
+    Value<int?> priorita = const Value.absent(),
+    Value<int?> codice = const Value.absent(),
+    Value<int?> idArticoloOmaggio = const Value.absent(),
+    Value<int?> idSconto = const Value.absent(),
+    Value<int?> idListino = const Value.absent(),
+  }) => Promozione(
+    progressivo: progressivo ?? this.progressivo,
+    tipoPromozione: tipoPromozione.present
+        ? tipoPromozione.value
+        : this.tipoPromozione,
+    descrizione: descrizione.present ? descrizione.value : this.descrizione,
+    dataInizio: dataInizio.present ? dataInizio.value : this.dataInizio,
+    dataFine: dataFine.present ? dataFine.value : this.dataFine,
+    limiteQta: limiteQta.present ? limiteQta.value : this.limiteQta,
+    quantitaOmaggio: quantitaOmaggio.present
+        ? quantitaOmaggio.value
+        : this.quantitaOmaggio,
+    limiteImporto: limiteImporto.present
+        ? limiteImporto.value
+        : this.limiteImporto,
+    stato: stato.present ? stato.value : this.stato,
+    priorita: priorita.present ? priorita.value : this.priorita,
+    codice: codice.present ? codice.value : this.codice,
+    idArticoloOmaggio: idArticoloOmaggio.present
+        ? idArticoloOmaggio.value
+        : this.idArticoloOmaggio,
+    idSconto: idSconto.present ? idSconto.value : this.idSconto,
+    idListino: idListino.present ? idListino.value : this.idListino,
+  );
+  Promozione copyWithCompanion(PromozioniCompanion data) {
+    return Promozione(
+      progressivo: data.progressivo.present
+          ? data.progressivo.value
+          : this.progressivo,
+      tipoPromozione: data.tipoPromozione.present
+          ? data.tipoPromozione.value
+          : this.tipoPromozione,
+      descrizione: data.descrizione.present
+          ? data.descrizione.value
+          : this.descrizione,
+      dataInizio: data.dataInizio.present
+          ? data.dataInizio.value
+          : this.dataInizio,
+      dataFine: data.dataFine.present ? data.dataFine.value : this.dataFine,
+      limiteQta: data.limiteQta.present ? data.limiteQta.value : this.limiteQta,
+      quantitaOmaggio: data.quantitaOmaggio.present
+          ? data.quantitaOmaggio.value
+          : this.quantitaOmaggio,
+      limiteImporto: data.limiteImporto.present
+          ? data.limiteImporto.value
+          : this.limiteImporto,
+      stato: data.stato.present ? data.stato.value : this.stato,
+      priorita: data.priorita.present ? data.priorita.value : this.priorita,
+      codice: data.codice.present ? data.codice.value : this.codice,
+      idArticoloOmaggio: data.idArticoloOmaggio.present
+          ? data.idArticoloOmaggio.value
+          : this.idArticoloOmaggio,
+      idSconto: data.idSconto.present ? data.idSconto.value : this.idSconto,
+      idListino: data.idListino.present ? data.idListino.value : this.idListino,
+    );
+  }
+
+  @override
+  String toString() {
+    return (StringBuffer('Promozione(')
+          ..write('progressivo: $progressivo, ')
+          ..write('tipoPromozione: $tipoPromozione, ')
+          ..write('descrizione: $descrizione, ')
+          ..write('dataInizio: $dataInizio, ')
+          ..write('dataFine: $dataFine, ')
+          ..write('limiteQta: $limiteQta, ')
+          ..write('quantitaOmaggio: $quantitaOmaggio, ')
+          ..write('limiteImporto: $limiteImporto, ')
+          ..write('stato: $stato, ')
+          ..write('priorita: $priorita, ')
+          ..write('codice: $codice, ')
+          ..write('idArticoloOmaggio: $idArticoloOmaggio, ')
+          ..write('idSconto: $idSconto, ')
+          ..write('idListino: $idListino')
+          ..write(')'))
+        .toString();
+  }
+
+  @override
+  int get hashCode => Object.hash(
+    progressivo,
+    tipoPromozione,
+    descrizione,
+    dataInizio,
+    dataFine,
+    limiteQta,
+    quantitaOmaggio,
+    limiteImporto,
+    stato,
+    priorita,
+    codice,
+    idArticoloOmaggio,
+    idSconto,
+    idListino,
+  );
+  @override
+  bool operator ==(Object other) =>
+      identical(this, other) ||
+      (other is Promozione &&
+          other.progressivo == this.progressivo &&
+          other.tipoPromozione == this.tipoPromozione &&
+          other.descrizione == this.descrizione &&
+          other.dataInizio == this.dataInizio &&
+          other.dataFine == this.dataFine &&
+          other.limiteQta == this.limiteQta &&
+          other.quantitaOmaggio == this.quantitaOmaggio &&
+          other.limiteImporto == this.limiteImporto &&
+          other.stato == this.stato &&
+          other.priorita == this.priorita &&
+          other.codice == this.codice &&
+          other.idArticoloOmaggio == this.idArticoloOmaggio &&
+          other.idSconto == this.idSconto &&
+          other.idListino == this.idListino);
+}
+
+class PromozioniCompanion extends UpdateCompanion<Promozione> {
+  final Value<int> progressivo;
+  final Value<int?> tipoPromozione;
+  final Value<String?> descrizione;
+  final Value<String?> dataInizio;
+  final Value<String?> dataFine;
+  final Value<double?> limiteQta;
+  final Value<double?> quantitaOmaggio;
+  final Value<double?> limiteImporto;
+  final Value<String?> stato;
+  final Value<int?> priorita;
+  final Value<int?> codice;
+  final Value<int?> idArticoloOmaggio;
+  final Value<int?> idSconto;
+  final Value<int?> idListino;
+  const PromozioniCompanion({
+    this.progressivo = const Value.absent(),
+    this.tipoPromozione = const Value.absent(),
+    this.descrizione = const Value.absent(),
+    this.dataInizio = const Value.absent(),
+    this.dataFine = const Value.absent(),
+    this.limiteQta = const Value.absent(),
+    this.quantitaOmaggio = const Value.absent(),
+    this.limiteImporto = const Value.absent(),
+    this.stato = const Value.absent(),
+    this.priorita = const Value.absent(),
+    this.codice = const Value.absent(),
+    this.idArticoloOmaggio = const Value.absent(),
+    this.idSconto = const Value.absent(),
+    this.idListino = const Value.absent(),
+  });
+  PromozioniCompanion.insert({
+    this.progressivo = const Value.absent(),
+    this.tipoPromozione = const Value.absent(),
+    this.descrizione = const Value.absent(),
+    this.dataInizio = const Value.absent(),
+    this.dataFine = const Value.absent(),
+    this.limiteQta = const Value.absent(),
+    this.quantitaOmaggio = const Value.absent(),
+    this.limiteImporto = const Value.absent(),
+    this.stato = const Value.absent(),
+    this.priorita = const Value.absent(),
+    this.codice = const Value.absent(),
+    this.idArticoloOmaggio = const Value.absent(),
+    this.idSconto = const Value.absent(),
+    this.idListino = const Value.absent(),
+  });
+  static Insertable<Promozione> custom({
+    Expression<int>? progressivo,
+    Expression<int>? tipoPromozione,
+    Expression<String>? descrizione,
+    Expression<String>? dataInizio,
+    Expression<String>? dataFine,
+    Expression<double>? limiteQta,
+    Expression<double>? quantitaOmaggio,
+    Expression<double>? limiteImporto,
+    Expression<String>? stato,
+    Expression<int>? priorita,
+    Expression<int>? codice,
+    Expression<int>? idArticoloOmaggio,
+    Expression<int>? idSconto,
+    Expression<int>? idListino,
+  }) {
+    return RawValuesInsertable({
+      if (progressivo != null) 'progressivo': progressivo,
+      if (tipoPromozione != null) 'tipoPromozione': tipoPromozione,
+      if (descrizione != null) 'descrizione': descrizione,
+      if (dataInizio != null) 'dataInizio': dataInizio,
+      if (dataFine != null) 'dataFine': dataFine,
+      if (limiteQta != null) 'limiteQta': limiteQta,
+      if (quantitaOmaggio != null) 'quantitaOmaggio': quantitaOmaggio,
+      if (limiteImporto != null) 'limiteImporto': limiteImporto,
+      if (stato != null) 'stato': stato,
+      if (priorita != null) 'priorita': priorita,
+      if (codice != null) 'codice': codice,
+      if (idArticoloOmaggio != null) 'idArticoloOmaggio': idArticoloOmaggio,
+      if (idSconto != null) 'idSconto': idSconto,
+      if (idListino != null) 'idListino': idListino,
+    });
+  }
+
+  PromozioniCompanion copyWith({
+    Value<int>? progressivo,
+    Value<int?>? tipoPromozione,
+    Value<String?>? descrizione,
+    Value<String?>? dataInizio,
+    Value<String?>? dataFine,
+    Value<double?>? limiteQta,
+    Value<double?>? quantitaOmaggio,
+    Value<double?>? limiteImporto,
+    Value<String?>? stato,
+    Value<int?>? priorita,
+    Value<int?>? codice,
+    Value<int?>? idArticoloOmaggio,
+    Value<int?>? idSconto,
+    Value<int?>? idListino,
+  }) {
+    return PromozioniCompanion(
+      progressivo: progressivo ?? this.progressivo,
+      tipoPromozione: tipoPromozione ?? this.tipoPromozione,
+      descrizione: descrizione ?? this.descrizione,
+      dataInizio: dataInizio ?? this.dataInizio,
+      dataFine: dataFine ?? this.dataFine,
+      limiteQta: limiteQta ?? this.limiteQta,
+      quantitaOmaggio: quantitaOmaggio ?? this.quantitaOmaggio,
+      limiteImporto: limiteImporto ?? this.limiteImporto,
+      stato: stato ?? this.stato,
+      priorita: priorita ?? this.priorita,
+      codice: codice ?? this.codice,
+      idArticoloOmaggio: idArticoloOmaggio ?? this.idArticoloOmaggio,
+      idSconto: idSconto ?? this.idSconto,
+      idListino: idListino ?? this.idListino,
+    );
+  }
+
+  @override
+  Map<String, Expression> toColumns(bool nullToAbsent) {
+    final map = <String, Expression>{};
+    if (progressivo.present) {
+      map['progressivo'] = Variable<int>(progressivo.value);
+    }
+    if (tipoPromozione.present) {
+      map['tipoPromozione'] = Variable<int>(tipoPromozione.value);
+    }
+    if (descrizione.present) {
+      map['descrizione'] = Variable<String>(descrizione.value);
+    }
+    if (dataInizio.present) {
+      map['dataInizio'] = Variable<String>(dataInizio.value);
+    }
+    if (dataFine.present) {
+      map['dataFine'] = Variable<String>(dataFine.value);
+    }
+    if (limiteQta.present) {
+      map['limiteQta'] = Variable<double>(limiteQta.value);
+    }
+    if (quantitaOmaggio.present) {
+      map['quantitaOmaggio'] = Variable<double>(quantitaOmaggio.value);
+    }
+    if (limiteImporto.present) {
+      map['limiteImporto'] = Variable<double>(limiteImporto.value);
+    }
+    if (stato.present) {
+      map['stato'] = Variable<String>(stato.value);
+    }
+    if (priorita.present) {
+      map['priorita'] = Variable<int>(priorita.value);
+    }
+    if (codice.present) {
+      map['codice'] = Variable<int>(codice.value);
+    }
+    if (idArticoloOmaggio.present) {
+      map['idArticoloOmaggio'] = Variable<int>(idArticoloOmaggio.value);
+    }
+    if (idSconto.present) {
+      map['idSconto'] = Variable<int>(idSconto.value);
+    }
+    if (idListino.present) {
+      map['idListino'] = Variable<int>(idListino.value);
+    }
+    return map;
+  }
+
+  @override
+  String toString() {
+    return (StringBuffer('PromozioniCompanion(')
+          ..write('progressivo: $progressivo, ')
+          ..write('tipoPromozione: $tipoPromozione, ')
+          ..write('descrizione: $descrizione, ')
+          ..write('dataInizio: $dataInizio, ')
+          ..write('dataFine: $dataFine, ')
+          ..write('limiteQta: $limiteQta, ')
+          ..write('quantitaOmaggio: $quantitaOmaggio, ')
+          ..write('limiteImporto: $limiteImporto, ')
+          ..write('stato: $stato, ')
+          ..write('priorita: $priorita, ')
+          ..write('codice: $codice, ')
+          ..write('idArticoloOmaggio: $idArticoloOmaggio, ')
+          ..write('idSconto: $idSconto, ')
+          ..write('idListino: $idListino')
+          ..write(')'))
+        .toString();
+  }
+}
+
+class $PromoArticoliTable extends PromoArticoli
+    with TableInfo<$PromoArticoliTable, PromoArticolo> {
+  @override
+  final GeneratedDatabase attachedDatabase;
+  final String? _alias;
+  $PromoArticoliTable(this.attachedDatabase, [this._alias]);
+  static const VerificationMeta _progressivoMeta = const VerificationMeta(
+    'progressivo',
+  );
+  @override
+  late final GeneratedColumn<int> progressivo = GeneratedColumn<int>(
+    'progressivo',
+    aliasedName,
+    false,
+    type: DriftSqlType.int,
+    requiredDuringInsert: true,
+  );
+  static const VerificationMeta _rigaMeta = const VerificationMeta('riga');
+  @override
+  late final GeneratedColumn<int> riga = GeneratedColumn<int>(
+    'riga',
+    aliasedName,
+    false,
+    type: DriftSqlType.int,
+    requiredDuringInsert: true,
+  );
+  static const VerificationMeta _quantitaOmaggioMeta = const VerificationMeta(
+    'quantitaOmaggio',
+  );
+  @override
+  late final GeneratedColumn<double> quantitaOmaggio = GeneratedColumn<double>(
+    'quantitaOmaggio',
+    aliasedName,
+    true,
+    type: DriftSqlType.double,
+    requiredDuringInsert: false,
+  );
+  static const VerificationMeta _idArticoloMeta = const VerificationMeta(
+    'idArticolo',
+  );
+  @override
+  late final GeneratedColumn<int> idArticolo = GeneratedColumn<int>(
+    'idArticolo',
+    aliasedName,
+    true,
+    type: DriftSqlType.int,
+    requiredDuringInsert: false,
+  );
+  @override
+  List<GeneratedColumn> get $columns => [
+    progressivo,
+    riga,
+    quantitaOmaggio,
+    idArticolo,
+  ];
+  @override
+  String get aliasedName => _alias ?? actualTableName;
+  @override
+  String get actualTableName => $name;
+  static const String $name = 'PromoArticoli';
+  @override
+  VerificationContext validateIntegrity(
+    Insertable<PromoArticolo> instance, {
+    bool isInserting = false,
+  }) {
+    final context = VerificationContext();
+    final data = instance.toColumns(true);
+    if (data.containsKey('progressivo')) {
+      context.handle(
+        _progressivoMeta,
+        progressivo.isAcceptableOrUnknown(
+          data['progressivo']!,
+          _progressivoMeta,
+        ),
+      );
+    } else if (isInserting) {
+      context.missing(_progressivoMeta);
+    }
+    if (data.containsKey('riga')) {
+      context.handle(
+        _rigaMeta,
+        riga.isAcceptableOrUnknown(data['riga']!, _rigaMeta),
+      );
+    } else if (isInserting) {
+      context.missing(_rigaMeta);
+    }
+    if (data.containsKey('quantitaOmaggio')) {
+      context.handle(
+        _quantitaOmaggioMeta,
+        quantitaOmaggio.isAcceptableOrUnknown(
+          data['quantitaOmaggio']!,
+          _quantitaOmaggioMeta,
+        ),
+      );
+    }
+    if (data.containsKey('idArticolo')) {
+      context.handle(
+        _idArticoloMeta,
+        idArticolo.isAcceptableOrUnknown(data['idArticolo']!, _idArticoloMeta),
+      );
+    }
+    return context;
+  }
+
+  @override
+  Set<GeneratedColumn> get $primaryKey => {progressivo, riga};
+  @override
+  PromoArticolo map(Map<String, dynamic> data, {String? tablePrefix}) {
+    final effectivePrefix = tablePrefix != null ? '$tablePrefix.' : '';
+    return PromoArticolo(
+      progressivo: attachedDatabase.typeMapping.read(
+        DriftSqlType.int,
+        data['${effectivePrefix}progressivo'],
+      )!,
+      riga: attachedDatabase.typeMapping.read(
+        DriftSqlType.int,
+        data['${effectivePrefix}riga'],
+      )!,
+      quantitaOmaggio: attachedDatabase.typeMapping.read(
+        DriftSqlType.double,
+        data['${effectivePrefix}quantitaOmaggio'],
+      ),
+      idArticolo: attachedDatabase.typeMapping.read(
+        DriftSqlType.int,
+        data['${effectivePrefix}idArticolo'],
+      ),
+    );
+  }
+
+  @override
+  $PromoArticoliTable createAlias(String alias) {
+    return $PromoArticoliTable(attachedDatabase, alias);
+  }
+}
+
+class PromoArticolo extends DataClass implements Insertable<PromoArticolo> {
+  final int progressivo;
+  final int riga;
+  final double? quantitaOmaggio;
+  final int? idArticolo;
+  const PromoArticolo({
+    required this.progressivo,
+    required this.riga,
+    this.quantitaOmaggio,
+    this.idArticolo,
+  });
+  @override
+  Map<String, Expression> toColumns(bool nullToAbsent) {
+    final map = <String, Expression>{};
+    map['progressivo'] = Variable<int>(progressivo);
+    map['riga'] = Variable<int>(riga);
+    if (!nullToAbsent || quantitaOmaggio != null) {
+      map['quantitaOmaggio'] = Variable<double>(quantitaOmaggio);
+    }
+    if (!nullToAbsent || idArticolo != null) {
+      map['idArticolo'] = Variable<int>(idArticolo);
+    }
+    return map;
+  }
+
+  PromoArticoliCompanion toCompanion(bool nullToAbsent) {
+    return PromoArticoliCompanion(
+      progressivo: Value(progressivo),
+      riga: Value(riga),
+      quantitaOmaggio: quantitaOmaggio == null && nullToAbsent
+          ? const Value.absent()
+          : Value(quantitaOmaggio),
+      idArticolo: idArticolo == null && nullToAbsent
+          ? const Value.absent()
+          : Value(idArticolo),
+    );
+  }
+
+  factory PromoArticolo.fromJson(
+    Map<String, dynamic> json, {
+    ValueSerializer? serializer,
+  }) {
+    serializer ??= driftRuntimeOptions.defaultSerializer;
+    return PromoArticolo(
+      progressivo: serializer.fromJson<int>(json['progressivo']),
+      riga: serializer.fromJson<int>(json['riga']),
+      quantitaOmaggio: serializer.fromJson<double?>(json['quantitaOmaggio']),
+      idArticolo: serializer.fromJson<int?>(json['idArticolo']),
+    );
+  }
+  @override
+  Map<String, dynamic> toJson({ValueSerializer? serializer}) {
+    serializer ??= driftRuntimeOptions.defaultSerializer;
+    return <String, dynamic>{
+      'progressivo': serializer.toJson<int>(progressivo),
+      'riga': serializer.toJson<int>(riga),
+      'quantitaOmaggio': serializer.toJson<double?>(quantitaOmaggio),
+      'idArticolo': serializer.toJson<int?>(idArticolo),
+    };
+  }
+
+  PromoArticolo copyWith({
+    int? progressivo,
+    int? riga,
+    Value<double?> quantitaOmaggio = const Value.absent(),
+    Value<int?> idArticolo = const Value.absent(),
+  }) => PromoArticolo(
+    progressivo: progressivo ?? this.progressivo,
+    riga: riga ?? this.riga,
+    quantitaOmaggio: quantitaOmaggio.present
+        ? quantitaOmaggio.value
+        : this.quantitaOmaggio,
+    idArticolo: idArticolo.present ? idArticolo.value : this.idArticolo,
+  );
+  PromoArticolo copyWithCompanion(PromoArticoliCompanion data) {
+    return PromoArticolo(
+      progressivo: data.progressivo.present
+          ? data.progressivo.value
+          : this.progressivo,
+      riga: data.riga.present ? data.riga.value : this.riga,
+      quantitaOmaggio: data.quantitaOmaggio.present
+          ? data.quantitaOmaggio.value
+          : this.quantitaOmaggio,
+      idArticolo: data.idArticolo.present
+          ? data.idArticolo.value
+          : this.idArticolo,
+    );
+  }
+
+  @override
+  String toString() {
+    return (StringBuffer('PromoArticolo(')
+          ..write('progressivo: $progressivo, ')
+          ..write('riga: $riga, ')
+          ..write('quantitaOmaggio: $quantitaOmaggio, ')
+          ..write('idArticolo: $idArticolo')
+          ..write(')'))
+        .toString();
+  }
+
+  @override
+  int get hashCode =>
+      Object.hash(progressivo, riga, quantitaOmaggio, idArticolo);
+  @override
+  bool operator ==(Object other) =>
+      identical(this, other) ||
+      (other is PromoArticolo &&
+          other.progressivo == this.progressivo &&
+          other.riga == this.riga &&
+          other.quantitaOmaggio == this.quantitaOmaggio &&
+          other.idArticolo == this.idArticolo);
+}
+
+class PromoArticoliCompanion extends UpdateCompanion<PromoArticolo> {
+  final Value<int> progressivo;
+  final Value<int> riga;
+  final Value<double?> quantitaOmaggio;
+  final Value<int?> idArticolo;
+  final Value<int> rowid;
+  const PromoArticoliCompanion({
+    this.progressivo = const Value.absent(),
+    this.riga = const Value.absent(),
+    this.quantitaOmaggio = const Value.absent(),
+    this.idArticolo = const Value.absent(),
+    this.rowid = const Value.absent(),
+  });
+  PromoArticoliCompanion.insert({
+    required int progressivo,
+    required int riga,
+    this.quantitaOmaggio = const Value.absent(),
+    this.idArticolo = const Value.absent(),
+    this.rowid = const Value.absent(),
+  }) : progressivo = Value(progressivo),
+       riga = Value(riga);
+  static Insertable<PromoArticolo> custom({
+    Expression<int>? progressivo,
+    Expression<int>? riga,
+    Expression<double>? quantitaOmaggio,
+    Expression<int>? idArticolo,
+    Expression<int>? rowid,
+  }) {
+    return RawValuesInsertable({
+      if (progressivo != null) 'progressivo': progressivo,
+      if (riga != null) 'riga': riga,
+      if (quantitaOmaggio != null) 'quantitaOmaggio': quantitaOmaggio,
+      if (idArticolo != null) 'idArticolo': idArticolo,
+      if (rowid != null) 'rowid': rowid,
+    });
+  }
+
+  PromoArticoliCompanion copyWith({
+    Value<int>? progressivo,
+    Value<int>? riga,
+    Value<double?>? quantitaOmaggio,
+    Value<int?>? idArticolo,
+    Value<int>? rowid,
+  }) {
+    return PromoArticoliCompanion(
+      progressivo: progressivo ?? this.progressivo,
+      riga: riga ?? this.riga,
+      quantitaOmaggio: quantitaOmaggio ?? this.quantitaOmaggio,
+      idArticolo: idArticolo ?? this.idArticolo,
+      rowid: rowid ?? this.rowid,
+    );
+  }
+
+  @override
+  Map<String, Expression> toColumns(bool nullToAbsent) {
+    final map = <String, Expression>{};
+    if (progressivo.present) {
+      map['progressivo'] = Variable<int>(progressivo.value);
+    }
+    if (riga.present) {
+      map['riga'] = Variable<int>(riga.value);
+    }
+    if (quantitaOmaggio.present) {
+      map['quantitaOmaggio'] = Variable<double>(quantitaOmaggio.value);
+    }
+    if (idArticolo.present) {
+      map['idArticolo'] = Variable<int>(idArticolo.value);
+    }
+    if (rowid.present) {
+      map['rowid'] = Variable<int>(rowid.value);
+    }
+    return map;
+  }
+
+  @override
+  String toString() {
+    return (StringBuffer('PromoArticoliCompanion(')
+          ..write('progressivo: $progressivo, ')
+          ..write('riga: $riga, ')
+          ..write('quantitaOmaggio: $quantitaOmaggio, ')
+          ..write('idArticolo: $idArticolo, ')
+          ..write('rowid: $rowid')
+          ..write(')'))
+        .toString();
+  }
+}
+
+class $PromoListiniTable extends PromoListini
+    with TableInfo<$PromoListiniTable, PromoListino> {
+  @override
+  final GeneratedDatabase attachedDatabase;
+  final String? _alias;
+  $PromoListiniTable(this.attachedDatabase, [this._alias]);
+  static const VerificationMeta _progressivoMeta = const VerificationMeta(
+    'progressivo',
+  );
+  @override
+  late final GeneratedColumn<int> progressivo = GeneratedColumn<int>(
+    'progressivo',
+    aliasedName,
+    false,
+    type: DriftSqlType.int,
+    requiredDuringInsert: true,
+  );
+  static const VerificationMeta _idListinoMeta = const VerificationMeta(
+    'idListino',
+  );
+  @override
+  late final GeneratedColumn<int> idListino = GeneratedColumn<int>(
+    'idListino',
+    aliasedName,
+    false,
+    type: DriftSqlType.int,
+    requiredDuringInsert: true,
+  );
+  @override
+  List<GeneratedColumn> get $columns => [progressivo, idListino];
+  @override
+  String get aliasedName => _alias ?? actualTableName;
+  @override
+  String get actualTableName => $name;
+  static const String $name = 'PromoListini';
+  @override
+  VerificationContext validateIntegrity(
+    Insertable<PromoListino> instance, {
+    bool isInserting = false,
+  }) {
+    final context = VerificationContext();
+    final data = instance.toColumns(true);
+    if (data.containsKey('progressivo')) {
+      context.handle(
+        _progressivoMeta,
+        progressivo.isAcceptableOrUnknown(
+          data['progressivo']!,
+          _progressivoMeta,
+        ),
+      );
+    } else if (isInserting) {
+      context.missing(_progressivoMeta);
+    }
+    if (data.containsKey('idListino')) {
+      context.handle(
+        _idListinoMeta,
+        idListino.isAcceptableOrUnknown(data['idListino']!, _idListinoMeta),
+      );
+    } else if (isInserting) {
+      context.missing(_idListinoMeta);
+    }
+    return context;
+  }
+
+  @override
+  Set<GeneratedColumn> get $primaryKey => {progressivo, idListino};
+  @override
+  PromoListino map(Map<String, dynamic> data, {String? tablePrefix}) {
+    final effectivePrefix = tablePrefix != null ? '$tablePrefix.' : '';
+    return PromoListino(
+      progressivo: attachedDatabase.typeMapping.read(
+        DriftSqlType.int,
+        data['${effectivePrefix}progressivo'],
+      )!,
+      idListino: attachedDatabase.typeMapping.read(
+        DriftSqlType.int,
+        data['${effectivePrefix}idListino'],
+      )!,
+    );
+  }
+
+  @override
+  $PromoListiniTable createAlias(String alias) {
+    return $PromoListiniTable(attachedDatabase, alias);
+  }
+}
+
+class PromoListino extends DataClass implements Insertable<PromoListino> {
+  final int progressivo;
+  final int idListino;
+  const PromoListino({required this.progressivo, required this.idListino});
+  @override
+  Map<String, Expression> toColumns(bool nullToAbsent) {
+    final map = <String, Expression>{};
+    map['progressivo'] = Variable<int>(progressivo);
+    map['idListino'] = Variable<int>(idListino);
+    return map;
+  }
+
+  PromoListiniCompanion toCompanion(bool nullToAbsent) {
+    return PromoListiniCompanion(
+      progressivo: Value(progressivo),
+      idListino: Value(idListino),
+    );
+  }
+
+  factory PromoListino.fromJson(
+    Map<String, dynamic> json, {
+    ValueSerializer? serializer,
+  }) {
+    serializer ??= driftRuntimeOptions.defaultSerializer;
+    return PromoListino(
+      progressivo: serializer.fromJson<int>(json['progressivo']),
+      idListino: serializer.fromJson<int>(json['idListino']),
+    );
+  }
+  @override
+  Map<String, dynamic> toJson({ValueSerializer? serializer}) {
+    serializer ??= driftRuntimeOptions.defaultSerializer;
+    return <String, dynamic>{
+      'progressivo': serializer.toJson<int>(progressivo),
+      'idListino': serializer.toJson<int>(idListino),
+    };
+  }
+
+  PromoListino copyWith({int? progressivo, int? idListino}) => PromoListino(
+    progressivo: progressivo ?? this.progressivo,
+    idListino: idListino ?? this.idListino,
+  );
+  PromoListino copyWithCompanion(PromoListiniCompanion data) {
+    return PromoListino(
+      progressivo: data.progressivo.present
+          ? data.progressivo.value
+          : this.progressivo,
+      idListino: data.idListino.present ? data.idListino.value : this.idListino,
+    );
+  }
+
+  @override
+  String toString() {
+    return (StringBuffer('PromoListino(')
+          ..write('progressivo: $progressivo, ')
+          ..write('idListino: $idListino')
+          ..write(')'))
+        .toString();
+  }
+
+  @override
+  int get hashCode => Object.hash(progressivo, idListino);
+  @override
+  bool operator ==(Object other) =>
+      identical(this, other) ||
+      (other is PromoListino &&
+          other.progressivo == this.progressivo &&
+          other.idListino == this.idListino);
+}
+
+class PromoListiniCompanion extends UpdateCompanion<PromoListino> {
+  final Value<int> progressivo;
+  final Value<int> idListino;
+  final Value<int> rowid;
+  const PromoListiniCompanion({
+    this.progressivo = const Value.absent(),
+    this.idListino = const Value.absent(),
+    this.rowid = const Value.absent(),
+  });
+  PromoListiniCompanion.insert({
+    required int progressivo,
+    required int idListino,
+    this.rowid = const Value.absent(),
+  }) : progressivo = Value(progressivo),
+       idListino = Value(idListino);
+  static Insertable<PromoListino> custom({
+    Expression<int>? progressivo,
+    Expression<int>? idListino,
+    Expression<int>? rowid,
+  }) {
+    return RawValuesInsertable({
+      if (progressivo != null) 'progressivo': progressivo,
+      if (idListino != null) 'idListino': idListino,
+      if (rowid != null) 'rowid': rowid,
+    });
+  }
+
+  PromoListiniCompanion copyWith({
+    Value<int>? progressivo,
+    Value<int>? idListino,
+    Value<int>? rowid,
+  }) {
+    return PromoListiniCompanion(
+      progressivo: progressivo ?? this.progressivo,
+      idListino: idListino ?? this.idListino,
+      rowid: rowid ?? this.rowid,
+    );
+  }
+
+  @override
+  Map<String, Expression> toColumns(bool nullToAbsent) {
+    final map = <String, Expression>{};
+    if (progressivo.present) {
+      map['progressivo'] = Variable<int>(progressivo.value);
+    }
+    if (idListino.present) {
+      map['idListino'] = Variable<int>(idListino.value);
+    }
+    if (rowid.present) {
+      map['rowid'] = Variable<int>(rowid.value);
+    }
+    return map;
+  }
+
+  @override
+  String toString() {
+    return (StringBuffer('PromoListiniCompanion(')
+          ..write('progressivo: $progressivo, ')
+          ..write('idListino: $idListino, ')
+          ..write('rowid: $rowid')
+          ..write(')'))
+        .toString();
+  }
+}
+
+class $PromoOmaggiTable extends PromoOmaggi
+    with TableInfo<$PromoOmaggiTable, PromoOmaggio> {
+  @override
+  final GeneratedDatabase attachedDatabase;
+  final String? _alias;
+  $PromoOmaggiTable(this.attachedDatabase, [this._alias]);
+  static const VerificationMeta _progressivoMeta = const VerificationMeta(
+    'progressivo',
+  );
+  @override
+  late final GeneratedColumn<int> progressivo = GeneratedColumn<int>(
+    'progressivo',
+    aliasedName,
+    false,
+    type: DriftSqlType.int,
+    requiredDuringInsert: true,
+  );
+  static const VerificationMeta _rigaMeta = const VerificationMeta('riga');
+  @override
+  late final GeneratedColumn<int> riga = GeneratedColumn<int>(
+    'riga',
+    aliasedName,
+    false,
+    type: DriftSqlType.int,
+    requiredDuringInsert: true,
+  );
+  static const VerificationMeta _idArticoloMeta = const VerificationMeta(
+    'idArticolo',
+  );
+  @override
+  late final GeneratedColumn<int> idArticolo = GeneratedColumn<int>(
+    'idArticolo',
+    aliasedName,
+    true,
+    type: DriftSqlType.int,
+    requiredDuringInsert: false,
+  );
+  static const VerificationMeta _quantitaMeta = const VerificationMeta(
+    'quantita',
+  );
+  @override
+  late final GeneratedColumn<double> quantita = GeneratedColumn<double>(
+    'quantita',
+    aliasedName,
+    true,
+    type: DriftSqlType.double,
+    requiredDuringInsert: false,
+  );
+  @override
+  List<GeneratedColumn> get $columns => [
+    progressivo,
+    riga,
+    idArticolo,
+    quantita,
+  ];
+  @override
+  String get aliasedName => _alias ?? actualTableName;
+  @override
+  String get actualTableName => $name;
+  static const String $name = 'PromoOmaggi';
+  @override
+  VerificationContext validateIntegrity(
+    Insertable<PromoOmaggio> instance, {
+    bool isInserting = false,
+  }) {
+    final context = VerificationContext();
+    final data = instance.toColumns(true);
+    if (data.containsKey('progressivo')) {
+      context.handle(
+        _progressivoMeta,
+        progressivo.isAcceptableOrUnknown(
+          data['progressivo']!,
+          _progressivoMeta,
+        ),
+      );
+    } else if (isInserting) {
+      context.missing(_progressivoMeta);
+    }
+    if (data.containsKey('riga')) {
+      context.handle(
+        _rigaMeta,
+        riga.isAcceptableOrUnknown(data['riga']!, _rigaMeta),
+      );
+    } else if (isInserting) {
+      context.missing(_rigaMeta);
+    }
+    if (data.containsKey('idArticolo')) {
+      context.handle(
+        _idArticoloMeta,
+        idArticolo.isAcceptableOrUnknown(data['idArticolo']!, _idArticoloMeta),
+      );
+    }
+    if (data.containsKey('quantita')) {
+      context.handle(
+        _quantitaMeta,
+        quantita.isAcceptableOrUnknown(data['quantita']!, _quantitaMeta),
+      );
+    }
+    return context;
+  }
+
+  @override
+  Set<GeneratedColumn> get $primaryKey => {progressivo, riga};
+  @override
+  PromoOmaggio map(Map<String, dynamic> data, {String? tablePrefix}) {
+    final effectivePrefix = tablePrefix != null ? '$tablePrefix.' : '';
+    return PromoOmaggio(
+      progressivo: attachedDatabase.typeMapping.read(
+        DriftSqlType.int,
+        data['${effectivePrefix}progressivo'],
+      )!,
+      riga: attachedDatabase.typeMapping.read(
+        DriftSqlType.int,
+        data['${effectivePrefix}riga'],
+      )!,
+      idArticolo: attachedDatabase.typeMapping.read(
+        DriftSqlType.int,
+        data['${effectivePrefix}idArticolo'],
+      ),
+      quantita: attachedDatabase.typeMapping.read(
+        DriftSqlType.double,
+        data['${effectivePrefix}quantita'],
+      ),
+    );
+  }
+
+  @override
+  $PromoOmaggiTable createAlias(String alias) {
+    return $PromoOmaggiTable(attachedDatabase, alias);
+  }
+}
+
+class PromoOmaggio extends DataClass implements Insertable<PromoOmaggio> {
+  final int progressivo;
+  final int riga;
+  final int? idArticolo;
+  final double? quantita;
+  const PromoOmaggio({
+    required this.progressivo,
+    required this.riga,
+    this.idArticolo,
+    this.quantita,
+  });
+  @override
+  Map<String, Expression> toColumns(bool nullToAbsent) {
+    final map = <String, Expression>{};
+    map['progressivo'] = Variable<int>(progressivo);
+    map['riga'] = Variable<int>(riga);
+    if (!nullToAbsent || idArticolo != null) {
+      map['idArticolo'] = Variable<int>(idArticolo);
+    }
+    if (!nullToAbsent || quantita != null) {
+      map['quantita'] = Variable<double>(quantita);
+    }
+    return map;
+  }
+
+  PromoOmaggiCompanion toCompanion(bool nullToAbsent) {
+    return PromoOmaggiCompanion(
+      progressivo: Value(progressivo),
+      riga: Value(riga),
+      idArticolo: idArticolo == null && nullToAbsent
+          ? const Value.absent()
+          : Value(idArticolo),
+      quantita: quantita == null && nullToAbsent
+          ? const Value.absent()
+          : Value(quantita),
+    );
+  }
+
+  factory PromoOmaggio.fromJson(
+    Map<String, dynamic> json, {
+    ValueSerializer? serializer,
+  }) {
+    serializer ??= driftRuntimeOptions.defaultSerializer;
+    return PromoOmaggio(
+      progressivo: serializer.fromJson<int>(json['progressivo']),
+      riga: serializer.fromJson<int>(json['riga']),
+      idArticolo: serializer.fromJson<int?>(json['idArticolo']),
+      quantita: serializer.fromJson<double?>(json['quantita']),
+    );
+  }
+  @override
+  Map<String, dynamic> toJson({ValueSerializer? serializer}) {
+    serializer ??= driftRuntimeOptions.defaultSerializer;
+    return <String, dynamic>{
+      'progressivo': serializer.toJson<int>(progressivo),
+      'riga': serializer.toJson<int>(riga),
+      'idArticolo': serializer.toJson<int?>(idArticolo),
+      'quantita': serializer.toJson<double?>(quantita),
+    };
+  }
+
+  PromoOmaggio copyWith({
+    int? progressivo,
+    int? riga,
+    Value<int?> idArticolo = const Value.absent(),
+    Value<double?> quantita = const Value.absent(),
+  }) => PromoOmaggio(
+    progressivo: progressivo ?? this.progressivo,
+    riga: riga ?? this.riga,
+    idArticolo: idArticolo.present ? idArticolo.value : this.idArticolo,
+    quantita: quantita.present ? quantita.value : this.quantita,
+  );
+  PromoOmaggio copyWithCompanion(PromoOmaggiCompanion data) {
+    return PromoOmaggio(
+      progressivo: data.progressivo.present
+          ? data.progressivo.value
+          : this.progressivo,
+      riga: data.riga.present ? data.riga.value : this.riga,
+      idArticolo: data.idArticolo.present
+          ? data.idArticolo.value
+          : this.idArticolo,
+      quantita: data.quantita.present ? data.quantita.value : this.quantita,
+    );
+  }
+
+  @override
+  String toString() {
+    return (StringBuffer('PromoOmaggio(')
+          ..write('progressivo: $progressivo, ')
+          ..write('riga: $riga, ')
+          ..write('idArticolo: $idArticolo, ')
+          ..write('quantita: $quantita')
+          ..write(')'))
+        .toString();
+  }
+
+  @override
+  int get hashCode => Object.hash(progressivo, riga, idArticolo, quantita);
+  @override
+  bool operator ==(Object other) =>
+      identical(this, other) ||
+      (other is PromoOmaggio &&
+          other.progressivo == this.progressivo &&
+          other.riga == this.riga &&
+          other.idArticolo == this.idArticolo &&
+          other.quantita == this.quantita);
+}
+
+class PromoOmaggiCompanion extends UpdateCompanion<PromoOmaggio> {
+  final Value<int> progressivo;
+  final Value<int> riga;
+  final Value<int?> idArticolo;
+  final Value<double?> quantita;
+  final Value<int> rowid;
+  const PromoOmaggiCompanion({
+    this.progressivo = const Value.absent(),
+    this.riga = const Value.absent(),
+    this.idArticolo = const Value.absent(),
+    this.quantita = const Value.absent(),
+    this.rowid = const Value.absent(),
+  });
+  PromoOmaggiCompanion.insert({
+    required int progressivo,
+    required int riga,
+    this.idArticolo = const Value.absent(),
+    this.quantita = const Value.absent(),
+    this.rowid = const Value.absent(),
+  }) : progressivo = Value(progressivo),
+       riga = Value(riga);
+  static Insertable<PromoOmaggio> custom({
+    Expression<int>? progressivo,
+    Expression<int>? riga,
+    Expression<int>? idArticolo,
+    Expression<double>? quantita,
+    Expression<int>? rowid,
+  }) {
+    return RawValuesInsertable({
+      if (progressivo != null) 'progressivo': progressivo,
+      if (riga != null) 'riga': riga,
+      if (idArticolo != null) 'idArticolo': idArticolo,
+      if (quantita != null) 'quantita': quantita,
+      if (rowid != null) 'rowid': rowid,
+    });
+  }
+
+  PromoOmaggiCompanion copyWith({
+    Value<int>? progressivo,
+    Value<int>? riga,
+    Value<int?>? idArticolo,
+    Value<double?>? quantita,
+    Value<int>? rowid,
+  }) {
+    return PromoOmaggiCompanion(
+      progressivo: progressivo ?? this.progressivo,
+      riga: riga ?? this.riga,
+      idArticolo: idArticolo ?? this.idArticolo,
+      quantita: quantita ?? this.quantita,
+      rowid: rowid ?? this.rowid,
+    );
+  }
+
+  @override
+  Map<String, Expression> toColumns(bool nullToAbsent) {
+    final map = <String, Expression>{};
+    if (progressivo.present) {
+      map['progressivo'] = Variable<int>(progressivo.value);
+    }
+    if (riga.present) {
+      map['riga'] = Variable<int>(riga.value);
+    }
+    if (idArticolo.present) {
+      map['idArticolo'] = Variable<int>(idArticolo.value);
+    }
+    if (quantita.present) {
+      map['quantita'] = Variable<double>(quantita.value);
+    }
+    if (rowid.present) {
+      map['rowid'] = Variable<int>(rowid.value);
+    }
+    return map;
+  }
+
+  @override
+  String toString() {
+    return (StringBuffer('PromoOmaggiCompanion(')
+          ..write('progressivo: $progressivo, ')
+          ..write('riga: $riga, ')
+          ..write('idArticolo: $idArticolo, ')
+          ..write('quantita: $quantita, ')
+          ..write('rowid: $rowid')
+          ..write(')'))
+        .toString();
+  }
+}
+
+class $ClientiAgenteTable extends ClientiAgente
+    with TableInfo<$ClientiAgenteTable, ClientiAgenteData> {
+  @override
+  final GeneratedDatabase attachedDatabase;
+  final String? _alias;
+  $ClientiAgenteTable(this.attachedDatabase, [this._alias]);
+  static const VerificationMeta _idClientiAgenteMeta = const VerificationMeta(
+    'idClientiAgente',
+  );
+  @override
+  late final GeneratedColumn<int> idClientiAgente = GeneratedColumn<int>(
+    'idClientiAgente',
+    aliasedName,
+    false,
+    hasAutoIncrement: true,
+    type: DriftSqlType.int,
+    requiredDuringInsert: false,
+    defaultConstraints: GeneratedColumn.constraintIsAlways(
+      'PRIMARY KEY AUTOINCREMENT',
+    ),
+  );
+  static const VerificationMeta _idClienteMeta = const VerificationMeta(
+    'idCliente',
+  );
+  @override
+  late final GeneratedColumn<int> idCliente = GeneratedColumn<int>(
+    'idCliente',
+    aliasedName,
+    false,
+    type: DriftSqlType.int,
+    requiredDuringInsert: true,
+  );
+  static const VerificationMeta _idAgenteMeta = const VerificationMeta(
+    'idAgente',
+  );
+  @override
+  late final GeneratedColumn<int> idAgente = GeneratedColumn<int>(
+    'idAgente',
+    aliasedName,
+    false,
+    type: DriftSqlType.int,
+    requiredDuringInsert: true,
+  );
+  static const VerificationMeta _attivoMeta = const VerificationMeta('attivo');
+  @override
+  late final GeneratedColumn<int> attivo = GeneratedColumn<int>(
+    'attivo',
+    aliasedName,
+    false,
+    type: DriftSqlType.int,
+    requiredDuringInsert: false,
+    defaultValue: const Constant(1),
+  );
+  @override
+  List<GeneratedColumn> get $columns => [
+    idClientiAgente,
+    idCliente,
+    idAgente,
+    attivo,
+  ];
+  @override
+  String get aliasedName => _alias ?? actualTableName;
+  @override
+  String get actualTableName => $name;
+  static const String $name = 'Clienti_Agente';
+  @override
+  VerificationContext validateIntegrity(
+    Insertable<ClientiAgenteData> instance, {
+    bool isInserting = false,
+  }) {
+    final context = VerificationContext();
+    final data = instance.toColumns(true);
+    if (data.containsKey('idClientiAgente')) {
+      context.handle(
+        _idClientiAgenteMeta,
+        idClientiAgente.isAcceptableOrUnknown(
+          data['idClientiAgente']!,
+          _idClientiAgenteMeta,
+        ),
+      );
+    }
+    if (data.containsKey('idCliente')) {
+      context.handle(
+        _idClienteMeta,
+        idCliente.isAcceptableOrUnknown(data['idCliente']!, _idClienteMeta),
+      );
+    } else if (isInserting) {
+      context.missing(_idClienteMeta);
+    }
+    if (data.containsKey('idAgente')) {
+      context.handle(
+        _idAgenteMeta,
+        idAgente.isAcceptableOrUnknown(data['idAgente']!, _idAgenteMeta),
+      );
+    } else if (isInserting) {
+      context.missing(_idAgenteMeta);
+    }
+    if (data.containsKey('attivo')) {
+      context.handle(
+        _attivoMeta,
+        attivo.isAcceptableOrUnknown(data['attivo']!, _attivoMeta),
+      );
+    }
+    return context;
+  }
+
+  @override
+  Set<GeneratedColumn> get $primaryKey => {idClientiAgente};
+  @override
+  ClientiAgenteData map(Map<String, dynamic> data, {String? tablePrefix}) {
+    final effectivePrefix = tablePrefix != null ? '$tablePrefix.' : '';
+    return ClientiAgenteData(
+      idClientiAgente: attachedDatabase.typeMapping.read(
+        DriftSqlType.int,
+        data['${effectivePrefix}idClientiAgente'],
+      )!,
+      idCliente: attachedDatabase.typeMapping.read(
+        DriftSqlType.int,
+        data['${effectivePrefix}idCliente'],
+      )!,
+      idAgente: attachedDatabase.typeMapping.read(
+        DriftSqlType.int,
+        data['${effectivePrefix}idAgente'],
+      )!,
+      attivo: attachedDatabase.typeMapping.read(
+        DriftSqlType.int,
+        data['${effectivePrefix}attivo'],
+      )!,
+    );
+  }
+
+  @override
+  $ClientiAgenteTable createAlias(String alias) {
+    return $ClientiAgenteTable(attachedDatabase, alias);
+  }
+}
+
+class ClientiAgenteData extends DataClass
+    implements Insertable<ClientiAgenteData> {
+  final int idClientiAgente;
+  final int idCliente;
+  final int idAgente;
+  final int attivo;
+  const ClientiAgenteData({
+    required this.idClientiAgente,
+    required this.idCliente,
+    required this.idAgente,
+    required this.attivo,
+  });
+  @override
+  Map<String, Expression> toColumns(bool nullToAbsent) {
+    final map = <String, Expression>{};
+    map['idClientiAgente'] = Variable<int>(idClientiAgente);
+    map['idCliente'] = Variable<int>(idCliente);
+    map['idAgente'] = Variable<int>(idAgente);
+    map['attivo'] = Variable<int>(attivo);
+    return map;
+  }
+
+  ClientiAgenteCompanion toCompanion(bool nullToAbsent) {
+    return ClientiAgenteCompanion(
+      idClientiAgente: Value(idClientiAgente),
+      idCliente: Value(idCliente),
+      idAgente: Value(idAgente),
+      attivo: Value(attivo),
+    );
+  }
+
+  factory ClientiAgenteData.fromJson(
+    Map<String, dynamic> json, {
+    ValueSerializer? serializer,
+  }) {
+    serializer ??= driftRuntimeOptions.defaultSerializer;
+    return ClientiAgenteData(
+      idClientiAgente: serializer.fromJson<int>(json['idClientiAgente']),
+      idCliente: serializer.fromJson<int>(json['idCliente']),
+      idAgente: serializer.fromJson<int>(json['idAgente']),
+      attivo: serializer.fromJson<int>(json['attivo']),
+    );
+  }
+  @override
+  Map<String, dynamic> toJson({ValueSerializer? serializer}) {
+    serializer ??= driftRuntimeOptions.defaultSerializer;
+    return <String, dynamic>{
+      'idClientiAgente': serializer.toJson<int>(idClientiAgente),
+      'idCliente': serializer.toJson<int>(idCliente),
+      'idAgente': serializer.toJson<int>(idAgente),
+      'attivo': serializer.toJson<int>(attivo),
+    };
+  }
+
+  ClientiAgenteData copyWith({
+    int? idClientiAgente,
+    int? idCliente,
+    int? idAgente,
+    int? attivo,
+  }) => ClientiAgenteData(
+    idClientiAgente: idClientiAgente ?? this.idClientiAgente,
+    idCliente: idCliente ?? this.idCliente,
+    idAgente: idAgente ?? this.idAgente,
+    attivo: attivo ?? this.attivo,
+  );
+  ClientiAgenteData copyWithCompanion(ClientiAgenteCompanion data) {
+    return ClientiAgenteData(
+      idClientiAgente: data.idClientiAgente.present
+          ? data.idClientiAgente.value
+          : this.idClientiAgente,
+      idCliente: data.idCliente.present ? data.idCliente.value : this.idCliente,
+      idAgente: data.idAgente.present ? data.idAgente.value : this.idAgente,
+      attivo: data.attivo.present ? data.attivo.value : this.attivo,
+    );
+  }
+
+  @override
+  String toString() {
+    return (StringBuffer('ClientiAgenteData(')
+          ..write('idClientiAgente: $idClientiAgente, ')
+          ..write('idCliente: $idCliente, ')
+          ..write('idAgente: $idAgente, ')
+          ..write('attivo: $attivo')
+          ..write(')'))
+        .toString();
+  }
+
+  @override
+  int get hashCode => Object.hash(idClientiAgente, idCliente, idAgente, attivo);
+  @override
+  bool operator ==(Object other) =>
+      identical(this, other) ||
+      (other is ClientiAgenteData &&
+          other.idClientiAgente == this.idClientiAgente &&
+          other.idCliente == this.idCliente &&
+          other.idAgente == this.idAgente &&
+          other.attivo == this.attivo);
+}
+
+class ClientiAgenteCompanion extends UpdateCompanion<ClientiAgenteData> {
+  final Value<int> idClientiAgente;
+  final Value<int> idCliente;
+  final Value<int> idAgente;
+  final Value<int> attivo;
+  const ClientiAgenteCompanion({
+    this.idClientiAgente = const Value.absent(),
+    this.idCliente = const Value.absent(),
+    this.idAgente = const Value.absent(),
+    this.attivo = const Value.absent(),
+  });
+  ClientiAgenteCompanion.insert({
+    this.idClientiAgente = const Value.absent(),
+    required int idCliente,
+    required int idAgente,
+    this.attivo = const Value.absent(),
+  }) : idCliente = Value(idCliente),
+       idAgente = Value(idAgente);
+  static Insertable<ClientiAgenteData> custom({
+    Expression<int>? idClientiAgente,
+    Expression<int>? idCliente,
+    Expression<int>? idAgente,
+    Expression<int>? attivo,
+  }) {
+    return RawValuesInsertable({
+      if (idClientiAgente != null) 'idClientiAgente': idClientiAgente,
+      if (idCliente != null) 'idCliente': idCliente,
+      if (idAgente != null) 'idAgente': idAgente,
+      if (attivo != null) 'attivo': attivo,
+    });
+  }
+
+  ClientiAgenteCompanion copyWith({
+    Value<int>? idClientiAgente,
+    Value<int>? idCliente,
+    Value<int>? idAgente,
+    Value<int>? attivo,
+  }) {
+    return ClientiAgenteCompanion(
+      idClientiAgente: idClientiAgente ?? this.idClientiAgente,
+      idCliente: idCliente ?? this.idCliente,
+      idAgente: idAgente ?? this.idAgente,
+      attivo: attivo ?? this.attivo,
+    );
+  }
+
+  @override
+  Map<String, Expression> toColumns(bool nullToAbsent) {
+    final map = <String, Expression>{};
+    if (idClientiAgente.present) {
+      map['idClientiAgente'] = Variable<int>(idClientiAgente.value);
+    }
+    if (idCliente.present) {
+      map['idCliente'] = Variable<int>(idCliente.value);
+    }
+    if (idAgente.present) {
+      map['idAgente'] = Variable<int>(idAgente.value);
+    }
+    if (attivo.present) {
+      map['attivo'] = Variable<int>(attivo.value);
+    }
+    return map;
+  }
+
+  @override
+  String toString() {
+    return (StringBuffer('ClientiAgenteCompanion(')
+          ..write('idClientiAgente: $idClientiAgente, ')
+          ..write('idCliente: $idCliente, ')
+          ..write('idAgente: $idAgente, ')
+          ..write('attivo: $attivo')
+          ..write(')'))
+        .toString();
+  }
+}
+
+class $ScadenzeTable extends Scadenze with TableInfo<$ScadenzeTable, Scadenza> {
+  @override
+  final GeneratedDatabase attachedDatabase;
+  final String? _alias;
+  $ScadenzeTable(this.attachedDatabase, [this._alias]);
+  static const VerificationMeta _idScadenzaMeta = const VerificationMeta(
+    'idScadenza',
+  );
+  @override
+  late final GeneratedColumn<int> idScadenza = GeneratedColumn<int>(
+    'idScadenza',
+    aliasedName,
+    false,
+    hasAutoIncrement: true,
+    type: DriftSqlType.int,
+    requiredDuringInsert: false,
+    defaultConstraints: GeneratedColumn.constraintIsAlways(
+      'PRIMARY KEY AUTOINCREMENT',
+    ),
+  );
+  static const VerificationMeta _idClienteMeta = const VerificationMeta(
+    'idCliente',
+  );
+  @override
+  late final GeneratedColumn<int> idCliente = GeneratedColumn<int>(
+    'idCliente',
+    aliasedName,
+    true,
+    type: DriftSqlType.int,
+    requiredDuringInsert: false,
+  );
+  static const VerificationMeta _idAgenteMeta = const VerificationMeta(
+    'idAgente',
+  );
+  @override
+  late final GeneratedColumn<int> idAgente = GeneratedColumn<int>(
+    'idAgente',
+    aliasedName,
+    true,
+    type: DriftSqlType.int,
+    requiredDuringInsert: false,
+  );
+  static const VerificationMeta _chiaveMeta = const VerificationMeta('chiave');
+  @override
+  late final GeneratedColumn<String> chiave = GeneratedColumn<String>(
+    'chiave',
+    aliasedName,
+    true,
+    type: DriftSqlType.string,
+    requiredDuringInsert: false,
+  );
+  static const VerificationMeta _numPartitaMeta = const VerificationMeta(
+    'numPartita',
+  );
+  @override
+  late final GeneratedColumn<String> numPartita = GeneratedColumn<String>(
+    'numPartita',
+    aliasedName,
+    true,
+    type: DriftSqlType.string,
+    requiredDuringInsert: false,
+  );
+  static const VerificationMeta _dataScadenzaMeta = const VerificationMeta(
+    'dataScadenza',
+  );
+  @override
+  late final GeneratedColumn<String> dataScadenza = GeneratedColumn<String>(
+    'dataScadenza',
+    aliasedName,
+    true,
+    type: DriftSqlType.string,
+    requiredDuringInsert: false,
+  );
+  static const VerificationMeta _segnoMeta = const VerificationMeta('segno');
+  @override
+  late final GeneratedColumn<String> segno = GeneratedColumn<String>(
+    'segno',
+    aliasedName,
+    true,
+    type: DriftSqlType.string,
+    requiredDuringInsert: false,
+  );
+  static const VerificationMeta _importoFatturaMeta = const VerificationMeta(
+    'importoFattura',
+  );
+  @override
+  late final GeneratedColumn<double> importoFattura = GeneratedColumn<double>(
+    'importoFattura',
+    aliasedName,
+    true,
+    type: DriftSqlType.double,
+    requiredDuringInsert: false,
+  );
+  static const VerificationMeta _valutaMeta = const VerificationMeta('valuta');
+  @override
+  late final GeneratedColumn<String> valuta = GeneratedColumn<String>(
+    'valuta',
+    aliasedName,
+    true,
+    type: DriftSqlType.string,
+    requiredDuringInsert: false,
+  );
+  static const VerificationMeta _numDocMeta = const VerificationMeta('numDoc');
+  @override
+  late final GeneratedColumn<String> numDoc = GeneratedColumn<String>(
+    'numDoc',
+    aliasedName,
+    true,
+    type: DriftSqlType.string,
+    requiredDuringInsert: false,
+  );
+  static const VerificationMeta _serieDocMeta = const VerificationMeta(
+    'serieDoc',
+  );
+  @override
+  late final GeneratedColumn<String> serieDoc = GeneratedColumn<String>(
+    'serieDoc',
+    aliasedName,
+    true,
+    type: DriftSqlType.string,
+    requiredDuringInsert: false,
+  );
+  static const VerificationMeta _dataDocMeta = const VerificationMeta(
+    'dataDoc',
+  );
+  @override
+  late final GeneratedColumn<String> dataDoc = GeneratedColumn<String>(
+    'dataDoc',
+    aliasedName,
+    true,
+    type: DriftSqlType.string,
+    requiredDuringInsert: false,
+  );
+  static const VerificationMeta _importoScadenzaMeta = const VerificationMeta(
+    'importoScadenza',
+  );
+  @override
+  late final GeneratedColumn<double> importoScadenza = GeneratedColumn<double>(
+    'importoScadenza',
+    aliasedName,
+    true,
+    type: DriftSqlType.double,
+    requiredDuringInsert: false,
+  );
+  static const VerificationMeta _saldoMeta = const VerificationMeta('saldo');
+  @override
+  late final GeneratedColumn<double> saldo = GeneratedColumn<double>(
+    'saldo',
+    aliasedName,
+    true,
+    type: DriftSqlType.double,
+    requiredDuringInsert: false,
+  );
+  static const VerificationMeta _tipoPagamentoMeta = const VerificationMeta(
+    'tipoPagamento',
+  );
+  @override
+  late final GeneratedColumn<String> tipoPagamento = GeneratedColumn<String>(
+    'tipoPagamento',
+    aliasedName,
+    true,
+    type: DriftSqlType.string,
+    requiredDuringInsert: false,
+  );
+  static const VerificationMeta _flgSoppressaMeta = const VerificationMeta(
+    'flgSoppressa',
+  );
+  @override
+  late final GeneratedColumn<int> flgSoppressa = GeneratedColumn<int>(
+    'flgSoppressa',
+    aliasedName,
+    true,
+    type: DriftSqlType.int,
+    requiredDuringInsert: false,
+  );
+  static const VerificationMeta _importoAbbuonoMeta = const VerificationMeta(
+    'importoAbbuono',
+  );
+  @override
+  late final GeneratedColumn<double> importoAbbuono = GeneratedColumn<double>(
+    'importoAbbuono',
+    aliasedName,
+    true,
+    type: DriftSqlType.double,
+    requiredDuringInsert: false,
+  );
+  static const VerificationMeta _noteMeta = const VerificationMeta('note');
+  @override
+  late final GeneratedColumn<String> note = GeneratedColumn<String>(
+    'note',
+    aliasedName,
+    true,
+    type: DriftSqlType.string,
+    requiredDuringInsert: false,
+  );
+  static const VerificationMeta _dataModificaMeta = const VerificationMeta(
+    'dataModifica',
+  );
+  @override
+  late final GeneratedColumn<String> dataModifica = GeneratedColumn<String>(
+    'dataModifica',
+    aliasedName,
+    true,
+    type: DriftSqlType.string,
+    requiredDuringInsert: false,
+  );
+  static const VerificationMeta _statoMeta = const VerificationMeta('stato');
+  @override
+  late final GeneratedColumn<String> stato = GeneratedColumn<String>(
+    'stato',
+    aliasedName,
+    true,
+    type: DriftSqlType.string,
+    requiredDuringInsert: false,
+  );
+  @override
+  List<GeneratedColumn> get $columns => [
+    idScadenza,
+    idCliente,
+    idAgente,
+    chiave,
+    numPartita,
+    dataScadenza,
+    segno,
+    importoFattura,
+    valuta,
+    numDoc,
+    serieDoc,
+    dataDoc,
+    importoScadenza,
+    saldo,
+    tipoPagamento,
+    flgSoppressa,
+    importoAbbuono,
+    note,
+    dataModifica,
+    stato,
+  ];
+  @override
+  String get aliasedName => _alias ?? actualTableName;
+  @override
+  String get actualTableName => $name;
+  static const String $name = 'Scadenze';
+  @override
+  VerificationContext validateIntegrity(
+    Insertable<Scadenza> instance, {
+    bool isInserting = false,
+  }) {
+    final context = VerificationContext();
+    final data = instance.toColumns(true);
+    if (data.containsKey('idScadenza')) {
+      context.handle(
+        _idScadenzaMeta,
+        idScadenza.isAcceptableOrUnknown(data['idScadenza']!, _idScadenzaMeta),
+      );
+    }
+    if (data.containsKey('idCliente')) {
+      context.handle(
+        _idClienteMeta,
+        idCliente.isAcceptableOrUnknown(data['idCliente']!, _idClienteMeta),
+      );
+    }
+    if (data.containsKey('idAgente')) {
+      context.handle(
+        _idAgenteMeta,
+        idAgente.isAcceptableOrUnknown(data['idAgente']!, _idAgenteMeta),
+      );
+    }
+    if (data.containsKey('chiave')) {
+      context.handle(
+        _chiaveMeta,
+        chiave.isAcceptableOrUnknown(data['chiave']!, _chiaveMeta),
+      );
+    }
+    if (data.containsKey('numPartita')) {
+      context.handle(
+        _numPartitaMeta,
+        numPartita.isAcceptableOrUnknown(data['numPartita']!, _numPartitaMeta),
+      );
+    }
+    if (data.containsKey('dataScadenza')) {
+      context.handle(
+        _dataScadenzaMeta,
+        dataScadenza.isAcceptableOrUnknown(
+          data['dataScadenza']!,
+          _dataScadenzaMeta,
+        ),
+      );
+    }
+    if (data.containsKey('segno')) {
+      context.handle(
+        _segnoMeta,
+        segno.isAcceptableOrUnknown(data['segno']!, _segnoMeta),
+      );
+    }
+    if (data.containsKey('importoFattura')) {
+      context.handle(
+        _importoFatturaMeta,
+        importoFattura.isAcceptableOrUnknown(
+          data['importoFattura']!,
+          _importoFatturaMeta,
+        ),
+      );
+    }
+    if (data.containsKey('valuta')) {
+      context.handle(
+        _valutaMeta,
+        valuta.isAcceptableOrUnknown(data['valuta']!, _valutaMeta),
+      );
+    }
+    if (data.containsKey('numDoc')) {
+      context.handle(
+        _numDocMeta,
+        numDoc.isAcceptableOrUnknown(data['numDoc']!, _numDocMeta),
+      );
+    }
+    if (data.containsKey('serieDoc')) {
+      context.handle(
+        _serieDocMeta,
+        serieDoc.isAcceptableOrUnknown(data['serieDoc']!, _serieDocMeta),
+      );
+    }
+    if (data.containsKey('dataDoc')) {
+      context.handle(
+        _dataDocMeta,
+        dataDoc.isAcceptableOrUnknown(data['dataDoc']!, _dataDocMeta),
+      );
+    }
+    if (data.containsKey('importoScadenza')) {
+      context.handle(
+        _importoScadenzaMeta,
+        importoScadenza.isAcceptableOrUnknown(
+          data['importoScadenza']!,
+          _importoScadenzaMeta,
+        ),
+      );
+    }
+    if (data.containsKey('saldo')) {
+      context.handle(
+        _saldoMeta,
+        saldo.isAcceptableOrUnknown(data['saldo']!, _saldoMeta),
+      );
+    }
+    if (data.containsKey('tipoPagamento')) {
+      context.handle(
+        _tipoPagamentoMeta,
+        tipoPagamento.isAcceptableOrUnknown(
+          data['tipoPagamento']!,
+          _tipoPagamentoMeta,
+        ),
+      );
+    }
+    if (data.containsKey('flgSoppressa')) {
+      context.handle(
+        _flgSoppressaMeta,
+        flgSoppressa.isAcceptableOrUnknown(
+          data['flgSoppressa']!,
+          _flgSoppressaMeta,
+        ),
+      );
+    }
+    if (data.containsKey('importoAbbuono')) {
+      context.handle(
+        _importoAbbuonoMeta,
+        importoAbbuono.isAcceptableOrUnknown(
+          data['importoAbbuono']!,
+          _importoAbbuonoMeta,
+        ),
+      );
+    }
+    if (data.containsKey('note')) {
+      context.handle(
+        _noteMeta,
+        note.isAcceptableOrUnknown(data['note']!, _noteMeta),
+      );
+    }
+    if (data.containsKey('dataModifica')) {
+      context.handle(
+        _dataModificaMeta,
+        dataModifica.isAcceptableOrUnknown(
+          data['dataModifica']!,
+          _dataModificaMeta,
+        ),
+      );
+    }
+    if (data.containsKey('stato')) {
+      context.handle(
+        _statoMeta,
+        stato.isAcceptableOrUnknown(data['stato']!, _statoMeta),
+      );
+    }
+    return context;
+  }
+
+  @override
+  Set<GeneratedColumn> get $primaryKey => {idScadenza};
+  @override
+  Scadenza map(Map<String, dynamic> data, {String? tablePrefix}) {
+    final effectivePrefix = tablePrefix != null ? '$tablePrefix.' : '';
+    return Scadenza(
+      idScadenza: attachedDatabase.typeMapping.read(
+        DriftSqlType.int,
+        data['${effectivePrefix}idScadenza'],
+      )!,
+      idCliente: attachedDatabase.typeMapping.read(
+        DriftSqlType.int,
+        data['${effectivePrefix}idCliente'],
+      ),
+      idAgente: attachedDatabase.typeMapping.read(
+        DriftSqlType.int,
+        data['${effectivePrefix}idAgente'],
+      ),
+      chiave: attachedDatabase.typeMapping.read(
+        DriftSqlType.string,
+        data['${effectivePrefix}chiave'],
+      ),
+      numPartita: attachedDatabase.typeMapping.read(
+        DriftSqlType.string,
+        data['${effectivePrefix}numPartita'],
+      ),
+      dataScadenza: attachedDatabase.typeMapping.read(
+        DriftSqlType.string,
+        data['${effectivePrefix}dataScadenza'],
+      ),
+      segno: attachedDatabase.typeMapping.read(
+        DriftSqlType.string,
+        data['${effectivePrefix}segno'],
+      ),
+      importoFattura: attachedDatabase.typeMapping.read(
+        DriftSqlType.double,
+        data['${effectivePrefix}importoFattura'],
+      ),
+      valuta: attachedDatabase.typeMapping.read(
+        DriftSqlType.string,
+        data['${effectivePrefix}valuta'],
+      ),
+      numDoc: attachedDatabase.typeMapping.read(
+        DriftSqlType.string,
+        data['${effectivePrefix}numDoc'],
+      ),
+      serieDoc: attachedDatabase.typeMapping.read(
+        DriftSqlType.string,
+        data['${effectivePrefix}serieDoc'],
+      ),
+      dataDoc: attachedDatabase.typeMapping.read(
+        DriftSqlType.string,
+        data['${effectivePrefix}dataDoc'],
+      ),
+      importoScadenza: attachedDatabase.typeMapping.read(
+        DriftSqlType.double,
+        data['${effectivePrefix}importoScadenza'],
+      ),
+      saldo: attachedDatabase.typeMapping.read(
+        DriftSqlType.double,
+        data['${effectivePrefix}saldo'],
+      ),
+      tipoPagamento: attachedDatabase.typeMapping.read(
+        DriftSqlType.string,
+        data['${effectivePrefix}tipoPagamento'],
+      ),
+      flgSoppressa: attachedDatabase.typeMapping.read(
+        DriftSqlType.int,
+        data['${effectivePrefix}flgSoppressa'],
+      ),
+      importoAbbuono: attachedDatabase.typeMapping.read(
+        DriftSqlType.double,
+        data['${effectivePrefix}importoAbbuono'],
+      ),
+      note: attachedDatabase.typeMapping.read(
+        DriftSqlType.string,
+        data['${effectivePrefix}note'],
+      ),
+      dataModifica: attachedDatabase.typeMapping.read(
+        DriftSqlType.string,
+        data['${effectivePrefix}dataModifica'],
+      ),
+      stato: attachedDatabase.typeMapping.read(
+        DriftSqlType.string,
+        data['${effectivePrefix}stato'],
+      ),
+    );
+  }
+
+  @override
+  $ScadenzeTable createAlias(String alias) {
+    return $ScadenzeTable(attachedDatabase, alias);
+  }
+}
+
+class Scadenza extends DataClass implements Insertable<Scadenza> {
+  final int idScadenza;
+  final int? idCliente;
+  final int? idAgente;
+  final String? chiave;
+  final String? numPartita;
+  final String? dataScadenza;
+  final String? segno;
+  final double? importoFattura;
+  final String? valuta;
+  final String? numDoc;
+  final String? serieDoc;
+  final String? dataDoc;
+  final double? importoScadenza;
+  final double? saldo;
+  final String? tipoPagamento;
+  final int? flgSoppressa;
+  final double? importoAbbuono;
+  final String? note;
+  final String? dataModifica;
+  final String? stato;
+  const Scadenza({
+    required this.idScadenza,
+    this.idCliente,
+    this.idAgente,
+    this.chiave,
+    this.numPartita,
+    this.dataScadenza,
+    this.segno,
+    this.importoFattura,
+    this.valuta,
+    this.numDoc,
+    this.serieDoc,
+    this.dataDoc,
+    this.importoScadenza,
+    this.saldo,
+    this.tipoPagamento,
+    this.flgSoppressa,
+    this.importoAbbuono,
+    this.note,
+    this.dataModifica,
+    this.stato,
+  });
+  @override
+  Map<String, Expression> toColumns(bool nullToAbsent) {
+    final map = <String, Expression>{};
+    map['idScadenza'] = Variable<int>(idScadenza);
+    if (!nullToAbsent || idCliente != null) {
+      map['idCliente'] = Variable<int>(idCliente);
+    }
+    if (!nullToAbsent || idAgente != null) {
+      map['idAgente'] = Variable<int>(idAgente);
+    }
+    if (!nullToAbsent || chiave != null) {
+      map['chiave'] = Variable<String>(chiave);
+    }
+    if (!nullToAbsent || numPartita != null) {
+      map['numPartita'] = Variable<String>(numPartita);
+    }
+    if (!nullToAbsent || dataScadenza != null) {
+      map['dataScadenza'] = Variable<String>(dataScadenza);
+    }
+    if (!nullToAbsent || segno != null) {
+      map['segno'] = Variable<String>(segno);
+    }
+    if (!nullToAbsent || importoFattura != null) {
+      map['importoFattura'] = Variable<double>(importoFattura);
+    }
+    if (!nullToAbsent || valuta != null) {
+      map['valuta'] = Variable<String>(valuta);
+    }
+    if (!nullToAbsent || numDoc != null) {
+      map['numDoc'] = Variable<String>(numDoc);
+    }
+    if (!nullToAbsent || serieDoc != null) {
+      map['serieDoc'] = Variable<String>(serieDoc);
+    }
+    if (!nullToAbsent || dataDoc != null) {
+      map['dataDoc'] = Variable<String>(dataDoc);
+    }
+    if (!nullToAbsent || importoScadenza != null) {
+      map['importoScadenza'] = Variable<double>(importoScadenza);
+    }
+    if (!nullToAbsent || saldo != null) {
+      map['saldo'] = Variable<double>(saldo);
+    }
+    if (!nullToAbsent || tipoPagamento != null) {
+      map['tipoPagamento'] = Variable<String>(tipoPagamento);
+    }
+    if (!nullToAbsent || flgSoppressa != null) {
+      map['flgSoppressa'] = Variable<int>(flgSoppressa);
+    }
+    if (!nullToAbsent || importoAbbuono != null) {
+      map['importoAbbuono'] = Variable<double>(importoAbbuono);
+    }
+    if (!nullToAbsent || note != null) {
+      map['note'] = Variable<String>(note);
+    }
+    if (!nullToAbsent || dataModifica != null) {
+      map['dataModifica'] = Variable<String>(dataModifica);
+    }
+    if (!nullToAbsent || stato != null) {
+      map['stato'] = Variable<String>(stato);
+    }
+    return map;
+  }
+
+  ScadenzeCompanion toCompanion(bool nullToAbsent) {
+    return ScadenzeCompanion(
+      idScadenza: Value(idScadenza),
+      idCliente: idCliente == null && nullToAbsent
+          ? const Value.absent()
+          : Value(idCliente),
+      idAgente: idAgente == null && nullToAbsent
+          ? const Value.absent()
+          : Value(idAgente),
+      chiave: chiave == null && nullToAbsent
+          ? const Value.absent()
+          : Value(chiave),
+      numPartita: numPartita == null && nullToAbsent
+          ? const Value.absent()
+          : Value(numPartita),
+      dataScadenza: dataScadenza == null && nullToAbsent
+          ? const Value.absent()
+          : Value(dataScadenza),
+      segno: segno == null && nullToAbsent
+          ? const Value.absent()
+          : Value(segno),
+      importoFattura: importoFattura == null && nullToAbsent
+          ? const Value.absent()
+          : Value(importoFattura),
+      valuta: valuta == null && nullToAbsent
+          ? const Value.absent()
+          : Value(valuta),
+      numDoc: numDoc == null && nullToAbsent
+          ? const Value.absent()
+          : Value(numDoc),
+      serieDoc: serieDoc == null && nullToAbsent
+          ? const Value.absent()
+          : Value(serieDoc),
+      dataDoc: dataDoc == null && nullToAbsent
+          ? const Value.absent()
+          : Value(dataDoc),
+      importoScadenza: importoScadenza == null && nullToAbsent
+          ? const Value.absent()
+          : Value(importoScadenza),
+      saldo: saldo == null && nullToAbsent
+          ? const Value.absent()
+          : Value(saldo),
+      tipoPagamento: tipoPagamento == null && nullToAbsent
+          ? const Value.absent()
+          : Value(tipoPagamento),
+      flgSoppressa: flgSoppressa == null && nullToAbsent
+          ? const Value.absent()
+          : Value(flgSoppressa),
+      importoAbbuono: importoAbbuono == null && nullToAbsent
+          ? const Value.absent()
+          : Value(importoAbbuono),
+      note: note == null && nullToAbsent ? const Value.absent() : Value(note),
+      dataModifica: dataModifica == null && nullToAbsent
+          ? const Value.absent()
+          : Value(dataModifica),
+      stato: stato == null && nullToAbsent
+          ? const Value.absent()
+          : Value(stato),
+    );
+  }
+
+  factory Scadenza.fromJson(
+    Map<String, dynamic> json, {
+    ValueSerializer? serializer,
+  }) {
+    serializer ??= driftRuntimeOptions.defaultSerializer;
+    return Scadenza(
+      idScadenza: serializer.fromJson<int>(json['idScadenza']),
+      idCliente: serializer.fromJson<int?>(json['idCliente']),
+      idAgente: serializer.fromJson<int?>(json['idAgente']),
+      chiave: serializer.fromJson<String?>(json['chiave']),
+      numPartita: serializer.fromJson<String?>(json['numPartita']),
+      dataScadenza: serializer.fromJson<String?>(json['dataScadenza']),
+      segno: serializer.fromJson<String?>(json['segno']),
+      importoFattura: serializer.fromJson<double?>(json['importoFattura']),
+      valuta: serializer.fromJson<String?>(json['valuta']),
+      numDoc: serializer.fromJson<String?>(json['numDoc']),
+      serieDoc: serializer.fromJson<String?>(json['serieDoc']),
+      dataDoc: serializer.fromJson<String?>(json['dataDoc']),
+      importoScadenza: serializer.fromJson<double?>(json['importoScadenza']),
+      saldo: serializer.fromJson<double?>(json['saldo']),
+      tipoPagamento: serializer.fromJson<String?>(json['tipoPagamento']),
+      flgSoppressa: serializer.fromJson<int?>(json['flgSoppressa']),
+      importoAbbuono: serializer.fromJson<double?>(json['importoAbbuono']),
+      note: serializer.fromJson<String?>(json['note']),
+      dataModifica: serializer.fromJson<String?>(json['dataModifica']),
+      stato: serializer.fromJson<String?>(json['stato']),
+    );
+  }
+  @override
+  Map<String, dynamic> toJson({ValueSerializer? serializer}) {
+    serializer ??= driftRuntimeOptions.defaultSerializer;
+    return <String, dynamic>{
+      'idScadenza': serializer.toJson<int>(idScadenza),
+      'idCliente': serializer.toJson<int?>(idCliente),
+      'idAgente': serializer.toJson<int?>(idAgente),
+      'chiave': serializer.toJson<String?>(chiave),
+      'numPartita': serializer.toJson<String?>(numPartita),
+      'dataScadenza': serializer.toJson<String?>(dataScadenza),
+      'segno': serializer.toJson<String?>(segno),
+      'importoFattura': serializer.toJson<double?>(importoFattura),
+      'valuta': serializer.toJson<String?>(valuta),
+      'numDoc': serializer.toJson<String?>(numDoc),
+      'serieDoc': serializer.toJson<String?>(serieDoc),
+      'dataDoc': serializer.toJson<String?>(dataDoc),
+      'importoScadenza': serializer.toJson<double?>(importoScadenza),
+      'saldo': serializer.toJson<double?>(saldo),
+      'tipoPagamento': serializer.toJson<String?>(tipoPagamento),
+      'flgSoppressa': serializer.toJson<int?>(flgSoppressa),
+      'importoAbbuono': serializer.toJson<double?>(importoAbbuono),
+      'note': serializer.toJson<String?>(note),
+      'dataModifica': serializer.toJson<String?>(dataModifica),
+      'stato': serializer.toJson<String?>(stato),
+    };
+  }
+
+  Scadenza copyWith({
+    int? idScadenza,
+    Value<int?> idCliente = const Value.absent(),
+    Value<int?> idAgente = const Value.absent(),
+    Value<String?> chiave = const Value.absent(),
+    Value<String?> numPartita = const Value.absent(),
+    Value<String?> dataScadenza = const Value.absent(),
+    Value<String?> segno = const Value.absent(),
+    Value<double?> importoFattura = const Value.absent(),
+    Value<String?> valuta = const Value.absent(),
+    Value<String?> numDoc = const Value.absent(),
+    Value<String?> serieDoc = const Value.absent(),
+    Value<String?> dataDoc = const Value.absent(),
+    Value<double?> importoScadenza = const Value.absent(),
+    Value<double?> saldo = const Value.absent(),
+    Value<String?> tipoPagamento = const Value.absent(),
+    Value<int?> flgSoppressa = const Value.absent(),
+    Value<double?> importoAbbuono = const Value.absent(),
+    Value<String?> note = const Value.absent(),
+    Value<String?> dataModifica = const Value.absent(),
+    Value<String?> stato = const Value.absent(),
+  }) => Scadenza(
+    idScadenza: idScadenza ?? this.idScadenza,
+    idCliente: idCliente.present ? idCliente.value : this.idCliente,
+    idAgente: idAgente.present ? idAgente.value : this.idAgente,
+    chiave: chiave.present ? chiave.value : this.chiave,
+    numPartita: numPartita.present ? numPartita.value : this.numPartita,
+    dataScadenza: dataScadenza.present ? dataScadenza.value : this.dataScadenza,
+    segno: segno.present ? segno.value : this.segno,
+    importoFattura: importoFattura.present
+        ? importoFattura.value
+        : this.importoFattura,
+    valuta: valuta.present ? valuta.value : this.valuta,
+    numDoc: numDoc.present ? numDoc.value : this.numDoc,
+    serieDoc: serieDoc.present ? serieDoc.value : this.serieDoc,
+    dataDoc: dataDoc.present ? dataDoc.value : this.dataDoc,
+    importoScadenza: importoScadenza.present
+        ? importoScadenza.value
+        : this.importoScadenza,
+    saldo: saldo.present ? saldo.value : this.saldo,
+    tipoPagamento: tipoPagamento.present
+        ? tipoPagamento.value
+        : this.tipoPagamento,
+    flgSoppressa: flgSoppressa.present ? flgSoppressa.value : this.flgSoppressa,
+    importoAbbuono: importoAbbuono.present
+        ? importoAbbuono.value
+        : this.importoAbbuono,
+    note: note.present ? note.value : this.note,
+    dataModifica: dataModifica.present ? dataModifica.value : this.dataModifica,
+    stato: stato.present ? stato.value : this.stato,
+  );
+  Scadenza copyWithCompanion(ScadenzeCompanion data) {
+    return Scadenza(
+      idScadenza: data.idScadenza.present
+          ? data.idScadenza.value
+          : this.idScadenza,
+      idCliente: data.idCliente.present ? data.idCliente.value : this.idCliente,
+      idAgente: data.idAgente.present ? data.idAgente.value : this.idAgente,
+      chiave: data.chiave.present ? data.chiave.value : this.chiave,
+      numPartita: data.numPartita.present
+          ? data.numPartita.value
+          : this.numPartita,
+      dataScadenza: data.dataScadenza.present
+          ? data.dataScadenza.value
+          : this.dataScadenza,
+      segno: data.segno.present ? data.segno.value : this.segno,
+      importoFattura: data.importoFattura.present
+          ? data.importoFattura.value
+          : this.importoFattura,
+      valuta: data.valuta.present ? data.valuta.value : this.valuta,
+      numDoc: data.numDoc.present ? data.numDoc.value : this.numDoc,
+      serieDoc: data.serieDoc.present ? data.serieDoc.value : this.serieDoc,
+      dataDoc: data.dataDoc.present ? data.dataDoc.value : this.dataDoc,
+      importoScadenza: data.importoScadenza.present
+          ? data.importoScadenza.value
+          : this.importoScadenza,
+      saldo: data.saldo.present ? data.saldo.value : this.saldo,
+      tipoPagamento: data.tipoPagamento.present
+          ? data.tipoPagamento.value
+          : this.tipoPagamento,
+      flgSoppressa: data.flgSoppressa.present
+          ? data.flgSoppressa.value
+          : this.flgSoppressa,
+      importoAbbuono: data.importoAbbuono.present
+          ? data.importoAbbuono.value
+          : this.importoAbbuono,
+      note: data.note.present ? data.note.value : this.note,
+      dataModifica: data.dataModifica.present
+          ? data.dataModifica.value
+          : this.dataModifica,
+      stato: data.stato.present ? data.stato.value : this.stato,
+    );
+  }
+
+  @override
+  String toString() {
+    return (StringBuffer('Scadenza(')
+          ..write('idScadenza: $idScadenza, ')
+          ..write('idCliente: $idCliente, ')
+          ..write('idAgente: $idAgente, ')
+          ..write('chiave: $chiave, ')
+          ..write('numPartita: $numPartita, ')
+          ..write('dataScadenza: $dataScadenza, ')
+          ..write('segno: $segno, ')
+          ..write('importoFattura: $importoFattura, ')
+          ..write('valuta: $valuta, ')
+          ..write('numDoc: $numDoc, ')
+          ..write('serieDoc: $serieDoc, ')
+          ..write('dataDoc: $dataDoc, ')
+          ..write('importoScadenza: $importoScadenza, ')
+          ..write('saldo: $saldo, ')
+          ..write('tipoPagamento: $tipoPagamento, ')
+          ..write('flgSoppressa: $flgSoppressa, ')
+          ..write('importoAbbuono: $importoAbbuono, ')
+          ..write('note: $note, ')
+          ..write('dataModifica: $dataModifica, ')
+          ..write('stato: $stato')
+          ..write(')'))
+        .toString();
+  }
+
+  @override
+  int get hashCode => Object.hash(
+    idScadenza,
+    idCliente,
+    idAgente,
+    chiave,
+    numPartita,
+    dataScadenza,
+    segno,
+    importoFattura,
+    valuta,
+    numDoc,
+    serieDoc,
+    dataDoc,
+    importoScadenza,
+    saldo,
+    tipoPagamento,
+    flgSoppressa,
+    importoAbbuono,
+    note,
+    dataModifica,
+    stato,
+  );
+  @override
+  bool operator ==(Object other) =>
+      identical(this, other) ||
+      (other is Scadenza &&
+          other.idScadenza == this.idScadenza &&
+          other.idCliente == this.idCliente &&
+          other.idAgente == this.idAgente &&
+          other.chiave == this.chiave &&
+          other.numPartita == this.numPartita &&
+          other.dataScadenza == this.dataScadenza &&
+          other.segno == this.segno &&
+          other.importoFattura == this.importoFattura &&
+          other.valuta == this.valuta &&
+          other.numDoc == this.numDoc &&
+          other.serieDoc == this.serieDoc &&
+          other.dataDoc == this.dataDoc &&
+          other.importoScadenza == this.importoScadenza &&
+          other.saldo == this.saldo &&
+          other.tipoPagamento == this.tipoPagamento &&
+          other.flgSoppressa == this.flgSoppressa &&
+          other.importoAbbuono == this.importoAbbuono &&
+          other.note == this.note &&
+          other.dataModifica == this.dataModifica &&
+          other.stato == this.stato);
+}
+
+class ScadenzeCompanion extends UpdateCompanion<Scadenza> {
+  final Value<int> idScadenza;
+  final Value<int?> idCliente;
+  final Value<int?> idAgente;
+  final Value<String?> chiave;
+  final Value<String?> numPartita;
+  final Value<String?> dataScadenza;
+  final Value<String?> segno;
+  final Value<double?> importoFattura;
+  final Value<String?> valuta;
+  final Value<String?> numDoc;
+  final Value<String?> serieDoc;
+  final Value<String?> dataDoc;
+  final Value<double?> importoScadenza;
+  final Value<double?> saldo;
+  final Value<String?> tipoPagamento;
+  final Value<int?> flgSoppressa;
+  final Value<double?> importoAbbuono;
+  final Value<String?> note;
+  final Value<String?> dataModifica;
+  final Value<String?> stato;
+  const ScadenzeCompanion({
+    this.idScadenza = const Value.absent(),
+    this.idCliente = const Value.absent(),
+    this.idAgente = const Value.absent(),
+    this.chiave = const Value.absent(),
+    this.numPartita = const Value.absent(),
+    this.dataScadenza = const Value.absent(),
+    this.segno = const Value.absent(),
+    this.importoFattura = const Value.absent(),
+    this.valuta = const Value.absent(),
+    this.numDoc = const Value.absent(),
+    this.serieDoc = const Value.absent(),
+    this.dataDoc = const Value.absent(),
+    this.importoScadenza = const Value.absent(),
+    this.saldo = const Value.absent(),
+    this.tipoPagamento = const Value.absent(),
+    this.flgSoppressa = const Value.absent(),
+    this.importoAbbuono = const Value.absent(),
+    this.note = const Value.absent(),
+    this.dataModifica = const Value.absent(),
+    this.stato = const Value.absent(),
+  });
+  ScadenzeCompanion.insert({
+    this.idScadenza = const Value.absent(),
+    this.idCliente = const Value.absent(),
+    this.idAgente = const Value.absent(),
+    this.chiave = const Value.absent(),
+    this.numPartita = const Value.absent(),
+    this.dataScadenza = const Value.absent(),
+    this.segno = const Value.absent(),
+    this.importoFattura = const Value.absent(),
+    this.valuta = const Value.absent(),
+    this.numDoc = const Value.absent(),
+    this.serieDoc = const Value.absent(),
+    this.dataDoc = const Value.absent(),
+    this.importoScadenza = const Value.absent(),
+    this.saldo = const Value.absent(),
+    this.tipoPagamento = const Value.absent(),
+    this.flgSoppressa = const Value.absent(),
+    this.importoAbbuono = const Value.absent(),
+    this.note = const Value.absent(),
+    this.dataModifica = const Value.absent(),
+    this.stato = const Value.absent(),
+  });
+  static Insertable<Scadenza> custom({
+    Expression<int>? idScadenza,
+    Expression<int>? idCliente,
+    Expression<int>? idAgente,
+    Expression<String>? chiave,
+    Expression<String>? numPartita,
+    Expression<String>? dataScadenza,
+    Expression<String>? segno,
+    Expression<double>? importoFattura,
+    Expression<String>? valuta,
+    Expression<String>? numDoc,
+    Expression<String>? serieDoc,
+    Expression<String>? dataDoc,
+    Expression<double>? importoScadenza,
+    Expression<double>? saldo,
+    Expression<String>? tipoPagamento,
+    Expression<int>? flgSoppressa,
+    Expression<double>? importoAbbuono,
+    Expression<String>? note,
+    Expression<String>? dataModifica,
+    Expression<String>? stato,
+  }) {
+    return RawValuesInsertable({
+      if (idScadenza != null) 'idScadenza': idScadenza,
+      if (idCliente != null) 'idCliente': idCliente,
+      if (idAgente != null) 'idAgente': idAgente,
+      if (chiave != null) 'chiave': chiave,
+      if (numPartita != null) 'numPartita': numPartita,
+      if (dataScadenza != null) 'dataScadenza': dataScadenza,
+      if (segno != null) 'segno': segno,
+      if (importoFattura != null) 'importoFattura': importoFattura,
+      if (valuta != null) 'valuta': valuta,
+      if (numDoc != null) 'numDoc': numDoc,
+      if (serieDoc != null) 'serieDoc': serieDoc,
+      if (dataDoc != null) 'dataDoc': dataDoc,
+      if (importoScadenza != null) 'importoScadenza': importoScadenza,
+      if (saldo != null) 'saldo': saldo,
+      if (tipoPagamento != null) 'tipoPagamento': tipoPagamento,
+      if (flgSoppressa != null) 'flgSoppressa': flgSoppressa,
+      if (importoAbbuono != null) 'importoAbbuono': importoAbbuono,
+      if (note != null) 'note': note,
+      if (dataModifica != null) 'dataModifica': dataModifica,
+      if (stato != null) 'stato': stato,
+    });
+  }
+
+  ScadenzeCompanion copyWith({
+    Value<int>? idScadenza,
+    Value<int?>? idCliente,
+    Value<int?>? idAgente,
+    Value<String?>? chiave,
+    Value<String?>? numPartita,
+    Value<String?>? dataScadenza,
+    Value<String?>? segno,
+    Value<double?>? importoFattura,
+    Value<String?>? valuta,
+    Value<String?>? numDoc,
+    Value<String?>? serieDoc,
+    Value<String?>? dataDoc,
+    Value<double?>? importoScadenza,
+    Value<double?>? saldo,
+    Value<String?>? tipoPagamento,
+    Value<int?>? flgSoppressa,
+    Value<double?>? importoAbbuono,
+    Value<String?>? note,
+    Value<String?>? dataModifica,
+    Value<String?>? stato,
+  }) {
+    return ScadenzeCompanion(
+      idScadenza: idScadenza ?? this.idScadenza,
+      idCliente: idCliente ?? this.idCliente,
+      idAgente: idAgente ?? this.idAgente,
+      chiave: chiave ?? this.chiave,
+      numPartita: numPartita ?? this.numPartita,
+      dataScadenza: dataScadenza ?? this.dataScadenza,
+      segno: segno ?? this.segno,
+      importoFattura: importoFattura ?? this.importoFattura,
+      valuta: valuta ?? this.valuta,
+      numDoc: numDoc ?? this.numDoc,
+      serieDoc: serieDoc ?? this.serieDoc,
+      dataDoc: dataDoc ?? this.dataDoc,
+      importoScadenza: importoScadenza ?? this.importoScadenza,
+      saldo: saldo ?? this.saldo,
+      tipoPagamento: tipoPagamento ?? this.tipoPagamento,
+      flgSoppressa: flgSoppressa ?? this.flgSoppressa,
+      importoAbbuono: importoAbbuono ?? this.importoAbbuono,
+      note: note ?? this.note,
+      dataModifica: dataModifica ?? this.dataModifica,
+      stato: stato ?? this.stato,
+    );
+  }
+
+  @override
+  Map<String, Expression> toColumns(bool nullToAbsent) {
+    final map = <String, Expression>{};
+    if (idScadenza.present) {
+      map['idScadenza'] = Variable<int>(idScadenza.value);
+    }
+    if (idCliente.present) {
+      map['idCliente'] = Variable<int>(idCliente.value);
+    }
+    if (idAgente.present) {
+      map['idAgente'] = Variable<int>(idAgente.value);
+    }
+    if (chiave.present) {
+      map['chiave'] = Variable<String>(chiave.value);
+    }
+    if (numPartita.present) {
+      map['numPartita'] = Variable<String>(numPartita.value);
+    }
+    if (dataScadenza.present) {
+      map['dataScadenza'] = Variable<String>(dataScadenza.value);
+    }
+    if (segno.present) {
+      map['segno'] = Variable<String>(segno.value);
+    }
+    if (importoFattura.present) {
+      map['importoFattura'] = Variable<double>(importoFattura.value);
+    }
+    if (valuta.present) {
+      map['valuta'] = Variable<String>(valuta.value);
+    }
+    if (numDoc.present) {
+      map['numDoc'] = Variable<String>(numDoc.value);
+    }
+    if (serieDoc.present) {
+      map['serieDoc'] = Variable<String>(serieDoc.value);
+    }
+    if (dataDoc.present) {
+      map['dataDoc'] = Variable<String>(dataDoc.value);
+    }
+    if (importoScadenza.present) {
+      map['importoScadenza'] = Variable<double>(importoScadenza.value);
+    }
+    if (saldo.present) {
+      map['saldo'] = Variable<double>(saldo.value);
+    }
+    if (tipoPagamento.present) {
+      map['tipoPagamento'] = Variable<String>(tipoPagamento.value);
+    }
+    if (flgSoppressa.present) {
+      map['flgSoppressa'] = Variable<int>(flgSoppressa.value);
+    }
+    if (importoAbbuono.present) {
+      map['importoAbbuono'] = Variable<double>(importoAbbuono.value);
+    }
+    if (note.present) {
+      map['note'] = Variable<String>(note.value);
+    }
+    if (dataModifica.present) {
+      map['dataModifica'] = Variable<String>(dataModifica.value);
+    }
+    if (stato.present) {
+      map['stato'] = Variable<String>(stato.value);
+    }
+    return map;
+  }
+
+  @override
+  String toString() {
+    return (StringBuffer('ScadenzeCompanion(')
+          ..write('idScadenza: $idScadenza, ')
+          ..write('idCliente: $idCliente, ')
+          ..write('idAgente: $idAgente, ')
+          ..write('chiave: $chiave, ')
+          ..write('numPartita: $numPartita, ')
+          ..write('dataScadenza: $dataScadenza, ')
+          ..write('segno: $segno, ')
+          ..write('importoFattura: $importoFattura, ')
+          ..write('valuta: $valuta, ')
+          ..write('numDoc: $numDoc, ')
+          ..write('serieDoc: $serieDoc, ')
+          ..write('dataDoc: $dataDoc, ')
+          ..write('importoScadenza: $importoScadenza, ')
+          ..write('saldo: $saldo, ')
+          ..write('tipoPagamento: $tipoPagamento, ')
+          ..write('flgSoppressa: $flgSoppressa, ')
+          ..write('importoAbbuono: $importoAbbuono, ')
+          ..write('note: $note, ')
+          ..write('dataModifica: $dataModifica, ')
+          ..write('stato: $stato')
+          ..write(')'))
+        .toString();
+  }
+}
+
+class $StatisticheVenditaTable extends StatisticheVendita
+    with TableInfo<$StatisticheVenditaTable, StatisticheVenditaData> {
+  @override
+  final GeneratedDatabase attachedDatabase;
+  final String? _alias;
+  $StatisticheVenditaTable(this.attachedDatabase, [this._alias]);
+  static const VerificationMeta _idMeta = const VerificationMeta('id');
+  @override
+  late final GeneratedColumn<int> id = GeneratedColumn<int>(
+    'id',
+    aliasedName,
+    false,
+    hasAutoIncrement: true,
+    type: DriftSqlType.int,
+    requiredDuringInsert: false,
+    defaultConstraints: GeneratedColumn.constraintIsAlways(
+      'PRIMARY KEY AUTOINCREMENT',
+    ),
+  );
+  static const VerificationMeta _idAgenteMeta = const VerificationMeta(
+    'idAgente',
+  );
+  @override
+  late final GeneratedColumn<int> idAgente = GeneratedColumn<int>(
+    'idAgente',
+    aliasedName,
+    true,
+    type: DriftSqlType.int,
+    requiredDuringInsert: false,
+  );
+  static const VerificationMeta _idClienteMeta = const VerificationMeta(
+    'idCliente',
+  );
+  @override
+  late final GeneratedColumn<int> idCliente = GeneratedColumn<int>(
+    'idCliente',
+    aliasedName,
+    true,
+    type: DriftSqlType.int,
+    requiredDuringInsert: false,
+  );
+  static const VerificationMeta _idArticoloMeta = const VerificationMeta(
+    'idArticolo',
+  );
+  @override
+  late final GeneratedColumn<int> idArticolo = GeneratedColumn<int>(
+    'idArticolo',
+    aliasedName,
+    true,
+    type: DriftSqlType.int,
+    requiredDuringInsert: false,
+  );
+  static const VerificationMeta _codStatisticheMeta = const VerificationMeta(
+    'codStatistiche',
+  );
+  @override
+  late final GeneratedColumn<String> codStatistiche = GeneratedColumn<String>(
+    'codStatistiche',
+    aliasedName,
+    true,
+    type: DriftSqlType.string,
+    requiredDuringInsert: false,
+  );
+  static const VerificationMeta _rigaMeta = const VerificationMeta('riga');
+  @override
+  late final GeneratedColumn<int> riga = GeneratedColumn<int>(
+    'riga',
+    aliasedName,
+    true,
+    type: DriftSqlType.int,
+    requiredDuringInsert: false,
+  );
+  static const VerificationMeta _numeroFatturaMeta = const VerificationMeta(
+    'numeroFattura',
+  );
+  @override
+  late final GeneratedColumn<String> numeroFattura = GeneratedColumn<String>(
+    'numeroFattura',
+    aliasedName,
+    true,
+    type: DriftSqlType.string,
+    requiredDuringInsert: false,
+  );
+  static const VerificationMeta _dataFatturaMeta = const VerificationMeta(
+    'dataFattura',
+  );
+  @override
+  late final GeneratedColumn<String> dataFattura = GeneratedColumn<String>(
+    'dataFattura',
+    aliasedName,
+    true,
+    type: DriftSqlType.string,
+    requiredDuringInsert: false,
+  );
+  static const VerificationMeta _qtaMeta = const VerificationMeta('qta');
+  @override
+  late final GeneratedColumn<double> qta = GeneratedColumn<double>(
+    'qta',
+    aliasedName,
+    true,
+    type: DriftSqlType.double,
+    requiredDuringInsert: false,
+  );
+  static const VerificationMeta _importoMeta = const VerificationMeta(
+    'importo',
+  );
+  @override
+  late final GeneratedColumn<double> importo = GeneratedColumn<double>(
+    'importo',
+    aliasedName,
+    true,
+    type: DriftSqlType.double,
+    requiredDuringInsert: false,
+  );
+  static const VerificationMeta _tipoVenditaMeta = const VerificationMeta(
+    'tipoVendita',
+  );
+  @override
+  late final GeneratedColumn<String> tipoVendita = GeneratedColumn<String>(
+    'tipoVendita',
+    aliasedName,
+    true,
+    type: DriftSqlType.string,
+    requiredDuringInsert: false,
+  );
+  @override
+  List<GeneratedColumn> get $columns => [
+    id,
+    idAgente,
+    idCliente,
+    idArticolo,
+    codStatistiche,
+    riga,
+    numeroFattura,
+    dataFattura,
+    qta,
+    importo,
+    tipoVendita,
+  ];
+  @override
+  String get aliasedName => _alias ?? actualTableName;
+  @override
+  String get actualTableName => $name;
+  static const String $name = 'Statistiche_vendita';
+  @override
+  VerificationContext validateIntegrity(
+    Insertable<StatisticheVenditaData> instance, {
+    bool isInserting = false,
+  }) {
+    final context = VerificationContext();
+    final data = instance.toColumns(true);
+    if (data.containsKey('id')) {
+      context.handle(_idMeta, id.isAcceptableOrUnknown(data['id']!, _idMeta));
+    }
+    if (data.containsKey('idAgente')) {
+      context.handle(
+        _idAgenteMeta,
+        idAgente.isAcceptableOrUnknown(data['idAgente']!, _idAgenteMeta),
+      );
+    }
+    if (data.containsKey('idCliente')) {
+      context.handle(
+        _idClienteMeta,
+        idCliente.isAcceptableOrUnknown(data['idCliente']!, _idClienteMeta),
+      );
+    }
+    if (data.containsKey('idArticolo')) {
+      context.handle(
+        _idArticoloMeta,
+        idArticolo.isAcceptableOrUnknown(data['idArticolo']!, _idArticoloMeta),
+      );
+    }
+    if (data.containsKey('codStatistiche')) {
+      context.handle(
+        _codStatisticheMeta,
+        codStatistiche.isAcceptableOrUnknown(
+          data['codStatistiche']!,
+          _codStatisticheMeta,
+        ),
+      );
+    }
+    if (data.containsKey('riga')) {
+      context.handle(
+        _rigaMeta,
+        riga.isAcceptableOrUnknown(data['riga']!, _rigaMeta),
+      );
+    }
+    if (data.containsKey('numeroFattura')) {
+      context.handle(
+        _numeroFatturaMeta,
+        numeroFattura.isAcceptableOrUnknown(
+          data['numeroFattura']!,
+          _numeroFatturaMeta,
+        ),
+      );
+    }
+    if (data.containsKey('dataFattura')) {
+      context.handle(
+        _dataFatturaMeta,
+        dataFattura.isAcceptableOrUnknown(
+          data['dataFattura']!,
+          _dataFatturaMeta,
+        ),
+      );
+    }
+    if (data.containsKey('qta')) {
+      context.handle(
+        _qtaMeta,
+        qta.isAcceptableOrUnknown(data['qta']!, _qtaMeta),
+      );
+    }
+    if (data.containsKey('importo')) {
+      context.handle(
+        _importoMeta,
+        importo.isAcceptableOrUnknown(data['importo']!, _importoMeta),
+      );
+    }
+    if (data.containsKey('tipoVendita')) {
+      context.handle(
+        _tipoVenditaMeta,
+        tipoVendita.isAcceptableOrUnknown(
+          data['tipoVendita']!,
+          _tipoVenditaMeta,
+        ),
+      );
+    }
+    return context;
+  }
+
+  @override
+  Set<GeneratedColumn> get $primaryKey => {id};
+  @override
+  StatisticheVenditaData map(Map<String, dynamic> data, {String? tablePrefix}) {
+    final effectivePrefix = tablePrefix != null ? '$tablePrefix.' : '';
+    return StatisticheVenditaData(
+      id: attachedDatabase.typeMapping.read(
+        DriftSqlType.int,
+        data['${effectivePrefix}id'],
+      )!,
+      idAgente: attachedDatabase.typeMapping.read(
+        DriftSqlType.int,
+        data['${effectivePrefix}idAgente'],
+      ),
+      idCliente: attachedDatabase.typeMapping.read(
+        DriftSqlType.int,
+        data['${effectivePrefix}idCliente'],
+      ),
+      idArticolo: attachedDatabase.typeMapping.read(
+        DriftSqlType.int,
+        data['${effectivePrefix}idArticolo'],
+      ),
+      codStatistiche: attachedDatabase.typeMapping.read(
+        DriftSqlType.string,
+        data['${effectivePrefix}codStatistiche'],
+      ),
+      riga: attachedDatabase.typeMapping.read(
+        DriftSqlType.int,
+        data['${effectivePrefix}riga'],
+      ),
+      numeroFattura: attachedDatabase.typeMapping.read(
+        DriftSqlType.string,
+        data['${effectivePrefix}numeroFattura'],
+      ),
+      dataFattura: attachedDatabase.typeMapping.read(
+        DriftSqlType.string,
+        data['${effectivePrefix}dataFattura'],
+      ),
+      qta: attachedDatabase.typeMapping.read(
+        DriftSqlType.double,
+        data['${effectivePrefix}qta'],
+      ),
+      importo: attachedDatabase.typeMapping.read(
+        DriftSqlType.double,
+        data['${effectivePrefix}importo'],
+      ),
+      tipoVendita: attachedDatabase.typeMapping.read(
+        DriftSqlType.string,
+        data['${effectivePrefix}tipoVendita'],
+      ),
+    );
+  }
+
+  @override
+  $StatisticheVenditaTable createAlias(String alias) {
+    return $StatisticheVenditaTable(attachedDatabase, alias);
+  }
+}
+
+class StatisticheVenditaData extends DataClass
+    implements Insertable<StatisticheVenditaData> {
+  final int id;
+  final int? idAgente;
+  final int? idCliente;
+  final int? idArticolo;
+  final String? codStatistiche;
+  final int? riga;
+  final String? numeroFattura;
+  final String? dataFattura;
+  final double? qta;
+  final double? importo;
+  final String? tipoVendita;
+  const StatisticheVenditaData({
+    required this.id,
+    this.idAgente,
+    this.idCliente,
+    this.idArticolo,
+    this.codStatistiche,
+    this.riga,
+    this.numeroFattura,
+    this.dataFattura,
+    this.qta,
+    this.importo,
+    this.tipoVendita,
+  });
+  @override
+  Map<String, Expression> toColumns(bool nullToAbsent) {
+    final map = <String, Expression>{};
+    map['id'] = Variable<int>(id);
+    if (!nullToAbsent || idAgente != null) {
+      map['idAgente'] = Variable<int>(idAgente);
+    }
+    if (!nullToAbsent || idCliente != null) {
+      map['idCliente'] = Variable<int>(idCliente);
+    }
+    if (!nullToAbsent || idArticolo != null) {
+      map['idArticolo'] = Variable<int>(idArticolo);
+    }
+    if (!nullToAbsent || codStatistiche != null) {
+      map['codStatistiche'] = Variable<String>(codStatistiche);
+    }
+    if (!nullToAbsent || riga != null) {
+      map['riga'] = Variable<int>(riga);
+    }
+    if (!nullToAbsent || numeroFattura != null) {
+      map['numeroFattura'] = Variable<String>(numeroFattura);
+    }
+    if (!nullToAbsent || dataFattura != null) {
+      map['dataFattura'] = Variable<String>(dataFattura);
+    }
+    if (!nullToAbsent || qta != null) {
+      map['qta'] = Variable<double>(qta);
+    }
+    if (!nullToAbsent || importo != null) {
+      map['importo'] = Variable<double>(importo);
+    }
+    if (!nullToAbsent || tipoVendita != null) {
+      map['tipoVendita'] = Variable<String>(tipoVendita);
+    }
+    return map;
+  }
+
+  StatisticheVenditaCompanion toCompanion(bool nullToAbsent) {
+    return StatisticheVenditaCompanion(
+      id: Value(id),
+      idAgente: idAgente == null && nullToAbsent
+          ? const Value.absent()
+          : Value(idAgente),
+      idCliente: idCliente == null && nullToAbsent
+          ? const Value.absent()
+          : Value(idCliente),
+      idArticolo: idArticolo == null && nullToAbsent
+          ? const Value.absent()
+          : Value(idArticolo),
+      codStatistiche: codStatistiche == null && nullToAbsent
+          ? const Value.absent()
+          : Value(codStatistiche),
+      riga: riga == null && nullToAbsent ? const Value.absent() : Value(riga),
+      numeroFattura: numeroFattura == null && nullToAbsent
+          ? const Value.absent()
+          : Value(numeroFattura),
+      dataFattura: dataFattura == null && nullToAbsent
+          ? const Value.absent()
+          : Value(dataFattura),
+      qta: qta == null && nullToAbsent ? const Value.absent() : Value(qta),
+      importo: importo == null && nullToAbsent
+          ? const Value.absent()
+          : Value(importo),
+      tipoVendita: tipoVendita == null && nullToAbsent
+          ? const Value.absent()
+          : Value(tipoVendita),
+    );
+  }
+
+  factory StatisticheVenditaData.fromJson(
+    Map<String, dynamic> json, {
+    ValueSerializer? serializer,
+  }) {
+    serializer ??= driftRuntimeOptions.defaultSerializer;
+    return StatisticheVenditaData(
+      id: serializer.fromJson<int>(json['id']),
+      idAgente: serializer.fromJson<int?>(json['idAgente']),
+      idCliente: serializer.fromJson<int?>(json['idCliente']),
+      idArticolo: serializer.fromJson<int?>(json['idArticolo']),
+      codStatistiche: serializer.fromJson<String?>(json['codStatistiche']),
+      riga: serializer.fromJson<int?>(json['riga']),
+      numeroFattura: serializer.fromJson<String?>(json['numeroFattura']),
+      dataFattura: serializer.fromJson<String?>(json['dataFattura']),
+      qta: serializer.fromJson<double?>(json['qta']),
+      importo: serializer.fromJson<double?>(json['importo']),
+      tipoVendita: serializer.fromJson<String?>(json['tipoVendita']),
+    );
+  }
+  @override
+  Map<String, dynamic> toJson({ValueSerializer? serializer}) {
+    serializer ??= driftRuntimeOptions.defaultSerializer;
+    return <String, dynamic>{
+      'id': serializer.toJson<int>(id),
+      'idAgente': serializer.toJson<int?>(idAgente),
+      'idCliente': serializer.toJson<int?>(idCliente),
+      'idArticolo': serializer.toJson<int?>(idArticolo),
+      'codStatistiche': serializer.toJson<String?>(codStatistiche),
+      'riga': serializer.toJson<int?>(riga),
+      'numeroFattura': serializer.toJson<String?>(numeroFattura),
+      'dataFattura': serializer.toJson<String?>(dataFattura),
+      'qta': serializer.toJson<double?>(qta),
+      'importo': serializer.toJson<double?>(importo),
+      'tipoVendita': serializer.toJson<String?>(tipoVendita),
+    };
+  }
+
+  StatisticheVenditaData copyWith({
+    int? id,
+    Value<int?> idAgente = const Value.absent(),
+    Value<int?> idCliente = const Value.absent(),
+    Value<int?> idArticolo = const Value.absent(),
+    Value<String?> codStatistiche = const Value.absent(),
+    Value<int?> riga = const Value.absent(),
+    Value<String?> numeroFattura = const Value.absent(),
+    Value<String?> dataFattura = const Value.absent(),
+    Value<double?> qta = const Value.absent(),
+    Value<double?> importo = const Value.absent(),
+    Value<String?> tipoVendita = const Value.absent(),
+  }) => StatisticheVenditaData(
+    id: id ?? this.id,
+    idAgente: idAgente.present ? idAgente.value : this.idAgente,
+    idCliente: idCliente.present ? idCliente.value : this.idCliente,
+    idArticolo: idArticolo.present ? idArticolo.value : this.idArticolo,
+    codStatistiche: codStatistiche.present
+        ? codStatistiche.value
+        : this.codStatistiche,
+    riga: riga.present ? riga.value : this.riga,
+    numeroFattura: numeroFattura.present
+        ? numeroFattura.value
+        : this.numeroFattura,
+    dataFattura: dataFattura.present ? dataFattura.value : this.dataFattura,
+    qta: qta.present ? qta.value : this.qta,
+    importo: importo.present ? importo.value : this.importo,
+    tipoVendita: tipoVendita.present ? tipoVendita.value : this.tipoVendita,
+  );
+  StatisticheVenditaData copyWithCompanion(StatisticheVenditaCompanion data) {
+    return StatisticheVenditaData(
+      id: data.id.present ? data.id.value : this.id,
+      idAgente: data.idAgente.present ? data.idAgente.value : this.idAgente,
+      idCliente: data.idCliente.present ? data.idCliente.value : this.idCliente,
+      idArticolo: data.idArticolo.present
+          ? data.idArticolo.value
+          : this.idArticolo,
+      codStatistiche: data.codStatistiche.present
+          ? data.codStatistiche.value
+          : this.codStatistiche,
+      riga: data.riga.present ? data.riga.value : this.riga,
+      numeroFattura: data.numeroFattura.present
+          ? data.numeroFattura.value
+          : this.numeroFattura,
+      dataFattura: data.dataFattura.present
+          ? data.dataFattura.value
+          : this.dataFattura,
+      qta: data.qta.present ? data.qta.value : this.qta,
+      importo: data.importo.present ? data.importo.value : this.importo,
+      tipoVendita: data.tipoVendita.present
+          ? data.tipoVendita.value
+          : this.tipoVendita,
+    );
+  }
+
+  @override
+  String toString() {
+    return (StringBuffer('StatisticheVenditaData(')
+          ..write('id: $id, ')
+          ..write('idAgente: $idAgente, ')
+          ..write('idCliente: $idCliente, ')
+          ..write('idArticolo: $idArticolo, ')
+          ..write('codStatistiche: $codStatistiche, ')
+          ..write('riga: $riga, ')
+          ..write('numeroFattura: $numeroFattura, ')
+          ..write('dataFattura: $dataFattura, ')
+          ..write('qta: $qta, ')
+          ..write('importo: $importo, ')
+          ..write('tipoVendita: $tipoVendita')
+          ..write(')'))
+        .toString();
+  }
+
+  @override
+  int get hashCode => Object.hash(
+    id,
+    idAgente,
+    idCliente,
+    idArticolo,
+    codStatistiche,
+    riga,
+    numeroFattura,
+    dataFattura,
+    qta,
+    importo,
+    tipoVendita,
+  );
+  @override
+  bool operator ==(Object other) =>
+      identical(this, other) ||
+      (other is StatisticheVenditaData &&
+          other.id == this.id &&
+          other.idAgente == this.idAgente &&
+          other.idCliente == this.idCliente &&
+          other.idArticolo == this.idArticolo &&
+          other.codStatistiche == this.codStatistiche &&
+          other.riga == this.riga &&
+          other.numeroFattura == this.numeroFattura &&
+          other.dataFattura == this.dataFattura &&
+          other.qta == this.qta &&
+          other.importo == this.importo &&
+          other.tipoVendita == this.tipoVendita);
+}
+
+class StatisticheVenditaCompanion
+    extends UpdateCompanion<StatisticheVenditaData> {
+  final Value<int> id;
+  final Value<int?> idAgente;
+  final Value<int?> idCliente;
+  final Value<int?> idArticolo;
+  final Value<String?> codStatistiche;
+  final Value<int?> riga;
+  final Value<String?> numeroFattura;
+  final Value<String?> dataFattura;
+  final Value<double?> qta;
+  final Value<double?> importo;
+  final Value<String?> tipoVendita;
+  const StatisticheVenditaCompanion({
+    this.id = const Value.absent(),
+    this.idAgente = const Value.absent(),
+    this.idCliente = const Value.absent(),
+    this.idArticolo = const Value.absent(),
+    this.codStatistiche = const Value.absent(),
+    this.riga = const Value.absent(),
+    this.numeroFattura = const Value.absent(),
+    this.dataFattura = const Value.absent(),
+    this.qta = const Value.absent(),
+    this.importo = const Value.absent(),
+    this.tipoVendita = const Value.absent(),
+  });
+  StatisticheVenditaCompanion.insert({
+    this.id = const Value.absent(),
+    this.idAgente = const Value.absent(),
+    this.idCliente = const Value.absent(),
+    this.idArticolo = const Value.absent(),
+    this.codStatistiche = const Value.absent(),
+    this.riga = const Value.absent(),
+    this.numeroFattura = const Value.absent(),
+    this.dataFattura = const Value.absent(),
+    this.qta = const Value.absent(),
+    this.importo = const Value.absent(),
+    this.tipoVendita = const Value.absent(),
+  });
+  static Insertable<StatisticheVenditaData> custom({
+    Expression<int>? id,
+    Expression<int>? idAgente,
+    Expression<int>? idCliente,
+    Expression<int>? idArticolo,
+    Expression<String>? codStatistiche,
+    Expression<int>? riga,
+    Expression<String>? numeroFattura,
+    Expression<String>? dataFattura,
+    Expression<double>? qta,
+    Expression<double>? importo,
+    Expression<String>? tipoVendita,
+  }) {
+    return RawValuesInsertable({
+      if (id != null) 'id': id,
+      if (idAgente != null) 'idAgente': idAgente,
+      if (idCliente != null) 'idCliente': idCliente,
+      if (idArticolo != null) 'idArticolo': idArticolo,
+      if (codStatistiche != null) 'codStatistiche': codStatistiche,
+      if (riga != null) 'riga': riga,
+      if (numeroFattura != null) 'numeroFattura': numeroFattura,
+      if (dataFattura != null) 'dataFattura': dataFattura,
+      if (qta != null) 'qta': qta,
+      if (importo != null) 'importo': importo,
+      if (tipoVendita != null) 'tipoVendita': tipoVendita,
+    });
+  }
+
+  StatisticheVenditaCompanion copyWith({
+    Value<int>? id,
+    Value<int?>? idAgente,
+    Value<int?>? idCliente,
+    Value<int?>? idArticolo,
+    Value<String?>? codStatistiche,
+    Value<int?>? riga,
+    Value<String?>? numeroFattura,
+    Value<String?>? dataFattura,
+    Value<double?>? qta,
+    Value<double?>? importo,
+    Value<String?>? tipoVendita,
+  }) {
+    return StatisticheVenditaCompanion(
+      id: id ?? this.id,
+      idAgente: idAgente ?? this.idAgente,
+      idCliente: idCliente ?? this.idCliente,
+      idArticolo: idArticolo ?? this.idArticolo,
+      codStatistiche: codStatistiche ?? this.codStatistiche,
+      riga: riga ?? this.riga,
+      numeroFattura: numeroFattura ?? this.numeroFattura,
+      dataFattura: dataFattura ?? this.dataFattura,
+      qta: qta ?? this.qta,
+      importo: importo ?? this.importo,
+      tipoVendita: tipoVendita ?? this.tipoVendita,
+    );
+  }
+
+  @override
+  Map<String, Expression> toColumns(bool nullToAbsent) {
+    final map = <String, Expression>{};
+    if (id.present) {
+      map['id'] = Variable<int>(id.value);
+    }
+    if (idAgente.present) {
+      map['idAgente'] = Variable<int>(idAgente.value);
+    }
+    if (idCliente.present) {
+      map['idCliente'] = Variable<int>(idCliente.value);
+    }
+    if (idArticolo.present) {
+      map['idArticolo'] = Variable<int>(idArticolo.value);
+    }
+    if (codStatistiche.present) {
+      map['codStatistiche'] = Variable<String>(codStatistiche.value);
+    }
+    if (riga.present) {
+      map['riga'] = Variable<int>(riga.value);
+    }
+    if (numeroFattura.present) {
+      map['numeroFattura'] = Variable<String>(numeroFattura.value);
+    }
+    if (dataFattura.present) {
+      map['dataFattura'] = Variable<String>(dataFattura.value);
+    }
+    if (qta.present) {
+      map['qta'] = Variable<double>(qta.value);
+    }
+    if (importo.present) {
+      map['importo'] = Variable<double>(importo.value);
+    }
+    if (tipoVendita.present) {
+      map['tipoVendita'] = Variable<String>(tipoVendita.value);
+    }
+    return map;
+  }
+
+  @override
+  String toString() {
+    return (StringBuffer('StatisticheVenditaCompanion(')
+          ..write('id: $id, ')
+          ..write('idAgente: $idAgente, ')
+          ..write('idCliente: $idCliente, ')
+          ..write('idArticolo: $idArticolo, ')
+          ..write('codStatistiche: $codStatistiche, ')
+          ..write('riga: $riga, ')
+          ..write('numeroFattura: $numeroFattura, ')
+          ..write('dataFattura: $dataFattura, ')
+          ..write('qta: $qta, ')
+          ..write('importo: $importo, ')
+          ..write('tipoVendita: $tipoVendita')
+          ..write(')'))
+        .toString();
+  }
+}
+
+class $ArticoliConPromoTable extends ArticoliConPromo
+    with TableInfo<$ArticoliConPromoTable, ArticoliConPromoData> {
+  @override
+  final GeneratedDatabase attachedDatabase;
+  final String? _alias;
+  $ArticoliConPromoTable(this.attachedDatabase, [this._alias]);
+  static const VerificationMeta _idArticoloMeta = const VerificationMeta(
+    'idArticolo',
+  );
+  @override
+  late final GeneratedColumn<int> idArticolo = GeneratedColumn<int>(
+    'idArticolo',
+    aliasedName,
+    false,
+    type: DriftSqlType.int,
+    requiredDuringInsert: true,
+  );
+  static const VerificationMeta _codArticoloMeta = const VerificationMeta(
+    'codArticolo',
+  );
+  @override
+  late final GeneratedColumn<String> codArticolo = GeneratedColumn<String>(
+    'codArticolo',
+    aliasedName,
+    true,
+    type: DriftSqlType.string,
+    requiredDuringInsert: false,
+  );
+  static const VerificationMeta _descrizioneMeta = const VerificationMeta(
+    'descrizione',
+  );
+  @override
+  late final GeneratedColumn<String> descrizione = GeneratedColumn<String>(
+    'descrizione',
+    aliasedName,
+    true,
+    type: DriftSqlType.string,
+    requiredDuringInsert: false,
+  );
+  static const VerificationMeta _prezzoBaseMeta = const VerificationMeta(
+    'prezzoBase',
+  );
+  @override
+  late final GeneratedColumn<double> prezzoBase = GeneratedColumn<double>(
+    'prezzoBase',
+    aliasedName,
+    true,
+    type: DriftSqlType.double,
+    requiredDuringInsert: false,
+  );
+  static const VerificationMeta _attivoMeta = const VerificationMeta('attivo');
+  @override
+  late final GeneratedColumn<int> attivo = GeneratedColumn<int>(
+    'attivo',
+    aliasedName,
+    true,
+    type: DriftSqlType.int,
+    requiredDuringInsert: false,
+  );
+  static const VerificationMeta _nonDisponibileMeta = const VerificationMeta(
+    'nonDisponibile',
+  );
+  @override
+  late final GeneratedColumn<int> nonDisponibile = GeneratedColumn<int>(
+    'nonDisponibile',
+    aliasedName,
+    true,
+    type: DriftSqlType.int,
+    requiredDuringInsert: false,
+  );
+  static const VerificationMeta _inPromoMeta = const VerificationMeta(
+    'inPromo',
+  );
+  @override
+  late final GeneratedColumn<int> inPromo = GeneratedColumn<int>(
+    'inPromo',
+    aliasedName,
+    true,
+    type: DriftSqlType.int,
+    requiredDuringInsert: false,
+  );
+  static const VerificationMeta _ultimoPrezzoMeta = const VerificationMeta(
+    'ultimoPrezzo',
+  );
+  @override
+  late final GeneratedColumn<double> ultimoPrezzo = GeneratedColumn<double>(
+    'ultimoPrezzo',
+    aliasedName,
+    true,
+    type: DriftSqlType.double,
+    requiredDuringInsert: false,
+  );
+  static const VerificationMeta _lastDateSoldMeta = const VerificationMeta(
+    'lastDateSold',
+  );
+  @override
+  late final GeneratedColumn<String> lastDateSold = GeneratedColumn<String>(
+    'lastDateSold',
+    aliasedName,
+    true,
+    type: DriftSqlType.string,
+    requiredDuringInsert: false,
+  );
+  @override
+  List<GeneratedColumn> get $columns => [
+    idArticolo,
+    codArticolo,
+    descrizione,
+    prezzoBase,
+    attivo,
+    nonDisponibile,
+    inPromo,
+    ultimoPrezzo,
+    lastDateSold,
+  ];
+  @override
+  String get aliasedName => _alias ?? actualTableName;
+  @override
+  String get actualTableName => $name;
+  static const String $name = 'ArticoloConPromo';
+  @override
+  VerificationContext validateIntegrity(
+    Insertable<ArticoliConPromoData> instance, {
+    bool isInserting = false,
+  }) {
+    final context = VerificationContext();
+    final data = instance.toColumns(true);
+    if (data.containsKey('idArticolo')) {
+      context.handle(
+        _idArticoloMeta,
+        idArticolo.isAcceptableOrUnknown(data['idArticolo']!, _idArticoloMeta),
+      );
+    } else if (isInserting) {
+      context.missing(_idArticoloMeta);
+    }
+    if (data.containsKey('codArticolo')) {
+      context.handle(
+        _codArticoloMeta,
+        codArticolo.isAcceptableOrUnknown(
+          data['codArticolo']!,
+          _codArticoloMeta,
+        ),
+      );
+    }
+    if (data.containsKey('descrizione')) {
+      context.handle(
+        _descrizioneMeta,
+        descrizione.isAcceptableOrUnknown(
+          data['descrizione']!,
+          _descrizioneMeta,
+        ),
+      );
+    }
+    if (data.containsKey('prezzoBase')) {
+      context.handle(
+        _prezzoBaseMeta,
+        prezzoBase.isAcceptableOrUnknown(data['prezzoBase']!, _prezzoBaseMeta),
+      );
+    }
+    if (data.containsKey('attivo')) {
+      context.handle(
+        _attivoMeta,
+        attivo.isAcceptableOrUnknown(data['attivo']!, _attivoMeta),
+      );
+    }
+    if (data.containsKey('nonDisponibile')) {
+      context.handle(
+        _nonDisponibileMeta,
+        nonDisponibile.isAcceptableOrUnknown(
+          data['nonDisponibile']!,
+          _nonDisponibileMeta,
+        ),
+      );
+    }
+    if (data.containsKey('inPromo')) {
+      context.handle(
+        _inPromoMeta,
+        inPromo.isAcceptableOrUnknown(data['inPromo']!, _inPromoMeta),
+      );
+    }
+    if (data.containsKey('ultimoPrezzo')) {
+      context.handle(
+        _ultimoPrezzoMeta,
+        ultimoPrezzo.isAcceptableOrUnknown(
+          data['ultimoPrezzo']!,
+          _ultimoPrezzoMeta,
+        ),
+      );
+    }
+    if (data.containsKey('lastDateSold')) {
+      context.handle(
+        _lastDateSoldMeta,
+        lastDateSold.isAcceptableOrUnknown(
+          data['lastDateSold']!,
+          _lastDateSoldMeta,
+        ),
+      );
+    }
+    return context;
+  }
+
+  @override
+  Set<GeneratedColumn> get $primaryKey => {idArticolo};
+  @override
+  ArticoliConPromoData map(Map<String, dynamic> data, {String? tablePrefix}) {
+    final effectivePrefix = tablePrefix != null ? '$tablePrefix.' : '';
+    return ArticoliConPromoData(
+      idArticolo: attachedDatabase.typeMapping.read(
+        DriftSqlType.int,
+        data['${effectivePrefix}idArticolo'],
+      )!,
+      codArticolo: attachedDatabase.typeMapping.read(
+        DriftSqlType.string,
+        data['${effectivePrefix}codArticolo'],
+      ),
+      descrizione: attachedDatabase.typeMapping.read(
+        DriftSqlType.string,
+        data['${effectivePrefix}descrizione'],
+      ),
+      prezzoBase: attachedDatabase.typeMapping.read(
+        DriftSqlType.double,
+        data['${effectivePrefix}prezzoBase'],
+      ),
+      attivo: attachedDatabase.typeMapping.read(
+        DriftSqlType.int,
+        data['${effectivePrefix}attivo'],
+      ),
+      nonDisponibile: attachedDatabase.typeMapping.read(
+        DriftSqlType.int,
+        data['${effectivePrefix}nonDisponibile'],
+      ),
+      inPromo: attachedDatabase.typeMapping.read(
+        DriftSqlType.int,
+        data['${effectivePrefix}inPromo'],
+      ),
+      ultimoPrezzo: attachedDatabase.typeMapping.read(
+        DriftSqlType.double,
+        data['${effectivePrefix}ultimoPrezzo'],
+      ),
+      lastDateSold: attachedDatabase.typeMapping.read(
+        DriftSqlType.string,
+        data['${effectivePrefix}lastDateSold'],
+      ),
+    );
+  }
+
+  @override
+  $ArticoliConPromoTable createAlias(String alias) {
+    return $ArticoliConPromoTable(attachedDatabase, alias);
+  }
+
+  @override
+  bool get withoutRowId => true;
+}
+
+class ArticoliConPromoData extends DataClass
+    implements Insertable<ArticoliConPromoData> {
+  final int idArticolo;
+  final String? codArticolo;
+  final String? descrizione;
+  final double? prezzoBase;
+  final int? attivo;
+  final int? nonDisponibile;
+  final int? inPromo;
+  final double? ultimoPrezzo;
+  final String? lastDateSold;
+  const ArticoliConPromoData({
+    required this.idArticolo,
+    this.codArticolo,
+    this.descrizione,
+    this.prezzoBase,
+    this.attivo,
+    this.nonDisponibile,
+    this.inPromo,
+    this.ultimoPrezzo,
+    this.lastDateSold,
+  });
+  @override
+  Map<String, Expression> toColumns(bool nullToAbsent) {
+    final map = <String, Expression>{};
+    map['idArticolo'] = Variable<int>(idArticolo);
+    if (!nullToAbsent || codArticolo != null) {
+      map['codArticolo'] = Variable<String>(codArticolo);
+    }
+    if (!nullToAbsent || descrizione != null) {
+      map['descrizione'] = Variable<String>(descrizione);
+    }
+    if (!nullToAbsent || prezzoBase != null) {
+      map['prezzoBase'] = Variable<double>(prezzoBase);
+    }
+    if (!nullToAbsent || attivo != null) {
+      map['attivo'] = Variable<int>(attivo);
+    }
+    if (!nullToAbsent || nonDisponibile != null) {
+      map['nonDisponibile'] = Variable<int>(nonDisponibile);
+    }
+    if (!nullToAbsent || inPromo != null) {
+      map['inPromo'] = Variable<int>(inPromo);
+    }
+    if (!nullToAbsent || ultimoPrezzo != null) {
+      map['ultimoPrezzo'] = Variable<double>(ultimoPrezzo);
+    }
+    if (!nullToAbsent || lastDateSold != null) {
+      map['lastDateSold'] = Variable<String>(lastDateSold);
+    }
+    return map;
+  }
+
+  ArticoliConPromoCompanion toCompanion(bool nullToAbsent) {
+    return ArticoliConPromoCompanion(
+      idArticolo: Value(idArticolo),
+      codArticolo: codArticolo == null && nullToAbsent
+          ? const Value.absent()
+          : Value(codArticolo),
+      descrizione: descrizione == null && nullToAbsent
+          ? const Value.absent()
+          : Value(descrizione),
+      prezzoBase: prezzoBase == null && nullToAbsent
+          ? const Value.absent()
+          : Value(prezzoBase),
+      attivo: attivo == null && nullToAbsent
+          ? const Value.absent()
+          : Value(attivo),
+      nonDisponibile: nonDisponibile == null && nullToAbsent
+          ? const Value.absent()
+          : Value(nonDisponibile),
+      inPromo: inPromo == null && nullToAbsent
+          ? const Value.absent()
+          : Value(inPromo),
+      ultimoPrezzo: ultimoPrezzo == null && nullToAbsent
+          ? const Value.absent()
+          : Value(ultimoPrezzo),
+      lastDateSold: lastDateSold == null && nullToAbsent
+          ? const Value.absent()
+          : Value(lastDateSold),
+    );
+  }
+
+  factory ArticoliConPromoData.fromJson(
+    Map<String, dynamic> json, {
+    ValueSerializer? serializer,
+  }) {
+    serializer ??= driftRuntimeOptions.defaultSerializer;
+    return ArticoliConPromoData(
+      idArticolo: serializer.fromJson<int>(json['idArticolo']),
+      codArticolo: serializer.fromJson<String?>(json['codArticolo']),
+      descrizione: serializer.fromJson<String?>(json['descrizione']),
+      prezzoBase: serializer.fromJson<double?>(json['prezzoBase']),
+      attivo: serializer.fromJson<int?>(json['attivo']),
+      nonDisponibile: serializer.fromJson<int?>(json['nonDisponibile']),
+      inPromo: serializer.fromJson<int?>(json['inPromo']),
+      ultimoPrezzo: serializer.fromJson<double?>(json['ultimoPrezzo']),
+      lastDateSold: serializer.fromJson<String?>(json['lastDateSold']),
+    );
+  }
+  @override
+  Map<String, dynamic> toJson({ValueSerializer? serializer}) {
+    serializer ??= driftRuntimeOptions.defaultSerializer;
+    return <String, dynamic>{
+      'idArticolo': serializer.toJson<int>(idArticolo),
+      'codArticolo': serializer.toJson<String?>(codArticolo),
+      'descrizione': serializer.toJson<String?>(descrizione),
+      'prezzoBase': serializer.toJson<double?>(prezzoBase),
+      'attivo': serializer.toJson<int?>(attivo),
+      'nonDisponibile': serializer.toJson<int?>(nonDisponibile),
+      'inPromo': serializer.toJson<int?>(inPromo),
+      'ultimoPrezzo': serializer.toJson<double?>(ultimoPrezzo),
+      'lastDateSold': serializer.toJson<String?>(lastDateSold),
+    };
+  }
+
+  ArticoliConPromoData copyWith({
+    int? idArticolo,
+    Value<String?> codArticolo = const Value.absent(),
+    Value<String?> descrizione = const Value.absent(),
+    Value<double?> prezzoBase = const Value.absent(),
+    Value<int?> attivo = const Value.absent(),
+    Value<int?> nonDisponibile = const Value.absent(),
+    Value<int?> inPromo = const Value.absent(),
+    Value<double?> ultimoPrezzo = const Value.absent(),
+    Value<String?> lastDateSold = const Value.absent(),
+  }) => ArticoliConPromoData(
+    idArticolo: idArticolo ?? this.idArticolo,
+    codArticolo: codArticolo.present ? codArticolo.value : this.codArticolo,
+    descrizione: descrizione.present ? descrizione.value : this.descrizione,
+    prezzoBase: prezzoBase.present ? prezzoBase.value : this.prezzoBase,
+    attivo: attivo.present ? attivo.value : this.attivo,
+    nonDisponibile: nonDisponibile.present
+        ? nonDisponibile.value
+        : this.nonDisponibile,
+    inPromo: inPromo.present ? inPromo.value : this.inPromo,
+    ultimoPrezzo: ultimoPrezzo.present ? ultimoPrezzo.value : this.ultimoPrezzo,
+    lastDateSold: lastDateSold.present ? lastDateSold.value : this.lastDateSold,
+  );
+  ArticoliConPromoData copyWithCompanion(ArticoliConPromoCompanion data) {
+    return ArticoliConPromoData(
+      idArticolo: data.idArticolo.present
+          ? data.idArticolo.value
+          : this.idArticolo,
+      codArticolo: data.codArticolo.present
+          ? data.codArticolo.value
+          : this.codArticolo,
+      descrizione: data.descrizione.present
+          ? data.descrizione.value
+          : this.descrizione,
+      prezzoBase: data.prezzoBase.present
+          ? data.prezzoBase.value
+          : this.prezzoBase,
+      attivo: data.attivo.present ? data.attivo.value : this.attivo,
+      nonDisponibile: data.nonDisponibile.present
+          ? data.nonDisponibile.value
+          : this.nonDisponibile,
+      inPromo: data.inPromo.present ? data.inPromo.value : this.inPromo,
+      ultimoPrezzo: data.ultimoPrezzo.present
+          ? data.ultimoPrezzo.value
+          : this.ultimoPrezzo,
+      lastDateSold: data.lastDateSold.present
+          ? data.lastDateSold.value
+          : this.lastDateSold,
+    );
+  }
+
+  @override
+  String toString() {
+    return (StringBuffer('ArticoliConPromoData(')
+          ..write('idArticolo: $idArticolo, ')
+          ..write('codArticolo: $codArticolo, ')
+          ..write('descrizione: $descrizione, ')
+          ..write('prezzoBase: $prezzoBase, ')
+          ..write('attivo: $attivo, ')
+          ..write('nonDisponibile: $nonDisponibile, ')
+          ..write('inPromo: $inPromo, ')
+          ..write('ultimoPrezzo: $ultimoPrezzo, ')
+          ..write('lastDateSold: $lastDateSold')
+          ..write(')'))
+        .toString();
+  }
+
+  @override
+  int get hashCode => Object.hash(
+    idArticolo,
+    codArticolo,
+    descrizione,
+    prezzoBase,
+    attivo,
+    nonDisponibile,
+    inPromo,
+    ultimoPrezzo,
+    lastDateSold,
+  );
+  @override
+  bool operator ==(Object other) =>
+      identical(this, other) ||
+      (other is ArticoliConPromoData &&
+          other.idArticolo == this.idArticolo &&
+          other.codArticolo == this.codArticolo &&
+          other.descrizione == this.descrizione &&
+          other.prezzoBase == this.prezzoBase &&
+          other.attivo == this.attivo &&
+          other.nonDisponibile == this.nonDisponibile &&
+          other.inPromo == this.inPromo &&
+          other.ultimoPrezzo == this.ultimoPrezzo &&
+          other.lastDateSold == this.lastDateSold);
+}
+
+class ArticoliConPromoCompanion extends UpdateCompanion<ArticoliConPromoData> {
+  final Value<int> idArticolo;
+  final Value<String?> codArticolo;
+  final Value<String?> descrizione;
+  final Value<double?> prezzoBase;
+  final Value<int?> attivo;
+  final Value<int?> nonDisponibile;
+  final Value<int?> inPromo;
+  final Value<double?> ultimoPrezzo;
+  final Value<String?> lastDateSold;
+  const ArticoliConPromoCompanion({
+    this.idArticolo = const Value.absent(),
+    this.codArticolo = const Value.absent(),
+    this.descrizione = const Value.absent(),
+    this.prezzoBase = const Value.absent(),
+    this.attivo = const Value.absent(),
+    this.nonDisponibile = const Value.absent(),
+    this.inPromo = const Value.absent(),
+    this.ultimoPrezzo = const Value.absent(),
+    this.lastDateSold = const Value.absent(),
+  });
+  ArticoliConPromoCompanion.insert({
+    required int idArticolo,
+    this.codArticolo = const Value.absent(),
+    this.descrizione = const Value.absent(),
+    this.prezzoBase = const Value.absent(),
+    this.attivo = const Value.absent(),
+    this.nonDisponibile = const Value.absent(),
+    this.inPromo = const Value.absent(),
+    this.ultimoPrezzo = const Value.absent(),
+    this.lastDateSold = const Value.absent(),
+  }) : idArticolo = Value(idArticolo);
+  static Insertable<ArticoliConPromoData> custom({
+    Expression<int>? idArticolo,
+    Expression<String>? codArticolo,
+    Expression<String>? descrizione,
+    Expression<double>? prezzoBase,
+    Expression<int>? attivo,
+    Expression<int>? nonDisponibile,
+    Expression<int>? inPromo,
+    Expression<double>? ultimoPrezzo,
+    Expression<String>? lastDateSold,
+  }) {
+    return RawValuesInsertable({
+      if (idArticolo != null) 'idArticolo': idArticolo,
+      if (codArticolo != null) 'codArticolo': codArticolo,
+      if (descrizione != null) 'descrizione': descrizione,
+      if (prezzoBase != null) 'prezzoBase': prezzoBase,
+      if (attivo != null) 'attivo': attivo,
+      if (nonDisponibile != null) 'nonDisponibile': nonDisponibile,
+      if (inPromo != null) 'inPromo': inPromo,
+      if (ultimoPrezzo != null) 'ultimoPrezzo': ultimoPrezzo,
+      if (lastDateSold != null) 'lastDateSold': lastDateSold,
+    });
+  }
+
+  ArticoliConPromoCompanion copyWith({
+    Value<int>? idArticolo,
+    Value<String?>? codArticolo,
+    Value<String?>? descrizione,
+    Value<double?>? prezzoBase,
+    Value<int?>? attivo,
+    Value<int?>? nonDisponibile,
+    Value<int?>? inPromo,
+    Value<double?>? ultimoPrezzo,
+    Value<String?>? lastDateSold,
+  }) {
+    return ArticoliConPromoCompanion(
+      idArticolo: idArticolo ?? this.idArticolo,
+      codArticolo: codArticolo ?? this.codArticolo,
+      descrizione: descrizione ?? this.descrizione,
+      prezzoBase: prezzoBase ?? this.prezzoBase,
+      attivo: attivo ?? this.attivo,
+      nonDisponibile: nonDisponibile ?? this.nonDisponibile,
+      inPromo: inPromo ?? this.inPromo,
+      ultimoPrezzo: ultimoPrezzo ?? this.ultimoPrezzo,
+      lastDateSold: lastDateSold ?? this.lastDateSold,
+    );
+  }
+
+  @override
+  Map<String, Expression> toColumns(bool nullToAbsent) {
+    final map = <String, Expression>{};
+    if (idArticolo.present) {
+      map['idArticolo'] = Variable<int>(idArticolo.value);
+    }
+    if (codArticolo.present) {
+      map['codArticolo'] = Variable<String>(codArticolo.value);
+    }
+    if (descrizione.present) {
+      map['descrizione'] = Variable<String>(descrizione.value);
+    }
+    if (prezzoBase.present) {
+      map['prezzoBase'] = Variable<double>(prezzoBase.value);
+    }
+    if (attivo.present) {
+      map['attivo'] = Variable<int>(attivo.value);
+    }
+    if (nonDisponibile.present) {
+      map['nonDisponibile'] = Variable<int>(nonDisponibile.value);
+    }
+    if (inPromo.present) {
+      map['inPromo'] = Variable<int>(inPromo.value);
+    }
+    if (ultimoPrezzo.present) {
+      map['ultimoPrezzo'] = Variable<double>(ultimoPrezzo.value);
+    }
+    if (lastDateSold.present) {
+      map['lastDateSold'] = Variable<String>(lastDateSold.value);
+    }
+    return map;
+  }
+
+  @override
+  String toString() {
+    return (StringBuffer('ArticoliConPromoCompanion(')
+          ..write('idArticolo: $idArticolo, ')
+          ..write('codArticolo: $codArticolo, ')
+          ..write('descrizione: $descrizione, ')
+          ..write('prezzoBase: $prezzoBase, ')
+          ..write('attivo: $attivo, ')
+          ..write('nonDisponibile: $nonDisponibile, ')
+          ..write('inPromo: $inPromo, ')
+          ..write('ultimoPrezzo: $ultimoPrezzo, ')
+          ..write('lastDateSold: $lastDateSold')
+          ..write(')'))
+        .toString();
+  }
+}
+
+class $OrdiniSenzaRigheTable extends OrdiniSenzaRighe
+    with TableInfo<$OrdiniSenzaRigheTable, OrdiniSenzaRigheData> {
+  @override
+  final GeneratedDatabase attachedDatabase;
+  final String? _alias;
+  $OrdiniSenzaRigheTable(this.attachedDatabase, [this._alias]);
+  static const VerificationMeta _idOrdineMeta = const VerificationMeta(
+    'idOrdine',
+  );
+  @override
+  late final GeneratedColumn<int> idOrdine = GeneratedColumn<int>(
+    'idOrdine',
+    aliasedName,
+    false,
+    type: DriftSqlType.int,
+    requiredDuringInsert: true,
+  );
+  static const VerificationMeta _numeroOrdineMeta = const VerificationMeta(
+    'numeroOrdine',
+  );
+  @override
+  late final GeneratedColumn<int> numeroOrdine = GeneratedColumn<int>(
+    'numeroOrdine',
+    aliasedName,
+    true,
+    type: DriftSqlType.int,
+    requiredDuringInsert: false,
+  );
+  static const VerificationMeta _dataOrdineMeta = const VerificationMeta(
+    'dataOrdine',
+  );
+  @override
+  late final GeneratedColumn<String> dataOrdine = GeneratedColumn<String>(
+    'dataOrdine',
+    aliasedName,
+    true,
+    type: DriftSqlType.string,
+    requiredDuringInsert: false,
+  );
+  static const VerificationMeta _dataConsegnaMeta = const VerificationMeta(
+    'dataConsegna',
+  );
+  @override
+  late final GeneratedColumn<String> dataConsegna = GeneratedColumn<String>(
+    'dataConsegna',
+    aliasedName,
+    true,
+    type: DriftSqlType.string,
+    requiredDuringInsert: false,
+  );
+  static const VerificationMeta _riferimentoMeta = const VerificationMeta(
+    'riferimento',
+  );
+  @override
+  late final GeneratedColumn<String> riferimento = GeneratedColumn<String>(
+    'riferimento',
+    aliasedName,
+    true,
+    type: DriftSqlType.string,
+    requiredDuringInsert: false,
+  );
+  static const VerificationMeta _noteClienteMeta = const VerificationMeta(
+    'noteCliente',
+  );
+  @override
+  late final GeneratedColumn<String> noteCliente = GeneratedColumn<String>(
+    'noteCliente',
+    aliasedName,
+    true,
+    type: DriftSqlType.string,
+    requiredDuringInsert: false,
+  );
+  static const VerificationMeta _statoMeta = const VerificationMeta('stato');
+  @override
+  late final GeneratedColumn<String> stato = GeneratedColumn<String>(
+    'stato',
+    aliasedName,
+    true,
+    type: DriftSqlType.string,
+    requiredDuringInsert: false,
+  );
+  static const VerificationMeta _idClienteMeta = const VerificationMeta(
+    'idCliente',
+  );
+  @override
+  late final GeneratedColumn<int> idCliente = GeneratedColumn<int>(
+    'idCliente',
+    aliasedName,
+    true,
+    type: DriftSqlType.int,
+    requiredDuringInsert: false,
+  );
+  static const VerificationMeta _codClienteMeta = const VerificationMeta(
+    'codCliente',
+  );
+  @override
+  late final GeneratedColumn<String> codCliente = GeneratedColumn<String>(
+    'codCliente',
+    aliasedName,
+    true,
+    type: DriftSqlType.string,
+    requiredDuringInsert: false,
+  );
+  static const VerificationMeta _ragioneSocialeMeta = const VerificationMeta(
+    'ragioneSociale',
+  );
+  @override
+  late final GeneratedColumn<String> ragioneSociale = GeneratedColumn<String>(
+    'ragioneSociale',
+    aliasedName,
+    true,
+    type: DriftSqlType.string,
+    requiredDuringInsert: false,
+  );
+  static const VerificationMeta _totaleMeta = const VerificationMeta('totale');
+  @override
+  late final GeneratedColumn<double> totale = GeneratedColumn<double>(
+    'totale',
+    aliasedName,
+    true,
+    type: DriftSqlType.double,
+    requiredDuringInsert: false,
+  );
+  static const VerificationMeta _totQtaMeta = const VerificationMeta('totQta');
+  @override
+  late final GeneratedColumn<double> totQta = GeneratedColumn<double>(
+    'totQta',
+    aliasedName,
+    true,
+    type: DriftSqlType.double,
+    requiredDuringInsert: false,
+  );
+  @override
+  List<GeneratedColumn> get $columns => [
+    idOrdine,
+    numeroOrdine,
+    dataOrdine,
+    dataConsegna,
+    riferimento,
+    noteCliente,
+    stato,
+    idCliente,
+    codCliente,
+    ragioneSociale,
+    totale,
+    totQta,
+  ];
+  @override
+  String get aliasedName => _alias ?? actualTableName;
+  @override
+  String get actualTableName => $name;
+  static const String $name = 'OrdiniSenzaRighe';
+  @override
+  VerificationContext validateIntegrity(
+    Insertable<OrdiniSenzaRigheData> instance, {
+    bool isInserting = false,
+  }) {
+    final context = VerificationContext();
+    final data = instance.toColumns(true);
+    if (data.containsKey('idOrdine')) {
+      context.handle(
+        _idOrdineMeta,
+        idOrdine.isAcceptableOrUnknown(data['idOrdine']!, _idOrdineMeta),
+      );
+    } else if (isInserting) {
+      context.missing(_idOrdineMeta);
+    }
+    if (data.containsKey('numeroOrdine')) {
+      context.handle(
+        _numeroOrdineMeta,
+        numeroOrdine.isAcceptableOrUnknown(
+          data['numeroOrdine']!,
+          _numeroOrdineMeta,
+        ),
+      );
+    }
+    if (data.containsKey('dataOrdine')) {
+      context.handle(
+        _dataOrdineMeta,
+        dataOrdine.isAcceptableOrUnknown(data['dataOrdine']!, _dataOrdineMeta),
+      );
+    }
+    if (data.containsKey('dataConsegna')) {
+      context.handle(
+        _dataConsegnaMeta,
+        dataConsegna.isAcceptableOrUnknown(
+          data['dataConsegna']!,
+          _dataConsegnaMeta,
+        ),
+      );
+    }
+    if (data.containsKey('riferimento')) {
+      context.handle(
+        _riferimentoMeta,
+        riferimento.isAcceptableOrUnknown(
+          data['riferimento']!,
+          _riferimentoMeta,
+        ),
+      );
+    }
+    if (data.containsKey('noteCliente')) {
+      context.handle(
+        _noteClienteMeta,
+        noteCliente.isAcceptableOrUnknown(
+          data['noteCliente']!,
+          _noteClienteMeta,
+        ),
+      );
+    }
+    if (data.containsKey('stato')) {
+      context.handle(
+        _statoMeta,
+        stato.isAcceptableOrUnknown(data['stato']!, _statoMeta),
+      );
+    }
+    if (data.containsKey('idCliente')) {
+      context.handle(
+        _idClienteMeta,
+        idCliente.isAcceptableOrUnknown(data['idCliente']!, _idClienteMeta),
+      );
+    }
+    if (data.containsKey('codCliente')) {
+      context.handle(
+        _codClienteMeta,
+        codCliente.isAcceptableOrUnknown(data['codCliente']!, _codClienteMeta),
+      );
+    }
+    if (data.containsKey('ragioneSociale')) {
+      context.handle(
+        _ragioneSocialeMeta,
+        ragioneSociale.isAcceptableOrUnknown(
+          data['ragioneSociale']!,
+          _ragioneSocialeMeta,
+        ),
+      );
+    }
+    if (data.containsKey('totale')) {
+      context.handle(
+        _totaleMeta,
+        totale.isAcceptableOrUnknown(data['totale']!, _totaleMeta),
+      );
+    }
+    if (data.containsKey('totQta')) {
+      context.handle(
+        _totQtaMeta,
+        totQta.isAcceptableOrUnknown(data['totQta']!, _totQtaMeta),
+      );
+    }
+    return context;
+  }
+
+  @override
+  Set<GeneratedColumn> get $primaryKey => {idOrdine};
+  @override
+  OrdiniSenzaRigheData map(Map<String, dynamic> data, {String? tablePrefix}) {
+    final effectivePrefix = tablePrefix != null ? '$tablePrefix.' : '';
+    return OrdiniSenzaRigheData(
+      idOrdine: attachedDatabase.typeMapping.read(
+        DriftSqlType.int,
+        data['${effectivePrefix}idOrdine'],
+      )!,
+      numeroOrdine: attachedDatabase.typeMapping.read(
+        DriftSqlType.int,
+        data['${effectivePrefix}numeroOrdine'],
+      ),
+      dataOrdine: attachedDatabase.typeMapping.read(
+        DriftSqlType.string,
+        data['${effectivePrefix}dataOrdine'],
+      ),
+      dataConsegna: attachedDatabase.typeMapping.read(
+        DriftSqlType.string,
+        data['${effectivePrefix}dataConsegna'],
+      ),
+      riferimento: attachedDatabase.typeMapping.read(
+        DriftSqlType.string,
+        data['${effectivePrefix}riferimento'],
+      ),
+      noteCliente: attachedDatabase.typeMapping.read(
+        DriftSqlType.string,
+        data['${effectivePrefix}noteCliente'],
+      ),
+      stato: attachedDatabase.typeMapping.read(
+        DriftSqlType.string,
+        data['${effectivePrefix}stato'],
+      ),
+      idCliente: attachedDatabase.typeMapping.read(
+        DriftSqlType.int,
+        data['${effectivePrefix}idCliente'],
+      ),
+      codCliente: attachedDatabase.typeMapping.read(
+        DriftSqlType.string,
+        data['${effectivePrefix}codCliente'],
+      ),
+      ragioneSociale: attachedDatabase.typeMapping.read(
+        DriftSqlType.string,
+        data['${effectivePrefix}ragioneSociale'],
+      ),
+      totale: attachedDatabase.typeMapping.read(
+        DriftSqlType.double,
+        data['${effectivePrefix}totale'],
+      ),
+      totQta: attachedDatabase.typeMapping.read(
+        DriftSqlType.double,
+        data['${effectivePrefix}totQta'],
+      ),
+    );
+  }
+
+  @override
+  $OrdiniSenzaRigheTable createAlias(String alias) {
+    return $OrdiniSenzaRigheTable(attachedDatabase, alias);
+  }
+
+  @override
+  bool get withoutRowId => true;
+}
+
+class OrdiniSenzaRigheData extends DataClass
+    implements Insertable<OrdiniSenzaRigheData> {
+  final int idOrdine;
+  final int? numeroOrdine;
+  final String? dataOrdine;
+  final String? dataConsegna;
+  final String? riferimento;
+  final String? noteCliente;
+  final String? stato;
+  final int? idCliente;
+  final String? codCliente;
+  final String? ragioneSociale;
+  final double? totale;
+  final double? totQta;
+  const OrdiniSenzaRigheData({
+    required this.idOrdine,
+    this.numeroOrdine,
+    this.dataOrdine,
+    this.dataConsegna,
+    this.riferimento,
+    this.noteCliente,
+    this.stato,
+    this.idCliente,
+    this.codCliente,
+    this.ragioneSociale,
+    this.totale,
+    this.totQta,
+  });
+  @override
+  Map<String, Expression> toColumns(bool nullToAbsent) {
+    final map = <String, Expression>{};
+    map['idOrdine'] = Variable<int>(idOrdine);
+    if (!nullToAbsent || numeroOrdine != null) {
+      map['numeroOrdine'] = Variable<int>(numeroOrdine);
+    }
+    if (!nullToAbsent || dataOrdine != null) {
+      map['dataOrdine'] = Variable<String>(dataOrdine);
+    }
+    if (!nullToAbsent || dataConsegna != null) {
+      map['dataConsegna'] = Variable<String>(dataConsegna);
+    }
+    if (!nullToAbsent || riferimento != null) {
+      map['riferimento'] = Variable<String>(riferimento);
+    }
+    if (!nullToAbsent || noteCliente != null) {
+      map['noteCliente'] = Variable<String>(noteCliente);
+    }
+    if (!nullToAbsent || stato != null) {
+      map['stato'] = Variable<String>(stato);
+    }
+    if (!nullToAbsent || idCliente != null) {
+      map['idCliente'] = Variable<int>(idCliente);
+    }
+    if (!nullToAbsent || codCliente != null) {
+      map['codCliente'] = Variable<String>(codCliente);
+    }
+    if (!nullToAbsent || ragioneSociale != null) {
+      map['ragioneSociale'] = Variable<String>(ragioneSociale);
+    }
+    if (!nullToAbsent || totale != null) {
+      map['totale'] = Variable<double>(totale);
+    }
+    if (!nullToAbsent || totQta != null) {
+      map['totQta'] = Variable<double>(totQta);
+    }
+    return map;
+  }
+
+  OrdiniSenzaRigheCompanion toCompanion(bool nullToAbsent) {
+    return OrdiniSenzaRigheCompanion(
+      idOrdine: Value(idOrdine),
+      numeroOrdine: numeroOrdine == null && nullToAbsent
+          ? const Value.absent()
+          : Value(numeroOrdine),
+      dataOrdine: dataOrdine == null && nullToAbsent
+          ? const Value.absent()
+          : Value(dataOrdine),
+      dataConsegna: dataConsegna == null && nullToAbsent
+          ? const Value.absent()
+          : Value(dataConsegna),
+      riferimento: riferimento == null && nullToAbsent
+          ? const Value.absent()
+          : Value(riferimento),
+      noteCliente: noteCliente == null && nullToAbsent
+          ? const Value.absent()
+          : Value(noteCliente),
+      stato: stato == null && nullToAbsent
+          ? const Value.absent()
+          : Value(stato),
+      idCliente: idCliente == null && nullToAbsent
+          ? const Value.absent()
+          : Value(idCliente),
+      codCliente: codCliente == null && nullToAbsent
+          ? const Value.absent()
+          : Value(codCliente),
+      ragioneSociale: ragioneSociale == null && nullToAbsent
+          ? const Value.absent()
+          : Value(ragioneSociale),
+      totale: totale == null && nullToAbsent
+          ? const Value.absent()
+          : Value(totale),
+      totQta: totQta == null && nullToAbsent
+          ? const Value.absent()
+          : Value(totQta),
+    );
+  }
+
+  factory OrdiniSenzaRigheData.fromJson(
+    Map<String, dynamic> json, {
+    ValueSerializer? serializer,
+  }) {
+    serializer ??= driftRuntimeOptions.defaultSerializer;
+    return OrdiniSenzaRigheData(
+      idOrdine: serializer.fromJson<int>(json['idOrdine']),
+      numeroOrdine: serializer.fromJson<int?>(json['numeroOrdine']),
+      dataOrdine: serializer.fromJson<String?>(json['dataOrdine']),
+      dataConsegna: serializer.fromJson<String?>(json['dataConsegna']),
+      riferimento: serializer.fromJson<String?>(json['riferimento']),
+      noteCliente: serializer.fromJson<String?>(json['noteCliente']),
+      stato: serializer.fromJson<String?>(json['stato']),
+      idCliente: serializer.fromJson<int?>(json['idCliente']),
+      codCliente: serializer.fromJson<String?>(json['codCliente']),
+      ragioneSociale: serializer.fromJson<String?>(json['ragioneSociale']),
+      totale: serializer.fromJson<double?>(json['totale']),
+      totQta: serializer.fromJson<double?>(json['totQta']),
+    );
+  }
+  @override
+  Map<String, dynamic> toJson({ValueSerializer? serializer}) {
+    serializer ??= driftRuntimeOptions.defaultSerializer;
+    return <String, dynamic>{
+      'idOrdine': serializer.toJson<int>(idOrdine),
+      'numeroOrdine': serializer.toJson<int?>(numeroOrdine),
+      'dataOrdine': serializer.toJson<String?>(dataOrdine),
+      'dataConsegna': serializer.toJson<String?>(dataConsegna),
+      'riferimento': serializer.toJson<String?>(riferimento),
+      'noteCliente': serializer.toJson<String?>(noteCliente),
+      'stato': serializer.toJson<String?>(stato),
+      'idCliente': serializer.toJson<int?>(idCliente),
+      'codCliente': serializer.toJson<String?>(codCliente),
+      'ragioneSociale': serializer.toJson<String?>(ragioneSociale),
+      'totale': serializer.toJson<double?>(totale),
+      'totQta': serializer.toJson<double?>(totQta),
+    };
+  }
+
+  OrdiniSenzaRigheData copyWith({
+    int? idOrdine,
+    Value<int?> numeroOrdine = const Value.absent(),
+    Value<String?> dataOrdine = const Value.absent(),
+    Value<String?> dataConsegna = const Value.absent(),
+    Value<String?> riferimento = const Value.absent(),
+    Value<String?> noteCliente = const Value.absent(),
+    Value<String?> stato = const Value.absent(),
+    Value<int?> idCliente = const Value.absent(),
+    Value<String?> codCliente = const Value.absent(),
+    Value<String?> ragioneSociale = const Value.absent(),
+    Value<double?> totale = const Value.absent(),
+    Value<double?> totQta = const Value.absent(),
+  }) => OrdiniSenzaRigheData(
+    idOrdine: idOrdine ?? this.idOrdine,
+    numeroOrdine: numeroOrdine.present ? numeroOrdine.value : this.numeroOrdine,
+    dataOrdine: dataOrdine.present ? dataOrdine.value : this.dataOrdine,
+    dataConsegna: dataConsegna.present ? dataConsegna.value : this.dataConsegna,
+    riferimento: riferimento.present ? riferimento.value : this.riferimento,
+    noteCliente: noteCliente.present ? noteCliente.value : this.noteCliente,
+    stato: stato.present ? stato.value : this.stato,
+    idCliente: idCliente.present ? idCliente.value : this.idCliente,
+    codCliente: codCliente.present ? codCliente.value : this.codCliente,
+    ragioneSociale: ragioneSociale.present
+        ? ragioneSociale.value
+        : this.ragioneSociale,
+    totale: totale.present ? totale.value : this.totale,
+    totQta: totQta.present ? totQta.value : this.totQta,
+  );
+  OrdiniSenzaRigheData copyWithCompanion(OrdiniSenzaRigheCompanion data) {
+    return OrdiniSenzaRigheData(
+      idOrdine: data.idOrdine.present ? data.idOrdine.value : this.idOrdine,
+      numeroOrdine: data.numeroOrdine.present
+          ? data.numeroOrdine.value
+          : this.numeroOrdine,
+      dataOrdine: data.dataOrdine.present
+          ? data.dataOrdine.value
+          : this.dataOrdine,
+      dataConsegna: data.dataConsegna.present
+          ? data.dataConsegna.value
+          : this.dataConsegna,
+      riferimento: data.riferimento.present
+          ? data.riferimento.value
+          : this.riferimento,
+      noteCliente: data.noteCliente.present
+          ? data.noteCliente.value
+          : this.noteCliente,
+      stato: data.stato.present ? data.stato.value : this.stato,
+      idCliente: data.idCliente.present ? data.idCliente.value : this.idCliente,
+      codCliente: data.codCliente.present
+          ? data.codCliente.value
+          : this.codCliente,
+      ragioneSociale: data.ragioneSociale.present
+          ? data.ragioneSociale.value
+          : this.ragioneSociale,
+      totale: data.totale.present ? data.totale.value : this.totale,
+      totQta: data.totQta.present ? data.totQta.value : this.totQta,
+    );
+  }
+
+  @override
+  String toString() {
+    return (StringBuffer('OrdiniSenzaRigheData(')
+          ..write('idOrdine: $idOrdine, ')
+          ..write('numeroOrdine: $numeroOrdine, ')
+          ..write('dataOrdine: $dataOrdine, ')
+          ..write('dataConsegna: $dataConsegna, ')
+          ..write('riferimento: $riferimento, ')
+          ..write('noteCliente: $noteCliente, ')
+          ..write('stato: $stato, ')
+          ..write('idCliente: $idCliente, ')
+          ..write('codCliente: $codCliente, ')
+          ..write('ragioneSociale: $ragioneSociale, ')
+          ..write('totale: $totale, ')
+          ..write('totQta: $totQta')
+          ..write(')'))
+        .toString();
+  }
+
+  @override
+  int get hashCode => Object.hash(
+    idOrdine,
+    numeroOrdine,
+    dataOrdine,
+    dataConsegna,
+    riferimento,
+    noteCliente,
+    stato,
+    idCliente,
+    codCliente,
+    ragioneSociale,
+    totale,
+    totQta,
+  );
+  @override
+  bool operator ==(Object other) =>
+      identical(this, other) ||
+      (other is OrdiniSenzaRigheData &&
+          other.idOrdine == this.idOrdine &&
+          other.numeroOrdine == this.numeroOrdine &&
+          other.dataOrdine == this.dataOrdine &&
+          other.dataConsegna == this.dataConsegna &&
+          other.riferimento == this.riferimento &&
+          other.noteCliente == this.noteCliente &&
+          other.stato == this.stato &&
+          other.idCliente == this.idCliente &&
+          other.codCliente == this.codCliente &&
+          other.ragioneSociale == this.ragioneSociale &&
+          other.totale == this.totale &&
+          other.totQta == this.totQta);
+}
+
+class OrdiniSenzaRigheCompanion extends UpdateCompanion<OrdiniSenzaRigheData> {
+  final Value<int> idOrdine;
+  final Value<int?> numeroOrdine;
+  final Value<String?> dataOrdine;
+  final Value<String?> dataConsegna;
+  final Value<String?> riferimento;
+  final Value<String?> noteCliente;
+  final Value<String?> stato;
+  final Value<int?> idCliente;
+  final Value<String?> codCliente;
+  final Value<String?> ragioneSociale;
+  final Value<double?> totale;
+  final Value<double?> totQta;
+  const OrdiniSenzaRigheCompanion({
+    this.idOrdine = const Value.absent(),
+    this.numeroOrdine = const Value.absent(),
+    this.dataOrdine = const Value.absent(),
+    this.dataConsegna = const Value.absent(),
+    this.riferimento = const Value.absent(),
+    this.noteCliente = const Value.absent(),
+    this.stato = const Value.absent(),
+    this.idCliente = const Value.absent(),
+    this.codCliente = const Value.absent(),
+    this.ragioneSociale = const Value.absent(),
+    this.totale = const Value.absent(),
+    this.totQta = const Value.absent(),
+  });
+  OrdiniSenzaRigheCompanion.insert({
+    required int idOrdine,
+    this.numeroOrdine = const Value.absent(),
+    this.dataOrdine = const Value.absent(),
+    this.dataConsegna = const Value.absent(),
+    this.riferimento = const Value.absent(),
+    this.noteCliente = const Value.absent(),
+    this.stato = const Value.absent(),
+    this.idCliente = const Value.absent(),
+    this.codCliente = const Value.absent(),
+    this.ragioneSociale = const Value.absent(),
+    this.totale = const Value.absent(),
+    this.totQta = const Value.absent(),
+  }) : idOrdine = Value(idOrdine);
+  static Insertable<OrdiniSenzaRigheData> custom({
+    Expression<int>? idOrdine,
+    Expression<int>? numeroOrdine,
+    Expression<String>? dataOrdine,
+    Expression<String>? dataConsegna,
+    Expression<String>? riferimento,
+    Expression<String>? noteCliente,
+    Expression<String>? stato,
+    Expression<int>? idCliente,
+    Expression<String>? codCliente,
+    Expression<String>? ragioneSociale,
+    Expression<double>? totale,
+    Expression<double>? totQta,
+  }) {
+    return RawValuesInsertable({
+      if (idOrdine != null) 'idOrdine': idOrdine,
+      if (numeroOrdine != null) 'numeroOrdine': numeroOrdine,
+      if (dataOrdine != null) 'dataOrdine': dataOrdine,
+      if (dataConsegna != null) 'dataConsegna': dataConsegna,
+      if (riferimento != null) 'riferimento': riferimento,
+      if (noteCliente != null) 'noteCliente': noteCliente,
+      if (stato != null) 'stato': stato,
+      if (idCliente != null) 'idCliente': idCliente,
+      if (codCliente != null) 'codCliente': codCliente,
+      if (ragioneSociale != null) 'ragioneSociale': ragioneSociale,
+      if (totale != null) 'totale': totale,
+      if (totQta != null) 'totQta': totQta,
+    });
+  }
+
+  OrdiniSenzaRigheCompanion copyWith({
+    Value<int>? idOrdine,
+    Value<int?>? numeroOrdine,
+    Value<String?>? dataOrdine,
+    Value<String?>? dataConsegna,
+    Value<String?>? riferimento,
+    Value<String?>? noteCliente,
+    Value<String?>? stato,
+    Value<int?>? idCliente,
+    Value<String?>? codCliente,
+    Value<String?>? ragioneSociale,
+    Value<double?>? totale,
+    Value<double?>? totQta,
+  }) {
+    return OrdiniSenzaRigheCompanion(
+      idOrdine: idOrdine ?? this.idOrdine,
+      numeroOrdine: numeroOrdine ?? this.numeroOrdine,
+      dataOrdine: dataOrdine ?? this.dataOrdine,
+      dataConsegna: dataConsegna ?? this.dataConsegna,
+      riferimento: riferimento ?? this.riferimento,
+      noteCliente: noteCliente ?? this.noteCliente,
+      stato: stato ?? this.stato,
+      idCliente: idCliente ?? this.idCliente,
+      codCliente: codCliente ?? this.codCliente,
+      ragioneSociale: ragioneSociale ?? this.ragioneSociale,
+      totale: totale ?? this.totale,
+      totQta: totQta ?? this.totQta,
+    );
+  }
+
+  @override
+  Map<String, Expression> toColumns(bool nullToAbsent) {
+    final map = <String, Expression>{};
+    if (idOrdine.present) {
+      map['idOrdine'] = Variable<int>(idOrdine.value);
+    }
+    if (numeroOrdine.present) {
+      map['numeroOrdine'] = Variable<int>(numeroOrdine.value);
+    }
+    if (dataOrdine.present) {
+      map['dataOrdine'] = Variable<String>(dataOrdine.value);
+    }
+    if (dataConsegna.present) {
+      map['dataConsegna'] = Variable<String>(dataConsegna.value);
+    }
+    if (riferimento.present) {
+      map['riferimento'] = Variable<String>(riferimento.value);
+    }
+    if (noteCliente.present) {
+      map['noteCliente'] = Variable<String>(noteCliente.value);
+    }
+    if (stato.present) {
+      map['stato'] = Variable<String>(stato.value);
+    }
+    if (idCliente.present) {
+      map['idCliente'] = Variable<int>(idCliente.value);
+    }
+    if (codCliente.present) {
+      map['codCliente'] = Variable<String>(codCliente.value);
+    }
+    if (ragioneSociale.present) {
+      map['ragioneSociale'] = Variable<String>(ragioneSociale.value);
+    }
+    if (totale.present) {
+      map['totale'] = Variable<double>(totale.value);
+    }
+    if (totQta.present) {
+      map['totQta'] = Variable<double>(totQta.value);
+    }
+    return map;
+  }
+
+  @override
+  String toString() {
+    return (StringBuffer('OrdiniSenzaRigheCompanion(')
+          ..write('idOrdine: $idOrdine, ')
+          ..write('numeroOrdine: $numeroOrdine, ')
+          ..write('dataOrdine: $dataOrdine, ')
+          ..write('dataConsegna: $dataConsegna, ')
+          ..write('riferimento: $riferimento, ')
+          ..write('noteCliente: $noteCliente, ')
+          ..write('stato: $stato, ')
+          ..write('idCliente: $idCliente, ')
+          ..write('codCliente: $codCliente, ')
+          ..write('ragioneSociale: $ragioneSociale, ')
+          ..write('totale: $totale, ')
+          ..write('totQta: $totQta')
+          ..write(')'))
+        .toString();
+  }
+}
+
+class $TopItemTable extends TopItem with TableInfo<$TopItemTable, TopItemData> {
+  @override
+  final GeneratedDatabase attachedDatabase;
+  final String? _alias;
+  $TopItemTable(this.attachedDatabase, [this._alias]);
+  static const VerificationMeta _idArticoloMeta = const VerificationMeta(
+    'idArticolo',
+  );
+  @override
+  late final GeneratedColumn<int> idArticolo = GeneratedColumn<int>(
+    'idArticolo',
+    aliasedName,
+    false,
+    type: DriftSqlType.int,
+    requiredDuringInsert: true,
+  );
+  static const VerificationMeta _codArticoloMeta = const VerificationMeta(
+    'codArticolo',
+  );
+  @override
+  late final GeneratedColumn<String> codArticolo = GeneratedColumn<String>(
+    'codArticolo',
+    aliasedName,
+    true,
+    type: DriftSqlType.string,
+    requiredDuringInsert: false,
+  );
+  static const VerificationMeta _descrizioneMeta = const VerificationMeta(
+    'descrizione',
+  );
+  @override
+  late final GeneratedColumn<String> descrizione = GeneratedColumn<String>(
+    'descrizione',
+    aliasedName,
+    true,
+    type: DriftSqlType.string,
+    requiredDuringInsert: false,
+  );
+  static const VerificationMeta _totaleMeta = const VerificationMeta('totale');
+  @override
+  late final GeneratedColumn<double> totale = GeneratedColumn<double>(
+    'totale',
+    aliasedName,
+    true,
+    type: DriftSqlType.double,
+    requiredDuringInsert: false,
+  );
+  @override
+  List<GeneratedColumn> get $columns => [
+    idArticolo,
+    codArticolo,
+    descrizione,
+    totale,
+  ];
+  @override
+  String get aliasedName => _alias ?? actualTableName;
+  @override
+  String get actualTableName => $name;
+  static const String $name = 'TopItem';
+  @override
+  VerificationContext validateIntegrity(
+    Insertable<TopItemData> instance, {
+    bool isInserting = false,
+  }) {
+    final context = VerificationContext();
+    final data = instance.toColumns(true);
+    if (data.containsKey('idArticolo')) {
+      context.handle(
+        _idArticoloMeta,
+        idArticolo.isAcceptableOrUnknown(data['idArticolo']!, _idArticoloMeta),
+      );
+    } else if (isInserting) {
+      context.missing(_idArticoloMeta);
+    }
+    if (data.containsKey('codArticolo')) {
+      context.handle(
+        _codArticoloMeta,
+        codArticolo.isAcceptableOrUnknown(
+          data['codArticolo']!,
+          _codArticoloMeta,
+        ),
+      );
+    }
+    if (data.containsKey('descrizione')) {
+      context.handle(
+        _descrizioneMeta,
+        descrizione.isAcceptableOrUnknown(
+          data['descrizione']!,
+          _descrizioneMeta,
+        ),
+      );
+    }
+    if (data.containsKey('totale')) {
+      context.handle(
+        _totaleMeta,
+        totale.isAcceptableOrUnknown(data['totale']!, _totaleMeta),
+      );
+    }
+    return context;
+  }
+
+  @override
+  Set<GeneratedColumn> get $primaryKey => {idArticolo};
+  @override
+  TopItemData map(Map<String, dynamic> data, {String? tablePrefix}) {
+    final effectivePrefix = tablePrefix != null ? '$tablePrefix.' : '';
+    return TopItemData(
+      idArticolo: attachedDatabase.typeMapping.read(
+        DriftSqlType.int,
+        data['${effectivePrefix}idArticolo'],
+      )!,
+      codArticolo: attachedDatabase.typeMapping.read(
+        DriftSqlType.string,
+        data['${effectivePrefix}codArticolo'],
+      ),
+      descrizione: attachedDatabase.typeMapping.read(
+        DriftSqlType.string,
+        data['${effectivePrefix}descrizione'],
+      ),
+      totale: attachedDatabase.typeMapping.read(
+        DriftSqlType.double,
+        data['${effectivePrefix}totale'],
+      ),
+    );
+  }
+
+  @override
+  $TopItemTable createAlias(String alias) {
+    return $TopItemTable(attachedDatabase, alias);
+  }
+
+  @override
+  bool get withoutRowId => true;
+}
+
+class TopItemData extends DataClass implements Insertable<TopItemData> {
+  final int idArticolo;
+  final String? codArticolo;
+  final String? descrizione;
+  final double? totale;
+  const TopItemData({
+    required this.idArticolo,
+    this.codArticolo,
+    this.descrizione,
+    this.totale,
+  });
+  @override
+  Map<String, Expression> toColumns(bool nullToAbsent) {
+    final map = <String, Expression>{};
+    map['idArticolo'] = Variable<int>(idArticolo);
+    if (!nullToAbsent || codArticolo != null) {
+      map['codArticolo'] = Variable<String>(codArticolo);
+    }
+    if (!nullToAbsent || descrizione != null) {
+      map['descrizione'] = Variable<String>(descrizione);
+    }
+    if (!nullToAbsent || totale != null) {
+      map['totale'] = Variable<double>(totale);
+    }
+    return map;
+  }
+
+  TopItemCompanion toCompanion(bool nullToAbsent) {
+    return TopItemCompanion(
+      idArticolo: Value(idArticolo),
+      codArticolo: codArticolo == null && nullToAbsent
+          ? const Value.absent()
+          : Value(codArticolo),
+      descrizione: descrizione == null && nullToAbsent
+          ? const Value.absent()
+          : Value(descrizione),
+      totale: totale == null && nullToAbsent
+          ? const Value.absent()
+          : Value(totale),
+    );
+  }
+
+  factory TopItemData.fromJson(
+    Map<String, dynamic> json, {
+    ValueSerializer? serializer,
+  }) {
+    serializer ??= driftRuntimeOptions.defaultSerializer;
+    return TopItemData(
+      idArticolo: serializer.fromJson<int>(json['idArticolo']),
+      codArticolo: serializer.fromJson<String?>(json['codArticolo']),
+      descrizione: serializer.fromJson<String?>(json['descrizione']),
+      totale: serializer.fromJson<double?>(json['totale']),
+    );
+  }
+  @override
+  Map<String, dynamic> toJson({ValueSerializer? serializer}) {
+    serializer ??= driftRuntimeOptions.defaultSerializer;
+    return <String, dynamic>{
+      'idArticolo': serializer.toJson<int>(idArticolo),
+      'codArticolo': serializer.toJson<String?>(codArticolo),
+      'descrizione': serializer.toJson<String?>(descrizione),
+      'totale': serializer.toJson<double?>(totale),
+    };
+  }
+
+  TopItemData copyWith({
+    int? idArticolo,
+    Value<String?> codArticolo = const Value.absent(),
+    Value<String?> descrizione = const Value.absent(),
+    Value<double?> totale = const Value.absent(),
+  }) => TopItemData(
+    idArticolo: idArticolo ?? this.idArticolo,
+    codArticolo: codArticolo.present ? codArticolo.value : this.codArticolo,
+    descrizione: descrizione.present ? descrizione.value : this.descrizione,
+    totale: totale.present ? totale.value : this.totale,
+  );
+  TopItemData copyWithCompanion(TopItemCompanion data) {
+    return TopItemData(
+      idArticolo: data.idArticolo.present
+          ? data.idArticolo.value
+          : this.idArticolo,
+      codArticolo: data.codArticolo.present
+          ? data.codArticolo.value
+          : this.codArticolo,
+      descrizione: data.descrizione.present
+          ? data.descrizione.value
+          : this.descrizione,
+      totale: data.totale.present ? data.totale.value : this.totale,
+    );
+  }
+
+  @override
+  String toString() {
+    return (StringBuffer('TopItemData(')
+          ..write('idArticolo: $idArticolo, ')
+          ..write('codArticolo: $codArticolo, ')
+          ..write('descrizione: $descrizione, ')
+          ..write('totale: $totale')
+          ..write(')'))
+        .toString();
+  }
+
+  @override
+  int get hashCode => Object.hash(idArticolo, codArticolo, descrizione, totale);
+  @override
+  bool operator ==(Object other) =>
+      identical(this, other) ||
+      (other is TopItemData &&
+          other.idArticolo == this.idArticolo &&
+          other.codArticolo == this.codArticolo &&
+          other.descrizione == this.descrizione &&
+          other.totale == this.totale);
+}
+
+class TopItemCompanion extends UpdateCompanion<TopItemData> {
+  final Value<int> idArticolo;
+  final Value<String?> codArticolo;
+  final Value<String?> descrizione;
+  final Value<double?> totale;
+  const TopItemCompanion({
+    this.idArticolo = const Value.absent(),
+    this.codArticolo = const Value.absent(),
+    this.descrizione = const Value.absent(),
+    this.totale = const Value.absent(),
+  });
+  TopItemCompanion.insert({
+    required int idArticolo,
+    this.codArticolo = const Value.absent(),
+    this.descrizione = const Value.absent(),
+    this.totale = const Value.absent(),
+  }) : idArticolo = Value(idArticolo);
+  static Insertable<TopItemData> custom({
+    Expression<int>? idArticolo,
+    Expression<String>? codArticolo,
+    Expression<String>? descrizione,
+    Expression<double>? totale,
+  }) {
+    return RawValuesInsertable({
+      if (idArticolo != null) 'idArticolo': idArticolo,
+      if (codArticolo != null) 'codArticolo': codArticolo,
+      if (descrizione != null) 'descrizione': descrizione,
+      if (totale != null) 'totale': totale,
+    });
+  }
+
+  TopItemCompanion copyWith({
+    Value<int>? idArticolo,
+    Value<String?>? codArticolo,
+    Value<String?>? descrizione,
+    Value<double?>? totale,
+  }) {
+    return TopItemCompanion(
+      idArticolo: idArticolo ?? this.idArticolo,
+      codArticolo: codArticolo ?? this.codArticolo,
+      descrizione: descrizione ?? this.descrizione,
+      totale: totale ?? this.totale,
+    );
+  }
+
+  @override
+  Map<String, Expression> toColumns(bool nullToAbsent) {
+    final map = <String, Expression>{};
+    if (idArticolo.present) {
+      map['idArticolo'] = Variable<int>(idArticolo.value);
+    }
+    if (codArticolo.present) {
+      map['codArticolo'] = Variable<String>(codArticolo.value);
+    }
+    if (descrizione.present) {
+      map['descrizione'] = Variable<String>(descrizione.value);
+    }
+    if (totale.present) {
+      map['totale'] = Variable<double>(totale.value);
+    }
+    return map;
+  }
+
+  @override
+  String toString() {
+    return (StringBuffer('TopItemCompanion(')
+          ..write('idArticolo: $idArticolo, ')
+          ..write('codArticolo: $codArticolo, ')
+          ..write('descrizione: $descrizione, ')
+          ..write('totale: $totale')
+          ..write(')'))
+        .toString();
+  }
+}
+
+class $TopCustomerTable extends TopCustomer
+    with TableInfo<$TopCustomerTable, TopCustomerData> {
+  @override
+  final GeneratedDatabase attachedDatabase;
+  final String? _alias;
+  $TopCustomerTable(this.attachedDatabase, [this._alias]);
+  static const VerificationMeta _idClienteMeta = const VerificationMeta(
+    'idCliente',
+  );
+  @override
+  late final GeneratedColumn<int> idCliente = GeneratedColumn<int>(
+    'idCliente',
+    aliasedName,
+    false,
+    type: DriftSqlType.int,
+    requiredDuringInsert: true,
+  );
+  static const VerificationMeta _codClienteMeta = const VerificationMeta(
+    'codCliente',
+  );
+  @override
+  late final GeneratedColumn<String> codCliente = GeneratedColumn<String>(
+    'codCliente',
+    aliasedName,
+    true,
+    type: DriftSqlType.string,
+    requiredDuringInsert: false,
+  );
+  static const VerificationMeta _ragioneSocialeMeta = const VerificationMeta(
+    'ragioneSociale',
+  );
+  @override
+  late final GeneratedColumn<String> ragioneSociale = GeneratedColumn<String>(
+    'ragioneSociale',
+    aliasedName,
+    true,
+    type: DriftSqlType.string,
+    requiredDuringInsert: false,
+  );
+  static const VerificationMeta _totaleMeta = const VerificationMeta('totale');
+  @override
+  late final GeneratedColumn<double> totale = GeneratedColumn<double>(
+    'totale',
+    aliasedName,
+    true,
+    type: DriftSqlType.double,
+    requiredDuringInsert: false,
+  );
+  @override
+  List<GeneratedColumn> get $columns => [
+    idCliente,
+    codCliente,
+    ragioneSociale,
+    totale,
+  ];
+  @override
+  String get aliasedName => _alias ?? actualTableName;
+  @override
+  String get actualTableName => $name;
+  static const String $name = 'TopCustomer';
+  @override
+  VerificationContext validateIntegrity(
+    Insertable<TopCustomerData> instance, {
+    bool isInserting = false,
+  }) {
+    final context = VerificationContext();
+    final data = instance.toColumns(true);
+    if (data.containsKey('idCliente')) {
+      context.handle(
+        _idClienteMeta,
+        idCliente.isAcceptableOrUnknown(data['idCliente']!, _idClienteMeta),
+      );
+    } else if (isInserting) {
+      context.missing(_idClienteMeta);
+    }
+    if (data.containsKey('codCliente')) {
+      context.handle(
+        _codClienteMeta,
+        codCliente.isAcceptableOrUnknown(data['codCliente']!, _codClienteMeta),
+      );
+    }
+    if (data.containsKey('ragioneSociale')) {
+      context.handle(
+        _ragioneSocialeMeta,
+        ragioneSociale.isAcceptableOrUnknown(
+          data['ragioneSociale']!,
+          _ragioneSocialeMeta,
+        ),
+      );
+    }
+    if (data.containsKey('totale')) {
+      context.handle(
+        _totaleMeta,
+        totale.isAcceptableOrUnknown(data['totale']!, _totaleMeta),
+      );
+    }
+    return context;
+  }
+
+  @override
+  Set<GeneratedColumn> get $primaryKey => {idCliente};
+  @override
+  TopCustomerData map(Map<String, dynamic> data, {String? tablePrefix}) {
+    final effectivePrefix = tablePrefix != null ? '$tablePrefix.' : '';
+    return TopCustomerData(
+      idCliente: attachedDatabase.typeMapping.read(
+        DriftSqlType.int,
+        data['${effectivePrefix}idCliente'],
+      )!,
+      codCliente: attachedDatabase.typeMapping.read(
+        DriftSqlType.string,
+        data['${effectivePrefix}codCliente'],
+      ),
+      ragioneSociale: attachedDatabase.typeMapping.read(
+        DriftSqlType.string,
+        data['${effectivePrefix}ragioneSociale'],
+      ),
+      totale: attachedDatabase.typeMapping.read(
+        DriftSqlType.double,
+        data['${effectivePrefix}totale'],
+      ),
+    );
+  }
+
+  @override
+  $TopCustomerTable createAlias(String alias) {
+    return $TopCustomerTable(attachedDatabase, alias);
+  }
+
+  @override
+  bool get withoutRowId => true;
+}
+
+class TopCustomerData extends DataClass implements Insertable<TopCustomerData> {
+  final int idCliente;
+  final String? codCliente;
+  final String? ragioneSociale;
+  final double? totale;
+  const TopCustomerData({
+    required this.idCliente,
+    this.codCliente,
+    this.ragioneSociale,
+    this.totale,
+  });
+  @override
+  Map<String, Expression> toColumns(bool nullToAbsent) {
+    final map = <String, Expression>{};
+    map['idCliente'] = Variable<int>(idCliente);
+    if (!nullToAbsent || codCliente != null) {
+      map['codCliente'] = Variable<String>(codCliente);
+    }
+    if (!nullToAbsent || ragioneSociale != null) {
+      map['ragioneSociale'] = Variable<String>(ragioneSociale);
+    }
+    if (!nullToAbsent || totale != null) {
+      map['totale'] = Variable<double>(totale);
+    }
+    return map;
+  }
+
+  TopCustomerCompanion toCompanion(bool nullToAbsent) {
+    return TopCustomerCompanion(
+      idCliente: Value(idCliente),
+      codCliente: codCliente == null && nullToAbsent
+          ? const Value.absent()
+          : Value(codCliente),
+      ragioneSociale: ragioneSociale == null && nullToAbsent
+          ? const Value.absent()
+          : Value(ragioneSociale),
+      totale: totale == null && nullToAbsent
+          ? const Value.absent()
+          : Value(totale),
+    );
+  }
+
+  factory TopCustomerData.fromJson(
+    Map<String, dynamic> json, {
+    ValueSerializer? serializer,
+  }) {
+    serializer ??= driftRuntimeOptions.defaultSerializer;
+    return TopCustomerData(
+      idCliente: serializer.fromJson<int>(json['idCliente']),
+      codCliente: serializer.fromJson<String?>(json['codCliente']),
+      ragioneSociale: serializer.fromJson<String?>(json['ragioneSociale']),
+      totale: serializer.fromJson<double?>(json['totale']),
+    );
+  }
+  @override
+  Map<String, dynamic> toJson({ValueSerializer? serializer}) {
+    serializer ??= driftRuntimeOptions.defaultSerializer;
+    return <String, dynamic>{
+      'idCliente': serializer.toJson<int>(idCliente),
+      'codCliente': serializer.toJson<String?>(codCliente),
+      'ragioneSociale': serializer.toJson<String?>(ragioneSociale),
+      'totale': serializer.toJson<double?>(totale),
+    };
+  }
+
+  TopCustomerData copyWith({
+    int? idCliente,
+    Value<String?> codCliente = const Value.absent(),
+    Value<String?> ragioneSociale = const Value.absent(),
+    Value<double?> totale = const Value.absent(),
+  }) => TopCustomerData(
+    idCliente: idCliente ?? this.idCliente,
+    codCliente: codCliente.present ? codCliente.value : this.codCliente,
+    ragioneSociale: ragioneSociale.present
+        ? ragioneSociale.value
+        : this.ragioneSociale,
+    totale: totale.present ? totale.value : this.totale,
+  );
+  TopCustomerData copyWithCompanion(TopCustomerCompanion data) {
+    return TopCustomerData(
+      idCliente: data.idCliente.present ? data.idCliente.value : this.idCliente,
+      codCliente: data.codCliente.present
+          ? data.codCliente.value
+          : this.codCliente,
+      ragioneSociale: data.ragioneSociale.present
+          ? data.ragioneSociale.value
+          : this.ragioneSociale,
+      totale: data.totale.present ? data.totale.value : this.totale,
+    );
+  }
+
+  @override
+  String toString() {
+    return (StringBuffer('TopCustomerData(')
+          ..write('idCliente: $idCliente, ')
+          ..write('codCliente: $codCliente, ')
+          ..write('ragioneSociale: $ragioneSociale, ')
+          ..write('totale: $totale')
+          ..write(')'))
+        .toString();
+  }
+
+  @override
+  int get hashCode =>
+      Object.hash(idCliente, codCliente, ragioneSociale, totale);
+  @override
+  bool operator ==(Object other) =>
+      identical(this, other) ||
+      (other is TopCustomerData &&
+          other.idCliente == this.idCliente &&
+          other.codCliente == this.codCliente &&
+          other.ragioneSociale == this.ragioneSociale &&
+          other.totale == this.totale);
+}
+
+class TopCustomerCompanion extends UpdateCompanion<TopCustomerData> {
+  final Value<int> idCliente;
+  final Value<String?> codCliente;
+  final Value<String?> ragioneSociale;
+  final Value<double?> totale;
+  const TopCustomerCompanion({
+    this.idCliente = const Value.absent(),
+    this.codCliente = const Value.absent(),
+    this.ragioneSociale = const Value.absent(),
+    this.totale = const Value.absent(),
+  });
+  TopCustomerCompanion.insert({
+    required int idCliente,
+    this.codCliente = const Value.absent(),
+    this.ragioneSociale = const Value.absent(),
+    this.totale = const Value.absent(),
+  }) : idCliente = Value(idCliente);
+  static Insertable<TopCustomerData> custom({
+    Expression<int>? idCliente,
+    Expression<String>? codCliente,
+    Expression<String>? ragioneSociale,
+    Expression<double>? totale,
+  }) {
+    return RawValuesInsertable({
+      if (idCliente != null) 'idCliente': idCliente,
+      if (codCliente != null) 'codCliente': codCliente,
+      if (ragioneSociale != null) 'ragioneSociale': ragioneSociale,
+      if (totale != null) 'totale': totale,
+    });
+  }
+
+  TopCustomerCompanion copyWith({
+    Value<int>? idCliente,
+    Value<String?>? codCliente,
+    Value<String?>? ragioneSociale,
+    Value<double?>? totale,
+  }) {
+    return TopCustomerCompanion(
+      idCliente: idCliente ?? this.idCliente,
+      codCliente: codCliente ?? this.codCliente,
+      ragioneSociale: ragioneSociale ?? this.ragioneSociale,
+      totale: totale ?? this.totale,
+    );
+  }
+
+  @override
+  Map<String, Expression> toColumns(bool nullToAbsent) {
+    final map = <String, Expression>{};
+    if (idCliente.present) {
+      map['idCliente'] = Variable<int>(idCliente.value);
+    }
+    if (codCliente.present) {
+      map['codCliente'] = Variable<String>(codCliente.value);
+    }
+    if (ragioneSociale.present) {
+      map['ragioneSociale'] = Variable<String>(ragioneSociale.value);
+    }
+    if (totale.present) {
+      map['totale'] = Variable<double>(totale.value);
+    }
+    return map;
+  }
+
+  @override
+  String toString() {
+    return (StringBuffer('TopCustomerCompanion(')
+          ..write('idCliente: $idCliente, ')
+          ..write('codCliente: $codCliente, ')
+          ..write('ragioneSociale: $ragioneSociale, ')
+          ..write('totale: $totale')
+          ..write(')'))
+        .toString();
+  }
+}
+
+abstract class _$AppDatabase extends GeneratedDatabase {
+  _$AppDatabase(QueryExecutor e) : super(e);
+  $AppDatabaseManager get managers => $AppDatabaseManager(this);
+  late final $AgentiTable agenti = $AgentiTable(this);
+  late final $ArticoliTable articoli = $ArticoliTable(this);
+  late final $ClientiTable clienti = $ClientiTable(this);
+  late final $OrdiniTable ordini = $OrdiniTable(this);
+  late final $RigheOrdineTable righeOrdine = $RigheOrdineTable(this);
+  late final $FilialiTable filiali = $FilialiTable(this);
+  late final $ListiniTable listini = $ListiniTable(this);
+  late final $ListiniArticoloTable listiniArticolo = $ListiniArticoloTable(
+    this,
+  );
+  late final $ListiniClienteTable listiniCliente = $ListiniClienteTable(this);
+  late final $ScontiTable sconti = $ScontiTable(this);
+  late final $ScontiClienteTable scontiCliente = $ScontiClienteTable(this);
+  late final $PagamentiTable pagamenti = $PagamentiTable(this);
+  late final $ParametriTable parametri = $ParametriTable(this);
+  late final $TabelleTable tabelle = $TabelleTable(this);
+  late final $PromozioniTable promozioni = $PromozioniTable(this);
+  late final $PromoArticoliTable promoArticoli = $PromoArticoliTable(this);
+  late final $PromoListiniTable promoListini = $PromoListiniTable(this);
+  late final $PromoOmaggiTable promoOmaggi = $PromoOmaggiTable(this);
+  late final $ClientiAgenteTable clientiAgente = $ClientiAgenteTable(this);
+  late final $ScadenzeTable scadenze = $ScadenzeTable(this);
+  late final $StatisticheVenditaTable statisticheVendita =
+      $StatisticheVenditaTable(this);
+  late final $ArticoliConPromoTable articoliConPromo = $ArticoliConPromoTable(
+    this,
+  );
+  late final $OrdiniSenzaRigheTable ordiniSenzaRighe = $OrdiniSenzaRigheTable(
+    this,
+  );
+  late final $TopItemTable topItem = $TopItemTable(this);
+  late final $TopCustomerTable topCustomer = $TopCustomerTable(this);
+  @override
+  Iterable<TableInfo<Table, Object?>> get allTables =>
+      allSchemaEntities.whereType<TableInfo<Table, Object?>>();
+  @override
+  List<DatabaseSchemaEntity> get allSchemaEntities => [
+    agenti,
+    articoli,
+    clienti,
+    ordini,
+    righeOrdine,
+    filiali,
+    listini,
+    listiniArticolo,
+    listiniCliente,
+    sconti,
+    scontiCliente,
+    pagamenti,
+    parametri,
+    tabelle,
+    promozioni,
+    promoArticoli,
+    promoListini,
+    promoOmaggi,
+    clientiAgente,
+    scadenze,
+    statisticheVendita,
+    articoliConPromo,
+    ordiniSenzaRighe,
+    topItem,
+    topCustomer,
+  ];
+}
+
+typedef $$AgentiTableCreateCompanionBuilder =
+    AgentiCompanion Function({
+      Value<int> idAgente,
+      required String codAgente,
+      Value<String?> ragioneSociale,
+      Value<String?> pwd,
+      Value<String?> telefono,
+      Value<String?> cellulare,
+      Value<String?> email,
+      Value<String?> indirizzo,
+      Value<String?> citta,
+      Value<String?> cap,
+      Value<String?> provincia,
+      Value<String?> frazione,
+      Value<int> attivo,
+      Value<int?> modificaPrezzi,
+      Value<String?> capoArea,
+    });
+typedef $$AgentiTableUpdateCompanionBuilder =
+    AgentiCompanion Function({
+      Value<int> idAgente,
+      Value<String> codAgente,
+      Value<String?> ragioneSociale,
+      Value<String?> pwd,
+      Value<String?> telefono,
+      Value<String?> cellulare,
+      Value<String?> email,
+      Value<String?> indirizzo,
+      Value<String?> citta,
+      Value<String?> cap,
+      Value<String?> provincia,
+      Value<String?> frazione,
+      Value<int> attivo,
+      Value<int?> modificaPrezzi,
+      Value<String?> capoArea,
+    });
+
+class $$AgentiTableFilterComposer
+    extends Composer<_$AppDatabase, $AgentiTable> {
+  $$AgentiTableFilterComposer({
+    required super.$db,
+    required super.$table,
+    super.joinBuilder,
+    super.$addJoinBuilderToRootComposer,
+    super.$removeJoinBuilderFromRootComposer,
+  });
+  ColumnFilters<int> get idAgente => $composableBuilder(
+    column: $table.idAgente,
+    builder: (column) => ColumnFilters(column),
+  );
+
+  ColumnFilters<String> get codAgente => $composableBuilder(
+    column: $table.codAgente,
+    builder: (column) => ColumnFilters(column),
+  );
+
+  ColumnFilters<String> get ragioneSociale => $composableBuilder(
+    column: $table.ragioneSociale,
+    builder: (column) => ColumnFilters(column),
+  );
+
+  ColumnFilters<String> get pwd => $composableBuilder(
+    column: $table.pwd,
+    builder: (column) => ColumnFilters(column),
+  );
+
+  ColumnFilters<String> get telefono => $composableBuilder(
+    column: $table.telefono,
+    builder: (column) => ColumnFilters(column),
+  );
+
+  ColumnFilters<String> get cellulare => $composableBuilder(
+    column: $table.cellulare,
+    builder: (column) => ColumnFilters(column),
+  );
+
+  ColumnFilters<String> get email => $composableBuilder(
+    column: $table.email,
+    builder: (column) => ColumnFilters(column),
+  );
+
+  ColumnFilters<String> get indirizzo => $composableBuilder(
+    column: $table.indirizzo,
+    builder: (column) => ColumnFilters(column),
+  );
+
+  ColumnFilters<String> get citta => $composableBuilder(
+    column: $table.citta,
+    builder: (column) => ColumnFilters(column),
+  );
+
+  ColumnFilters<String> get cap => $composableBuilder(
+    column: $table.cap,
+    builder: (column) => ColumnFilters(column),
+  );
+
+  ColumnFilters<String> get provincia => $composableBuilder(
+    column: $table.provincia,
+    builder: (column) => ColumnFilters(column),
+  );
+
+  ColumnFilters<String> get frazione => $composableBuilder(
+    column: $table.frazione,
+    builder: (column) => ColumnFilters(column),
+  );
+
+  ColumnFilters<int> get attivo => $composableBuilder(
+    column: $table.attivo,
+    builder: (column) => ColumnFilters(column),
+  );
+
+  ColumnFilters<int> get modificaPrezzi => $composableBuilder(
+    column: $table.modificaPrezzi,
+    builder: (column) => ColumnFilters(column),
+  );
+
+  ColumnFilters<String> get capoArea => $composableBuilder(
+    column: $table.capoArea,
+    builder: (column) => ColumnFilters(column),
+  );
+}
+
+class $$AgentiTableOrderingComposer
+    extends Composer<_$AppDatabase, $AgentiTable> {
+  $$AgentiTableOrderingComposer({
+    required super.$db,
+    required super.$table,
+    super.joinBuilder,
+    super.$addJoinBuilderToRootComposer,
+    super.$removeJoinBuilderFromRootComposer,
+  });
+  ColumnOrderings<int> get idAgente => $composableBuilder(
+    column: $table.idAgente,
+    builder: (column) => ColumnOrderings(column),
+  );
+
+  ColumnOrderings<String> get codAgente => $composableBuilder(
+    column: $table.codAgente,
+    builder: (column) => ColumnOrderings(column),
+  );
+
+  ColumnOrderings<String> get ragioneSociale => $composableBuilder(
+    column: $table.ragioneSociale,
+    builder: (column) => ColumnOrderings(column),
+  );
+
+  ColumnOrderings<String> get pwd => $composableBuilder(
+    column: $table.pwd,
+    builder: (column) => ColumnOrderings(column),
+  );
+
+  ColumnOrderings<String> get telefono => $composableBuilder(
+    column: $table.telefono,
+    builder: (column) => ColumnOrderings(column),
+  );
+
+  ColumnOrderings<String> get cellulare => $composableBuilder(
+    column: $table.cellulare,
+    builder: (column) => ColumnOrderings(column),
+  );
+
+  ColumnOrderings<String> get email => $composableBuilder(
+    column: $table.email,
+    builder: (column) => ColumnOrderings(column),
+  );
+
+  ColumnOrderings<String> get indirizzo => $composableBuilder(
+    column: $table.indirizzo,
+    builder: (column) => ColumnOrderings(column),
+  );
+
+  ColumnOrderings<String> get citta => $composableBuilder(
+    column: $table.citta,
+    builder: (column) => ColumnOrderings(column),
+  );
+
+  ColumnOrderings<String> get cap => $composableBuilder(
+    column: $table.cap,
+    builder: (column) => ColumnOrderings(column),
+  );
+
+  ColumnOrderings<String> get provincia => $composableBuilder(
+    column: $table.provincia,
+    builder: (column) => ColumnOrderings(column),
+  );
+
+  ColumnOrderings<String> get frazione => $composableBuilder(
+    column: $table.frazione,
+    builder: (column) => ColumnOrderings(column),
+  );
+
+  ColumnOrderings<int> get attivo => $composableBuilder(
+    column: $table.attivo,
+    builder: (column) => ColumnOrderings(column),
+  );
+
+  ColumnOrderings<int> get modificaPrezzi => $composableBuilder(
+    column: $table.modificaPrezzi,
+    builder: (column) => ColumnOrderings(column),
+  );
+
+  ColumnOrderings<String> get capoArea => $composableBuilder(
+    column: $table.capoArea,
+    builder: (column) => ColumnOrderings(column),
+  );
+}
+
+class $$AgentiTableAnnotationComposer
+    extends Composer<_$AppDatabase, $AgentiTable> {
+  $$AgentiTableAnnotationComposer({
+    required super.$db,
+    required super.$table,
+    super.joinBuilder,
+    super.$addJoinBuilderToRootComposer,
+    super.$removeJoinBuilderFromRootComposer,
+  });
+  GeneratedColumn<int> get idAgente =>
+      $composableBuilder(column: $table.idAgente, builder: (column) => column);
+
+  GeneratedColumn<String> get codAgente =>
+      $composableBuilder(column: $table.codAgente, builder: (column) => column);
+
+  GeneratedColumn<String> get ragioneSociale => $composableBuilder(
+    column: $table.ragioneSociale,
+    builder: (column) => column,
+  );
+
+  GeneratedColumn<String> get pwd =>
+      $composableBuilder(column: $table.pwd, builder: (column) => column);
+
+  GeneratedColumn<String> get telefono =>
+      $composableBuilder(column: $table.telefono, builder: (column) => column);
+
+  GeneratedColumn<String> get cellulare =>
+      $composableBuilder(column: $table.cellulare, builder: (column) => column);
+
+  GeneratedColumn<String> get email =>
+      $composableBuilder(column: $table.email, builder: (column) => column);
+
+  GeneratedColumn<String> get indirizzo =>
+      $composableBuilder(column: $table.indirizzo, builder: (column) => column);
+
+  GeneratedColumn<String> get citta =>
+      $composableBuilder(column: $table.citta, builder: (column) => column);
+
+  GeneratedColumn<String> get cap =>
+      $composableBuilder(column: $table.cap, builder: (column) => column);
+
+  GeneratedColumn<String> get provincia =>
+      $composableBuilder(column: $table.provincia, builder: (column) => column);
+
+  GeneratedColumn<String> get frazione =>
+      $composableBuilder(column: $table.frazione, builder: (column) => column);
+
+  GeneratedColumn<int> get attivo =>
+      $composableBuilder(column: $table.attivo, builder: (column) => column);
+
+  GeneratedColumn<int> get modificaPrezzi => $composableBuilder(
+    column: $table.modificaPrezzi,
+    builder: (column) => column,
+  );
+
+  GeneratedColumn<String> get capoArea =>
+      $composableBuilder(column: $table.capoArea, builder: (column) => column);
+}
+
+class $$AgentiTableTableManager
+    extends
+        RootTableManager<
+          _$AppDatabase,
+          $AgentiTable,
+          Agente,
+          $$AgentiTableFilterComposer,
+          $$AgentiTableOrderingComposer,
+          $$AgentiTableAnnotationComposer,
+          $$AgentiTableCreateCompanionBuilder,
+          $$AgentiTableUpdateCompanionBuilder,
+          (Agente, BaseReferences<_$AppDatabase, $AgentiTable, Agente>),
+          Agente,
+          PrefetchHooks Function()
+        > {
+  $$AgentiTableTableManager(_$AppDatabase db, $AgentiTable table)
+    : super(
+        TableManagerState(
+          db: db,
+          table: table,
+          createFilteringComposer: () =>
+              $$AgentiTableFilterComposer($db: db, $table: table),
+          createOrderingComposer: () =>
+              $$AgentiTableOrderingComposer($db: db, $table: table),
+          createComputedFieldComposer: () =>
+              $$AgentiTableAnnotationComposer($db: db, $table: table),
+          updateCompanionCallback:
+              ({
+                Value<int> idAgente = const Value.absent(),
+                Value<String> codAgente = const Value.absent(),
+                Value<String?> ragioneSociale = const Value.absent(),
+                Value<String?> pwd = const Value.absent(),
+                Value<String?> telefono = const Value.absent(),
+                Value<String?> cellulare = const Value.absent(),
+                Value<String?> email = const Value.absent(),
+                Value<String?> indirizzo = const Value.absent(),
+                Value<String?> citta = const Value.absent(),
+                Value<String?> cap = const Value.absent(),
+                Value<String?> provincia = const Value.absent(),
+                Value<String?> frazione = const Value.absent(),
+                Value<int> attivo = const Value.absent(),
+                Value<int?> modificaPrezzi = const Value.absent(),
+                Value<String?> capoArea = const Value.absent(),
+              }) => AgentiCompanion(
+                idAgente: idAgente,
+                codAgente: codAgente,
+                ragioneSociale: ragioneSociale,
+                pwd: pwd,
+                telefono: telefono,
+                cellulare: cellulare,
+                email: email,
+                indirizzo: indirizzo,
+                citta: citta,
+                cap: cap,
+                provincia: provincia,
+                frazione: frazione,
+                attivo: attivo,
+                modificaPrezzi: modificaPrezzi,
+                capoArea: capoArea,
+              ),
+          createCompanionCallback:
+              ({
+                Value<int> idAgente = const Value.absent(),
+                required String codAgente,
+                Value<String?> ragioneSociale = const Value.absent(),
+                Value<String?> pwd = const Value.absent(),
+                Value<String?> telefono = const Value.absent(),
+                Value<String?> cellulare = const Value.absent(),
+                Value<String?> email = const Value.absent(),
+                Value<String?> indirizzo = const Value.absent(),
+                Value<String?> citta = const Value.absent(),
+                Value<String?> cap = const Value.absent(),
+                Value<String?> provincia = const Value.absent(),
+                Value<String?> frazione = const Value.absent(),
+                Value<int> attivo = const Value.absent(),
+                Value<int?> modificaPrezzi = const Value.absent(),
+                Value<String?> capoArea = const Value.absent(),
+              }) => AgentiCompanion.insert(
+                idAgente: idAgente,
+                codAgente: codAgente,
+                ragioneSociale: ragioneSociale,
+                pwd: pwd,
+                telefono: telefono,
+                cellulare: cellulare,
+                email: email,
+                indirizzo: indirizzo,
+                citta: citta,
+                cap: cap,
+                provincia: provincia,
+                frazione: frazione,
+                attivo: attivo,
+                modificaPrezzi: modificaPrezzi,
+                capoArea: capoArea,
+              ),
+          withReferenceMapper: (p0) => p0
+              .map((e) => (e.readTable(table), BaseReferences(db, table, e)))
+              .toList(),
+          prefetchHooksCallback: null,
+        ),
+      );
+}
+
+typedef $$AgentiTableProcessedTableManager =
+    ProcessedTableManager<
+      _$AppDatabase,
+      $AgentiTable,
+      Agente,
+      $$AgentiTableFilterComposer,
+      $$AgentiTableOrderingComposer,
+      $$AgentiTableAnnotationComposer,
+      $$AgentiTableCreateCompanionBuilder,
+      $$AgentiTableUpdateCompanionBuilder,
+      (Agente, BaseReferences<_$AppDatabase, $AgentiTable, Agente>),
+      Agente,
+      PrefetchHooks Function()
+    >;
+typedef $$ArticoliTableCreateCompanionBuilder =
+    ArticoliCompanion Function({
+      Value<int> idArticolo,
+      Value<int?> posizione,
+      required String codArticolo,
+      Value<String?> descrizione,
+      Value<String?> ean,
+      Value<int?> idIva,
+      Value<int?> idClassifica1,
+      Value<int?> idClassifica2,
+      Value<int?> idClassifica3,
+      Value<int?> idClassifica4,
+      Value<double?> peso,
+      Value<double?> giacenza,
+      Value<String?> unitaMisura,
+      Value<int> attivo,
+      Value<int?> nonDisponibile,
+      Value<double?> pezziConfezione,
+      Value<String?> fileFoto,
+      Value<String?> schedaProdotto,
+      Value<String?> prezzoBase,
+      Value<String?> stato,
+      Value<String?> dataModifica,
+      Value<String?> gruppo,
+      Value<String?> categoria,
+      Value<String?> colliPerStrato,
+      Value<String?> stratiPerPallet,
+    });
+typedef $$ArticoliTableUpdateCompanionBuilder =
+    ArticoliCompanion Function({
+      Value<int> idArticolo,
+      Value<int?> posizione,
+      Value<String> codArticolo,
+      Value<String?> descrizione,
+      Value<String?> ean,
+      Value<int?> idIva,
+      Value<int?> idClassifica1,
+      Value<int?> idClassifica2,
+      Value<int?> idClassifica3,
+      Value<int?> idClassifica4,
+      Value<double?> peso,
+      Value<double?> giacenza,
+      Value<String?> unitaMisura,
+      Value<int> attivo,
+      Value<int?> nonDisponibile,
+      Value<double?> pezziConfezione,
+      Value<String?> fileFoto,
+      Value<String?> schedaProdotto,
+      Value<String?> prezzoBase,
+      Value<String?> stato,
+      Value<String?> dataModifica,
+      Value<String?> gruppo,
+      Value<String?> categoria,
+      Value<String?> colliPerStrato,
+      Value<String?> stratiPerPallet,
+    });
+
+class $$ArticoliTableFilterComposer
+    extends Composer<_$AppDatabase, $ArticoliTable> {
+  $$ArticoliTableFilterComposer({
+    required super.$db,
+    required super.$table,
+    super.joinBuilder,
+    super.$addJoinBuilderToRootComposer,
+    super.$removeJoinBuilderFromRootComposer,
+  });
+  ColumnFilters<int> get idArticolo => $composableBuilder(
+    column: $table.idArticolo,
+    builder: (column) => ColumnFilters(column),
+  );
+
+  ColumnFilters<int> get posizione => $composableBuilder(
+    column: $table.posizione,
+    builder: (column) => ColumnFilters(column),
+  );
+
+  ColumnFilters<String> get codArticolo => $composableBuilder(
+    column: $table.codArticolo,
+    builder: (column) => ColumnFilters(column),
+  );
+
+  ColumnFilters<String> get descrizione => $composableBuilder(
+    column: $table.descrizione,
+    builder: (column) => ColumnFilters(column),
+  );
+
+  ColumnFilters<String> get ean => $composableBuilder(
+    column: $table.ean,
+    builder: (column) => ColumnFilters(column),
+  );
+
+  ColumnFilters<int> get idIva => $composableBuilder(
+    column: $table.idIva,
+    builder: (column) => ColumnFilters(column),
+  );
+
+  ColumnFilters<int> get idClassifica1 => $composableBuilder(
+    column: $table.idClassifica1,
+    builder: (column) => ColumnFilters(column),
+  );
+
+  ColumnFilters<int> get idClassifica2 => $composableBuilder(
+    column: $table.idClassifica2,
+    builder: (column) => ColumnFilters(column),
+  );
+
+  ColumnFilters<int> get idClassifica3 => $composableBuilder(
+    column: $table.idClassifica3,
+    builder: (column) => ColumnFilters(column),
+  );
+
+  ColumnFilters<int> get idClassifica4 => $composableBuilder(
+    column: $table.idClassifica4,
+    builder: (column) => ColumnFilters(column),
+  );
+
+  ColumnFilters<double> get peso => $composableBuilder(
+    column: $table.peso,
+    builder: (column) => ColumnFilters(column),
+  );
+
+  ColumnFilters<double> get giacenza => $composableBuilder(
+    column: $table.giacenza,
+    builder: (column) => ColumnFilters(column),
+  );
+
+  ColumnFilters<String> get unitaMisura => $composableBuilder(
+    column: $table.unitaMisura,
+    builder: (column) => ColumnFilters(column),
+  );
+
+  ColumnFilters<int> get attivo => $composableBuilder(
+    column: $table.attivo,
+    builder: (column) => ColumnFilters(column),
+  );
+
+  ColumnFilters<int> get nonDisponibile => $composableBuilder(
+    column: $table.nonDisponibile,
+    builder: (column) => ColumnFilters(column),
+  );
+
+  ColumnFilters<double> get pezziConfezione => $composableBuilder(
+    column: $table.pezziConfezione,
+    builder: (column) => ColumnFilters(column),
+  );
+
+  ColumnFilters<String> get fileFoto => $composableBuilder(
+    column: $table.fileFoto,
+    builder: (column) => ColumnFilters(column),
+  );
+
+  ColumnFilters<String> get schedaProdotto => $composableBuilder(
+    column: $table.schedaProdotto,
+    builder: (column) => ColumnFilters(column),
+  );
+
+  ColumnFilters<String> get prezzoBase => $composableBuilder(
+    column: $table.prezzoBase,
+    builder: (column) => ColumnFilters(column),
+  );
+
+  ColumnFilters<String> get stato => $composableBuilder(
+    column: $table.stato,
+    builder: (column) => ColumnFilters(column),
+  );
+
+  ColumnFilters<String> get dataModifica => $composableBuilder(
+    column: $table.dataModifica,
+    builder: (column) => ColumnFilters(column),
+  );
+
+  ColumnFilters<String> get gruppo => $composableBuilder(
+    column: $table.gruppo,
+    builder: (column) => ColumnFilters(column),
+  );
+
+  ColumnFilters<String> get categoria => $composableBuilder(
+    column: $table.categoria,
+    builder: (column) => ColumnFilters(column),
+  );
+
+  ColumnFilters<String> get colliPerStrato => $composableBuilder(
+    column: $table.colliPerStrato,
+    builder: (column) => ColumnFilters(column),
+  );
+
+  ColumnFilters<String> get stratiPerPallet => $composableBuilder(
+    column: $table.stratiPerPallet,
+    builder: (column) => ColumnFilters(column),
+  );
+}
+
+class $$ArticoliTableOrderingComposer
+    extends Composer<_$AppDatabase, $ArticoliTable> {
+  $$ArticoliTableOrderingComposer({
+    required super.$db,
+    required super.$table,
+    super.joinBuilder,
+    super.$addJoinBuilderToRootComposer,
+    super.$removeJoinBuilderFromRootComposer,
+  });
+  ColumnOrderings<int> get idArticolo => $composableBuilder(
+    column: $table.idArticolo,
+    builder: (column) => ColumnOrderings(column),
+  );
+
+  ColumnOrderings<int> get posizione => $composableBuilder(
+    column: $table.posizione,
+    builder: (column) => ColumnOrderings(column),
+  );
+
+  ColumnOrderings<String> get codArticolo => $composableBuilder(
+    column: $table.codArticolo,
+    builder: (column) => ColumnOrderings(column),
+  );
+
+  ColumnOrderings<String> get descrizione => $composableBuilder(
+    column: $table.descrizione,
+    builder: (column) => ColumnOrderings(column),
+  );
+
+  ColumnOrderings<String> get ean => $composableBuilder(
+    column: $table.ean,
+    builder: (column) => ColumnOrderings(column),
+  );
+
+  ColumnOrderings<int> get idIva => $composableBuilder(
+    column: $table.idIva,
+    builder: (column) => ColumnOrderings(column),
+  );
+
+  ColumnOrderings<int> get idClassifica1 => $composableBuilder(
+    column: $table.idClassifica1,
+    builder: (column) => ColumnOrderings(column),
+  );
+
+  ColumnOrderings<int> get idClassifica2 => $composableBuilder(
+    column: $table.idClassifica2,
+    builder: (column) => ColumnOrderings(column),
+  );
+
+  ColumnOrderings<int> get idClassifica3 => $composableBuilder(
+    column: $table.idClassifica3,
+    builder: (column) => ColumnOrderings(column),
+  );
+
+  ColumnOrderings<int> get idClassifica4 => $composableBuilder(
+    column: $table.idClassifica4,
+    builder: (column) => ColumnOrderings(column),
+  );
+
+  ColumnOrderings<double> get peso => $composableBuilder(
+    column: $table.peso,
+    builder: (column) => ColumnOrderings(column),
+  );
+
+  ColumnOrderings<double> get giacenza => $composableBuilder(
+    column: $table.giacenza,
+    builder: (column) => ColumnOrderings(column),
+  );
+
+  ColumnOrderings<String> get unitaMisura => $composableBuilder(
+    column: $table.unitaMisura,
+    builder: (column) => ColumnOrderings(column),
+  );
+
+  ColumnOrderings<int> get attivo => $composableBuilder(
+    column: $table.attivo,
+    builder: (column) => ColumnOrderings(column),
+  );
+
+  ColumnOrderings<int> get nonDisponibile => $composableBuilder(
+    column: $table.nonDisponibile,
+    builder: (column) => ColumnOrderings(column),
+  );
+
+  ColumnOrderings<double> get pezziConfezione => $composableBuilder(
+    column: $table.pezziConfezione,
+    builder: (column) => ColumnOrderings(column),
+  );
+
+  ColumnOrderings<String> get fileFoto => $composableBuilder(
+    column: $table.fileFoto,
+    builder: (column) => ColumnOrderings(column),
+  );
+
+  ColumnOrderings<String> get schedaProdotto => $composableBuilder(
+    column: $table.schedaProdotto,
+    builder: (column) => ColumnOrderings(column),
+  );
+
+  ColumnOrderings<String> get prezzoBase => $composableBuilder(
+    column: $table.prezzoBase,
+    builder: (column) => ColumnOrderings(column),
+  );
+
+  ColumnOrderings<String> get stato => $composableBuilder(
+    column: $table.stato,
+    builder: (column) => ColumnOrderings(column),
+  );
+
+  ColumnOrderings<String> get dataModifica => $composableBuilder(
+    column: $table.dataModifica,
+    builder: (column) => ColumnOrderings(column),
+  );
+
+  ColumnOrderings<String> get gruppo => $composableBuilder(
+    column: $table.gruppo,
+    builder: (column) => ColumnOrderings(column),
+  );
+
+  ColumnOrderings<String> get categoria => $composableBuilder(
+    column: $table.categoria,
+    builder: (column) => ColumnOrderings(column),
+  );
+
+  ColumnOrderings<String> get colliPerStrato => $composableBuilder(
+    column: $table.colliPerStrato,
+    builder: (column) => ColumnOrderings(column),
+  );
+
+  ColumnOrderings<String> get stratiPerPallet => $composableBuilder(
+    column: $table.stratiPerPallet,
+    builder: (column) => ColumnOrderings(column),
+  );
+}
+
+class $$ArticoliTableAnnotationComposer
+    extends Composer<_$AppDatabase, $ArticoliTable> {
+  $$ArticoliTableAnnotationComposer({
+    required super.$db,
+    required super.$table,
+    super.joinBuilder,
+    super.$addJoinBuilderToRootComposer,
+    super.$removeJoinBuilderFromRootComposer,
+  });
+  GeneratedColumn<int> get idArticolo => $composableBuilder(
+    column: $table.idArticolo,
+    builder: (column) => column,
+  );
+
+  GeneratedColumn<int> get posizione =>
+      $composableBuilder(column: $table.posizione, builder: (column) => column);
+
+  GeneratedColumn<String> get codArticolo => $composableBuilder(
+    column: $table.codArticolo,
+    builder: (column) => column,
+  );
+
+  GeneratedColumn<String> get descrizione => $composableBuilder(
+    column: $table.descrizione,
+    builder: (column) => column,
+  );
+
+  GeneratedColumn<String> get ean =>
+      $composableBuilder(column: $table.ean, builder: (column) => column);
+
+  GeneratedColumn<int> get idIva =>
+      $composableBuilder(column: $table.idIva, builder: (column) => column);
+
+  GeneratedColumn<int> get idClassifica1 => $composableBuilder(
+    column: $table.idClassifica1,
+    builder: (column) => column,
+  );
+
+  GeneratedColumn<int> get idClassifica2 => $composableBuilder(
+    column: $table.idClassifica2,
+    builder: (column) => column,
+  );
+
+  GeneratedColumn<int> get idClassifica3 => $composableBuilder(
+    column: $table.idClassifica3,
+    builder: (column) => column,
+  );
+
+  GeneratedColumn<int> get idClassifica4 => $composableBuilder(
+    column: $table.idClassifica4,
+    builder: (column) => column,
+  );
+
+  GeneratedColumn<double> get peso =>
+      $composableBuilder(column: $table.peso, builder: (column) => column);
+
+  GeneratedColumn<double> get giacenza =>
+      $composableBuilder(column: $table.giacenza, builder: (column) => column);
+
+  GeneratedColumn<String> get unitaMisura => $composableBuilder(
+    column: $table.unitaMisura,
+    builder: (column) => column,
+  );
+
+  GeneratedColumn<int> get attivo =>
+      $composableBuilder(column: $table.attivo, builder: (column) => column);
+
+  GeneratedColumn<int> get nonDisponibile => $composableBuilder(
+    column: $table.nonDisponibile,
+    builder: (column) => column,
+  );
+
+  GeneratedColumn<double> get pezziConfezione => $composableBuilder(
+    column: $table.pezziConfezione,
+    builder: (column) => column,
+  );
+
+  GeneratedColumn<String> get fileFoto =>
+      $composableBuilder(column: $table.fileFoto, builder: (column) => column);
+
+  GeneratedColumn<String> get schedaProdotto => $composableBuilder(
+    column: $table.schedaProdotto,
+    builder: (column) => column,
+  );
+
+  GeneratedColumn<String> get prezzoBase => $composableBuilder(
+    column: $table.prezzoBase,
+    builder: (column) => column,
+  );
+
+  GeneratedColumn<String> get stato =>
+      $composableBuilder(column: $table.stato, builder: (column) => column);
+
+  GeneratedColumn<String> get dataModifica => $composableBuilder(
+    column: $table.dataModifica,
+    builder: (column) => column,
+  );
+
+  GeneratedColumn<String> get gruppo =>
+      $composableBuilder(column: $table.gruppo, builder: (column) => column);
+
+  GeneratedColumn<String> get categoria =>
+      $composableBuilder(column: $table.categoria, builder: (column) => column);
+
+  GeneratedColumn<String> get colliPerStrato => $composableBuilder(
+    column: $table.colliPerStrato,
+    builder: (column) => column,
+  );
+
+  GeneratedColumn<String> get stratiPerPallet => $composableBuilder(
+    column: $table.stratiPerPallet,
+    builder: (column) => column,
+  );
+}
+
+class $$ArticoliTableTableManager
+    extends
+        RootTableManager<
+          _$AppDatabase,
+          $ArticoliTable,
+          Articolo,
+          $$ArticoliTableFilterComposer,
+          $$ArticoliTableOrderingComposer,
+          $$ArticoliTableAnnotationComposer,
+          $$ArticoliTableCreateCompanionBuilder,
+          $$ArticoliTableUpdateCompanionBuilder,
+          (Articolo, BaseReferences<_$AppDatabase, $ArticoliTable, Articolo>),
+          Articolo,
+          PrefetchHooks Function()
+        > {
+  $$ArticoliTableTableManager(_$AppDatabase db, $ArticoliTable table)
+    : super(
+        TableManagerState(
+          db: db,
+          table: table,
+          createFilteringComposer: () =>
+              $$ArticoliTableFilterComposer($db: db, $table: table),
+          createOrderingComposer: () =>
+              $$ArticoliTableOrderingComposer($db: db, $table: table),
+          createComputedFieldComposer: () =>
+              $$ArticoliTableAnnotationComposer($db: db, $table: table),
+          updateCompanionCallback:
+              ({
+                Value<int> idArticolo = const Value.absent(),
+                Value<int?> posizione = const Value.absent(),
+                Value<String> codArticolo = const Value.absent(),
+                Value<String?> descrizione = const Value.absent(),
+                Value<String?> ean = const Value.absent(),
+                Value<int?> idIva = const Value.absent(),
+                Value<int?> idClassifica1 = const Value.absent(),
+                Value<int?> idClassifica2 = const Value.absent(),
+                Value<int?> idClassifica3 = const Value.absent(),
+                Value<int?> idClassifica4 = const Value.absent(),
+                Value<double?> peso = const Value.absent(),
+                Value<double?> giacenza = const Value.absent(),
+                Value<String?> unitaMisura = const Value.absent(),
+                Value<int> attivo = const Value.absent(),
+                Value<int?> nonDisponibile = const Value.absent(),
+                Value<double?> pezziConfezione = const Value.absent(),
+                Value<String?> fileFoto = const Value.absent(),
+                Value<String?> schedaProdotto = const Value.absent(),
+                Value<String?> prezzoBase = const Value.absent(),
+                Value<String?> stato = const Value.absent(),
+                Value<String?> dataModifica = const Value.absent(),
+                Value<String?> gruppo = const Value.absent(),
+                Value<String?> categoria = const Value.absent(),
+                Value<String?> colliPerStrato = const Value.absent(),
+                Value<String?> stratiPerPallet = const Value.absent(),
+              }) => ArticoliCompanion(
+                idArticolo: idArticolo,
+                posizione: posizione,
+                codArticolo: codArticolo,
+                descrizione: descrizione,
+                ean: ean,
+                idIva: idIva,
+                idClassifica1: idClassifica1,
+                idClassifica2: idClassifica2,
+                idClassifica3: idClassifica3,
+                idClassifica4: idClassifica4,
+                peso: peso,
+                giacenza: giacenza,
+                unitaMisura: unitaMisura,
+                attivo: attivo,
+                nonDisponibile: nonDisponibile,
+                pezziConfezione: pezziConfezione,
+                fileFoto: fileFoto,
+                schedaProdotto: schedaProdotto,
+                prezzoBase: prezzoBase,
+                stato: stato,
+                dataModifica: dataModifica,
+                gruppo: gruppo,
+                categoria: categoria,
+                colliPerStrato: colliPerStrato,
+                stratiPerPallet: stratiPerPallet,
+              ),
+          createCompanionCallback:
+              ({
+                Value<int> idArticolo = const Value.absent(),
+                Value<int?> posizione = const Value.absent(),
+                required String codArticolo,
+                Value<String?> descrizione = const Value.absent(),
+                Value<String?> ean = const Value.absent(),
+                Value<int?> idIva = const Value.absent(),
+                Value<int?> idClassifica1 = const Value.absent(),
+                Value<int?> idClassifica2 = const Value.absent(),
+                Value<int?> idClassifica3 = const Value.absent(),
+                Value<int?> idClassifica4 = const Value.absent(),
+                Value<double?> peso = const Value.absent(),
+                Value<double?> giacenza = const Value.absent(),
+                Value<String?> unitaMisura = const Value.absent(),
+                Value<int> attivo = const Value.absent(),
+                Value<int?> nonDisponibile = const Value.absent(),
+                Value<double?> pezziConfezione = const Value.absent(),
+                Value<String?> fileFoto = const Value.absent(),
+                Value<String?> schedaProdotto = const Value.absent(),
+                Value<String?> prezzoBase = const Value.absent(),
+                Value<String?> stato = const Value.absent(),
+                Value<String?> dataModifica = const Value.absent(),
+                Value<String?> gruppo = const Value.absent(),
+                Value<String?> categoria = const Value.absent(),
+                Value<String?> colliPerStrato = const Value.absent(),
+                Value<String?> stratiPerPallet = const Value.absent(),
+              }) => ArticoliCompanion.insert(
+                idArticolo: idArticolo,
+                posizione: posizione,
+                codArticolo: codArticolo,
+                descrizione: descrizione,
+                ean: ean,
+                idIva: idIva,
+                idClassifica1: idClassifica1,
+                idClassifica2: idClassifica2,
+                idClassifica3: idClassifica3,
+                idClassifica4: idClassifica4,
+                peso: peso,
+                giacenza: giacenza,
+                unitaMisura: unitaMisura,
+                attivo: attivo,
+                nonDisponibile: nonDisponibile,
+                pezziConfezione: pezziConfezione,
+                fileFoto: fileFoto,
+                schedaProdotto: schedaProdotto,
+                prezzoBase: prezzoBase,
+                stato: stato,
+                dataModifica: dataModifica,
+                gruppo: gruppo,
+                categoria: categoria,
+                colliPerStrato: colliPerStrato,
+                stratiPerPallet: stratiPerPallet,
+              ),
+          withReferenceMapper: (p0) => p0
+              .map((e) => (e.readTable(table), BaseReferences(db, table, e)))
+              .toList(),
+          prefetchHooksCallback: null,
+        ),
+      );
+}
+
+typedef $$ArticoliTableProcessedTableManager =
+    ProcessedTableManager<
+      _$AppDatabase,
+      $ArticoliTable,
+      Articolo,
+      $$ArticoliTableFilterComposer,
+      $$ArticoliTableOrderingComposer,
+      $$ArticoliTableAnnotationComposer,
+      $$ArticoliTableCreateCompanionBuilder,
+      $$ArticoliTableUpdateCompanionBuilder,
+      (Articolo, BaseReferences<_$AppDatabase, $ArticoliTable, Articolo>),
+      Articolo,
+      PrefetchHooks Function()
+    >;
+typedef $$ClientiTableCreateCompanionBuilder =
+    ClientiCompanion Function({
+      Value<int> idCliente,
+      Value<int?> idClienteRemoto,
+      Value<String?> codCliente,
+      Value<String?> ragioneSociale,
+      Value<String?> indirizzo,
+      Value<String?> citta,
+      Value<String?> provincia,
+      Value<String?> cap,
+      Value<String?> frazione,
+      Value<String?> nazione,
+      Value<String?> telefono,
+      Value<String?> cellulare,
+      Value<String?> fax,
+      Value<String?> email,
+      Value<String?> partitaIva,
+      Value<String?> codiceFiscale,
+      Value<String?> note,
+      Value<String?> noteOrdine,
+      Value<String> stato,
+      Value<int> attivo,
+      Value<int?> idPagamento,
+      Value<int?> idListino,
+      Value<String?> dataModifica,
+      Value<String?> sdi,
+      Value<String?> pec,
+      Value<String?> altreNote,
+      Value<String?> numeroCivico,
+      Value<String?> pod,
+      Value<String?> pdr,
+      Value<String?> ubicazione,
+      Value<String?> banca,
+      Value<String?> bancaFiliale,
+      Value<String?> codBlocco,
+    });
+typedef $$ClientiTableUpdateCompanionBuilder =
+    ClientiCompanion Function({
+      Value<int> idCliente,
+      Value<int?> idClienteRemoto,
+      Value<String?> codCliente,
+      Value<String?> ragioneSociale,
+      Value<String?> indirizzo,
+      Value<String?> citta,
+      Value<String?> provincia,
+      Value<String?> cap,
+      Value<String?> frazione,
+      Value<String?> nazione,
+      Value<String?> telefono,
+      Value<String?> cellulare,
+      Value<String?> fax,
+      Value<String?> email,
+      Value<String?> partitaIva,
+      Value<String?> codiceFiscale,
+      Value<String?> note,
+      Value<String?> noteOrdine,
+      Value<String> stato,
+      Value<int> attivo,
+      Value<int?> idPagamento,
+      Value<int?> idListino,
+      Value<String?> dataModifica,
+      Value<String?> sdi,
+      Value<String?> pec,
+      Value<String?> altreNote,
+      Value<String?> numeroCivico,
+      Value<String?> pod,
+      Value<String?> pdr,
+      Value<String?> ubicazione,
+      Value<String?> banca,
+      Value<String?> bancaFiliale,
+      Value<String?> codBlocco,
+    });
+
+class $$ClientiTableFilterComposer
+    extends Composer<_$AppDatabase, $ClientiTable> {
+  $$ClientiTableFilterComposer({
+    required super.$db,
+    required super.$table,
+    super.joinBuilder,
+    super.$addJoinBuilderToRootComposer,
+    super.$removeJoinBuilderFromRootComposer,
+  });
+  ColumnFilters<int> get idCliente => $composableBuilder(
+    column: $table.idCliente,
+    builder: (column) => ColumnFilters(column),
+  );
+
+  ColumnFilters<int> get idClienteRemoto => $composableBuilder(
+    column: $table.idClienteRemoto,
+    builder: (column) => ColumnFilters(column),
+  );
+
+  ColumnFilters<String> get codCliente => $composableBuilder(
+    column: $table.codCliente,
+    builder: (column) => ColumnFilters(column),
+  );
+
+  ColumnFilters<String> get ragioneSociale => $composableBuilder(
+    column: $table.ragioneSociale,
+    builder: (column) => ColumnFilters(column),
+  );
+
+  ColumnFilters<String> get indirizzo => $composableBuilder(
+    column: $table.indirizzo,
+    builder: (column) => ColumnFilters(column),
+  );
+
+  ColumnFilters<String> get citta => $composableBuilder(
+    column: $table.citta,
+    builder: (column) => ColumnFilters(column),
+  );
+
+  ColumnFilters<String> get provincia => $composableBuilder(
+    column: $table.provincia,
+    builder: (column) => ColumnFilters(column),
+  );
+
+  ColumnFilters<String> get cap => $composableBuilder(
+    column: $table.cap,
+    builder: (column) => ColumnFilters(column),
+  );
+
+  ColumnFilters<String> get frazione => $composableBuilder(
+    column: $table.frazione,
+    builder: (column) => ColumnFilters(column),
+  );
+
+  ColumnFilters<String> get nazione => $composableBuilder(
+    column: $table.nazione,
+    builder: (column) => ColumnFilters(column),
+  );
+
+  ColumnFilters<String> get telefono => $composableBuilder(
+    column: $table.telefono,
+    builder: (column) => ColumnFilters(column),
+  );
+
+  ColumnFilters<String> get cellulare => $composableBuilder(
+    column: $table.cellulare,
+    builder: (column) => ColumnFilters(column),
+  );
+
+  ColumnFilters<String> get fax => $composableBuilder(
+    column: $table.fax,
+    builder: (column) => ColumnFilters(column),
+  );
+
+  ColumnFilters<String> get email => $composableBuilder(
+    column: $table.email,
+    builder: (column) => ColumnFilters(column),
+  );
+
+  ColumnFilters<String> get partitaIva => $composableBuilder(
+    column: $table.partitaIva,
+    builder: (column) => ColumnFilters(column),
+  );
+
+  ColumnFilters<String> get codiceFiscale => $composableBuilder(
+    column: $table.codiceFiscale,
+    builder: (column) => ColumnFilters(column),
+  );
+
+  ColumnFilters<String> get note => $composableBuilder(
+    column: $table.note,
+    builder: (column) => ColumnFilters(column),
+  );
+
+  ColumnFilters<String> get noteOrdine => $composableBuilder(
+    column: $table.noteOrdine,
+    builder: (column) => ColumnFilters(column),
+  );
+
+  ColumnFilters<String> get stato => $composableBuilder(
+    column: $table.stato,
+    builder: (column) => ColumnFilters(column),
+  );
+
+  ColumnFilters<int> get attivo => $composableBuilder(
+    column: $table.attivo,
+    builder: (column) => ColumnFilters(column),
+  );
+
+  ColumnFilters<int> get idPagamento => $composableBuilder(
+    column: $table.idPagamento,
+    builder: (column) => ColumnFilters(column),
+  );
+
+  ColumnFilters<int> get idListino => $composableBuilder(
+    column: $table.idListino,
+    builder: (column) => ColumnFilters(column),
+  );
+
+  ColumnFilters<String> get dataModifica => $composableBuilder(
+    column: $table.dataModifica,
+    builder: (column) => ColumnFilters(column),
+  );
+
+  ColumnFilters<String> get sdi => $composableBuilder(
+    column: $table.sdi,
+    builder: (column) => ColumnFilters(column),
+  );
+
+  ColumnFilters<String> get pec => $composableBuilder(
+    column: $table.pec,
+    builder: (column) => ColumnFilters(column),
+  );
+
+  ColumnFilters<String> get altreNote => $composableBuilder(
+    column: $table.altreNote,
+    builder: (column) => ColumnFilters(column),
+  );
+
+  ColumnFilters<String> get numeroCivico => $composableBuilder(
+    column: $table.numeroCivico,
+    builder: (column) => ColumnFilters(column),
+  );
+
+  ColumnFilters<String> get pod => $composableBuilder(
+    column: $table.pod,
+    builder: (column) => ColumnFilters(column),
+  );
+
+  ColumnFilters<String> get pdr => $composableBuilder(
+    column: $table.pdr,
+    builder: (column) => ColumnFilters(column),
+  );
+
+  ColumnFilters<String> get ubicazione => $composableBuilder(
+    column: $table.ubicazione,
+    builder: (column) => ColumnFilters(column),
+  );
+
+  ColumnFilters<String> get banca => $composableBuilder(
+    column: $table.banca,
+    builder: (column) => ColumnFilters(column),
+  );
+
+  ColumnFilters<String> get bancaFiliale => $composableBuilder(
+    column: $table.bancaFiliale,
+    builder: (column) => ColumnFilters(column),
+  );
+
+  ColumnFilters<String> get codBlocco => $composableBuilder(
+    column: $table.codBlocco,
+    builder: (column) => ColumnFilters(column),
+  );
+}
+
+class $$ClientiTableOrderingComposer
+    extends Composer<_$AppDatabase, $ClientiTable> {
+  $$ClientiTableOrderingComposer({
+    required super.$db,
+    required super.$table,
+    super.joinBuilder,
+    super.$addJoinBuilderToRootComposer,
+    super.$removeJoinBuilderFromRootComposer,
+  });
+  ColumnOrderings<int> get idCliente => $composableBuilder(
+    column: $table.idCliente,
+    builder: (column) => ColumnOrderings(column),
+  );
+
+  ColumnOrderings<int> get idClienteRemoto => $composableBuilder(
+    column: $table.idClienteRemoto,
+    builder: (column) => ColumnOrderings(column),
+  );
+
+  ColumnOrderings<String> get codCliente => $composableBuilder(
+    column: $table.codCliente,
+    builder: (column) => ColumnOrderings(column),
+  );
+
+  ColumnOrderings<String> get ragioneSociale => $composableBuilder(
+    column: $table.ragioneSociale,
+    builder: (column) => ColumnOrderings(column),
+  );
+
+  ColumnOrderings<String> get indirizzo => $composableBuilder(
+    column: $table.indirizzo,
+    builder: (column) => ColumnOrderings(column),
+  );
+
+  ColumnOrderings<String> get citta => $composableBuilder(
+    column: $table.citta,
+    builder: (column) => ColumnOrderings(column),
+  );
+
+  ColumnOrderings<String> get provincia => $composableBuilder(
+    column: $table.provincia,
+    builder: (column) => ColumnOrderings(column),
+  );
+
+  ColumnOrderings<String> get cap => $composableBuilder(
+    column: $table.cap,
+    builder: (column) => ColumnOrderings(column),
+  );
+
+  ColumnOrderings<String> get frazione => $composableBuilder(
+    column: $table.frazione,
+    builder: (column) => ColumnOrderings(column),
+  );
+
+  ColumnOrderings<String> get nazione => $composableBuilder(
+    column: $table.nazione,
+    builder: (column) => ColumnOrderings(column),
+  );
+
+  ColumnOrderings<String> get telefono => $composableBuilder(
+    column: $table.telefono,
+    builder: (column) => ColumnOrderings(column),
+  );
+
+  ColumnOrderings<String> get cellulare => $composableBuilder(
+    column: $table.cellulare,
+    builder: (column) => ColumnOrderings(column),
+  );
+
+  ColumnOrderings<String> get fax => $composableBuilder(
+    column: $table.fax,
+    builder: (column) => ColumnOrderings(column),
+  );
+
+  ColumnOrderings<String> get email => $composableBuilder(
+    column: $table.email,
+    builder: (column) => ColumnOrderings(column),
+  );
+
+  ColumnOrderings<String> get partitaIva => $composableBuilder(
+    column: $table.partitaIva,
+    builder: (column) => ColumnOrderings(column),
+  );
+
+  ColumnOrderings<String> get codiceFiscale => $composableBuilder(
+    column: $table.codiceFiscale,
+    builder: (column) => ColumnOrderings(column),
+  );
+
+  ColumnOrderings<String> get note => $composableBuilder(
+    column: $table.note,
+    builder: (column) => ColumnOrderings(column),
+  );
+
+  ColumnOrderings<String> get noteOrdine => $composableBuilder(
+    column: $table.noteOrdine,
+    builder: (column) => ColumnOrderings(column),
+  );
+
+  ColumnOrderings<String> get stato => $composableBuilder(
+    column: $table.stato,
+    builder: (column) => ColumnOrderings(column),
+  );
+
+  ColumnOrderings<int> get attivo => $composableBuilder(
+    column: $table.attivo,
+    builder: (column) => ColumnOrderings(column),
+  );
+
+  ColumnOrderings<int> get idPagamento => $composableBuilder(
+    column: $table.idPagamento,
+    builder: (column) => ColumnOrderings(column),
+  );
+
+  ColumnOrderings<int> get idListino => $composableBuilder(
+    column: $table.idListino,
+    builder: (column) => ColumnOrderings(column),
+  );
+
+  ColumnOrderings<String> get dataModifica => $composableBuilder(
+    column: $table.dataModifica,
+    builder: (column) => ColumnOrderings(column),
+  );
+
+  ColumnOrderings<String> get sdi => $composableBuilder(
+    column: $table.sdi,
+    builder: (column) => ColumnOrderings(column),
+  );
+
+  ColumnOrderings<String> get pec => $composableBuilder(
+    column: $table.pec,
+    builder: (column) => ColumnOrderings(column),
+  );
+
+  ColumnOrderings<String> get altreNote => $composableBuilder(
+    column: $table.altreNote,
+    builder: (column) => ColumnOrderings(column),
+  );
+
+  ColumnOrderings<String> get numeroCivico => $composableBuilder(
+    column: $table.numeroCivico,
+    builder: (column) => ColumnOrderings(column),
+  );
+
+  ColumnOrderings<String> get pod => $composableBuilder(
+    column: $table.pod,
+    builder: (column) => ColumnOrderings(column),
+  );
+
+  ColumnOrderings<String> get pdr => $composableBuilder(
+    column: $table.pdr,
+    builder: (column) => ColumnOrderings(column),
+  );
+
+  ColumnOrderings<String> get ubicazione => $composableBuilder(
+    column: $table.ubicazione,
+    builder: (column) => ColumnOrderings(column),
+  );
+
+  ColumnOrderings<String> get banca => $composableBuilder(
+    column: $table.banca,
+    builder: (column) => ColumnOrderings(column),
+  );
+
+  ColumnOrderings<String> get bancaFiliale => $composableBuilder(
+    column: $table.bancaFiliale,
+    builder: (column) => ColumnOrderings(column),
+  );
+
+  ColumnOrderings<String> get codBlocco => $composableBuilder(
+    column: $table.codBlocco,
+    builder: (column) => ColumnOrderings(column),
+  );
+}
+
+class $$ClientiTableAnnotationComposer
+    extends Composer<_$AppDatabase, $ClientiTable> {
+  $$ClientiTableAnnotationComposer({
+    required super.$db,
+    required super.$table,
+    super.joinBuilder,
+    super.$addJoinBuilderToRootComposer,
+    super.$removeJoinBuilderFromRootComposer,
+  });
+  GeneratedColumn<int> get idCliente =>
+      $composableBuilder(column: $table.idCliente, builder: (column) => column);
+
+  GeneratedColumn<int> get idClienteRemoto => $composableBuilder(
+    column: $table.idClienteRemoto,
+    builder: (column) => column,
+  );
+
+  GeneratedColumn<String> get codCliente => $composableBuilder(
+    column: $table.codCliente,
+    builder: (column) => column,
+  );
+
+  GeneratedColumn<String> get ragioneSociale => $composableBuilder(
+    column: $table.ragioneSociale,
+    builder: (column) => column,
+  );
+
+  GeneratedColumn<String> get indirizzo =>
+      $composableBuilder(column: $table.indirizzo, builder: (column) => column);
+
+  GeneratedColumn<String> get citta =>
+      $composableBuilder(column: $table.citta, builder: (column) => column);
+
+  GeneratedColumn<String> get provincia =>
+      $composableBuilder(column: $table.provincia, builder: (column) => column);
+
+  GeneratedColumn<String> get cap =>
+      $composableBuilder(column: $table.cap, builder: (column) => column);
+
+  GeneratedColumn<String> get frazione =>
+      $composableBuilder(column: $table.frazione, builder: (column) => column);
+
+  GeneratedColumn<String> get nazione =>
+      $composableBuilder(column: $table.nazione, builder: (column) => column);
+
+  GeneratedColumn<String> get telefono =>
+      $composableBuilder(column: $table.telefono, builder: (column) => column);
+
+  GeneratedColumn<String> get cellulare =>
+      $composableBuilder(column: $table.cellulare, builder: (column) => column);
+
+  GeneratedColumn<String> get fax =>
+      $composableBuilder(column: $table.fax, builder: (column) => column);
+
+  GeneratedColumn<String> get email =>
+      $composableBuilder(column: $table.email, builder: (column) => column);
+
+  GeneratedColumn<String> get partitaIva => $composableBuilder(
+    column: $table.partitaIva,
+    builder: (column) => column,
+  );
+
+  GeneratedColumn<String> get codiceFiscale => $composableBuilder(
+    column: $table.codiceFiscale,
+    builder: (column) => column,
+  );
+
+  GeneratedColumn<String> get note =>
+      $composableBuilder(column: $table.note, builder: (column) => column);
+
+  GeneratedColumn<String> get noteOrdine => $composableBuilder(
+    column: $table.noteOrdine,
+    builder: (column) => column,
+  );
+
+  GeneratedColumn<String> get stato =>
+      $composableBuilder(column: $table.stato, builder: (column) => column);
+
+  GeneratedColumn<int> get attivo =>
+      $composableBuilder(column: $table.attivo, builder: (column) => column);
+
+  GeneratedColumn<int> get idPagamento => $composableBuilder(
+    column: $table.idPagamento,
+    builder: (column) => column,
+  );
+
+  GeneratedColumn<int> get idListino =>
+      $composableBuilder(column: $table.idListino, builder: (column) => column);
+
+  GeneratedColumn<String> get dataModifica => $composableBuilder(
+    column: $table.dataModifica,
+    builder: (column) => column,
+  );
+
+  GeneratedColumn<String> get sdi =>
+      $composableBuilder(column: $table.sdi, builder: (column) => column);
+
+  GeneratedColumn<String> get pec =>
+      $composableBuilder(column: $table.pec, builder: (column) => column);
+
+  GeneratedColumn<String> get altreNote =>
+      $composableBuilder(column: $table.altreNote, builder: (column) => column);
+
+  GeneratedColumn<String> get numeroCivico => $composableBuilder(
+    column: $table.numeroCivico,
+    builder: (column) => column,
+  );
+
+  GeneratedColumn<String> get pod =>
+      $composableBuilder(column: $table.pod, builder: (column) => column);
+
+  GeneratedColumn<String> get pdr =>
+      $composableBuilder(column: $table.pdr, builder: (column) => column);
+
+  GeneratedColumn<String> get ubicazione => $composableBuilder(
+    column: $table.ubicazione,
+    builder: (column) => column,
+  );
+
+  GeneratedColumn<String> get banca =>
+      $composableBuilder(column: $table.banca, builder: (column) => column);
+
+  GeneratedColumn<String> get bancaFiliale => $composableBuilder(
+    column: $table.bancaFiliale,
+    builder: (column) => column,
+  );
+
+  GeneratedColumn<String> get codBlocco =>
+      $composableBuilder(column: $table.codBlocco, builder: (column) => column);
+}
+
+class $$ClientiTableTableManager
+    extends
+        RootTableManager<
+          _$AppDatabase,
+          $ClientiTable,
+          Cliente,
+          $$ClientiTableFilterComposer,
+          $$ClientiTableOrderingComposer,
+          $$ClientiTableAnnotationComposer,
+          $$ClientiTableCreateCompanionBuilder,
+          $$ClientiTableUpdateCompanionBuilder,
+          (Cliente, BaseReferences<_$AppDatabase, $ClientiTable, Cliente>),
+          Cliente,
+          PrefetchHooks Function()
+        > {
+  $$ClientiTableTableManager(_$AppDatabase db, $ClientiTable table)
+    : super(
+        TableManagerState(
+          db: db,
+          table: table,
+          createFilteringComposer: () =>
+              $$ClientiTableFilterComposer($db: db, $table: table),
+          createOrderingComposer: () =>
+              $$ClientiTableOrderingComposer($db: db, $table: table),
+          createComputedFieldComposer: () =>
+              $$ClientiTableAnnotationComposer($db: db, $table: table),
+          updateCompanionCallback:
+              ({
+                Value<int> idCliente = const Value.absent(),
+                Value<int?> idClienteRemoto = const Value.absent(),
+                Value<String?> codCliente = const Value.absent(),
+                Value<String?> ragioneSociale = const Value.absent(),
+                Value<String?> indirizzo = const Value.absent(),
+                Value<String?> citta = const Value.absent(),
+                Value<String?> provincia = const Value.absent(),
+                Value<String?> cap = const Value.absent(),
+                Value<String?> frazione = const Value.absent(),
+                Value<String?> nazione = const Value.absent(),
+                Value<String?> telefono = const Value.absent(),
+                Value<String?> cellulare = const Value.absent(),
+                Value<String?> fax = const Value.absent(),
+                Value<String?> email = const Value.absent(),
+                Value<String?> partitaIva = const Value.absent(),
+                Value<String?> codiceFiscale = const Value.absent(),
+                Value<String?> note = const Value.absent(),
+                Value<String?> noteOrdine = const Value.absent(),
+                Value<String> stato = const Value.absent(),
+                Value<int> attivo = const Value.absent(),
+                Value<int?> idPagamento = const Value.absent(),
+                Value<int?> idListino = const Value.absent(),
+                Value<String?> dataModifica = const Value.absent(),
+                Value<String?> sdi = const Value.absent(),
+                Value<String?> pec = const Value.absent(),
+                Value<String?> altreNote = const Value.absent(),
+                Value<String?> numeroCivico = const Value.absent(),
+                Value<String?> pod = const Value.absent(),
+                Value<String?> pdr = const Value.absent(),
+                Value<String?> ubicazione = const Value.absent(),
+                Value<String?> banca = const Value.absent(),
+                Value<String?> bancaFiliale = const Value.absent(),
+                Value<String?> codBlocco = const Value.absent(),
+              }) => ClientiCompanion(
+                idCliente: idCliente,
+                idClienteRemoto: idClienteRemoto,
+                codCliente: codCliente,
+                ragioneSociale: ragioneSociale,
+                indirizzo: indirizzo,
+                citta: citta,
+                provincia: provincia,
+                cap: cap,
+                frazione: frazione,
+                nazione: nazione,
+                telefono: telefono,
+                cellulare: cellulare,
+                fax: fax,
+                email: email,
+                partitaIva: partitaIva,
+                codiceFiscale: codiceFiscale,
+                note: note,
+                noteOrdine: noteOrdine,
+                stato: stato,
+                attivo: attivo,
+                idPagamento: idPagamento,
+                idListino: idListino,
+                dataModifica: dataModifica,
+                sdi: sdi,
+                pec: pec,
+                altreNote: altreNote,
+                numeroCivico: numeroCivico,
+                pod: pod,
+                pdr: pdr,
+                ubicazione: ubicazione,
+                banca: banca,
+                bancaFiliale: bancaFiliale,
+                codBlocco: codBlocco,
+              ),
+          createCompanionCallback:
+              ({
+                Value<int> idCliente = const Value.absent(),
+                Value<int?> idClienteRemoto = const Value.absent(),
+                Value<String?> codCliente = const Value.absent(),
+                Value<String?> ragioneSociale = const Value.absent(),
+                Value<String?> indirizzo = const Value.absent(),
+                Value<String?> citta = const Value.absent(),
+                Value<String?> provincia = const Value.absent(),
+                Value<String?> cap = const Value.absent(),
+                Value<String?> frazione = const Value.absent(),
+                Value<String?> nazione = const Value.absent(),
+                Value<String?> telefono = const Value.absent(),
+                Value<String?> cellulare = const Value.absent(),
+                Value<String?> fax = const Value.absent(),
+                Value<String?> email = const Value.absent(),
+                Value<String?> partitaIva = const Value.absent(),
+                Value<String?> codiceFiscale = const Value.absent(),
+                Value<String?> note = const Value.absent(),
+                Value<String?> noteOrdine = const Value.absent(),
+                Value<String> stato = const Value.absent(),
+                Value<int> attivo = const Value.absent(),
+                Value<int?> idPagamento = const Value.absent(),
+                Value<int?> idListino = const Value.absent(),
+                Value<String?> dataModifica = const Value.absent(),
+                Value<String?> sdi = const Value.absent(),
+                Value<String?> pec = const Value.absent(),
+                Value<String?> altreNote = const Value.absent(),
+                Value<String?> numeroCivico = const Value.absent(),
+                Value<String?> pod = const Value.absent(),
+                Value<String?> pdr = const Value.absent(),
+                Value<String?> ubicazione = const Value.absent(),
+                Value<String?> banca = const Value.absent(),
+                Value<String?> bancaFiliale = const Value.absent(),
+                Value<String?> codBlocco = const Value.absent(),
+              }) => ClientiCompanion.insert(
+                idCliente: idCliente,
+                idClienteRemoto: idClienteRemoto,
+                codCliente: codCliente,
+                ragioneSociale: ragioneSociale,
+                indirizzo: indirizzo,
+                citta: citta,
+                provincia: provincia,
+                cap: cap,
+                frazione: frazione,
+                nazione: nazione,
+                telefono: telefono,
+                cellulare: cellulare,
+                fax: fax,
+                email: email,
+                partitaIva: partitaIva,
+                codiceFiscale: codiceFiscale,
+                note: note,
+                noteOrdine: noteOrdine,
+                stato: stato,
+                attivo: attivo,
+                idPagamento: idPagamento,
+                idListino: idListino,
+                dataModifica: dataModifica,
+                sdi: sdi,
+                pec: pec,
+                altreNote: altreNote,
+                numeroCivico: numeroCivico,
+                pod: pod,
+                pdr: pdr,
+                ubicazione: ubicazione,
+                banca: banca,
+                bancaFiliale: bancaFiliale,
+                codBlocco: codBlocco,
+              ),
+          withReferenceMapper: (p0) => p0
+              .map((e) => (e.readTable(table), BaseReferences(db, table, e)))
+              .toList(),
+          prefetchHooksCallback: null,
+        ),
+      );
+}
+
+typedef $$ClientiTableProcessedTableManager =
+    ProcessedTableManager<
+      _$AppDatabase,
+      $ClientiTable,
+      Cliente,
+      $$ClientiTableFilterComposer,
+      $$ClientiTableOrderingComposer,
+      $$ClientiTableAnnotationComposer,
+      $$ClientiTableCreateCompanionBuilder,
+      $$ClientiTableUpdateCompanionBuilder,
+      (Cliente, BaseReferences<_$AppDatabase, $ClientiTable, Cliente>),
+      Cliente,
+      PrefetchHooks Function()
+    >;
+typedef $$OrdiniTableCreateCompanionBuilder =
+    OrdiniCompanion Function({
+      Value<int> idOrdine,
+      Value<int?> idOrdineSede,
+      Value<int?> numeroOrdine,
+      Value<String?> numeroOrdineSede,
+      Value<String?> dataOrdine,
+      Value<String?> dataConsegna,
+      Value<String?> dataModifica,
+      Value<String?> riferimento,
+      Value<String?> noteCliente,
+      Value<String?> noteOrdine,
+      Value<int?> idCliente,
+      Value<int?> idFiliale,
+      Value<String?> stato,
+      Value<int?> idListino,
+      Value<int?> idAgente,
+      Value<int?> idPagamento,
+    });
+typedef $$OrdiniTableUpdateCompanionBuilder =
+    OrdiniCompanion Function({
+      Value<int> idOrdine,
+      Value<int?> idOrdineSede,
+      Value<int?> numeroOrdine,
+      Value<String?> numeroOrdineSede,
+      Value<String?> dataOrdine,
+      Value<String?> dataConsegna,
+      Value<String?> dataModifica,
+      Value<String?> riferimento,
+      Value<String?> noteCliente,
+      Value<String?> noteOrdine,
+      Value<int?> idCliente,
+      Value<int?> idFiliale,
+      Value<String?> stato,
+      Value<int?> idListino,
+      Value<int?> idAgente,
+      Value<int?> idPagamento,
+    });
+
+class $$OrdiniTableFilterComposer
+    extends Composer<_$AppDatabase, $OrdiniTable> {
+  $$OrdiniTableFilterComposer({
+    required super.$db,
+    required super.$table,
+    super.joinBuilder,
+    super.$addJoinBuilderToRootComposer,
+    super.$removeJoinBuilderFromRootComposer,
+  });
+  ColumnFilters<int> get idOrdine => $composableBuilder(
+    column: $table.idOrdine,
+    builder: (column) => ColumnFilters(column),
+  );
+
+  ColumnFilters<int> get idOrdineSede => $composableBuilder(
+    column: $table.idOrdineSede,
+    builder: (column) => ColumnFilters(column),
+  );
+
+  ColumnFilters<int> get numeroOrdine => $composableBuilder(
+    column: $table.numeroOrdine,
+    builder: (column) => ColumnFilters(column),
+  );
+
+  ColumnFilters<String> get numeroOrdineSede => $composableBuilder(
+    column: $table.numeroOrdineSede,
+    builder: (column) => ColumnFilters(column),
+  );
+
+  ColumnFilters<String> get dataOrdine => $composableBuilder(
+    column: $table.dataOrdine,
+    builder: (column) => ColumnFilters(column),
+  );
+
+  ColumnFilters<String> get dataConsegna => $composableBuilder(
+    column: $table.dataConsegna,
+    builder: (column) => ColumnFilters(column),
+  );
+
+  ColumnFilters<String> get dataModifica => $composableBuilder(
+    column: $table.dataModifica,
+    builder: (column) => ColumnFilters(column),
+  );
+
+  ColumnFilters<String> get riferimento => $composableBuilder(
+    column: $table.riferimento,
+    builder: (column) => ColumnFilters(column),
+  );
+
+  ColumnFilters<String> get noteCliente => $composableBuilder(
+    column: $table.noteCliente,
+    builder: (column) => ColumnFilters(column),
+  );
+
+  ColumnFilters<String> get noteOrdine => $composableBuilder(
+    column: $table.noteOrdine,
+    builder: (column) => ColumnFilters(column),
+  );
+
+  ColumnFilters<int> get idCliente => $composableBuilder(
+    column: $table.idCliente,
+    builder: (column) => ColumnFilters(column),
+  );
+
+  ColumnFilters<int> get idFiliale => $composableBuilder(
+    column: $table.idFiliale,
+    builder: (column) => ColumnFilters(column),
+  );
+
+  ColumnFilters<String> get stato => $composableBuilder(
+    column: $table.stato,
+    builder: (column) => ColumnFilters(column),
+  );
+
+  ColumnFilters<int> get idListino => $composableBuilder(
+    column: $table.idListino,
+    builder: (column) => ColumnFilters(column),
+  );
+
+  ColumnFilters<int> get idAgente => $composableBuilder(
+    column: $table.idAgente,
+    builder: (column) => ColumnFilters(column),
+  );
+
+  ColumnFilters<int> get idPagamento => $composableBuilder(
+    column: $table.idPagamento,
+    builder: (column) => ColumnFilters(column),
+  );
+}
+
+class $$OrdiniTableOrderingComposer
+    extends Composer<_$AppDatabase, $OrdiniTable> {
+  $$OrdiniTableOrderingComposer({
+    required super.$db,
+    required super.$table,
+    super.joinBuilder,
+    super.$addJoinBuilderToRootComposer,
+    super.$removeJoinBuilderFromRootComposer,
+  });
+  ColumnOrderings<int> get idOrdine => $composableBuilder(
+    column: $table.idOrdine,
+    builder: (column) => ColumnOrderings(column),
+  );
+
+  ColumnOrderings<int> get idOrdineSede => $composableBuilder(
+    column: $table.idOrdineSede,
+    builder: (column) => ColumnOrderings(column),
+  );
+
+  ColumnOrderings<int> get numeroOrdine => $composableBuilder(
+    column: $table.numeroOrdine,
+    builder: (column) => ColumnOrderings(column),
+  );
+
+  ColumnOrderings<String> get numeroOrdineSede => $composableBuilder(
+    column: $table.numeroOrdineSede,
+    builder: (column) => ColumnOrderings(column),
+  );
+
+  ColumnOrderings<String> get dataOrdine => $composableBuilder(
+    column: $table.dataOrdine,
+    builder: (column) => ColumnOrderings(column),
+  );
+
+  ColumnOrderings<String> get dataConsegna => $composableBuilder(
+    column: $table.dataConsegna,
+    builder: (column) => ColumnOrderings(column),
+  );
+
+  ColumnOrderings<String> get dataModifica => $composableBuilder(
+    column: $table.dataModifica,
+    builder: (column) => ColumnOrderings(column),
+  );
+
+  ColumnOrderings<String> get riferimento => $composableBuilder(
+    column: $table.riferimento,
+    builder: (column) => ColumnOrderings(column),
+  );
+
+  ColumnOrderings<String> get noteCliente => $composableBuilder(
+    column: $table.noteCliente,
+    builder: (column) => ColumnOrderings(column),
+  );
+
+  ColumnOrderings<String> get noteOrdine => $composableBuilder(
+    column: $table.noteOrdine,
+    builder: (column) => ColumnOrderings(column),
+  );
+
+  ColumnOrderings<int> get idCliente => $composableBuilder(
+    column: $table.idCliente,
+    builder: (column) => ColumnOrderings(column),
+  );
+
+  ColumnOrderings<int> get idFiliale => $composableBuilder(
+    column: $table.idFiliale,
+    builder: (column) => ColumnOrderings(column),
+  );
+
+  ColumnOrderings<String> get stato => $composableBuilder(
+    column: $table.stato,
+    builder: (column) => ColumnOrderings(column),
+  );
+
+  ColumnOrderings<int> get idListino => $composableBuilder(
+    column: $table.idListino,
+    builder: (column) => ColumnOrderings(column),
+  );
+
+  ColumnOrderings<int> get idAgente => $composableBuilder(
+    column: $table.idAgente,
+    builder: (column) => ColumnOrderings(column),
+  );
+
+  ColumnOrderings<int> get idPagamento => $composableBuilder(
+    column: $table.idPagamento,
+    builder: (column) => ColumnOrderings(column),
+  );
+}
+
+class $$OrdiniTableAnnotationComposer
+    extends Composer<_$AppDatabase, $OrdiniTable> {
+  $$OrdiniTableAnnotationComposer({
+    required super.$db,
+    required super.$table,
+    super.joinBuilder,
+    super.$addJoinBuilderToRootComposer,
+    super.$removeJoinBuilderFromRootComposer,
+  });
+  GeneratedColumn<int> get idOrdine =>
+      $composableBuilder(column: $table.idOrdine, builder: (column) => column);
+
+  GeneratedColumn<int> get idOrdineSede => $composableBuilder(
+    column: $table.idOrdineSede,
+    builder: (column) => column,
+  );
+
+  GeneratedColumn<int> get numeroOrdine => $composableBuilder(
+    column: $table.numeroOrdine,
+    builder: (column) => column,
+  );
+
+  GeneratedColumn<String> get numeroOrdineSede => $composableBuilder(
+    column: $table.numeroOrdineSede,
+    builder: (column) => column,
+  );
+
+  GeneratedColumn<String> get dataOrdine => $composableBuilder(
+    column: $table.dataOrdine,
+    builder: (column) => column,
+  );
+
+  GeneratedColumn<String> get dataConsegna => $composableBuilder(
+    column: $table.dataConsegna,
+    builder: (column) => column,
+  );
+
+  GeneratedColumn<String> get dataModifica => $composableBuilder(
+    column: $table.dataModifica,
+    builder: (column) => column,
+  );
+
+  GeneratedColumn<String> get riferimento => $composableBuilder(
+    column: $table.riferimento,
+    builder: (column) => column,
+  );
+
+  GeneratedColumn<String> get noteCliente => $composableBuilder(
+    column: $table.noteCliente,
+    builder: (column) => column,
+  );
+
+  GeneratedColumn<String> get noteOrdine => $composableBuilder(
+    column: $table.noteOrdine,
+    builder: (column) => column,
+  );
+
+  GeneratedColumn<int> get idCliente =>
+      $composableBuilder(column: $table.idCliente, builder: (column) => column);
+
+  GeneratedColumn<int> get idFiliale =>
+      $composableBuilder(column: $table.idFiliale, builder: (column) => column);
+
+  GeneratedColumn<String> get stato =>
+      $composableBuilder(column: $table.stato, builder: (column) => column);
+
+  GeneratedColumn<int> get idListino =>
+      $composableBuilder(column: $table.idListino, builder: (column) => column);
+
+  GeneratedColumn<int> get idAgente =>
+      $composableBuilder(column: $table.idAgente, builder: (column) => column);
+
+  GeneratedColumn<int> get idPagamento => $composableBuilder(
+    column: $table.idPagamento,
+    builder: (column) => column,
+  );
+}
+
+class $$OrdiniTableTableManager
+    extends
+        RootTableManager<
+          _$AppDatabase,
+          $OrdiniTable,
+          Ordine,
+          $$OrdiniTableFilterComposer,
+          $$OrdiniTableOrderingComposer,
+          $$OrdiniTableAnnotationComposer,
+          $$OrdiniTableCreateCompanionBuilder,
+          $$OrdiniTableUpdateCompanionBuilder,
+          (Ordine, BaseReferences<_$AppDatabase, $OrdiniTable, Ordine>),
+          Ordine,
+          PrefetchHooks Function()
+        > {
+  $$OrdiniTableTableManager(_$AppDatabase db, $OrdiniTable table)
+    : super(
+        TableManagerState(
+          db: db,
+          table: table,
+          createFilteringComposer: () =>
+              $$OrdiniTableFilterComposer($db: db, $table: table),
+          createOrderingComposer: () =>
+              $$OrdiniTableOrderingComposer($db: db, $table: table),
+          createComputedFieldComposer: () =>
+              $$OrdiniTableAnnotationComposer($db: db, $table: table),
+          updateCompanionCallback:
+              ({
+                Value<int> idOrdine = const Value.absent(),
+                Value<int?> idOrdineSede = const Value.absent(),
+                Value<int?> numeroOrdine = const Value.absent(),
+                Value<String?> numeroOrdineSede = const Value.absent(),
+                Value<String?> dataOrdine = const Value.absent(),
+                Value<String?> dataConsegna = const Value.absent(),
+                Value<String?> dataModifica = const Value.absent(),
+                Value<String?> riferimento = const Value.absent(),
+                Value<String?> noteCliente = const Value.absent(),
+                Value<String?> noteOrdine = const Value.absent(),
+                Value<int?> idCliente = const Value.absent(),
+                Value<int?> idFiliale = const Value.absent(),
+                Value<String?> stato = const Value.absent(),
+                Value<int?> idListino = const Value.absent(),
+                Value<int?> idAgente = const Value.absent(),
+                Value<int?> idPagamento = const Value.absent(),
+              }) => OrdiniCompanion(
+                idOrdine: idOrdine,
+                idOrdineSede: idOrdineSede,
+                numeroOrdine: numeroOrdine,
+                numeroOrdineSede: numeroOrdineSede,
+                dataOrdine: dataOrdine,
+                dataConsegna: dataConsegna,
+                dataModifica: dataModifica,
+                riferimento: riferimento,
+                noteCliente: noteCliente,
+                noteOrdine: noteOrdine,
+                idCliente: idCliente,
+                idFiliale: idFiliale,
+                stato: stato,
+                idListino: idListino,
+                idAgente: idAgente,
+                idPagamento: idPagamento,
+              ),
+          createCompanionCallback:
+              ({
+                Value<int> idOrdine = const Value.absent(),
+                Value<int?> idOrdineSede = const Value.absent(),
+                Value<int?> numeroOrdine = const Value.absent(),
+                Value<String?> numeroOrdineSede = const Value.absent(),
+                Value<String?> dataOrdine = const Value.absent(),
+                Value<String?> dataConsegna = const Value.absent(),
+                Value<String?> dataModifica = const Value.absent(),
+                Value<String?> riferimento = const Value.absent(),
+                Value<String?> noteCliente = const Value.absent(),
+                Value<String?> noteOrdine = const Value.absent(),
+                Value<int?> idCliente = const Value.absent(),
+                Value<int?> idFiliale = const Value.absent(),
+                Value<String?> stato = const Value.absent(),
+                Value<int?> idListino = const Value.absent(),
+                Value<int?> idAgente = const Value.absent(),
+                Value<int?> idPagamento = const Value.absent(),
+              }) => OrdiniCompanion.insert(
+                idOrdine: idOrdine,
+                idOrdineSede: idOrdineSede,
+                numeroOrdine: numeroOrdine,
+                numeroOrdineSede: numeroOrdineSede,
+                dataOrdine: dataOrdine,
+                dataConsegna: dataConsegna,
+                dataModifica: dataModifica,
+                riferimento: riferimento,
+                noteCliente: noteCliente,
+                noteOrdine: noteOrdine,
+                idCliente: idCliente,
+                idFiliale: idFiliale,
+                stato: stato,
+                idListino: idListino,
+                idAgente: idAgente,
+                idPagamento: idPagamento,
+              ),
+          withReferenceMapper: (p0) => p0
+              .map((e) => (e.readTable(table), BaseReferences(db, table, e)))
+              .toList(),
+          prefetchHooksCallback: null,
+        ),
+      );
+}
+
+typedef $$OrdiniTableProcessedTableManager =
+    ProcessedTableManager<
+      _$AppDatabase,
+      $OrdiniTable,
+      Ordine,
+      $$OrdiniTableFilterComposer,
+      $$OrdiniTableOrderingComposer,
+      $$OrdiniTableAnnotationComposer,
+      $$OrdiniTableCreateCompanionBuilder,
+      $$OrdiniTableUpdateCompanionBuilder,
+      (Ordine, BaseReferences<_$AppDatabase, $OrdiniTable, Ordine>),
+      Ordine,
+      PrefetchHooks Function()
+    >;
+typedef $$RigheOrdineTableCreateCompanionBuilder =
+    RigheOrdineCompanion Function({
+      Value<int> idRigaOrdine,
+      Value<int?> idOrdine,
+      Value<int?> idArticolo,
+      Value<int?> idListino,
+      Value<double?> quantita,
+      Value<double?> prezzoLordo,
+      Value<double?> sconto1,
+      Value<double?> sconto2,
+      Value<double?> sconto3,
+      Value<double?> sconto4,
+      Value<double?> sconto5,
+      Value<double?> prezzoNetto,
+      Value<double?> scontoMerce,
+      Value<double?> totale,
+      Value<String?> dataConsegna,
+      Value<String?> dataModifica,
+      Value<double?> qtaEvasa,
+      Value<String?> stato,
+      Value<double?> colli,
+      Value<int?> promozione,
+      Value<int?> rigaPromozione,
+      Value<int?> prezzoManuale,
+    });
+typedef $$RigheOrdineTableUpdateCompanionBuilder =
+    RigheOrdineCompanion Function({
+      Value<int> idRigaOrdine,
+      Value<int?> idOrdine,
+      Value<int?> idArticolo,
+      Value<int?> idListino,
+      Value<double?> quantita,
+      Value<double?> prezzoLordo,
+      Value<double?> sconto1,
+      Value<double?> sconto2,
+      Value<double?> sconto3,
+      Value<double?> sconto4,
+      Value<double?> sconto5,
+      Value<double?> prezzoNetto,
+      Value<double?> scontoMerce,
+      Value<double?> totale,
+      Value<String?> dataConsegna,
+      Value<String?> dataModifica,
+      Value<double?> qtaEvasa,
+      Value<String?> stato,
+      Value<double?> colli,
+      Value<int?> promozione,
+      Value<int?> rigaPromozione,
+      Value<int?> prezzoManuale,
+    });
+
+class $$RigheOrdineTableFilterComposer
+    extends Composer<_$AppDatabase, $RigheOrdineTable> {
+  $$RigheOrdineTableFilterComposer({
+    required super.$db,
+    required super.$table,
+    super.joinBuilder,
+    super.$addJoinBuilderToRootComposer,
+    super.$removeJoinBuilderFromRootComposer,
+  });
+  ColumnFilters<int> get idRigaOrdine => $composableBuilder(
+    column: $table.idRigaOrdine,
+    builder: (column) => ColumnFilters(column),
+  );
+
+  ColumnFilters<int> get idOrdine => $composableBuilder(
+    column: $table.idOrdine,
+    builder: (column) => ColumnFilters(column),
+  );
+
+  ColumnFilters<int> get idArticolo => $composableBuilder(
+    column: $table.idArticolo,
+    builder: (column) => ColumnFilters(column),
+  );
+
+  ColumnFilters<int> get idListino => $composableBuilder(
+    column: $table.idListino,
+    builder: (column) => ColumnFilters(column),
+  );
+
+  ColumnFilters<double> get quantita => $composableBuilder(
+    column: $table.quantita,
+    builder: (column) => ColumnFilters(column),
+  );
+
+  ColumnFilters<double> get prezzoLordo => $composableBuilder(
+    column: $table.prezzoLordo,
+    builder: (column) => ColumnFilters(column),
+  );
+
+  ColumnFilters<double> get sconto1 => $composableBuilder(
+    column: $table.sconto1,
+    builder: (column) => ColumnFilters(column),
+  );
+
+  ColumnFilters<double> get sconto2 => $composableBuilder(
+    column: $table.sconto2,
+    builder: (column) => ColumnFilters(column),
+  );
+
+  ColumnFilters<double> get sconto3 => $composableBuilder(
+    column: $table.sconto3,
+    builder: (column) => ColumnFilters(column),
+  );
+
+  ColumnFilters<double> get sconto4 => $composableBuilder(
+    column: $table.sconto4,
+    builder: (column) => ColumnFilters(column),
+  );
+
+  ColumnFilters<double> get sconto5 => $composableBuilder(
+    column: $table.sconto5,
+    builder: (column) => ColumnFilters(column),
+  );
+
+  ColumnFilters<double> get prezzoNetto => $composableBuilder(
+    column: $table.prezzoNetto,
+    builder: (column) => ColumnFilters(column),
+  );
+
+  ColumnFilters<double> get scontoMerce => $composableBuilder(
+    column: $table.scontoMerce,
+    builder: (column) => ColumnFilters(column),
+  );
+
+  ColumnFilters<double> get totale => $composableBuilder(
+    column: $table.totale,
+    builder: (column) => ColumnFilters(column),
+  );
+
+  ColumnFilters<String> get dataConsegna => $composableBuilder(
+    column: $table.dataConsegna,
+    builder: (column) => ColumnFilters(column),
+  );
+
+  ColumnFilters<String> get dataModifica => $composableBuilder(
+    column: $table.dataModifica,
+    builder: (column) => ColumnFilters(column),
+  );
+
+  ColumnFilters<double> get qtaEvasa => $composableBuilder(
+    column: $table.qtaEvasa,
+    builder: (column) => ColumnFilters(column),
+  );
+
+  ColumnFilters<String> get stato => $composableBuilder(
+    column: $table.stato,
+    builder: (column) => ColumnFilters(column),
+  );
+
+  ColumnFilters<double> get colli => $composableBuilder(
+    column: $table.colli,
+    builder: (column) => ColumnFilters(column),
+  );
+
+  ColumnFilters<int> get promozione => $composableBuilder(
+    column: $table.promozione,
+    builder: (column) => ColumnFilters(column),
+  );
+
+  ColumnFilters<int> get rigaPromozione => $composableBuilder(
+    column: $table.rigaPromozione,
+    builder: (column) => ColumnFilters(column),
+  );
+
+  ColumnFilters<int> get prezzoManuale => $composableBuilder(
+    column: $table.prezzoManuale,
+    builder: (column) => ColumnFilters(column),
+  );
+}
+
+class $$RigheOrdineTableOrderingComposer
+    extends Composer<_$AppDatabase, $RigheOrdineTable> {
+  $$RigheOrdineTableOrderingComposer({
+    required super.$db,
+    required super.$table,
+    super.joinBuilder,
+    super.$addJoinBuilderToRootComposer,
+    super.$removeJoinBuilderFromRootComposer,
+  });
+  ColumnOrderings<int> get idRigaOrdine => $composableBuilder(
+    column: $table.idRigaOrdine,
+    builder: (column) => ColumnOrderings(column),
+  );
+
+  ColumnOrderings<int> get idOrdine => $composableBuilder(
+    column: $table.idOrdine,
+    builder: (column) => ColumnOrderings(column),
+  );
+
+  ColumnOrderings<int> get idArticolo => $composableBuilder(
+    column: $table.idArticolo,
+    builder: (column) => ColumnOrderings(column),
+  );
+
+  ColumnOrderings<int> get idListino => $composableBuilder(
+    column: $table.idListino,
+    builder: (column) => ColumnOrderings(column),
+  );
+
+  ColumnOrderings<double> get quantita => $composableBuilder(
+    column: $table.quantita,
+    builder: (column) => ColumnOrderings(column),
+  );
+
+  ColumnOrderings<double> get prezzoLordo => $composableBuilder(
+    column: $table.prezzoLordo,
+    builder: (column) => ColumnOrderings(column),
+  );
+
+  ColumnOrderings<double> get sconto1 => $composableBuilder(
+    column: $table.sconto1,
+    builder: (column) => ColumnOrderings(column),
+  );
+
+  ColumnOrderings<double> get sconto2 => $composableBuilder(
+    column: $table.sconto2,
+    builder: (column) => ColumnOrderings(column),
+  );
+
+  ColumnOrderings<double> get sconto3 => $composableBuilder(
+    column: $table.sconto3,
+    builder: (column) => ColumnOrderings(column),
+  );
+
+  ColumnOrderings<double> get sconto4 => $composableBuilder(
+    column: $table.sconto4,
+    builder: (column) => ColumnOrderings(column),
+  );
+
+  ColumnOrderings<double> get sconto5 => $composableBuilder(
+    column: $table.sconto5,
+    builder: (column) => ColumnOrderings(column),
+  );
+
+  ColumnOrderings<double> get prezzoNetto => $composableBuilder(
+    column: $table.prezzoNetto,
+    builder: (column) => ColumnOrderings(column),
+  );
+
+  ColumnOrderings<double> get scontoMerce => $composableBuilder(
+    column: $table.scontoMerce,
+    builder: (column) => ColumnOrderings(column),
+  );
+
+  ColumnOrderings<double> get totale => $composableBuilder(
+    column: $table.totale,
+    builder: (column) => ColumnOrderings(column),
+  );
+
+  ColumnOrderings<String> get dataConsegna => $composableBuilder(
+    column: $table.dataConsegna,
+    builder: (column) => ColumnOrderings(column),
+  );
+
+  ColumnOrderings<String> get dataModifica => $composableBuilder(
+    column: $table.dataModifica,
+    builder: (column) => ColumnOrderings(column),
+  );
+
+  ColumnOrderings<double> get qtaEvasa => $composableBuilder(
+    column: $table.qtaEvasa,
+    builder: (column) => ColumnOrderings(column),
+  );
+
+  ColumnOrderings<String> get stato => $composableBuilder(
+    column: $table.stato,
+    builder: (column) => ColumnOrderings(column),
+  );
+
+  ColumnOrderings<double> get colli => $composableBuilder(
+    column: $table.colli,
+    builder: (column) => ColumnOrderings(column),
+  );
+
+  ColumnOrderings<int> get promozione => $composableBuilder(
+    column: $table.promozione,
+    builder: (column) => ColumnOrderings(column),
+  );
+
+  ColumnOrderings<int> get rigaPromozione => $composableBuilder(
+    column: $table.rigaPromozione,
+    builder: (column) => ColumnOrderings(column),
+  );
+
+  ColumnOrderings<int> get prezzoManuale => $composableBuilder(
+    column: $table.prezzoManuale,
+    builder: (column) => ColumnOrderings(column),
+  );
+}
+
+class $$RigheOrdineTableAnnotationComposer
+    extends Composer<_$AppDatabase, $RigheOrdineTable> {
+  $$RigheOrdineTableAnnotationComposer({
+    required super.$db,
+    required super.$table,
+    super.joinBuilder,
+    super.$addJoinBuilderToRootComposer,
+    super.$removeJoinBuilderFromRootComposer,
+  });
+  GeneratedColumn<int> get idRigaOrdine => $composableBuilder(
+    column: $table.idRigaOrdine,
+    builder: (column) => column,
+  );
+
+  GeneratedColumn<int> get idOrdine =>
+      $composableBuilder(column: $table.idOrdine, builder: (column) => column);
+
+  GeneratedColumn<int> get idArticolo => $composableBuilder(
+    column: $table.idArticolo,
+    builder: (column) => column,
+  );
+
+  GeneratedColumn<int> get idListino =>
+      $composableBuilder(column: $table.idListino, builder: (column) => column);
+
+  GeneratedColumn<double> get quantita =>
+      $composableBuilder(column: $table.quantita, builder: (column) => column);
+
+  GeneratedColumn<double> get prezzoLordo => $composableBuilder(
+    column: $table.prezzoLordo,
+    builder: (column) => column,
+  );
+
+  GeneratedColumn<double> get sconto1 =>
+      $composableBuilder(column: $table.sconto1, builder: (column) => column);
+
+  GeneratedColumn<double> get sconto2 =>
+      $composableBuilder(column: $table.sconto2, builder: (column) => column);
+
+  GeneratedColumn<double> get sconto3 =>
+      $composableBuilder(column: $table.sconto3, builder: (column) => column);
+
+  GeneratedColumn<double> get sconto4 =>
+      $composableBuilder(column: $table.sconto4, builder: (column) => column);
+
+  GeneratedColumn<double> get sconto5 =>
+      $composableBuilder(column: $table.sconto5, builder: (column) => column);
+
+  GeneratedColumn<double> get prezzoNetto => $composableBuilder(
+    column: $table.prezzoNetto,
+    builder: (column) => column,
+  );
+
+  GeneratedColumn<double> get scontoMerce => $composableBuilder(
+    column: $table.scontoMerce,
+    builder: (column) => column,
+  );
+
+  GeneratedColumn<double> get totale =>
+      $composableBuilder(column: $table.totale, builder: (column) => column);
+
+  GeneratedColumn<String> get dataConsegna => $composableBuilder(
+    column: $table.dataConsegna,
+    builder: (column) => column,
+  );
+
+  GeneratedColumn<String> get dataModifica => $composableBuilder(
+    column: $table.dataModifica,
+    builder: (column) => column,
+  );
+
+  GeneratedColumn<double> get qtaEvasa =>
+      $composableBuilder(column: $table.qtaEvasa, builder: (column) => column);
+
+  GeneratedColumn<String> get stato =>
+      $composableBuilder(column: $table.stato, builder: (column) => column);
+
+  GeneratedColumn<double> get colli =>
+      $composableBuilder(column: $table.colli, builder: (column) => column);
+
+  GeneratedColumn<int> get promozione => $composableBuilder(
+    column: $table.promozione,
+    builder: (column) => column,
+  );
+
+  GeneratedColumn<int> get rigaPromozione => $composableBuilder(
+    column: $table.rigaPromozione,
+    builder: (column) => column,
+  );
+
+  GeneratedColumn<int> get prezzoManuale => $composableBuilder(
+    column: $table.prezzoManuale,
+    builder: (column) => column,
+  );
+}
+
+class $$RigheOrdineTableTableManager
+    extends
+        RootTableManager<
+          _$AppDatabase,
+          $RigheOrdineTable,
+          RigaOrdine,
+          $$RigheOrdineTableFilterComposer,
+          $$RigheOrdineTableOrderingComposer,
+          $$RigheOrdineTableAnnotationComposer,
+          $$RigheOrdineTableCreateCompanionBuilder,
+          $$RigheOrdineTableUpdateCompanionBuilder,
+          (
+            RigaOrdine,
+            BaseReferences<_$AppDatabase, $RigheOrdineTable, RigaOrdine>,
+          ),
+          RigaOrdine,
+          PrefetchHooks Function()
+        > {
+  $$RigheOrdineTableTableManager(_$AppDatabase db, $RigheOrdineTable table)
+    : super(
+        TableManagerState(
+          db: db,
+          table: table,
+          createFilteringComposer: () =>
+              $$RigheOrdineTableFilterComposer($db: db, $table: table),
+          createOrderingComposer: () =>
+              $$RigheOrdineTableOrderingComposer($db: db, $table: table),
+          createComputedFieldComposer: () =>
+              $$RigheOrdineTableAnnotationComposer($db: db, $table: table),
+          updateCompanionCallback:
+              ({
+                Value<int> idRigaOrdine = const Value.absent(),
+                Value<int?> idOrdine = const Value.absent(),
+                Value<int?> idArticolo = const Value.absent(),
+                Value<int?> idListino = const Value.absent(),
+                Value<double?> quantita = const Value.absent(),
+                Value<double?> prezzoLordo = const Value.absent(),
+                Value<double?> sconto1 = const Value.absent(),
+                Value<double?> sconto2 = const Value.absent(),
+                Value<double?> sconto3 = const Value.absent(),
+                Value<double?> sconto4 = const Value.absent(),
+                Value<double?> sconto5 = const Value.absent(),
+                Value<double?> prezzoNetto = const Value.absent(),
+                Value<double?> scontoMerce = const Value.absent(),
+                Value<double?> totale = const Value.absent(),
+                Value<String?> dataConsegna = const Value.absent(),
+                Value<String?> dataModifica = const Value.absent(),
+                Value<double?> qtaEvasa = const Value.absent(),
+                Value<String?> stato = const Value.absent(),
+                Value<double?> colli = const Value.absent(),
+                Value<int?> promozione = const Value.absent(),
+                Value<int?> rigaPromozione = const Value.absent(),
+                Value<int?> prezzoManuale = const Value.absent(),
+              }) => RigheOrdineCompanion(
+                idRigaOrdine: idRigaOrdine,
+                idOrdine: idOrdine,
+                idArticolo: idArticolo,
+                idListino: idListino,
+                quantita: quantita,
+                prezzoLordo: prezzoLordo,
+                sconto1: sconto1,
+                sconto2: sconto2,
+                sconto3: sconto3,
+                sconto4: sconto4,
+                sconto5: sconto5,
+                prezzoNetto: prezzoNetto,
+                scontoMerce: scontoMerce,
+                totale: totale,
+                dataConsegna: dataConsegna,
+                dataModifica: dataModifica,
+                qtaEvasa: qtaEvasa,
+                stato: stato,
+                colli: colli,
+                promozione: promozione,
+                rigaPromozione: rigaPromozione,
+                prezzoManuale: prezzoManuale,
+              ),
+          createCompanionCallback:
+              ({
+                Value<int> idRigaOrdine = const Value.absent(),
+                Value<int?> idOrdine = const Value.absent(),
+                Value<int?> idArticolo = const Value.absent(),
+                Value<int?> idListino = const Value.absent(),
+                Value<double?> quantita = const Value.absent(),
+                Value<double?> prezzoLordo = const Value.absent(),
+                Value<double?> sconto1 = const Value.absent(),
+                Value<double?> sconto2 = const Value.absent(),
+                Value<double?> sconto3 = const Value.absent(),
+                Value<double?> sconto4 = const Value.absent(),
+                Value<double?> sconto5 = const Value.absent(),
+                Value<double?> prezzoNetto = const Value.absent(),
+                Value<double?> scontoMerce = const Value.absent(),
+                Value<double?> totale = const Value.absent(),
+                Value<String?> dataConsegna = const Value.absent(),
+                Value<String?> dataModifica = const Value.absent(),
+                Value<double?> qtaEvasa = const Value.absent(),
+                Value<String?> stato = const Value.absent(),
+                Value<double?> colli = const Value.absent(),
+                Value<int?> promozione = const Value.absent(),
+                Value<int?> rigaPromozione = const Value.absent(),
+                Value<int?> prezzoManuale = const Value.absent(),
+              }) => RigheOrdineCompanion.insert(
+                idRigaOrdine: idRigaOrdine,
+                idOrdine: idOrdine,
+                idArticolo: idArticolo,
+                idListino: idListino,
+                quantita: quantita,
+                prezzoLordo: prezzoLordo,
+                sconto1: sconto1,
+                sconto2: sconto2,
+                sconto3: sconto3,
+                sconto4: sconto4,
+                sconto5: sconto5,
+                prezzoNetto: prezzoNetto,
+                scontoMerce: scontoMerce,
+                totale: totale,
+                dataConsegna: dataConsegna,
+                dataModifica: dataModifica,
+                qtaEvasa: qtaEvasa,
+                stato: stato,
+                colli: colli,
+                promozione: promozione,
+                rigaPromozione: rigaPromozione,
+                prezzoManuale: prezzoManuale,
+              ),
+          withReferenceMapper: (p0) => p0
+              .map((e) => (e.readTable(table), BaseReferences(db, table, e)))
+              .toList(),
+          prefetchHooksCallback: null,
+        ),
+      );
+}
+
+typedef $$RigheOrdineTableProcessedTableManager =
+    ProcessedTableManager<
+      _$AppDatabase,
+      $RigheOrdineTable,
+      RigaOrdine,
+      $$RigheOrdineTableFilterComposer,
+      $$RigheOrdineTableOrderingComposer,
+      $$RigheOrdineTableAnnotationComposer,
+      $$RigheOrdineTableCreateCompanionBuilder,
+      $$RigheOrdineTableUpdateCompanionBuilder,
+      (
+        RigaOrdine,
+        BaseReferences<_$AppDatabase, $RigheOrdineTable, RigaOrdine>,
+      ),
+      RigaOrdine,
+      PrefetchHooks Function()
+    >;
+typedef $$FilialiTableCreateCompanionBuilder =
+    FilialiCompanion Function({
+      Value<int> idFiliale,
+      Value<int?> idFilialeRemoto,
+      Value<int?> idCliente,
+      Value<int?> idAgente,
+      Value<String?> codFiliale,
+      Value<String?> descrizione,
+      Value<String?> indirizzo,
+      Value<String?> citta,
+      Value<String?> provincia,
+      Value<String?> cap,
+      Value<String?> frazione,
+      Value<String?> nazione,
+      Value<String?> telefono,
+      Value<String?> cellulare,
+      Value<String?> fax,
+      Value<String?> email,
+      Value<String?> stato,
+      Value<int> attivo,
+      Value<String?> note,
+    });
+typedef $$FilialiTableUpdateCompanionBuilder =
+    FilialiCompanion Function({
+      Value<int> idFiliale,
+      Value<int?> idFilialeRemoto,
+      Value<int?> idCliente,
+      Value<int?> idAgente,
+      Value<String?> codFiliale,
+      Value<String?> descrizione,
+      Value<String?> indirizzo,
+      Value<String?> citta,
+      Value<String?> provincia,
+      Value<String?> cap,
+      Value<String?> frazione,
+      Value<String?> nazione,
+      Value<String?> telefono,
+      Value<String?> cellulare,
+      Value<String?> fax,
+      Value<String?> email,
+      Value<String?> stato,
+      Value<int> attivo,
+      Value<String?> note,
+    });
+
+class $$FilialiTableFilterComposer
+    extends Composer<_$AppDatabase, $FilialiTable> {
+  $$FilialiTableFilterComposer({
+    required super.$db,
+    required super.$table,
+    super.joinBuilder,
+    super.$addJoinBuilderToRootComposer,
+    super.$removeJoinBuilderFromRootComposer,
+  });
+  ColumnFilters<int> get idFiliale => $composableBuilder(
+    column: $table.idFiliale,
+    builder: (column) => ColumnFilters(column),
+  );
+
+  ColumnFilters<int> get idFilialeRemoto => $composableBuilder(
+    column: $table.idFilialeRemoto,
+    builder: (column) => ColumnFilters(column),
+  );
+
+  ColumnFilters<int> get idCliente => $composableBuilder(
+    column: $table.idCliente,
+    builder: (column) => ColumnFilters(column),
+  );
+
+  ColumnFilters<int> get idAgente => $composableBuilder(
+    column: $table.idAgente,
+    builder: (column) => ColumnFilters(column),
+  );
+
+  ColumnFilters<String> get codFiliale => $composableBuilder(
+    column: $table.codFiliale,
+    builder: (column) => ColumnFilters(column),
+  );
+
+  ColumnFilters<String> get descrizione => $composableBuilder(
+    column: $table.descrizione,
+    builder: (column) => ColumnFilters(column),
+  );
+
+  ColumnFilters<String> get indirizzo => $composableBuilder(
+    column: $table.indirizzo,
+    builder: (column) => ColumnFilters(column),
+  );
+
+  ColumnFilters<String> get citta => $composableBuilder(
+    column: $table.citta,
+    builder: (column) => ColumnFilters(column),
+  );
+
+  ColumnFilters<String> get provincia => $composableBuilder(
+    column: $table.provincia,
+    builder: (column) => ColumnFilters(column),
+  );
+
+  ColumnFilters<String> get cap => $composableBuilder(
+    column: $table.cap,
+    builder: (column) => ColumnFilters(column),
+  );
+
+  ColumnFilters<String> get frazione => $composableBuilder(
+    column: $table.frazione,
+    builder: (column) => ColumnFilters(column),
+  );
+
+  ColumnFilters<String> get nazione => $composableBuilder(
+    column: $table.nazione,
+    builder: (column) => ColumnFilters(column),
+  );
+
+  ColumnFilters<String> get telefono => $composableBuilder(
+    column: $table.telefono,
+    builder: (column) => ColumnFilters(column),
+  );
+
+  ColumnFilters<String> get cellulare => $composableBuilder(
+    column: $table.cellulare,
+    builder: (column) => ColumnFilters(column),
+  );
+
+  ColumnFilters<String> get fax => $composableBuilder(
+    column: $table.fax,
+    builder: (column) => ColumnFilters(column),
+  );
+
+  ColumnFilters<String> get email => $composableBuilder(
+    column: $table.email,
+    builder: (column) => ColumnFilters(column),
+  );
+
+  ColumnFilters<String> get stato => $composableBuilder(
+    column: $table.stato,
+    builder: (column) => ColumnFilters(column),
+  );
+
+  ColumnFilters<int> get attivo => $composableBuilder(
+    column: $table.attivo,
+    builder: (column) => ColumnFilters(column),
+  );
+
+  ColumnFilters<String> get note => $composableBuilder(
+    column: $table.note,
+    builder: (column) => ColumnFilters(column),
+  );
+}
+
+class $$FilialiTableOrderingComposer
+    extends Composer<_$AppDatabase, $FilialiTable> {
+  $$FilialiTableOrderingComposer({
+    required super.$db,
+    required super.$table,
+    super.joinBuilder,
+    super.$addJoinBuilderToRootComposer,
+    super.$removeJoinBuilderFromRootComposer,
+  });
+  ColumnOrderings<int> get idFiliale => $composableBuilder(
+    column: $table.idFiliale,
+    builder: (column) => ColumnOrderings(column),
+  );
+
+  ColumnOrderings<int> get idFilialeRemoto => $composableBuilder(
+    column: $table.idFilialeRemoto,
+    builder: (column) => ColumnOrderings(column),
+  );
+
+  ColumnOrderings<int> get idCliente => $composableBuilder(
+    column: $table.idCliente,
+    builder: (column) => ColumnOrderings(column),
+  );
+
+  ColumnOrderings<int> get idAgente => $composableBuilder(
+    column: $table.idAgente,
+    builder: (column) => ColumnOrderings(column),
+  );
+
+  ColumnOrderings<String> get codFiliale => $composableBuilder(
+    column: $table.codFiliale,
+    builder: (column) => ColumnOrderings(column),
+  );
+
+  ColumnOrderings<String> get descrizione => $composableBuilder(
+    column: $table.descrizione,
+    builder: (column) => ColumnOrderings(column),
+  );
+
+  ColumnOrderings<String> get indirizzo => $composableBuilder(
+    column: $table.indirizzo,
+    builder: (column) => ColumnOrderings(column),
+  );
+
+  ColumnOrderings<String> get citta => $composableBuilder(
+    column: $table.citta,
+    builder: (column) => ColumnOrderings(column),
+  );
+
+  ColumnOrderings<String> get provincia => $composableBuilder(
+    column: $table.provincia,
+    builder: (column) => ColumnOrderings(column),
+  );
+
+  ColumnOrderings<String> get cap => $composableBuilder(
+    column: $table.cap,
+    builder: (column) => ColumnOrderings(column),
+  );
+
+  ColumnOrderings<String> get frazione => $composableBuilder(
+    column: $table.frazione,
+    builder: (column) => ColumnOrderings(column),
+  );
+
+  ColumnOrderings<String> get nazione => $composableBuilder(
+    column: $table.nazione,
+    builder: (column) => ColumnOrderings(column),
+  );
+
+  ColumnOrderings<String> get telefono => $composableBuilder(
+    column: $table.telefono,
+    builder: (column) => ColumnOrderings(column),
+  );
+
+  ColumnOrderings<String> get cellulare => $composableBuilder(
+    column: $table.cellulare,
+    builder: (column) => ColumnOrderings(column),
+  );
+
+  ColumnOrderings<String> get fax => $composableBuilder(
+    column: $table.fax,
+    builder: (column) => ColumnOrderings(column),
+  );
+
+  ColumnOrderings<String> get email => $composableBuilder(
+    column: $table.email,
+    builder: (column) => ColumnOrderings(column),
+  );
+
+  ColumnOrderings<String> get stato => $composableBuilder(
+    column: $table.stato,
+    builder: (column) => ColumnOrderings(column),
+  );
+
+  ColumnOrderings<int> get attivo => $composableBuilder(
+    column: $table.attivo,
+    builder: (column) => ColumnOrderings(column),
+  );
+
+  ColumnOrderings<String> get note => $composableBuilder(
+    column: $table.note,
+    builder: (column) => ColumnOrderings(column),
+  );
+}
+
+class $$FilialiTableAnnotationComposer
+    extends Composer<_$AppDatabase, $FilialiTable> {
+  $$FilialiTableAnnotationComposer({
+    required super.$db,
+    required super.$table,
+    super.joinBuilder,
+    super.$addJoinBuilderToRootComposer,
+    super.$removeJoinBuilderFromRootComposer,
+  });
+  GeneratedColumn<int> get idFiliale =>
+      $composableBuilder(column: $table.idFiliale, builder: (column) => column);
+
+  GeneratedColumn<int> get idFilialeRemoto => $composableBuilder(
+    column: $table.idFilialeRemoto,
+    builder: (column) => column,
+  );
+
+  GeneratedColumn<int> get idCliente =>
+      $composableBuilder(column: $table.idCliente, builder: (column) => column);
+
+  GeneratedColumn<int> get idAgente =>
+      $composableBuilder(column: $table.idAgente, builder: (column) => column);
+
+  GeneratedColumn<String> get codFiliale => $composableBuilder(
+    column: $table.codFiliale,
+    builder: (column) => column,
+  );
+
+  GeneratedColumn<String> get descrizione => $composableBuilder(
+    column: $table.descrizione,
+    builder: (column) => column,
+  );
+
+  GeneratedColumn<String> get indirizzo =>
+      $composableBuilder(column: $table.indirizzo, builder: (column) => column);
+
+  GeneratedColumn<String> get citta =>
+      $composableBuilder(column: $table.citta, builder: (column) => column);
+
+  GeneratedColumn<String> get provincia =>
+      $composableBuilder(column: $table.provincia, builder: (column) => column);
+
+  GeneratedColumn<String> get cap =>
+      $composableBuilder(column: $table.cap, builder: (column) => column);
+
+  GeneratedColumn<String> get frazione =>
+      $composableBuilder(column: $table.frazione, builder: (column) => column);
+
+  GeneratedColumn<String> get nazione =>
+      $composableBuilder(column: $table.nazione, builder: (column) => column);
+
+  GeneratedColumn<String> get telefono =>
+      $composableBuilder(column: $table.telefono, builder: (column) => column);
+
+  GeneratedColumn<String> get cellulare =>
+      $composableBuilder(column: $table.cellulare, builder: (column) => column);
+
+  GeneratedColumn<String> get fax =>
+      $composableBuilder(column: $table.fax, builder: (column) => column);
+
+  GeneratedColumn<String> get email =>
+      $composableBuilder(column: $table.email, builder: (column) => column);
+
+  GeneratedColumn<String> get stato =>
+      $composableBuilder(column: $table.stato, builder: (column) => column);
+
+  GeneratedColumn<int> get attivo =>
+      $composableBuilder(column: $table.attivo, builder: (column) => column);
+
+  GeneratedColumn<String> get note =>
+      $composableBuilder(column: $table.note, builder: (column) => column);
+}
+
+class $$FilialiTableTableManager
+    extends
+        RootTableManager<
+          _$AppDatabase,
+          $FilialiTable,
+          Filiale,
+          $$FilialiTableFilterComposer,
+          $$FilialiTableOrderingComposer,
+          $$FilialiTableAnnotationComposer,
+          $$FilialiTableCreateCompanionBuilder,
+          $$FilialiTableUpdateCompanionBuilder,
+          (Filiale, BaseReferences<_$AppDatabase, $FilialiTable, Filiale>),
+          Filiale,
+          PrefetchHooks Function()
+        > {
+  $$FilialiTableTableManager(_$AppDatabase db, $FilialiTable table)
+    : super(
+        TableManagerState(
+          db: db,
+          table: table,
+          createFilteringComposer: () =>
+              $$FilialiTableFilterComposer($db: db, $table: table),
+          createOrderingComposer: () =>
+              $$FilialiTableOrderingComposer($db: db, $table: table),
+          createComputedFieldComposer: () =>
+              $$FilialiTableAnnotationComposer($db: db, $table: table),
+          updateCompanionCallback:
+              ({
+                Value<int> idFiliale = const Value.absent(),
+                Value<int?> idFilialeRemoto = const Value.absent(),
+                Value<int?> idCliente = const Value.absent(),
+                Value<int?> idAgente = const Value.absent(),
+                Value<String?> codFiliale = const Value.absent(),
+                Value<String?> descrizione = const Value.absent(),
+                Value<String?> indirizzo = const Value.absent(),
+                Value<String?> citta = const Value.absent(),
+                Value<String?> provincia = const Value.absent(),
+                Value<String?> cap = const Value.absent(),
+                Value<String?> frazione = const Value.absent(),
+                Value<String?> nazione = const Value.absent(),
+                Value<String?> telefono = const Value.absent(),
+                Value<String?> cellulare = const Value.absent(),
+                Value<String?> fax = const Value.absent(),
+                Value<String?> email = const Value.absent(),
+                Value<String?> stato = const Value.absent(),
+                Value<int> attivo = const Value.absent(),
+                Value<String?> note = const Value.absent(),
+              }) => FilialiCompanion(
+                idFiliale: idFiliale,
+                idFilialeRemoto: idFilialeRemoto,
+                idCliente: idCliente,
+                idAgente: idAgente,
+                codFiliale: codFiliale,
+                descrizione: descrizione,
+                indirizzo: indirizzo,
+                citta: citta,
+                provincia: provincia,
+                cap: cap,
+                frazione: frazione,
+                nazione: nazione,
+                telefono: telefono,
+                cellulare: cellulare,
+                fax: fax,
+                email: email,
+                stato: stato,
+                attivo: attivo,
+                note: note,
+              ),
+          createCompanionCallback:
+              ({
+                Value<int> idFiliale = const Value.absent(),
+                Value<int?> idFilialeRemoto = const Value.absent(),
+                Value<int?> idCliente = const Value.absent(),
+                Value<int?> idAgente = const Value.absent(),
+                Value<String?> codFiliale = const Value.absent(),
+                Value<String?> descrizione = const Value.absent(),
+                Value<String?> indirizzo = const Value.absent(),
+                Value<String?> citta = const Value.absent(),
+                Value<String?> provincia = const Value.absent(),
+                Value<String?> cap = const Value.absent(),
+                Value<String?> frazione = const Value.absent(),
+                Value<String?> nazione = const Value.absent(),
+                Value<String?> telefono = const Value.absent(),
+                Value<String?> cellulare = const Value.absent(),
+                Value<String?> fax = const Value.absent(),
+                Value<String?> email = const Value.absent(),
+                Value<String?> stato = const Value.absent(),
+                Value<int> attivo = const Value.absent(),
+                Value<String?> note = const Value.absent(),
+              }) => FilialiCompanion.insert(
+                idFiliale: idFiliale,
+                idFilialeRemoto: idFilialeRemoto,
+                idCliente: idCliente,
+                idAgente: idAgente,
+                codFiliale: codFiliale,
+                descrizione: descrizione,
+                indirizzo: indirizzo,
+                citta: citta,
+                provincia: provincia,
+                cap: cap,
+                frazione: frazione,
+                nazione: nazione,
+                telefono: telefono,
+                cellulare: cellulare,
+                fax: fax,
+                email: email,
+                stato: stato,
+                attivo: attivo,
+                note: note,
+              ),
+          withReferenceMapper: (p0) => p0
+              .map((e) => (e.readTable(table), BaseReferences(db, table, e)))
+              .toList(),
+          prefetchHooksCallback: null,
+        ),
+      );
+}
+
+typedef $$FilialiTableProcessedTableManager =
+    ProcessedTableManager<
+      _$AppDatabase,
+      $FilialiTable,
+      Filiale,
+      $$FilialiTableFilterComposer,
+      $$FilialiTableOrderingComposer,
+      $$FilialiTableAnnotationComposer,
+      $$FilialiTableCreateCompanionBuilder,
+      $$FilialiTableUpdateCompanionBuilder,
+      (Filiale, BaseReferences<_$AppDatabase, $FilialiTable, Filiale>),
+      Filiale,
+      PrefetchHooks Function()
+    >;
+typedef $$ListiniTableCreateCompanionBuilder =
+    ListiniCompanion Function({
+      Value<int> idListino,
+      Value<String?> codListino,
+      Value<String?> descrizione,
+      Value<String?> validoDa,
+      Value<String?> validoA,
+      Value<int> attivo,
+      Value<String?> dataModifica,
+    });
+typedef $$ListiniTableUpdateCompanionBuilder =
+    ListiniCompanion Function({
+      Value<int> idListino,
+      Value<String?> codListino,
+      Value<String?> descrizione,
+      Value<String?> validoDa,
+      Value<String?> validoA,
+      Value<int> attivo,
+      Value<String?> dataModifica,
+    });
+
+class $$ListiniTableFilterComposer
+    extends Composer<_$AppDatabase, $ListiniTable> {
+  $$ListiniTableFilterComposer({
+    required super.$db,
+    required super.$table,
+    super.joinBuilder,
+    super.$addJoinBuilderToRootComposer,
+    super.$removeJoinBuilderFromRootComposer,
+  });
+  ColumnFilters<int> get idListino => $composableBuilder(
+    column: $table.idListino,
+    builder: (column) => ColumnFilters(column),
+  );
+
+  ColumnFilters<String> get codListino => $composableBuilder(
+    column: $table.codListino,
+    builder: (column) => ColumnFilters(column),
+  );
+
+  ColumnFilters<String> get descrizione => $composableBuilder(
+    column: $table.descrizione,
+    builder: (column) => ColumnFilters(column),
+  );
+
+  ColumnFilters<String> get validoDa => $composableBuilder(
+    column: $table.validoDa,
+    builder: (column) => ColumnFilters(column),
+  );
+
+  ColumnFilters<String> get validoA => $composableBuilder(
+    column: $table.validoA,
+    builder: (column) => ColumnFilters(column),
+  );
+
+  ColumnFilters<int> get attivo => $composableBuilder(
+    column: $table.attivo,
+    builder: (column) => ColumnFilters(column),
+  );
+
+  ColumnFilters<String> get dataModifica => $composableBuilder(
+    column: $table.dataModifica,
+    builder: (column) => ColumnFilters(column),
+  );
+}
+
+class $$ListiniTableOrderingComposer
+    extends Composer<_$AppDatabase, $ListiniTable> {
+  $$ListiniTableOrderingComposer({
+    required super.$db,
+    required super.$table,
+    super.joinBuilder,
+    super.$addJoinBuilderToRootComposer,
+    super.$removeJoinBuilderFromRootComposer,
+  });
+  ColumnOrderings<int> get idListino => $composableBuilder(
+    column: $table.idListino,
+    builder: (column) => ColumnOrderings(column),
+  );
+
+  ColumnOrderings<String> get codListino => $composableBuilder(
+    column: $table.codListino,
+    builder: (column) => ColumnOrderings(column),
+  );
+
+  ColumnOrderings<String> get descrizione => $composableBuilder(
+    column: $table.descrizione,
+    builder: (column) => ColumnOrderings(column),
+  );
+
+  ColumnOrderings<String> get validoDa => $composableBuilder(
+    column: $table.validoDa,
+    builder: (column) => ColumnOrderings(column),
+  );
+
+  ColumnOrderings<String> get validoA => $composableBuilder(
+    column: $table.validoA,
+    builder: (column) => ColumnOrderings(column),
+  );
+
+  ColumnOrderings<int> get attivo => $composableBuilder(
+    column: $table.attivo,
+    builder: (column) => ColumnOrderings(column),
+  );
+
+  ColumnOrderings<String> get dataModifica => $composableBuilder(
+    column: $table.dataModifica,
+    builder: (column) => ColumnOrderings(column),
+  );
+}
+
+class $$ListiniTableAnnotationComposer
+    extends Composer<_$AppDatabase, $ListiniTable> {
+  $$ListiniTableAnnotationComposer({
+    required super.$db,
+    required super.$table,
+    super.joinBuilder,
+    super.$addJoinBuilderToRootComposer,
+    super.$removeJoinBuilderFromRootComposer,
+  });
+  GeneratedColumn<int> get idListino =>
+      $composableBuilder(column: $table.idListino, builder: (column) => column);
+
+  GeneratedColumn<String> get codListino => $composableBuilder(
+    column: $table.codListino,
+    builder: (column) => column,
+  );
+
+  GeneratedColumn<String> get descrizione => $composableBuilder(
+    column: $table.descrizione,
+    builder: (column) => column,
+  );
+
+  GeneratedColumn<String> get validoDa =>
+      $composableBuilder(column: $table.validoDa, builder: (column) => column);
+
+  GeneratedColumn<String> get validoA =>
+      $composableBuilder(column: $table.validoA, builder: (column) => column);
+
+  GeneratedColumn<int> get attivo =>
+      $composableBuilder(column: $table.attivo, builder: (column) => column);
+
+  GeneratedColumn<String> get dataModifica => $composableBuilder(
+    column: $table.dataModifica,
+    builder: (column) => column,
+  );
+}
+
+class $$ListiniTableTableManager
+    extends
+        RootTableManager<
+          _$AppDatabase,
+          $ListiniTable,
+          Listino,
+          $$ListiniTableFilterComposer,
+          $$ListiniTableOrderingComposer,
+          $$ListiniTableAnnotationComposer,
+          $$ListiniTableCreateCompanionBuilder,
+          $$ListiniTableUpdateCompanionBuilder,
+          (Listino, BaseReferences<_$AppDatabase, $ListiniTable, Listino>),
+          Listino,
+          PrefetchHooks Function()
+        > {
+  $$ListiniTableTableManager(_$AppDatabase db, $ListiniTable table)
+    : super(
+        TableManagerState(
+          db: db,
+          table: table,
+          createFilteringComposer: () =>
+              $$ListiniTableFilterComposer($db: db, $table: table),
+          createOrderingComposer: () =>
+              $$ListiniTableOrderingComposer($db: db, $table: table),
+          createComputedFieldComposer: () =>
+              $$ListiniTableAnnotationComposer($db: db, $table: table),
+          updateCompanionCallback:
+              ({
+                Value<int> idListino = const Value.absent(),
+                Value<String?> codListino = const Value.absent(),
+                Value<String?> descrizione = const Value.absent(),
+                Value<String?> validoDa = const Value.absent(),
+                Value<String?> validoA = const Value.absent(),
+                Value<int> attivo = const Value.absent(),
+                Value<String?> dataModifica = const Value.absent(),
+              }) => ListiniCompanion(
+                idListino: idListino,
+                codListino: codListino,
+                descrizione: descrizione,
+                validoDa: validoDa,
+                validoA: validoA,
+                attivo: attivo,
+                dataModifica: dataModifica,
+              ),
+          createCompanionCallback:
+              ({
+                Value<int> idListino = const Value.absent(),
+                Value<String?> codListino = const Value.absent(),
+                Value<String?> descrizione = const Value.absent(),
+                Value<String?> validoDa = const Value.absent(),
+                Value<String?> validoA = const Value.absent(),
+                Value<int> attivo = const Value.absent(),
+                Value<String?> dataModifica = const Value.absent(),
+              }) => ListiniCompanion.insert(
+                idListino: idListino,
+                codListino: codListino,
+                descrizione: descrizione,
+                validoDa: validoDa,
+                validoA: validoA,
+                attivo: attivo,
+                dataModifica: dataModifica,
+              ),
+          withReferenceMapper: (p0) => p0
+              .map((e) => (e.readTable(table), BaseReferences(db, table, e)))
+              .toList(),
+          prefetchHooksCallback: null,
+        ),
+      );
+}
+
+typedef $$ListiniTableProcessedTableManager =
+    ProcessedTableManager<
+      _$AppDatabase,
+      $ListiniTable,
+      Listino,
+      $$ListiniTableFilterComposer,
+      $$ListiniTableOrderingComposer,
+      $$ListiniTableAnnotationComposer,
+      $$ListiniTableCreateCompanionBuilder,
+      $$ListiniTableUpdateCompanionBuilder,
+      (Listino, BaseReferences<_$AppDatabase, $ListiniTable, Listino>),
+      Listino,
+      PrefetchHooks Function()
+    >;
+typedef $$ListiniArticoloTableCreateCompanionBuilder =
+    ListiniArticoloCompanion Function({
+      Value<int> idListinoArticoli,
+      Value<int?> idListino,
+      Value<int?> idArticolo,
+      Value<double?> prezzo,
+      Value<int?> idSconto,
+      Value<String?> validoDa,
+      Value<String?> validoA,
+      Value<int> attivo,
+    });
+typedef $$ListiniArticoloTableUpdateCompanionBuilder =
+    ListiniArticoloCompanion Function({
+      Value<int> idListinoArticoli,
+      Value<int?> idListino,
+      Value<int?> idArticolo,
+      Value<double?> prezzo,
+      Value<int?> idSconto,
+      Value<String?> validoDa,
+      Value<String?> validoA,
+      Value<int> attivo,
+    });
+
+class $$ListiniArticoloTableFilterComposer
+    extends Composer<_$AppDatabase, $ListiniArticoloTable> {
+  $$ListiniArticoloTableFilterComposer({
+    required super.$db,
+    required super.$table,
+    super.joinBuilder,
+    super.$addJoinBuilderToRootComposer,
+    super.$removeJoinBuilderFromRootComposer,
+  });
+  ColumnFilters<int> get idListinoArticoli => $composableBuilder(
+    column: $table.idListinoArticoli,
+    builder: (column) => ColumnFilters(column),
+  );
+
+  ColumnFilters<int> get idListino => $composableBuilder(
+    column: $table.idListino,
+    builder: (column) => ColumnFilters(column),
+  );
+
+  ColumnFilters<int> get idArticolo => $composableBuilder(
+    column: $table.idArticolo,
+    builder: (column) => ColumnFilters(column),
+  );
+
+  ColumnFilters<double> get prezzo => $composableBuilder(
+    column: $table.prezzo,
+    builder: (column) => ColumnFilters(column),
+  );
+
+  ColumnFilters<int> get idSconto => $composableBuilder(
+    column: $table.idSconto,
+    builder: (column) => ColumnFilters(column),
+  );
+
+  ColumnFilters<String> get validoDa => $composableBuilder(
+    column: $table.validoDa,
+    builder: (column) => ColumnFilters(column),
+  );
+
+  ColumnFilters<String> get validoA => $composableBuilder(
+    column: $table.validoA,
+    builder: (column) => ColumnFilters(column),
+  );
+
+  ColumnFilters<int> get attivo => $composableBuilder(
+    column: $table.attivo,
+    builder: (column) => ColumnFilters(column),
+  );
+}
+
+class $$ListiniArticoloTableOrderingComposer
+    extends Composer<_$AppDatabase, $ListiniArticoloTable> {
+  $$ListiniArticoloTableOrderingComposer({
+    required super.$db,
+    required super.$table,
+    super.joinBuilder,
+    super.$addJoinBuilderToRootComposer,
+    super.$removeJoinBuilderFromRootComposer,
+  });
+  ColumnOrderings<int> get idListinoArticoli => $composableBuilder(
+    column: $table.idListinoArticoli,
+    builder: (column) => ColumnOrderings(column),
+  );
+
+  ColumnOrderings<int> get idListino => $composableBuilder(
+    column: $table.idListino,
+    builder: (column) => ColumnOrderings(column),
+  );
+
+  ColumnOrderings<int> get idArticolo => $composableBuilder(
+    column: $table.idArticolo,
+    builder: (column) => ColumnOrderings(column),
+  );
+
+  ColumnOrderings<double> get prezzo => $composableBuilder(
+    column: $table.prezzo,
+    builder: (column) => ColumnOrderings(column),
+  );
+
+  ColumnOrderings<int> get idSconto => $composableBuilder(
+    column: $table.idSconto,
+    builder: (column) => ColumnOrderings(column),
+  );
+
+  ColumnOrderings<String> get validoDa => $composableBuilder(
+    column: $table.validoDa,
+    builder: (column) => ColumnOrderings(column),
+  );
+
+  ColumnOrderings<String> get validoA => $composableBuilder(
+    column: $table.validoA,
+    builder: (column) => ColumnOrderings(column),
+  );
+
+  ColumnOrderings<int> get attivo => $composableBuilder(
+    column: $table.attivo,
+    builder: (column) => ColumnOrderings(column),
+  );
+}
+
+class $$ListiniArticoloTableAnnotationComposer
+    extends Composer<_$AppDatabase, $ListiniArticoloTable> {
+  $$ListiniArticoloTableAnnotationComposer({
+    required super.$db,
+    required super.$table,
+    super.joinBuilder,
+    super.$addJoinBuilderToRootComposer,
+    super.$removeJoinBuilderFromRootComposer,
+  });
+  GeneratedColumn<int> get idListinoArticoli => $composableBuilder(
+    column: $table.idListinoArticoli,
+    builder: (column) => column,
+  );
+
+  GeneratedColumn<int> get idListino =>
+      $composableBuilder(column: $table.idListino, builder: (column) => column);
+
+  GeneratedColumn<int> get idArticolo => $composableBuilder(
+    column: $table.idArticolo,
+    builder: (column) => column,
+  );
+
+  GeneratedColumn<double> get prezzo =>
+      $composableBuilder(column: $table.prezzo, builder: (column) => column);
+
+  GeneratedColumn<int> get idSconto =>
+      $composableBuilder(column: $table.idSconto, builder: (column) => column);
+
+  GeneratedColumn<String> get validoDa =>
+      $composableBuilder(column: $table.validoDa, builder: (column) => column);
+
+  GeneratedColumn<String> get validoA =>
+      $composableBuilder(column: $table.validoA, builder: (column) => column);
+
+  GeneratedColumn<int> get attivo =>
+      $composableBuilder(column: $table.attivo, builder: (column) => column);
+}
+
+class $$ListiniArticoloTableTableManager
+    extends
+        RootTableManager<
+          _$AppDatabase,
+          $ListiniArticoloTable,
+          ListinoArticolo,
+          $$ListiniArticoloTableFilterComposer,
+          $$ListiniArticoloTableOrderingComposer,
+          $$ListiniArticoloTableAnnotationComposer,
+          $$ListiniArticoloTableCreateCompanionBuilder,
+          $$ListiniArticoloTableUpdateCompanionBuilder,
+          (
+            ListinoArticolo,
+            BaseReferences<
+              _$AppDatabase,
+              $ListiniArticoloTable,
+              ListinoArticolo
+            >,
+          ),
+          ListinoArticolo,
+          PrefetchHooks Function()
+        > {
+  $$ListiniArticoloTableTableManager(
+    _$AppDatabase db,
+    $ListiniArticoloTable table,
+  ) : super(
+        TableManagerState(
+          db: db,
+          table: table,
+          createFilteringComposer: () =>
+              $$ListiniArticoloTableFilterComposer($db: db, $table: table),
+          createOrderingComposer: () =>
+              $$ListiniArticoloTableOrderingComposer($db: db, $table: table),
+          createComputedFieldComposer: () =>
+              $$ListiniArticoloTableAnnotationComposer($db: db, $table: table),
+          updateCompanionCallback:
+              ({
+                Value<int> idListinoArticoli = const Value.absent(),
+                Value<int?> idListino = const Value.absent(),
+                Value<int?> idArticolo = const Value.absent(),
+                Value<double?> prezzo = const Value.absent(),
+                Value<int?> idSconto = const Value.absent(),
+                Value<String?> validoDa = const Value.absent(),
+                Value<String?> validoA = const Value.absent(),
+                Value<int> attivo = const Value.absent(),
+              }) => ListiniArticoloCompanion(
+                idListinoArticoli: idListinoArticoli,
+                idListino: idListino,
+                idArticolo: idArticolo,
+                prezzo: prezzo,
+                idSconto: idSconto,
+                validoDa: validoDa,
+                validoA: validoA,
+                attivo: attivo,
+              ),
+          createCompanionCallback:
+              ({
+                Value<int> idListinoArticoli = const Value.absent(),
+                Value<int?> idListino = const Value.absent(),
+                Value<int?> idArticolo = const Value.absent(),
+                Value<double?> prezzo = const Value.absent(),
+                Value<int?> idSconto = const Value.absent(),
+                Value<String?> validoDa = const Value.absent(),
+                Value<String?> validoA = const Value.absent(),
+                Value<int> attivo = const Value.absent(),
+              }) => ListiniArticoloCompanion.insert(
+                idListinoArticoli: idListinoArticoli,
+                idListino: idListino,
+                idArticolo: idArticolo,
+                prezzo: prezzo,
+                idSconto: idSconto,
+                validoDa: validoDa,
+                validoA: validoA,
+                attivo: attivo,
+              ),
+          withReferenceMapper: (p0) => p0
+              .map((e) => (e.readTable(table), BaseReferences(db, table, e)))
+              .toList(),
+          prefetchHooksCallback: null,
+        ),
+      );
+}
+
+typedef $$ListiniArticoloTableProcessedTableManager =
+    ProcessedTableManager<
+      _$AppDatabase,
+      $ListiniArticoloTable,
+      ListinoArticolo,
+      $$ListiniArticoloTableFilterComposer,
+      $$ListiniArticoloTableOrderingComposer,
+      $$ListiniArticoloTableAnnotationComposer,
+      $$ListiniArticoloTableCreateCompanionBuilder,
+      $$ListiniArticoloTableUpdateCompanionBuilder,
+      (
+        ListinoArticolo,
+        BaseReferences<_$AppDatabase, $ListiniArticoloTable, ListinoArticolo>,
+      ),
+      ListinoArticolo,
+      PrefetchHooks Function()
+    >;
+typedef $$ListiniClienteTableCreateCompanionBuilder =
+    ListiniClienteCompanion Function({
+      Value<int> idListinoCliente,
+      Value<int?> idListino,
+      Value<int?> idCliente,
+      Value<int?> idArticolo,
+      Value<int?> idSconto,
+      Value<String?> validoDa,
+      Value<String?> validoA,
+      Value<double?> prezzo,
+      Value<int> attivo,
+      Value<String> annullato,
+      Value<String?> listinoSostitutivo,
+      Value<String?> stato,
+    });
+typedef $$ListiniClienteTableUpdateCompanionBuilder =
+    ListiniClienteCompanion Function({
+      Value<int> idListinoCliente,
+      Value<int?> idListino,
+      Value<int?> idCliente,
+      Value<int?> idArticolo,
+      Value<int?> idSconto,
+      Value<String?> validoDa,
+      Value<String?> validoA,
+      Value<double?> prezzo,
+      Value<int> attivo,
+      Value<String> annullato,
+      Value<String?> listinoSostitutivo,
+      Value<String?> stato,
+    });
+
+class $$ListiniClienteTableFilterComposer
+    extends Composer<_$AppDatabase, $ListiniClienteTable> {
+  $$ListiniClienteTableFilterComposer({
+    required super.$db,
+    required super.$table,
+    super.joinBuilder,
+    super.$addJoinBuilderToRootComposer,
+    super.$removeJoinBuilderFromRootComposer,
+  });
+  ColumnFilters<int> get idListinoCliente => $composableBuilder(
+    column: $table.idListinoCliente,
+    builder: (column) => ColumnFilters(column),
+  );
+
+  ColumnFilters<int> get idListino => $composableBuilder(
+    column: $table.idListino,
+    builder: (column) => ColumnFilters(column),
+  );
+
+  ColumnFilters<int> get idCliente => $composableBuilder(
+    column: $table.idCliente,
+    builder: (column) => ColumnFilters(column),
+  );
+
+  ColumnFilters<int> get idArticolo => $composableBuilder(
+    column: $table.idArticolo,
+    builder: (column) => ColumnFilters(column),
+  );
+
+  ColumnFilters<int> get idSconto => $composableBuilder(
+    column: $table.idSconto,
+    builder: (column) => ColumnFilters(column),
+  );
+
+  ColumnFilters<String> get validoDa => $composableBuilder(
+    column: $table.validoDa,
+    builder: (column) => ColumnFilters(column),
+  );
+
+  ColumnFilters<String> get validoA => $composableBuilder(
+    column: $table.validoA,
+    builder: (column) => ColumnFilters(column),
+  );
+
+  ColumnFilters<double> get prezzo => $composableBuilder(
+    column: $table.prezzo,
+    builder: (column) => ColumnFilters(column),
+  );
+
+  ColumnFilters<int> get attivo => $composableBuilder(
+    column: $table.attivo,
+    builder: (column) => ColumnFilters(column),
+  );
+
+  ColumnFilters<String> get annullato => $composableBuilder(
+    column: $table.annullato,
+    builder: (column) => ColumnFilters(column),
+  );
+
+  ColumnFilters<String> get listinoSostitutivo => $composableBuilder(
+    column: $table.listinoSostitutivo,
+    builder: (column) => ColumnFilters(column),
+  );
+
+  ColumnFilters<String> get stato => $composableBuilder(
+    column: $table.stato,
+    builder: (column) => ColumnFilters(column),
+  );
+}
+
+class $$ListiniClienteTableOrderingComposer
+    extends Composer<_$AppDatabase, $ListiniClienteTable> {
+  $$ListiniClienteTableOrderingComposer({
+    required super.$db,
+    required super.$table,
+    super.joinBuilder,
+    super.$addJoinBuilderToRootComposer,
+    super.$removeJoinBuilderFromRootComposer,
+  });
+  ColumnOrderings<int> get idListinoCliente => $composableBuilder(
+    column: $table.idListinoCliente,
+    builder: (column) => ColumnOrderings(column),
+  );
+
+  ColumnOrderings<int> get idListino => $composableBuilder(
+    column: $table.idListino,
+    builder: (column) => ColumnOrderings(column),
+  );
+
+  ColumnOrderings<int> get idCliente => $composableBuilder(
+    column: $table.idCliente,
+    builder: (column) => ColumnOrderings(column),
+  );
+
+  ColumnOrderings<int> get idArticolo => $composableBuilder(
+    column: $table.idArticolo,
+    builder: (column) => ColumnOrderings(column),
+  );
+
+  ColumnOrderings<int> get idSconto => $composableBuilder(
+    column: $table.idSconto,
+    builder: (column) => ColumnOrderings(column),
+  );
+
+  ColumnOrderings<String> get validoDa => $composableBuilder(
+    column: $table.validoDa,
+    builder: (column) => ColumnOrderings(column),
+  );
+
+  ColumnOrderings<String> get validoA => $composableBuilder(
+    column: $table.validoA,
+    builder: (column) => ColumnOrderings(column),
+  );
+
+  ColumnOrderings<double> get prezzo => $composableBuilder(
+    column: $table.prezzo,
+    builder: (column) => ColumnOrderings(column),
+  );
+
+  ColumnOrderings<int> get attivo => $composableBuilder(
+    column: $table.attivo,
+    builder: (column) => ColumnOrderings(column),
+  );
+
+  ColumnOrderings<String> get annullato => $composableBuilder(
+    column: $table.annullato,
+    builder: (column) => ColumnOrderings(column),
+  );
+
+  ColumnOrderings<String> get listinoSostitutivo => $composableBuilder(
+    column: $table.listinoSostitutivo,
+    builder: (column) => ColumnOrderings(column),
+  );
+
+  ColumnOrderings<String> get stato => $composableBuilder(
+    column: $table.stato,
+    builder: (column) => ColumnOrderings(column),
+  );
+}
+
+class $$ListiniClienteTableAnnotationComposer
+    extends Composer<_$AppDatabase, $ListiniClienteTable> {
+  $$ListiniClienteTableAnnotationComposer({
+    required super.$db,
+    required super.$table,
+    super.joinBuilder,
+    super.$addJoinBuilderToRootComposer,
+    super.$removeJoinBuilderFromRootComposer,
+  });
+  GeneratedColumn<int> get idListinoCliente => $composableBuilder(
+    column: $table.idListinoCliente,
+    builder: (column) => column,
+  );
+
+  GeneratedColumn<int> get idListino =>
+      $composableBuilder(column: $table.idListino, builder: (column) => column);
+
+  GeneratedColumn<int> get idCliente =>
+      $composableBuilder(column: $table.idCliente, builder: (column) => column);
+
+  GeneratedColumn<int> get idArticolo => $composableBuilder(
+    column: $table.idArticolo,
+    builder: (column) => column,
+  );
+
+  GeneratedColumn<int> get idSconto =>
+      $composableBuilder(column: $table.idSconto, builder: (column) => column);
+
+  GeneratedColumn<String> get validoDa =>
+      $composableBuilder(column: $table.validoDa, builder: (column) => column);
+
+  GeneratedColumn<String> get validoA =>
+      $composableBuilder(column: $table.validoA, builder: (column) => column);
+
+  GeneratedColumn<double> get prezzo =>
+      $composableBuilder(column: $table.prezzo, builder: (column) => column);
+
+  GeneratedColumn<int> get attivo =>
+      $composableBuilder(column: $table.attivo, builder: (column) => column);
+
+  GeneratedColumn<String> get annullato =>
+      $composableBuilder(column: $table.annullato, builder: (column) => column);
+
+  GeneratedColumn<String> get listinoSostitutivo => $composableBuilder(
+    column: $table.listinoSostitutivo,
+    builder: (column) => column,
+  );
+
+  GeneratedColumn<String> get stato =>
+      $composableBuilder(column: $table.stato, builder: (column) => column);
+}
+
+class $$ListiniClienteTableTableManager
+    extends
+        RootTableManager<
+          _$AppDatabase,
+          $ListiniClienteTable,
+          ListinoCliente,
+          $$ListiniClienteTableFilterComposer,
+          $$ListiniClienteTableOrderingComposer,
+          $$ListiniClienteTableAnnotationComposer,
+          $$ListiniClienteTableCreateCompanionBuilder,
+          $$ListiniClienteTableUpdateCompanionBuilder,
+          (
+            ListinoCliente,
+            BaseReferences<_$AppDatabase, $ListiniClienteTable, ListinoCliente>,
+          ),
+          ListinoCliente,
+          PrefetchHooks Function()
+        > {
+  $$ListiniClienteTableTableManager(
+    _$AppDatabase db,
+    $ListiniClienteTable table,
+  ) : super(
+        TableManagerState(
+          db: db,
+          table: table,
+          createFilteringComposer: () =>
+              $$ListiniClienteTableFilterComposer($db: db, $table: table),
+          createOrderingComposer: () =>
+              $$ListiniClienteTableOrderingComposer($db: db, $table: table),
+          createComputedFieldComposer: () =>
+              $$ListiniClienteTableAnnotationComposer($db: db, $table: table),
+          updateCompanionCallback:
+              ({
+                Value<int> idListinoCliente = const Value.absent(),
+                Value<int?> idListino = const Value.absent(),
+                Value<int?> idCliente = const Value.absent(),
+                Value<int?> idArticolo = const Value.absent(),
+                Value<int?> idSconto = const Value.absent(),
+                Value<String?> validoDa = const Value.absent(),
+                Value<String?> validoA = const Value.absent(),
+                Value<double?> prezzo = const Value.absent(),
+                Value<int> attivo = const Value.absent(),
+                Value<String> annullato = const Value.absent(),
+                Value<String?> listinoSostitutivo = const Value.absent(),
+                Value<String?> stato = const Value.absent(),
+              }) => ListiniClienteCompanion(
+                idListinoCliente: idListinoCliente,
+                idListino: idListino,
+                idCliente: idCliente,
+                idArticolo: idArticolo,
+                idSconto: idSconto,
+                validoDa: validoDa,
+                validoA: validoA,
+                prezzo: prezzo,
+                attivo: attivo,
+                annullato: annullato,
+                listinoSostitutivo: listinoSostitutivo,
+                stato: stato,
+              ),
+          createCompanionCallback:
+              ({
+                Value<int> idListinoCliente = const Value.absent(),
+                Value<int?> idListino = const Value.absent(),
+                Value<int?> idCliente = const Value.absent(),
+                Value<int?> idArticolo = const Value.absent(),
+                Value<int?> idSconto = const Value.absent(),
+                Value<String?> validoDa = const Value.absent(),
+                Value<String?> validoA = const Value.absent(),
+                Value<double?> prezzo = const Value.absent(),
+                Value<int> attivo = const Value.absent(),
+                Value<String> annullato = const Value.absent(),
+                Value<String?> listinoSostitutivo = const Value.absent(),
+                Value<String?> stato = const Value.absent(),
+              }) => ListiniClienteCompanion.insert(
+                idListinoCliente: idListinoCliente,
+                idListino: idListino,
+                idCliente: idCliente,
+                idArticolo: idArticolo,
+                idSconto: idSconto,
+                validoDa: validoDa,
+                validoA: validoA,
+                prezzo: prezzo,
+                attivo: attivo,
+                annullato: annullato,
+                listinoSostitutivo: listinoSostitutivo,
+                stato: stato,
+              ),
+          withReferenceMapper: (p0) => p0
+              .map((e) => (e.readTable(table), BaseReferences(db, table, e)))
+              .toList(),
+          prefetchHooksCallback: null,
+        ),
+      );
+}
+
+typedef $$ListiniClienteTableProcessedTableManager =
+    ProcessedTableManager<
+      _$AppDatabase,
+      $ListiniClienteTable,
+      ListinoCliente,
+      $$ListiniClienteTableFilterComposer,
+      $$ListiniClienteTableOrderingComposer,
+      $$ListiniClienteTableAnnotationComposer,
+      $$ListiniClienteTableCreateCompanionBuilder,
+      $$ListiniClienteTableUpdateCompanionBuilder,
+      (
+        ListinoCliente,
+        BaseReferences<_$AppDatabase, $ListiniClienteTable, ListinoCliente>,
+      ),
+      ListinoCliente,
+      PrefetchHooks Function()
+    >;
+typedef $$ScontiTableCreateCompanionBuilder =
+    ScontiCompanion Function({
+      Value<int> idSconto,
+      Value<String?> codSconto,
+      Value<String?> descrizione,
+      Value<double?> sconto1,
+      Value<double?> sconto2,
+      Value<double?> sconto3,
+      Value<double?> sconto4,
+      Value<double?> sconto5,
+    });
+typedef $$ScontiTableUpdateCompanionBuilder =
+    ScontiCompanion Function({
+      Value<int> idSconto,
+      Value<String?> codSconto,
+      Value<String?> descrizione,
+      Value<double?> sconto1,
+      Value<double?> sconto2,
+      Value<double?> sconto3,
+      Value<double?> sconto4,
+      Value<double?> sconto5,
+    });
+
+class $$ScontiTableFilterComposer
+    extends Composer<_$AppDatabase, $ScontiTable> {
+  $$ScontiTableFilterComposer({
+    required super.$db,
+    required super.$table,
+    super.joinBuilder,
+    super.$addJoinBuilderToRootComposer,
+    super.$removeJoinBuilderFromRootComposer,
+  });
+  ColumnFilters<int> get idSconto => $composableBuilder(
+    column: $table.idSconto,
+    builder: (column) => ColumnFilters(column),
+  );
+
+  ColumnFilters<String> get codSconto => $composableBuilder(
+    column: $table.codSconto,
+    builder: (column) => ColumnFilters(column),
+  );
+
+  ColumnFilters<String> get descrizione => $composableBuilder(
+    column: $table.descrizione,
+    builder: (column) => ColumnFilters(column),
+  );
+
+  ColumnFilters<double> get sconto1 => $composableBuilder(
+    column: $table.sconto1,
+    builder: (column) => ColumnFilters(column),
+  );
+
+  ColumnFilters<double> get sconto2 => $composableBuilder(
+    column: $table.sconto2,
+    builder: (column) => ColumnFilters(column),
+  );
+
+  ColumnFilters<double> get sconto3 => $composableBuilder(
+    column: $table.sconto3,
+    builder: (column) => ColumnFilters(column),
+  );
+
+  ColumnFilters<double> get sconto4 => $composableBuilder(
+    column: $table.sconto4,
+    builder: (column) => ColumnFilters(column),
+  );
+
+  ColumnFilters<double> get sconto5 => $composableBuilder(
+    column: $table.sconto5,
+    builder: (column) => ColumnFilters(column),
+  );
+}
+
+class $$ScontiTableOrderingComposer
+    extends Composer<_$AppDatabase, $ScontiTable> {
+  $$ScontiTableOrderingComposer({
+    required super.$db,
+    required super.$table,
+    super.joinBuilder,
+    super.$addJoinBuilderToRootComposer,
+    super.$removeJoinBuilderFromRootComposer,
+  });
+  ColumnOrderings<int> get idSconto => $composableBuilder(
+    column: $table.idSconto,
+    builder: (column) => ColumnOrderings(column),
+  );
+
+  ColumnOrderings<String> get codSconto => $composableBuilder(
+    column: $table.codSconto,
+    builder: (column) => ColumnOrderings(column),
+  );
+
+  ColumnOrderings<String> get descrizione => $composableBuilder(
+    column: $table.descrizione,
+    builder: (column) => ColumnOrderings(column),
+  );
+
+  ColumnOrderings<double> get sconto1 => $composableBuilder(
+    column: $table.sconto1,
+    builder: (column) => ColumnOrderings(column),
+  );
+
+  ColumnOrderings<double> get sconto2 => $composableBuilder(
+    column: $table.sconto2,
+    builder: (column) => ColumnOrderings(column),
+  );
+
+  ColumnOrderings<double> get sconto3 => $composableBuilder(
+    column: $table.sconto3,
+    builder: (column) => ColumnOrderings(column),
+  );
+
+  ColumnOrderings<double> get sconto4 => $composableBuilder(
+    column: $table.sconto4,
+    builder: (column) => ColumnOrderings(column),
+  );
+
+  ColumnOrderings<double> get sconto5 => $composableBuilder(
+    column: $table.sconto5,
+    builder: (column) => ColumnOrderings(column),
+  );
+}
+
+class $$ScontiTableAnnotationComposer
+    extends Composer<_$AppDatabase, $ScontiTable> {
+  $$ScontiTableAnnotationComposer({
+    required super.$db,
+    required super.$table,
+    super.joinBuilder,
+    super.$addJoinBuilderToRootComposer,
+    super.$removeJoinBuilderFromRootComposer,
+  });
+  GeneratedColumn<int> get idSconto =>
+      $composableBuilder(column: $table.idSconto, builder: (column) => column);
+
+  GeneratedColumn<String> get codSconto =>
+      $composableBuilder(column: $table.codSconto, builder: (column) => column);
+
+  GeneratedColumn<String> get descrizione => $composableBuilder(
+    column: $table.descrizione,
+    builder: (column) => column,
+  );
+
+  GeneratedColumn<double> get sconto1 =>
+      $composableBuilder(column: $table.sconto1, builder: (column) => column);
+
+  GeneratedColumn<double> get sconto2 =>
+      $composableBuilder(column: $table.sconto2, builder: (column) => column);
+
+  GeneratedColumn<double> get sconto3 =>
+      $composableBuilder(column: $table.sconto3, builder: (column) => column);
+
+  GeneratedColumn<double> get sconto4 =>
+      $composableBuilder(column: $table.sconto4, builder: (column) => column);
+
+  GeneratedColumn<double> get sconto5 =>
+      $composableBuilder(column: $table.sconto5, builder: (column) => column);
+}
+
+class $$ScontiTableTableManager
+    extends
+        RootTableManager<
+          _$AppDatabase,
+          $ScontiTable,
+          Sconto,
+          $$ScontiTableFilterComposer,
+          $$ScontiTableOrderingComposer,
+          $$ScontiTableAnnotationComposer,
+          $$ScontiTableCreateCompanionBuilder,
+          $$ScontiTableUpdateCompanionBuilder,
+          (Sconto, BaseReferences<_$AppDatabase, $ScontiTable, Sconto>),
+          Sconto,
+          PrefetchHooks Function()
+        > {
+  $$ScontiTableTableManager(_$AppDatabase db, $ScontiTable table)
+    : super(
+        TableManagerState(
+          db: db,
+          table: table,
+          createFilteringComposer: () =>
+              $$ScontiTableFilterComposer($db: db, $table: table),
+          createOrderingComposer: () =>
+              $$ScontiTableOrderingComposer($db: db, $table: table),
+          createComputedFieldComposer: () =>
+              $$ScontiTableAnnotationComposer($db: db, $table: table),
+          updateCompanionCallback:
+              ({
+                Value<int> idSconto = const Value.absent(),
+                Value<String?> codSconto = const Value.absent(),
+                Value<String?> descrizione = const Value.absent(),
+                Value<double?> sconto1 = const Value.absent(),
+                Value<double?> sconto2 = const Value.absent(),
+                Value<double?> sconto3 = const Value.absent(),
+                Value<double?> sconto4 = const Value.absent(),
+                Value<double?> sconto5 = const Value.absent(),
+              }) => ScontiCompanion(
+                idSconto: idSconto,
+                codSconto: codSconto,
+                descrizione: descrizione,
+                sconto1: sconto1,
+                sconto2: sconto2,
+                sconto3: sconto3,
+                sconto4: sconto4,
+                sconto5: sconto5,
+              ),
+          createCompanionCallback:
+              ({
+                Value<int> idSconto = const Value.absent(),
+                Value<String?> codSconto = const Value.absent(),
+                Value<String?> descrizione = const Value.absent(),
+                Value<double?> sconto1 = const Value.absent(),
+                Value<double?> sconto2 = const Value.absent(),
+                Value<double?> sconto3 = const Value.absent(),
+                Value<double?> sconto4 = const Value.absent(),
+                Value<double?> sconto5 = const Value.absent(),
+              }) => ScontiCompanion.insert(
+                idSconto: idSconto,
+                codSconto: codSconto,
+                descrizione: descrizione,
+                sconto1: sconto1,
+                sconto2: sconto2,
+                sconto3: sconto3,
+                sconto4: sconto4,
+                sconto5: sconto5,
+              ),
+          withReferenceMapper: (p0) => p0
+              .map((e) => (e.readTable(table), BaseReferences(db, table, e)))
+              .toList(),
+          prefetchHooksCallback: null,
+        ),
+      );
+}
+
+typedef $$ScontiTableProcessedTableManager =
+    ProcessedTableManager<
+      _$AppDatabase,
+      $ScontiTable,
+      Sconto,
+      $$ScontiTableFilterComposer,
+      $$ScontiTableOrderingComposer,
+      $$ScontiTableAnnotationComposer,
+      $$ScontiTableCreateCompanionBuilder,
+      $$ScontiTableUpdateCompanionBuilder,
+      (Sconto, BaseReferences<_$AppDatabase, $ScontiTable, Sconto>),
+      Sconto,
+      PrefetchHooks Function()
+    >;
+typedef $$ScontiClienteTableCreateCompanionBuilder =
+    ScontiClienteCompanion Function({
+      Value<int> idScontoCliente,
+      Value<int?> idCliente,
+      Value<int?> idArticolo,
+      Value<String?> linea,
+      Value<int?> idSconto,
+      Value<String?> validoDa,
+      Value<String?> validoA,
+      Value<String?> stato,
+      Value<String?> dataModifica,
+    });
+typedef $$ScontiClienteTableUpdateCompanionBuilder =
+    ScontiClienteCompanion Function({
+      Value<int> idScontoCliente,
+      Value<int?> idCliente,
+      Value<int?> idArticolo,
+      Value<String?> linea,
+      Value<int?> idSconto,
+      Value<String?> validoDa,
+      Value<String?> validoA,
+      Value<String?> stato,
+      Value<String?> dataModifica,
+    });
+
+class $$ScontiClienteTableFilterComposer
+    extends Composer<_$AppDatabase, $ScontiClienteTable> {
+  $$ScontiClienteTableFilterComposer({
+    required super.$db,
+    required super.$table,
+    super.joinBuilder,
+    super.$addJoinBuilderToRootComposer,
+    super.$removeJoinBuilderFromRootComposer,
+  });
+  ColumnFilters<int> get idScontoCliente => $composableBuilder(
+    column: $table.idScontoCliente,
+    builder: (column) => ColumnFilters(column),
+  );
+
+  ColumnFilters<int> get idCliente => $composableBuilder(
+    column: $table.idCliente,
+    builder: (column) => ColumnFilters(column),
+  );
+
+  ColumnFilters<int> get idArticolo => $composableBuilder(
+    column: $table.idArticolo,
+    builder: (column) => ColumnFilters(column),
+  );
+
+  ColumnFilters<String> get linea => $composableBuilder(
+    column: $table.linea,
+    builder: (column) => ColumnFilters(column),
+  );
+
+  ColumnFilters<int> get idSconto => $composableBuilder(
+    column: $table.idSconto,
+    builder: (column) => ColumnFilters(column),
+  );
+
+  ColumnFilters<String> get validoDa => $composableBuilder(
+    column: $table.validoDa,
+    builder: (column) => ColumnFilters(column),
+  );
+
+  ColumnFilters<String> get validoA => $composableBuilder(
+    column: $table.validoA,
+    builder: (column) => ColumnFilters(column),
+  );
+
+  ColumnFilters<String> get stato => $composableBuilder(
+    column: $table.stato,
+    builder: (column) => ColumnFilters(column),
+  );
+
+  ColumnFilters<String> get dataModifica => $composableBuilder(
+    column: $table.dataModifica,
+    builder: (column) => ColumnFilters(column),
+  );
+}
+
+class $$ScontiClienteTableOrderingComposer
+    extends Composer<_$AppDatabase, $ScontiClienteTable> {
+  $$ScontiClienteTableOrderingComposer({
+    required super.$db,
+    required super.$table,
+    super.joinBuilder,
+    super.$addJoinBuilderToRootComposer,
+    super.$removeJoinBuilderFromRootComposer,
+  });
+  ColumnOrderings<int> get idScontoCliente => $composableBuilder(
+    column: $table.idScontoCliente,
+    builder: (column) => ColumnOrderings(column),
+  );
+
+  ColumnOrderings<int> get idCliente => $composableBuilder(
+    column: $table.idCliente,
+    builder: (column) => ColumnOrderings(column),
+  );
+
+  ColumnOrderings<int> get idArticolo => $composableBuilder(
+    column: $table.idArticolo,
+    builder: (column) => ColumnOrderings(column),
+  );
+
+  ColumnOrderings<String> get linea => $composableBuilder(
+    column: $table.linea,
+    builder: (column) => ColumnOrderings(column),
+  );
+
+  ColumnOrderings<int> get idSconto => $composableBuilder(
+    column: $table.idSconto,
+    builder: (column) => ColumnOrderings(column),
+  );
+
+  ColumnOrderings<String> get validoDa => $composableBuilder(
+    column: $table.validoDa,
+    builder: (column) => ColumnOrderings(column),
+  );
+
+  ColumnOrderings<String> get validoA => $composableBuilder(
+    column: $table.validoA,
+    builder: (column) => ColumnOrderings(column),
+  );
+
+  ColumnOrderings<String> get stato => $composableBuilder(
+    column: $table.stato,
+    builder: (column) => ColumnOrderings(column),
+  );
+
+  ColumnOrderings<String> get dataModifica => $composableBuilder(
+    column: $table.dataModifica,
+    builder: (column) => ColumnOrderings(column),
+  );
+}
+
+class $$ScontiClienteTableAnnotationComposer
+    extends Composer<_$AppDatabase, $ScontiClienteTable> {
+  $$ScontiClienteTableAnnotationComposer({
+    required super.$db,
+    required super.$table,
+    super.joinBuilder,
+    super.$addJoinBuilderToRootComposer,
+    super.$removeJoinBuilderFromRootComposer,
+  });
+  GeneratedColumn<int> get idScontoCliente => $composableBuilder(
+    column: $table.idScontoCliente,
+    builder: (column) => column,
+  );
+
+  GeneratedColumn<int> get idCliente =>
+      $composableBuilder(column: $table.idCliente, builder: (column) => column);
+
+  GeneratedColumn<int> get idArticolo => $composableBuilder(
+    column: $table.idArticolo,
+    builder: (column) => column,
+  );
+
+  GeneratedColumn<String> get linea =>
+      $composableBuilder(column: $table.linea, builder: (column) => column);
+
+  GeneratedColumn<int> get idSconto =>
+      $composableBuilder(column: $table.idSconto, builder: (column) => column);
+
+  GeneratedColumn<String> get validoDa =>
+      $composableBuilder(column: $table.validoDa, builder: (column) => column);
+
+  GeneratedColumn<String> get validoA =>
+      $composableBuilder(column: $table.validoA, builder: (column) => column);
+
+  GeneratedColumn<String> get stato =>
+      $composableBuilder(column: $table.stato, builder: (column) => column);
+
+  GeneratedColumn<String> get dataModifica => $composableBuilder(
+    column: $table.dataModifica,
+    builder: (column) => column,
+  );
+}
+
+class $$ScontiClienteTableTableManager
+    extends
+        RootTableManager<
+          _$AppDatabase,
+          $ScontiClienteTable,
+          ScontoCliente,
+          $$ScontiClienteTableFilterComposer,
+          $$ScontiClienteTableOrderingComposer,
+          $$ScontiClienteTableAnnotationComposer,
+          $$ScontiClienteTableCreateCompanionBuilder,
+          $$ScontiClienteTableUpdateCompanionBuilder,
+          (
+            ScontoCliente,
+            BaseReferences<_$AppDatabase, $ScontiClienteTable, ScontoCliente>,
+          ),
+          ScontoCliente,
+          PrefetchHooks Function()
+        > {
+  $$ScontiClienteTableTableManager(_$AppDatabase db, $ScontiClienteTable table)
+    : super(
+        TableManagerState(
+          db: db,
+          table: table,
+          createFilteringComposer: () =>
+              $$ScontiClienteTableFilterComposer($db: db, $table: table),
+          createOrderingComposer: () =>
+              $$ScontiClienteTableOrderingComposer($db: db, $table: table),
+          createComputedFieldComposer: () =>
+              $$ScontiClienteTableAnnotationComposer($db: db, $table: table),
+          updateCompanionCallback:
+              ({
+                Value<int> idScontoCliente = const Value.absent(),
+                Value<int?> idCliente = const Value.absent(),
+                Value<int?> idArticolo = const Value.absent(),
+                Value<String?> linea = const Value.absent(),
+                Value<int?> idSconto = const Value.absent(),
+                Value<String?> validoDa = const Value.absent(),
+                Value<String?> validoA = const Value.absent(),
+                Value<String?> stato = const Value.absent(),
+                Value<String?> dataModifica = const Value.absent(),
+              }) => ScontiClienteCompanion(
+                idScontoCliente: idScontoCliente,
+                idCliente: idCliente,
+                idArticolo: idArticolo,
+                linea: linea,
+                idSconto: idSconto,
+                validoDa: validoDa,
+                validoA: validoA,
+                stato: stato,
+                dataModifica: dataModifica,
+              ),
+          createCompanionCallback:
+              ({
+                Value<int> idScontoCliente = const Value.absent(),
+                Value<int?> idCliente = const Value.absent(),
+                Value<int?> idArticolo = const Value.absent(),
+                Value<String?> linea = const Value.absent(),
+                Value<int?> idSconto = const Value.absent(),
+                Value<String?> validoDa = const Value.absent(),
+                Value<String?> validoA = const Value.absent(),
+                Value<String?> stato = const Value.absent(),
+                Value<String?> dataModifica = const Value.absent(),
+              }) => ScontiClienteCompanion.insert(
+                idScontoCliente: idScontoCliente,
+                idCliente: idCliente,
+                idArticolo: idArticolo,
+                linea: linea,
+                idSconto: idSconto,
+                validoDa: validoDa,
+                validoA: validoA,
+                stato: stato,
+                dataModifica: dataModifica,
+              ),
+          withReferenceMapper: (p0) => p0
+              .map((e) => (e.readTable(table), BaseReferences(db, table, e)))
+              .toList(),
+          prefetchHooksCallback: null,
+        ),
+      );
+}
+
+typedef $$ScontiClienteTableProcessedTableManager =
+    ProcessedTableManager<
+      _$AppDatabase,
+      $ScontiClienteTable,
+      ScontoCliente,
+      $$ScontiClienteTableFilterComposer,
+      $$ScontiClienteTableOrderingComposer,
+      $$ScontiClienteTableAnnotationComposer,
+      $$ScontiClienteTableCreateCompanionBuilder,
+      $$ScontiClienteTableUpdateCompanionBuilder,
+      (
+        ScontoCliente,
+        BaseReferences<_$AppDatabase, $ScontiClienteTable, ScontoCliente>,
+      ),
+      ScontoCliente,
+      PrefetchHooks Function()
+    >;
+typedef $$PagamentiTableCreateCompanionBuilder =
+    PagamentiCompanion Function({
+      Value<int> idPagamento,
+      Value<String?> codPagamento,
+      Value<String?> descrizione,
+      Value<String?> dataModifica,
+      Value<int?> attivo,
+    });
+typedef $$PagamentiTableUpdateCompanionBuilder =
+    PagamentiCompanion Function({
+      Value<int> idPagamento,
+      Value<String?> codPagamento,
+      Value<String?> descrizione,
+      Value<String?> dataModifica,
+      Value<int?> attivo,
+    });
+
+class $$PagamentiTableFilterComposer
+    extends Composer<_$AppDatabase, $PagamentiTable> {
+  $$PagamentiTableFilterComposer({
+    required super.$db,
+    required super.$table,
+    super.joinBuilder,
+    super.$addJoinBuilderToRootComposer,
+    super.$removeJoinBuilderFromRootComposer,
+  });
+  ColumnFilters<int> get idPagamento => $composableBuilder(
+    column: $table.idPagamento,
+    builder: (column) => ColumnFilters(column),
+  );
+
+  ColumnFilters<String> get codPagamento => $composableBuilder(
+    column: $table.codPagamento,
+    builder: (column) => ColumnFilters(column),
+  );
+
+  ColumnFilters<String> get descrizione => $composableBuilder(
+    column: $table.descrizione,
+    builder: (column) => ColumnFilters(column),
+  );
+
+  ColumnFilters<String> get dataModifica => $composableBuilder(
+    column: $table.dataModifica,
+    builder: (column) => ColumnFilters(column),
+  );
+
+  ColumnFilters<int> get attivo => $composableBuilder(
+    column: $table.attivo,
+    builder: (column) => ColumnFilters(column),
+  );
+}
+
+class $$PagamentiTableOrderingComposer
+    extends Composer<_$AppDatabase, $PagamentiTable> {
+  $$PagamentiTableOrderingComposer({
+    required super.$db,
+    required super.$table,
+    super.joinBuilder,
+    super.$addJoinBuilderToRootComposer,
+    super.$removeJoinBuilderFromRootComposer,
+  });
+  ColumnOrderings<int> get idPagamento => $composableBuilder(
+    column: $table.idPagamento,
+    builder: (column) => ColumnOrderings(column),
+  );
+
+  ColumnOrderings<String> get codPagamento => $composableBuilder(
+    column: $table.codPagamento,
+    builder: (column) => ColumnOrderings(column),
+  );
+
+  ColumnOrderings<String> get descrizione => $composableBuilder(
+    column: $table.descrizione,
+    builder: (column) => ColumnOrderings(column),
+  );
+
+  ColumnOrderings<String> get dataModifica => $composableBuilder(
+    column: $table.dataModifica,
+    builder: (column) => ColumnOrderings(column),
+  );
+
+  ColumnOrderings<int> get attivo => $composableBuilder(
+    column: $table.attivo,
+    builder: (column) => ColumnOrderings(column),
+  );
+}
+
+class $$PagamentiTableAnnotationComposer
+    extends Composer<_$AppDatabase, $PagamentiTable> {
+  $$PagamentiTableAnnotationComposer({
+    required super.$db,
+    required super.$table,
+    super.joinBuilder,
+    super.$addJoinBuilderToRootComposer,
+    super.$removeJoinBuilderFromRootComposer,
+  });
+  GeneratedColumn<int> get idPagamento => $composableBuilder(
+    column: $table.idPagamento,
+    builder: (column) => column,
+  );
+
+  GeneratedColumn<String> get codPagamento => $composableBuilder(
+    column: $table.codPagamento,
+    builder: (column) => column,
+  );
+
+  GeneratedColumn<String> get descrizione => $composableBuilder(
+    column: $table.descrizione,
+    builder: (column) => column,
+  );
+
+  GeneratedColumn<String> get dataModifica => $composableBuilder(
+    column: $table.dataModifica,
+    builder: (column) => column,
+  );
+
+  GeneratedColumn<int> get attivo =>
+      $composableBuilder(column: $table.attivo, builder: (column) => column);
+}
+
+class $$PagamentiTableTableManager
+    extends
+        RootTableManager<
+          _$AppDatabase,
+          $PagamentiTable,
+          Pagamento,
+          $$PagamentiTableFilterComposer,
+          $$PagamentiTableOrderingComposer,
+          $$PagamentiTableAnnotationComposer,
+          $$PagamentiTableCreateCompanionBuilder,
+          $$PagamentiTableUpdateCompanionBuilder,
+          (
+            Pagamento,
+            BaseReferences<_$AppDatabase, $PagamentiTable, Pagamento>,
+          ),
+          Pagamento,
+          PrefetchHooks Function()
+        > {
+  $$PagamentiTableTableManager(_$AppDatabase db, $PagamentiTable table)
+    : super(
+        TableManagerState(
+          db: db,
+          table: table,
+          createFilteringComposer: () =>
+              $$PagamentiTableFilterComposer($db: db, $table: table),
+          createOrderingComposer: () =>
+              $$PagamentiTableOrderingComposer($db: db, $table: table),
+          createComputedFieldComposer: () =>
+              $$PagamentiTableAnnotationComposer($db: db, $table: table),
+          updateCompanionCallback:
+              ({
+                Value<int> idPagamento = const Value.absent(),
+                Value<String?> codPagamento = const Value.absent(),
+                Value<String?> descrizione = const Value.absent(),
+                Value<String?> dataModifica = const Value.absent(),
+                Value<int?> attivo = const Value.absent(),
+              }) => PagamentiCompanion(
+                idPagamento: idPagamento,
+                codPagamento: codPagamento,
+                descrizione: descrizione,
+                dataModifica: dataModifica,
+                attivo: attivo,
+              ),
+          createCompanionCallback:
+              ({
+                Value<int> idPagamento = const Value.absent(),
+                Value<String?> codPagamento = const Value.absent(),
+                Value<String?> descrizione = const Value.absent(),
+                Value<String?> dataModifica = const Value.absent(),
+                Value<int?> attivo = const Value.absent(),
+              }) => PagamentiCompanion.insert(
+                idPagamento: idPagamento,
+                codPagamento: codPagamento,
+                descrizione: descrizione,
+                dataModifica: dataModifica,
+                attivo: attivo,
+              ),
+          withReferenceMapper: (p0) => p0
+              .map((e) => (e.readTable(table), BaseReferences(db, table, e)))
+              .toList(),
+          prefetchHooksCallback: null,
+        ),
+      );
+}
+
+typedef $$PagamentiTableProcessedTableManager =
+    ProcessedTableManager<
+      _$AppDatabase,
+      $PagamentiTable,
+      Pagamento,
+      $$PagamentiTableFilterComposer,
+      $$PagamentiTableOrderingComposer,
+      $$PagamentiTableAnnotationComposer,
+      $$PagamentiTableCreateCompanionBuilder,
+      $$PagamentiTableUpdateCompanionBuilder,
+      (Pagamento, BaseReferences<_$AppDatabase, $PagamentiTable, Pagamento>),
+      Pagamento,
+      PrefetchHooks Function()
+    >;
+typedef $$ParametriTableCreateCompanionBuilder =
+    ParametriCompanion Function({
+      required String nome,
+      Value<String?> valore,
+      Value<int> rowid,
+    });
+typedef $$ParametriTableUpdateCompanionBuilder =
+    ParametriCompanion Function({
+      Value<String> nome,
+      Value<String?> valore,
+      Value<int> rowid,
+    });
+
+class $$ParametriTableFilterComposer
+    extends Composer<_$AppDatabase, $ParametriTable> {
+  $$ParametriTableFilterComposer({
+    required super.$db,
+    required super.$table,
+    super.joinBuilder,
+    super.$addJoinBuilderToRootComposer,
+    super.$removeJoinBuilderFromRootComposer,
+  });
+  ColumnFilters<String> get nome => $composableBuilder(
+    column: $table.nome,
+    builder: (column) => ColumnFilters(column),
+  );
+
+  ColumnFilters<String> get valore => $composableBuilder(
+    column: $table.valore,
+    builder: (column) => ColumnFilters(column),
+  );
+}
+
+class $$ParametriTableOrderingComposer
+    extends Composer<_$AppDatabase, $ParametriTable> {
+  $$ParametriTableOrderingComposer({
+    required super.$db,
+    required super.$table,
+    super.joinBuilder,
+    super.$addJoinBuilderToRootComposer,
+    super.$removeJoinBuilderFromRootComposer,
+  });
+  ColumnOrderings<String> get nome => $composableBuilder(
+    column: $table.nome,
+    builder: (column) => ColumnOrderings(column),
+  );
+
+  ColumnOrderings<String> get valore => $composableBuilder(
+    column: $table.valore,
+    builder: (column) => ColumnOrderings(column),
+  );
+}
+
+class $$ParametriTableAnnotationComposer
+    extends Composer<_$AppDatabase, $ParametriTable> {
+  $$ParametriTableAnnotationComposer({
+    required super.$db,
+    required super.$table,
+    super.joinBuilder,
+    super.$addJoinBuilderToRootComposer,
+    super.$removeJoinBuilderFromRootComposer,
+  });
+  GeneratedColumn<String> get nome =>
+      $composableBuilder(column: $table.nome, builder: (column) => column);
+
+  GeneratedColumn<String> get valore =>
+      $composableBuilder(column: $table.valore, builder: (column) => column);
+}
+
+class $$ParametriTableTableManager
+    extends
+        RootTableManager<
+          _$AppDatabase,
+          $ParametriTable,
+          Parametro,
+          $$ParametriTableFilterComposer,
+          $$ParametriTableOrderingComposer,
+          $$ParametriTableAnnotationComposer,
+          $$ParametriTableCreateCompanionBuilder,
+          $$ParametriTableUpdateCompanionBuilder,
+          (
+            Parametro,
+            BaseReferences<_$AppDatabase, $ParametriTable, Parametro>,
+          ),
+          Parametro,
+          PrefetchHooks Function()
+        > {
+  $$ParametriTableTableManager(_$AppDatabase db, $ParametriTable table)
+    : super(
+        TableManagerState(
+          db: db,
+          table: table,
+          createFilteringComposer: () =>
+              $$ParametriTableFilterComposer($db: db, $table: table),
+          createOrderingComposer: () =>
+              $$ParametriTableOrderingComposer($db: db, $table: table),
+          createComputedFieldComposer: () =>
+              $$ParametriTableAnnotationComposer($db: db, $table: table),
+          updateCompanionCallback:
+              ({
+                Value<String> nome = const Value.absent(),
+                Value<String?> valore = const Value.absent(),
+                Value<int> rowid = const Value.absent(),
+              }) =>
+                  ParametriCompanion(nome: nome, valore: valore, rowid: rowid),
+          createCompanionCallback:
+              ({
+                required String nome,
+                Value<String?> valore = const Value.absent(),
+                Value<int> rowid = const Value.absent(),
+              }) => ParametriCompanion.insert(
+                nome: nome,
+                valore: valore,
+                rowid: rowid,
+              ),
+          withReferenceMapper: (p0) => p0
+              .map((e) => (e.readTable(table), BaseReferences(db, table, e)))
+              .toList(),
+          prefetchHooksCallback: null,
+        ),
+      );
+}
+
+typedef $$ParametriTableProcessedTableManager =
+    ProcessedTableManager<
+      _$AppDatabase,
+      $ParametriTable,
+      Parametro,
+      $$ParametriTableFilterComposer,
+      $$ParametriTableOrderingComposer,
+      $$ParametriTableAnnotationComposer,
+      $$ParametriTableCreateCompanionBuilder,
+      $$ParametriTableUpdateCompanionBuilder,
+      (Parametro, BaseReferences<_$AppDatabase, $ParametriTable, Parametro>),
+      Parametro,
+      PrefetchHooks Function()
+    >;
+typedef $$TabelleTableCreateCompanionBuilder =
+    TabelleCompanion Function({
+      Value<int> idTabella,
+      required String tipoTabella,
+      Value<String?> codTabella,
+      Value<String?> descrizione,
+      Value<String?> stringa1,
+      Value<String?> stringa2,
+      Value<String?> stringa3,
+      Value<String?> stringa4,
+      Value<String?> stringa5,
+      Value<double?> valore1,
+      Value<double?> valore2,
+      Value<double?> valore3,
+      Value<double?> valore4,
+      Value<double?> valore5,
+      Value<String?> dataModifica,
+    });
+typedef $$TabelleTableUpdateCompanionBuilder =
+    TabelleCompanion Function({
+      Value<int> idTabella,
+      Value<String> tipoTabella,
+      Value<String?> codTabella,
+      Value<String?> descrizione,
+      Value<String?> stringa1,
+      Value<String?> stringa2,
+      Value<String?> stringa3,
+      Value<String?> stringa4,
+      Value<String?> stringa5,
+      Value<double?> valore1,
+      Value<double?> valore2,
+      Value<double?> valore3,
+      Value<double?> valore4,
+      Value<double?> valore5,
+      Value<String?> dataModifica,
+    });
+
+class $$TabelleTableFilterComposer
+    extends Composer<_$AppDatabase, $TabelleTable> {
+  $$TabelleTableFilterComposer({
+    required super.$db,
+    required super.$table,
+    super.joinBuilder,
+    super.$addJoinBuilderToRootComposer,
+    super.$removeJoinBuilderFromRootComposer,
+  });
+  ColumnFilters<int> get idTabella => $composableBuilder(
+    column: $table.idTabella,
+    builder: (column) => ColumnFilters(column),
+  );
+
+  ColumnFilters<String> get tipoTabella => $composableBuilder(
+    column: $table.tipoTabella,
+    builder: (column) => ColumnFilters(column),
+  );
+
+  ColumnFilters<String> get codTabella => $composableBuilder(
+    column: $table.codTabella,
+    builder: (column) => ColumnFilters(column),
+  );
+
+  ColumnFilters<String> get descrizione => $composableBuilder(
+    column: $table.descrizione,
+    builder: (column) => ColumnFilters(column),
+  );
+
+  ColumnFilters<String> get stringa1 => $composableBuilder(
+    column: $table.stringa1,
+    builder: (column) => ColumnFilters(column),
+  );
+
+  ColumnFilters<String> get stringa2 => $composableBuilder(
+    column: $table.stringa2,
+    builder: (column) => ColumnFilters(column),
+  );
+
+  ColumnFilters<String> get stringa3 => $composableBuilder(
+    column: $table.stringa3,
+    builder: (column) => ColumnFilters(column),
+  );
+
+  ColumnFilters<String> get stringa4 => $composableBuilder(
+    column: $table.stringa4,
+    builder: (column) => ColumnFilters(column),
+  );
+
+  ColumnFilters<String> get stringa5 => $composableBuilder(
+    column: $table.stringa5,
+    builder: (column) => ColumnFilters(column),
+  );
+
+  ColumnFilters<double> get valore1 => $composableBuilder(
+    column: $table.valore1,
+    builder: (column) => ColumnFilters(column),
+  );
+
+  ColumnFilters<double> get valore2 => $composableBuilder(
+    column: $table.valore2,
+    builder: (column) => ColumnFilters(column),
+  );
+
+  ColumnFilters<double> get valore3 => $composableBuilder(
+    column: $table.valore3,
+    builder: (column) => ColumnFilters(column),
+  );
+
+  ColumnFilters<double> get valore4 => $composableBuilder(
+    column: $table.valore4,
+    builder: (column) => ColumnFilters(column),
+  );
+
+  ColumnFilters<double> get valore5 => $composableBuilder(
+    column: $table.valore5,
+    builder: (column) => ColumnFilters(column),
+  );
+
+  ColumnFilters<String> get dataModifica => $composableBuilder(
+    column: $table.dataModifica,
+    builder: (column) => ColumnFilters(column),
+  );
+}
+
+class $$TabelleTableOrderingComposer
+    extends Composer<_$AppDatabase, $TabelleTable> {
+  $$TabelleTableOrderingComposer({
+    required super.$db,
+    required super.$table,
+    super.joinBuilder,
+    super.$addJoinBuilderToRootComposer,
+    super.$removeJoinBuilderFromRootComposer,
+  });
+  ColumnOrderings<int> get idTabella => $composableBuilder(
+    column: $table.idTabella,
+    builder: (column) => ColumnOrderings(column),
+  );
+
+  ColumnOrderings<String> get tipoTabella => $composableBuilder(
+    column: $table.tipoTabella,
+    builder: (column) => ColumnOrderings(column),
+  );
+
+  ColumnOrderings<String> get codTabella => $composableBuilder(
+    column: $table.codTabella,
+    builder: (column) => ColumnOrderings(column),
+  );
+
+  ColumnOrderings<String> get descrizione => $composableBuilder(
+    column: $table.descrizione,
+    builder: (column) => ColumnOrderings(column),
+  );
+
+  ColumnOrderings<String> get stringa1 => $composableBuilder(
+    column: $table.stringa1,
+    builder: (column) => ColumnOrderings(column),
+  );
+
+  ColumnOrderings<String> get stringa2 => $composableBuilder(
+    column: $table.stringa2,
+    builder: (column) => ColumnOrderings(column),
+  );
+
+  ColumnOrderings<String> get stringa3 => $composableBuilder(
+    column: $table.stringa3,
+    builder: (column) => ColumnOrderings(column),
+  );
+
+  ColumnOrderings<String> get stringa4 => $composableBuilder(
+    column: $table.stringa4,
+    builder: (column) => ColumnOrderings(column),
+  );
+
+  ColumnOrderings<String> get stringa5 => $composableBuilder(
+    column: $table.stringa5,
+    builder: (column) => ColumnOrderings(column),
+  );
+
+  ColumnOrderings<double> get valore1 => $composableBuilder(
+    column: $table.valore1,
+    builder: (column) => ColumnOrderings(column),
+  );
+
+  ColumnOrderings<double> get valore2 => $composableBuilder(
+    column: $table.valore2,
+    builder: (column) => ColumnOrderings(column),
+  );
+
+  ColumnOrderings<double> get valore3 => $composableBuilder(
+    column: $table.valore3,
+    builder: (column) => ColumnOrderings(column),
+  );
+
+  ColumnOrderings<double> get valore4 => $composableBuilder(
+    column: $table.valore4,
+    builder: (column) => ColumnOrderings(column),
+  );
+
+  ColumnOrderings<double> get valore5 => $composableBuilder(
+    column: $table.valore5,
+    builder: (column) => ColumnOrderings(column),
+  );
+
+  ColumnOrderings<String> get dataModifica => $composableBuilder(
+    column: $table.dataModifica,
+    builder: (column) => ColumnOrderings(column),
+  );
+}
+
+class $$TabelleTableAnnotationComposer
+    extends Composer<_$AppDatabase, $TabelleTable> {
+  $$TabelleTableAnnotationComposer({
+    required super.$db,
+    required super.$table,
+    super.joinBuilder,
+    super.$addJoinBuilderToRootComposer,
+    super.$removeJoinBuilderFromRootComposer,
+  });
+  GeneratedColumn<int> get idTabella =>
+      $composableBuilder(column: $table.idTabella, builder: (column) => column);
+
+  GeneratedColumn<String> get tipoTabella => $composableBuilder(
+    column: $table.tipoTabella,
+    builder: (column) => column,
+  );
+
+  GeneratedColumn<String> get codTabella => $composableBuilder(
+    column: $table.codTabella,
+    builder: (column) => column,
+  );
+
+  GeneratedColumn<String> get descrizione => $composableBuilder(
+    column: $table.descrizione,
+    builder: (column) => column,
+  );
+
+  GeneratedColumn<String> get stringa1 =>
+      $composableBuilder(column: $table.stringa1, builder: (column) => column);
+
+  GeneratedColumn<String> get stringa2 =>
+      $composableBuilder(column: $table.stringa2, builder: (column) => column);
+
+  GeneratedColumn<String> get stringa3 =>
+      $composableBuilder(column: $table.stringa3, builder: (column) => column);
+
+  GeneratedColumn<String> get stringa4 =>
+      $composableBuilder(column: $table.stringa4, builder: (column) => column);
+
+  GeneratedColumn<String> get stringa5 =>
+      $composableBuilder(column: $table.stringa5, builder: (column) => column);
+
+  GeneratedColumn<double> get valore1 =>
+      $composableBuilder(column: $table.valore1, builder: (column) => column);
+
+  GeneratedColumn<double> get valore2 =>
+      $composableBuilder(column: $table.valore2, builder: (column) => column);
+
+  GeneratedColumn<double> get valore3 =>
+      $composableBuilder(column: $table.valore3, builder: (column) => column);
+
+  GeneratedColumn<double> get valore4 =>
+      $composableBuilder(column: $table.valore4, builder: (column) => column);
+
+  GeneratedColumn<double> get valore5 =>
+      $composableBuilder(column: $table.valore5, builder: (column) => column);
+
+  GeneratedColumn<String> get dataModifica => $composableBuilder(
+    column: $table.dataModifica,
+    builder: (column) => column,
+  );
+}
+
+class $$TabelleTableTableManager
+    extends
+        RootTableManager<
+          _$AppDatabase,
+          $TabelleTable,
+          Tabella,
+          $$TabelleTableFilterComposer,
+          $$TabelleTableOrderingComposer,
+          $$TabelleTableAnnotationComposer,
+          $$TabelleTableCreateCompanionBuilder,
+          $$TabelleTableUpdateCompanionBuilder,
+          (Tabella, BaseReferences<_$AppDatabase, $TabelleTable, Tabella>),
+          Tabella,
+          PrefetchHooks Function()
+        > {
+  $$TabelleTableTableManager(_$AppDatabase db, $TabelleTable table)
+    : super(
+        TableManagerState(
+          db: db,
+          table: table,
+          createFilteringComposer: () =>
+              $$TabelleTableFilterComposer($db: db, $table: table),
+          createOrderingComposer: () =>
+              $$TabelleTableOrderingComposer($db: db, $table: table),
+          createComputedFieldComposer: () =>
+              $$TabelleTableAnnotationComposer($db: db, $table: table),
+          updateCompanionCallback:
+              ({
+                Value<int> idTabella = const Value.absent(),
+                Value<String> tipoTabella = const Value.absent(),
+                Value<String?> codTabella = const Value.absent(),
+                Value<String?> descrizione = const Value.absent(),
+                Value<String?> stringa1 = const Value.absent(),
+                Value<String?> stringa2 = const Value.absent(),
+                Value<String?> stringa3 = const Value.absent(),
+                Value<String?> stringa4 = const Value.absent(),
+                Value<String?> stringa5 = const Value.absent(),
+                Value<double?> valore1 = const Value.absent(),
+                Value<double?> valore2 = const Value.absent(),
+                Value<double?> valore3 = const Value.absent(),
+                Value<double?> valore4 = const Value.absent(),
+                Value<double?> valore5 = const Value.absent(),
+                Value<String?> dataModifica = const Value.absent(),
+              }) => TabelleCompanion(
+                idTabella: idTabella,
+                tipoTabella: tipoTabella,
+                codTabella: codTabella,
+                descrizione: descrizione,
+                stringa1: stringa1,
+                stringa2: stringa2,
+                stringa3: stringa3,
+                stringa4: stringa4,
+                stringa5: stringa5,
+                valore1: valore1,
+                valore2: valore2,
+                valore3: valore3,
+                valore4: valore4,
+                valore5: valore5,
+                dataModifica: dataModifica,
+              ),
+          createCompanionCallback:
+              ({
+                Value<int> idTabella = const Value.absent(),
+                required String tipoTabella,
+                Value<String?> codTabella = const Value.absent(),
+                Value<String?> descrizione = const Value.absent(),
+                Value<String?> stringa1 = const Value.absent(),
+                Value<String?> stringa2 = const Value.absent(),
+                Value<String?> stringa3 = const Value.absent(),
+                Value<String?> stringa4 = const Value.absent(),
+                Value<String?> stringa5 = const Value.absent(),
+                Value<double?> valore1 = const Value.absent(),
+                Value<double?> valore2 = const Value.absent(),
+                Value<double?> valore3 = const Value.absent(),
+                Value<double?> valore4 = const Value.absent(),
+                Value<double?> valore5 = const Value.absent(),
+                Value<String?> dataModifica = const Value.absent(),
+              }) => TabelleCompanion.insert(
+                idTabella: idTabella,
+                tipoTabella: tipoTabella,
+                codTabella: codTabella,
+                descrizione: descrizione,
+                stringa1: stringa1,
+                stringa2: stringa2,
+                stringa3: stringa3,
+                stringa4: stringa4,
+                stringa5: stringa5,
+                valore1: valore1,
+                valore2: valore2,
+                valore3: valore3,
+                valore4: valore4,
+                valore5: valore5,
+                dataModifica: dataModifica,
+              ),
+          withReferenceMapper: (p0) => p0
+              .map((e) => (e.readTable(table), BaseReferences(db, table, e)))
+              .toList(),
+          prefetchHooksCallback: null,
+        ),
+      );
+}
+
+typedef $$TabelleTableProcessedTableManager =
+    ProcessedTableManager<
+      _$AppDatabase,
+      $TabelleTable,
+      Tabella,
+      $$TabelleTableFilterComposer,
+      $$TabelleTableOrderingComposer,
+      $$TabelleTableAnnotationComposer,
+      $$TabelleTableCreateCompanionBuilder,
+      $$TabelleTableUpdateCompanionBuilder,
+      (Tabella, BaseReferences<_$AppDatabase, $TabelleTable, Tabella>),
+      Tabella,
+      PrefetchHooks Function()
+    >;
+typedef $$PromozioniTableCreateCompanionBuilder =
+    PromozioniCompanion Function({
+      Value<int> progressivo,
+      Value<int?> tipoPromozione,
+      Value<String?> descrizione,
+      Value<String?> dataInizio,
+      Value<String?> dataFine,
+      Value<double?> limiteQta,
+      Value<double?> quantitaOmaggio,
+      Value<double?> limiteImporto,
+      Value<String?> stato,
+      Value<int?> priorita,
+      Value<int?> codice,
+      Value<int?> idArticoloOmaggio,
+      Value<int?> idSconto,
+      Value<int?> idListino,
+    });
+typedef $$PromozioniTableUpdateCompanionBuilder =
+    PromozioniCompanion Function({
+      Value<int> progressivo,
+      Value<int?> tipoPromozione,
+      Value<String?> descrizione,
+      Value<String?> dataInizio,
+      Value<String?> dataFine,
+      Value<double?> limiteQta,
+      Value<double?> quantitaOmaggio,
+      Value<double?> limiteImporto,
+      Value<String?> stato,
+      Value<int?> priorita,
+      Value<int?> codice,
+      Value<int?> idArticoloOmaggio,
+      Value<int?> idSconto,
+      Value<int?> idListino,
+    });
+
+class $$PromozioniTableFilterComposer
+    extends Composer<_$AppDatabase, $PromozioniTable> {
+  $$PromozioniTableFilterComposer({
+    required super.$db,
+    required super.$table,
+    super.joinBuilder,
+    super.$addJoinBuilderToRootComposer,
+    super.$removeJoinBuilderFromRootComposer,
+  });
+  ColumnFilters<int> get progressivo => $composableBuilder(
+    column: $table.progressivo,
+    builder: (column) => ColumnFilters(column),
+  );
+
+  ColumnFilters<int> get tipoPromozione => $composableBuilder(
+    column: $table.tipoPromozione,
+    builder: (column) => ColumnFilters(column),
+  );
+
+  ColumnFilters<String> get descrizione => $composableBuilder(
+    column: $table.descrizione,
+    builder: (column) => ColumnFilters(column),
+  );
+
+  ColumnFilters<String> get dataInizio => $composableBuilder(
+    column: $table.dataInizio,
+    builder: (column) => ColumnFilters(column),
+  );
+
+  ColumnFilters<String> get dataFine => $composableBuilder(
+    column: $table.dataFine,
+    builder: (column) => ColumnFilters(column),
+  );
+
+  ColumnFilters<double> get limiteQta => $composableBuilder(
+    column: $table.limiteQta,
+    builder: (column) => ColumnFilters(column),
+  );
+
+  ColumnFilters<double> get quantitaOmaggio => $composableBuilder(
+    column: $table.quantitaOmaggio,
+    builder: (column) => ColumnFilters(column),
+  );
+
+  ColumnFilters<double> get limiteImporto => $composableBuilder(
+    column: $table.limiteImporto,
+    builder: (column) => ColumnFilters(column),
+  );
+
+  ColumnFilters<String> get stato => $composableBuilder(
+    column: $table.stato,
+    builder: (column) => ColumnFilters(column),
+  );
+
+  ColumnFilters<int> get priorita => $composableBuilder(
+    column: $table.priorita,
+    builder: (column) => ColumnFilters(column),
+  );
+
+  ColumnFilters<int> get codice => $composableBuilder(
+    column: $table.codice,
+    builder: (column) => ColumnFilters(column),
+  );
+
+  ColumnFilters<int> get idArticoloOmaggio => $composableBuilder(
+    column: $table.idArticoloOmaggio,
+    builder: (column) => ColumnFilters(column),
+  );
+
+  ColumnFilters<int> get idSconto => $composableBuilder(
+    column: $table.idSconto,
+    builder: (column) => ColumnFilters(column),
+  );
+
+  ColumnFilters<int> get idListino => $composableBuilder(
+    column: $table.idListino,
+    builder: (column) => ColumnFilters(column),
+  );
+}
+
+class $$PromozioniTableOrderingComposer
+    extends Composer<_$AppDatabase, $PromozioniTable> {
+  $$PromozioniTableOrderingComposer({
+    required super.$db,
+    required super.$table,
+    super.joinBuilder,
+    super.$addJoinBuilderToRootComposer,
+    super.$removeJoinBuilderFromRootComposer,
+  });
+  ColumnOrderings<int> get progressivo => $composableBuilder(
+    column: $table.progressivo,
+    builder: (column) => ColumnOrderings(column),
+  );
+
+  ColumnOrderings<int> get tipoPromozione => $composableBuilder(
+    column: $table.tipoPromozione,
+    builder: (column) => ColumnOrderings(column),
+  );
+
+  ColumnOrderings<String> get descrizione => $composableBuilder(
+    column: $table.descrizione,
+    builder: (column) => ColumnOrderings(column),
+  );
+
+  ColumnOrderings<String> get dataInizio => $composableBuilder(
+    column: $table.dataInizio,
+    builder: (column) => ColumnOrderings(column),
+  );
+
+  ColumnOrderings<String> get dataFine => $composableBuilder(
+    column: $table.dataFine,
+    builder: (column) => ColumnOrderings(column),
+  );
+
+  ColumnOrderings<double> get limiteQta => $composableBuilder(
+    column: $table.limiteQta,
+    builder: (column) => ColumnOrderings(column),
+  );
+
+  ColumnOrderings<double> get quantitaOmaggio => $composableBuilder(
+    column: $table.quantitaOmaggio,
+    builder: (column) => ColumnOrderings(column),
+  );
+
+  ColumnOrderings<double> get limiteImporto => $composableBuilder(
+    column: $table.limiteImporto,
+    builder: (column) => ColumnOrderings(column),
+  );
+
+  ColumnOrderings<String> get stato => $composableBuilder(
+    column: $table.stato,
+    builder: (column) => ColumnOrderings(column),
+  );
+
+  ColumnOrderings<int> get priorita => $composableBuilder(
+    column: $table.priorita,
+    builder: (column) => ColumnOrderings(column),
+  );
+
+  ColumnOrderings<int> get codice => $composableBuilder(
+    column: $table.codice,
+    builder: (column) => ColumnOrderings(column),
+  );
+
+  ColumnOrderings<int> get idArticoloOmaggio => $composableBuilder(
+    column: $table.idArticoloOmaggio,
+    builder: (column) => ColumnOrderings(column),
+  );
+
+  ColumnOrderings<int> get idSconto => $composableBuilder(
+    column: $table.idSconto,
+    builder: (column) => ColumnOrderings(column),
+  );
+
+  ColumnOrderings<int> get idListino => $composableBuilder(
+    column: $table.idListino,
+    builder: (column) => ColumnOrderings(column),
+  );
+}
+
+class $$PromozioniTableAnnotationComposer
+    extends Composer<_$AppDatabase, $PromozioniTable> {
+  $$PromozioniTableAnnotationComposer({
+    required super.$db,
+    required super.$table,
+    super.joinBuilder,
+    super.$addJoinBuilderToRootComposer,
+    super.$removeJoinBuilderFromRootComposer,
+  });
+  GeneratedColumn<int> get progressivo => $composableBuilder(
+    column: $table.progressivo,
+    builder: (column) => column,
+  );
+
+  GeneratedColumn<int> get tipoPromozione => $composableBuilder(
+    column: $table.tipoPromozione,
+    builder: (column) => column,
+  );
+
+  GeneratedColumn<String> get descrizione => $composableBuilder(
+    column: $table.descrizione,
+    builder: (column) => column,
+  );
+
+  GeneratedColumn<String> get dataInizio => $composableBuilder(
+    column: $table.dataInizio,
+    builder: (column) => column,
+  );
+
+  GeneratedColumn<String> get dataFine =>
+      $composableBuilder(column: $table.dataFine, builder: (column) => column);
+
+  GeneratedColumn<double> get limiteQta =>
+      $composableBuilder(column: $table.limiteQta, builder: (column) => column);
+
+  GeneratedColumn<double> get quantitaOmaggio => $composableBuilder(
+    column: $table.quantitaOmaggio,
+    builder: (column) => column,
+  );
+
+  GeneratedColumn<double> get limiteImporto => $composableBuilder(
+    column: $table.limiteImporto,
+    builder: (column) => column,
+  );
+
+  GeneratedColumn<String> get stato =>
+      $composableBuilder(column: $table.stato, builder: (column) => column);
+
+  GeneratedColumn<int> get priorita =>
+      $composableBuilder(column: $table.priorita, builder: (column) => column);
+
+  GeneratedColumn<int> get codice =>
+      $composableBuilder(column: $table.codice, builder: (column) => column);
+
+  GeneratedColumn<int> get idArticoloOmaggio => $composableBuilder(
+    column: $table.idArticoloOmaggio,
+    builder: (column) => column,
+  );
+
+  GeneratedColumn<int> get idSconto =>
+      $composableBuilder(column: $table.idSconto, builder: (column) => column);
+
+  GeneratedColumn<int> get idListino =>
+      $composableBuilder(column: $table.idListino, builder: (column) => column);
+}
+
+class $$PromozioniTableTableManager
+    extends
+        RootTableManager<
+          _$AppDatabase,
+          $PromozioniTable,
+          Promozione,
+          $$PromozioniTableFilterComposer,
+          $$PromozioniTableOrderingComposer,
+          $$PromozioniTableAnnotationComposer,
+          $$PromozioniTableCreateCompanionBuilder,
+          $$PromozioniTableUpdateCompanionBuilder,
+          (
+            Promozione,
+            BaseReferences<_$AppDatabase, $PromozioniTable, Promozione>,
+          ),
+          Promozione,
+          PrefetchHooks Function()
+        > {
+  $$PromozioniTableTableManager(_$AppDatabase db, $PromozioniTable table)
+    : super(
+        TableManagerState(
+          db: db,
+          table: table,
+          createFilteringComposer: () =>
+              $$PromozioniTableFilterComposer($db: db, $table: table),
+          createOrderingComposer: () =>
+              $$PromozioniTableOrderingComposer($db: db, $table: table),
+          createComputedFieldComposer: () =>
+              $$PromozioniTableAnnotationComposer($db: db, $table: table),
+          updateCompanionCallback:
+              ({
+                Value<int> progressivo = const Value.absent(),
+                Value<int?> tipoPromozione = const Value.absent(),
+                Value<String?> descrizione = const Value.absent(),
+                Value<String?> dataInizio = const Value.absent(),
+                Value<String?> dataFine = const Value.absent(),
+                Value<double?> limiteQta = const Value.absent(),
+                Value<double?> quantitaOmaggio = const Value.absent(),
+                Value<double?> limiteImporto = const Value.absent(),
+                Value<String?> stato = const Value.absent(),
+                Value<int?> priorita = const Value.absent(),
+                Value<int?> codice = const Value.absent(),
+                Value<int?> idArticoloOmaggio = const Value.absent(),
+                Value<int?> idSconto = const Value.absent(),
+                Value<int?> idListino = const Value.absent(),
+              }) => PromozioniCompanion(
+                progressivo: progressivo,
+                tipoPromozione: tipoPromozione,
+                descrizione: descrizione,
+                dataInizio: dataInizio,
+                dataFine: dataFine,
+                limiteQta: limiteQta,
+                quantitaOmaggio: quantitaOmaggio,
+                limiteImporto: limiteImporto,
+                stato: stato,
+                priorita: priorita,
+                codice: codice,
+                idArticoloOmaggio: idArticoloOmaggio,
+                idSconto: idSconto,
+                idListino: idListino,
+              ),
+          createCompanionCallback:
+              ({
+                Value<int> progressivo = const Value.absent(),
+                Value<int?> tipoPromozione = const Value.absent(),
+                Value<String?> descrizione = const Value.absent(),
+                Value<String?> dataInizio = const Value.absent(),
+                Value<String?> dataFine = const Value.absent(),
+                Value<double?> limiteQta = const Value.absent(),
+                Value<double?> quantitaOmaggio = const Value.absent(),
+                Value<double?> limiteImporto = const Value.absent(),
+                Value<String?> stato = const Value.absent(),
+                Value<int?> priorita = const Value.absent(),
+                Value<int?> codice = const Value.absent(),
+                Value<int?> idArticoloOmaggio = const Value.absent(),
+                Value<int?> idSconto = const Value.absent(),
+                Value<int?> idListino = const Value.absent(),
+              }) => PromozioniCompanion.insert(
+                progressivo: progressivo,
+                tipoPromozione: tipoPromozione,
+                descrizione: descrizione,
+                dataInizio: dataInizio,
+                dataFine: dataFine,
+                limiteQta: limiteQta,
+                quantitaOmaggio: quantitaOmaggio,
+                limiteImporto: limiteImporto,
+                stato: stato,
+                priorita: priorita,
+                codice: codice,
+                idArticoloOmaggio: idArticoloOmaggio,
+                idSconto: idSconto,
+                idListino: idListino,
+              ),
+          withReferenceMapper: (p0) => p0
+              .map((e) => (e.readTable(table), BaseReferences(db, table, e)))
+              .toList(),
+          prefetchHooksCallback: null,
+        ),
+      );
+}
+
+typedef $$PromozioniTableProcessedTableManager =
+    ProcessedTableManager<
+      _$AppDatabase,
+      $PromozioniTable,
+      Promozione,
+      $$PromozioniTableFilterComposer,
+      $$PromozioniTableOrderingComposer,
+      $$PromozioniTableAnnotationComposer,
+      $$PromozioniTableCreateCompanionBuilder,
+      $$PromozioniTableUpdateCompanionBuilder,
+      (Promozione, BaseReferences<_$AppDatabase, $PromozioniTable, Promozione>),
+      Promozione,
+      PrefetchHooks Function()
+    >;
+typedef $$PromoArticoliTableCreateCompanionBuilder =
+    PromoArticoliCompanion Function({
+      required int progressivo,
+      required int riga,
+      Value<double?> quantitaOmaggio,
+      Value<int?> idArticolo,
+      Value<int> rowid,
+    });
+typedef $$PromoArticoliTableUpdateCompanionBuilder =
+    PromoArticoliCompanion Function({
+      Value<int> progressivo,
+      Value<int> riga,
+      Value<double?> quantitaOmaggio,
+      Value<int?> idArticolo,
+      Value<int> rowid,
+    });
+
+class $$PromoArticoliTableFilterComposer
+    extends Composer<_$AppDatabase, $PromoArticoliTable> {
+  $$PromoArticoliTableFilterComposer({
+    required super.$db,
+    required super.$table,
+    super.joinBuilder,
+    super.$addJoinBuilderToRootComposer,
+    super.$removeJoinBuilderFromRootComposer,
+  });
+  ColumnFilters<int> get progressivo => $composableBuilder(
+    column: $table.progressivo,
+    builder: (column) => ColumnFilters(column),
+  );
+
+  ColumnFilters<int> get riga => $composableBuilder(
+    column: $table.riga,
+    builder: (column) => ColumnFilters(column),
+  );
+
+  ColumnFilters<double> get quantitaOmaggio => $composableBuilder(
+    column: $table.quantitaOmaggio,
+    builder: (column) => ColumnFilters(column),
+  );
+
+  ColumnFilters<int> get idArticolo => $composableBuilder(
+    column: $table.idArticolo,
+    builder: (column) => ColumnFilters(column),
+  );
+}
+
+class $$PromoArticoliTableOrderingComposer
+    extends Composer<_$AppDatabase, $PromoArticoliTable> {
+  $$PromoArticoliTableOrderingComposer({
+    required super.$db,
+    required super.$table,
+    super.joinBuilder,
+    super.$addJoinBuilderToRootComposer,
+    super.$removeJoinBuilderFromRootComposer,
+  });
+  ColumnOrderings<int> get progressivo => $composableBuilder(
+    column: $table.progressivo,
+    builder: (column) => ColumnOrderings(column),
+  );
+
+  ColumnOrderings<int> get riga => $composableBuilder(
+    column: $table.riga,
+    builder: (column) => ColumnOrderings(column),
+  );
+
+  ColumnOrderings<double> get quantitaOmaggio => $composableBuilder(
+    column: $table.quantitaOmaggio,
+    builder: (column) => ColumnOrderings(column),
+  );
+
+  ColumnOrderings<int> get idArticolo => $composableBuilder(
+    column: $table.idArticolo,
+    builder: (column) => ColumnOrderings(column),
+  );
+}
+
+class $$PromoArticoliTableAnnotationComposer
+    extends Composer<_$AppDatabase, $PromoArticoliTable> {
+  $$PromoArticoliTableAnnotationComposer({
+    required super.$db,
+    required super.$table,
+    super.joinBuilder,
+    super.$addJoinBuilderToRootComposer,
+    super.$removeJoinBuilderFromRootComposer,
+  });
+  GeneratedColumn<int> get progressivo => $composableBuilder(
+    column: $table.progressivo,
+    builder: (column) => column,
+  );
+
+  GeneratedColumn<int> get riga =>
+      $composableBuilder(column: $table.riga, builder: (column) => column);
+
+  GeneratedColumn<double> get quantitaOmaggio => $composableBuilder(
+    column: $table.quantitaOmaggio,
+    builder: (column) => column,
+  );
+
+  GeneratedColumn<int> get idArticolo => $composableBuilder(
+    column: $table.idArticolo,
+    builder: (column) => column,
+  );
+}
+
+class $$PromoArticoliTableTableManager
+    extends
+        RootTableManager<
+          _$AppDatabase,
+          $PromoArticoliTable,
+          PromoArticolo,
+          $$PromoArticoliTableFilterComposer,
+          $$PromoArticoliTableOrderingComposer,
+          $$PromoArticoliTableAnnotationComposer,
+          $$PromoArticoliTableCreateCompanionBuilder,
+          $$PromoArticoliTableUpdateCompanionBuilder,
+          (
+            PromoArticolo,
+            BaseReferences<_$AppDatabase, $PromoArticoliTable, PromoArticolo>,
+          ),
+          PromoArticolo,
+          PrefetchHooks Function()
+        > {
+  $$PromoArticoliTableTableManager(_$AppDatabase db, $PromoArticoliTable table)
+    : super(
+        TableManagerState(
+          db: db,
+          table: table,
+          createFilteringComposer: () =>
+              $$PromoArticoliTableFilterComposer($db: db, $table: table),
+          createOrderingComposer: () =>
+              $$PromoArticoliTableOrderingComposer($db: db, $table: table),
+          createComputedFieldComposer: () =>
+              $$PromoArticoliTableAnnotationComposer($db: db, $table: table),
+          updateCompanionCallback:
+              ({
+                Value<int> progressivo = const Value.absent(),
+                Value<int> riga = const Value.absent(),
+                Value<double?> quantitaOmaggio = const Value.absent(),
+                Value<int?> idArticolo = const Value.absent(),
+                Value<int> rowid = const Value.absent(),
+              }) => PromoArticoliCompanion(
+                progressivo: progressivo,
+                riga: riga,
+                quantitaOmaggio: quantitaOmaggio,
+                idArticolo: idArticolo,
+                rowid: rowid,
+              ),
+          createCompanionCallback:
+              ({
+                required int progressivo,
+                required int riga,
+                Value<double?> quantitaOmaggio = const Value.absent(),
+                Value<int?> idArticolo = const Value.absent(),
+                Value<int> rowid = const Value.absent(),
+              }) => PromoArticoliCompanion.insert(
+                progressivo: progressivo,
+                riga: riga,
+                quantitaOmaggio: quantitaOmaggio,
+                idArticolo: idArticolo,
+                rowid: rowid,
+              ),
+          withReferenceMapper: (p0) => p0
+              .map((e) => (e.readTable(table), BaseReferences(db, table, e)))
+              .toList(),
+          prefetchHooksCallback: null,
+        ),
+      );
+}
+
+typedef $$PromoArticoliTableProcessedTableManager =
+    ProcessedTableManager<
+      _$AppDatabase,
+      $PromoArticoliTable,
+      PromoArticolo,
+      $$PromoArticoliTableFilterComposer,
+      $$PromoArticoliTableOrderingComposer,
+      $$PromoArticoliTableAnnotationComposer,
+      $$PromoArticoliTableCreateCompanionBuilder,
+      $$PromoArticoliTableUpdateCompanionBuilder,
+      (
+        PromoArticolo,
+        BaseReferences<_$AppDatabase, $PromoArticoliTable, PromoArticolo>,
+      ),
+      PromoArticolo,
+      PrefetchHooks Function()
+    >;
+typedef $$PromoListiniTableCreateCompanionBuilder =
+    PromoListiniCompanion Function({
+      required int progressivo,
+      required int idListino,
+      Value<int> rowid,
+    });
+typedef $$PromoListiniTableUpdateCompanionBuilder =
+    PromoListiniCompanion Function({
+      Value<int> progressivo,
+      Value<int> idListino,
+      Value<int> rowid,
+    });
+
+class $$PromoListiniTableFilterComposer
+    extends Composer<_$AppDatabase, $PromoListiniTable> {
+  $$PromoListiniTableFilterComposer({
+    required super.$db,
+    required super.$table,
+    super.joinBuilder,
+    super.$addJoinBuilderToRootComposer,
+    super.$removeJoinBuilderFromRootComposer,
+  });
+  ColumnFilters<int> get progressivo => $composableBuilder(
+    column: $table.progressivo,
+    builder: (column) => ColumnFilters(column),
+  );
+
+  ColumnFilters<int> get idListino => $composableBuilder(
+    column: $table.idListino,
+    builder: (column) => ColumnFilters(column),
+  );
+}
+
+class $$PromoListiniTableOrderingComposer
+    extends Composer<_$AppDatabase, $PromoListiniTable> {
+  $$PromoListiniTableOrderingComposer({
+    required super.$db,
+    required super.$table,
+    super.joinBuilder,
+    super.$addJoinBuilderToRootComposer,
+    super.$removeJoinBuilderFromRootComposer,
+  });
+  ColumnOrderings<int> get progressivo => $composableBuilder(
+    column: $table.progressivo,
+    builder: (column) => ColumnOrderings(column),
+  );
+
+  ColumnOrderings<int> get idListino => $composableBuilder(
+    column: $table.idListino,
+    builder: (column) => ColumnOrderings(column),
+  );
+}
+
+class $$PromoListiniTableAnnotationComposer
+    extends Composer<_$AppDatabase, $PromoListiniTable> {
+  $$PromoListiniTableAnnotationComposer({
+    required super.$db,
+    required super.$table,
+    super.joinBuilder,
+    super.$addJoinBuilderToRootComposer,
+    super.$removeJoinBuilderFromRootComposer,
+  });
+  GeneratedColumn<int> get progressivo => $composableBuilder(
+    column: $table.progressivo,
+    builder: (column) => column,
+  );
+
+  GeneratedColumn<int> get idListino =>
+      $composableBuilder(column: $table.idListino, builder: (column) => column);
+}
+
+class $$PromoListiniTableTableManager
+    extends
+        RootTableManager<
+          _$AppDatabase,
+          $PromoListiniTable,
+          PromoListino,
+          $$PromoListiniTableFilterComposer,
+          $$PromoListiniTableOrderingComposer,
+          $$PromoListiniTableAnnotationComposer,
+          $$PromoListiniTableCreateCompanionBuilder,
+          $$PromoListiniTableUpdateCompanionBuilder,
+          (
+            PromoListino,
+            BaseReferences<_$AppDatabase, $PromoListiniTable, PromoListino>,
+          ),
+          PromoListino,
+          PrefetchHooks Function()
+        > {
+  $$PromoListiniTableTableManager(_$AppDatabase db, $PromoListiniTable table)
+    : super(
+        TableManagerState(
+          db: db,
+          table: table,
+          createFilteringComposer: () =>
+              $$PromoListiniTableFilterComposer($db: db, $table: table),
+          createOrderingComposer: () =>
+              $$PromoListiniTableOrderingComposer($db: db, $table: table),
+          createComputedFieldComposer: () =>
+              $$PromoListiniTableAnnotationComposer($db: db, $table: table),
+          updateCompanionCallback:
+              ({
+                Value<int> progressivo = const Value.absent(),
+                Value<int> idListino = const Value.absent(),
+                Value<int> rowid = const Value.absent(),
+              }) => PromoListiniCompanion(
+                progressivo: progressivo,
+                idListino: idListino,
+                rowid: rowid,
+              ),
+          createCompanionCallback:
+              ({
+                required int progressivo,
+                required int idListino,
+                Value<int> rowid = const Value.absent(),
+              }) => PromoListiniCompanion.insert(
+                progressivo: progressivo,
+                idListino: idListino,
+                rowid: rowid,
+              ),
+          withReferenceMapper: (p0) => p0
+              .map((e) => (e.readTable(table), BaseReferences(db, table, e)))
+              .toList(),
+          prefetchHooksCallback: null,
+        ),
+      );
+}
+
+typedef $$PromoListiniTableProcessedTableManager =
+    ProcessedTableManager<
+      _$AppDatabase,
+      $PromoListiniTable,
+      PromoListino,
+      $$PromoListiniTableFilterComposer,
+      $$PromoListiniTableOrderingComposer,
+      $$PromoListiniTableAnnotationComposer,
+      $$PromoListiniTableCreateCompanionBuilder,
+      $$PromoListiniTableUpdateCompanionBuilder,
+      (
+        PromoListino,
+        BaseReferences<_$AppDatabase, $PromoListiniTable, PromoListino>,
+      ),
+      PromoListino,
+      PrefetchHooks Function()
+    >;
+typedef $$PromoOmaggiTableCreateCompanionBuilder =
+    PromoOmaggiCompanion Function({
+      required int progressivo,
+      required int riga,
+      Value<int?> idArticolo,
+      Value<double?> quantita,
+      Value<int> rowid,
+    });
+typedef $$PromoOmaggiTableUpdateCompanionBuilder =
+    PromoOmaggiCompanion Function({
+      Value<int> progressivo,
+      Value<int> riga,
+      Value<int?> idArticolo,
+      Value<double?> quantita,
+      Value<int> rowid,
+    });
+
+class $$PromoOmaggiTableFilterComposer
+    extends Composer<_$AppDatabase, $PromoOmaggiTable> {
+  $$PromoOmaggiTableFilterComposer({
+    required super.$db,
+    required super.$table,
+    super.joinBuilder,
+    super.$addJoinBuilderToRootComposer,
+    super.$removeJoinBuilderFromRootComposer,
+  });
+  ColumnFilters<int> get progressivo => $composableBuilder(
+    column: $table.progressivo,
+    builder: (column) => ColumnFilters(column),
+  );
+
+  ColumnFilters<int> get riga => $composableBuilder(
+    column: $table.riga,
+    builder: (column) => ColumnFilters(column),
+  );
+
+  ColumnFilters<int> get idArticolo => $composableBuilder(
+    column: $table.idArticolo,
+    builder: (column) => ColumnFilters(column),
+  );
+
+  ColumnFilters<double> get quantita => $composableBuilder(
+    column: $table.quantita,
+    builder: (column) => ColumnFilters(column),
+  );
+}
+
+class $$PromoOmaggiTableOrderingComposer
+    extends Composer<_$AppDatabase, $PromoOmaggiTable> {
+  $$PromoOmaggiTableOrderingComposer({
+    required super.$db,
+    required super.$table,
+    super.joinBuilder,
+    super.$addJoinBuilderToRootComposer,
+    super.$removeJoinBuilderFromRootComposer,
+  });
+  ColumnOrderings<int> get progressivo => $composableBuilder(
+    column: $table.progressivo,
+    builder: (column) => ColumnOrderings(column),
+  );
+
+  ColumnOrderings<int> get riga => $composableBuilder(
+    column: $table.riga,
+    builder: (column) => ColumnOrderings(column),
+  );
+
+  ColumnOrderings<int> get idArticolo => $composableBuilder(
+    column: $table.idArticolo,
+    builder: (column) => ColumnOrderings(column),
+  );
+
+  ColumnOrderings<double> get quantita => $composableBuilder(
+    column: $table.quantita,
+    builder: (column) => ColumnOrderings(column),
+  );
+}
+
+class $$PromoOmaggiTableAnnotationComposer
+    extends Composer<_$AppDatabase, $PromoOmaggiTable> {
+  $$PromoOmaggiTableAnnotationComposer({
+    required super.$db,
+    required super.$table,
+    super.joinBuilder,
+    super.$addJoinBuilderToRootComposer,
+    super.$removeJoinBuilderFromRootComposer,
+  });
+  GeneratedColumn<int> get progressivo => $composableBuilder(
+    column: $table.progressivo,
+    builder: (column) => column,
+  );
+
+  GeneratedColumn<int> get riga =>
+      $composableBuilder(column: $table.riga, builder: (column) => column);
+
+  GeneratedColumn<int> get idArticolo => $composableBuilder(
+    column: $table.idArticolo,
+    builder: (column) => column,
+  );
+
+  GeneratedColumn<double> get quantita =>
+      $composableBuilder(column: $table.quantita, builder: (column) => column);
+}
+
+class $$PromoOmaggiTableTableManager
+    extends
+        RootTableManager<
+          _$AppDatabase,
+          $PromoOmaggiTable,
+          PromoOmaggio,
+          $$PromoOmaggiTableFilterComposer,
+          $$PromoOmaggiTableOrderingComposer,
+          $$PromoOmaggiTableAnnotationComposer,
+          $$PromoOmaggiTableCreateCompanionBuilder,
+          $$PromoOmaggiTableUpdateCompanionBuilder,
+          (
+            PromoOmaggio,
+            BaseReferences<_$AppDatabase, $PromoOmaggiTable, PromoOmaggio>,
+          ),
+          PromoOmaggio,
+          PrefetchHooks Function()
+        > {
+  $$PromoOmaggiTableTableManager(_$AppDatabase db, $PromoOmaggiTable table)
+    : super(
+        TableManagerState(
+          db: db,
+          table: table,
+          createFilteringComposer: () =>
+              $$PromoOmaggiTableFilterComposer($db: db, $table: table),
+          createOrderingComposer: () =>
+              $$PromoOmaggiTableOrderingComposer($db: db, $table: table),
+          createComputedFieldComposer: () =>
+              $$PromoOmaggiTableAnnotationComposer($db: db, $table: table),
+          updateCompanionCallback:
+              ({
+                Value<int> progressivo = const Value.absent(),
+                Value<int> riga = const Value.absent(),
+                Value<int?> idArticolo = const Value.absent(),
+                Value<double?> quantita = const Value.absent(),
+                Value<int> rowid = const Value.absent(),
+              }) => PromoOmaggiCompanion(
+                progressivo: progressivo,
+                riga: riga,
+                idArticolo: idArticolo,
+                quantita: quantita,
+                rowid: rowid,
+              ),
+          createCompanionCallback:
+              ({
+                required int progressivo,
+                required int riga,
+                Value<int?> idArticolo = const Value.absent(),
+                Value<double?> quantita = const Value.absent(),
+                Value<int> rowid = const Value.absent(),
+              }) => PromoOmaggiCompanion.insert(
+                progressivo: progressivo,
+                riga: riga,
+                idArticolo: idArticolo,
+                quantita: quantita,
+                rowid: rowid,
+              ),
+          withReferenceMapper: (p0) => p0
+              .map((e) => (e.readTable(table), BaseReferences(db, table, e)))
+              .toList(),
+          prefetchHooksCallback: null,
+        ),
+      );
+}
+
+typedef $$PromoOmaggiTableProcessedTableManager =
+    ProcessedTableManager<
+      _$AppDatabase,
+      $PromoOmaggiTable,
+      PromoOmaggio,
+      $$PromoOmaggiTableFilterComposer,
+      $$PromoOmaggiTableOrderingComposer,
+      $$PromoOmaggiTableAnnotationComposer,
+      $$PromoOmaggiTableCreateCompanionBuilder,
+      $$PromoOmaggiTableUpdateCompanionBuilder,
+      (
+        PromoOmaggio,
+        BaseReferences<_$AppDatabase, $PromoOmaggiTable, PromoOmaggio>,
+      ),
+      PromoOmaggio,
+      PrefetchHooks Function()
+    >;
+typedef $$ClientiAgenteTableCreateCompanionBuilder =
+    ClientiAgenteCompanion Function({
+      Value<int> idClientiAgente,
+      required int idCliente,
+      required int idAgente,
+      Value<int> attivo,
+    });
+typedef $$ClientiAgenteTableUpdateCompanionBuilder =
+    ClientiAgenteCompanion Function({
+      Value<int> idClientiAgente,
+      Value<int> idCliente,
+      Value<int> idAgente,
+      Value<int> attivo,
+    });
+
+class $$ClientiAgenteTableFilterComposer
+    extends Composer<_$AppDatabase, $ClientiAgenteTable> {
+  $$ClientiAgenteTableFilterComposer({
+    required super.$db,
+    required super.$table,
+    super.joinBuilder,
+    super.$addJoinBuilderToRootComposer,
+    super.$removeJoinBuilderFromRootComposer,
+  });
+  ColumnFilters<int> get idClientiAgente => $composableBuilder(
+    column: $table.idClientiAgente,
+    builder: (column) => ColumnFilters(column),
+  );
+
+  ColumnFilters<int> get idCliente => $composableBuilder(
+    column: $table.idCliente,
+    builder: (column) => ColumnFilters(column),
+  );
+
+  ColumnFilters<int> get idAgente => $composableBuilder(
+    column: $table.idAgente,
+    builder: (column) => ColumnFilters(column),
+  );
+
+  ColumnFilters<int> get attivo => $composableBuilder(
+    column: $table.attivo,
+    builder: (column) => ColumnFilters(column),
+  );
+}
+
+class $$ClientiAgenteTableOrderingComposer
+    extends Composer<_$AppDatabase, $ClientiAgenteTable> {
+  $$ClientiAgenteTableOrderingComposer({
+    required super.$db,
+    required super.$table,
+    super.joinBuilder,
+    super.$addJoinBuilderToRootComposer,
+    super.$removeJoinBuilderFromRootComposer,
+  });
+  ColumnOrderings<int> get idClientiAgente => $composableBuilder(
+    column: $table.idClientiAgente,
+    builder: (column) => ColumnOrderings(column),
+  );
+
+  ColumnOrderings<int> get idCliente => $composableBuilder(
+    column: $table.idCliente,
+    builder: (column) => ColumnOrderings(column),
+  );
+
+  ColumnOrderings<int> get idAgente => $composableBuilder(
+    column: $table.idAgente,
+    builder: (column) => ColumnOrderings(column),
+  );
+
+  ColumnOrderings<int> get attivo => $composableBuilder(
+    column: $table.attivo,
+    builder: (column) => ColumnOrderings(column),
+  );
+}
+
+class $$ClientiAgenteTableAnnotationComposer
+    extends Composer<_$AppDatabase, $ClientiAgenteTable> {
+  $$ClientiAgenteTableAnnotationComposer({
+    required super.$db,
+    required super.$table,
+    super.joinBuilder,
+    super.$addJoinBuilderToRootComposer,
+    super.$removeJoinBuilderFromRootComposer,
+  });
+  GeneratedColumn<int> get idClientiAgente => $composableBuilder(
+    column: $table.idClientiAgente,
+    builder: (column) => column,
+  );
+
+  GeneratedColumn<int> get idCliente =>
+      $composableBuilder(column: $table.idCliente, builder: (column) => column);
+
+  GeneratedColumn<int> get idAgente =>
+      $composableBuilder(column: $table.idAgente, builder: (column) => column);
+
+  GeneratedColumn<int> get attivo =>
+      $composableBuilder(column: $table.attivo, builder: (column) => column);
+}
+
+class $$ClientiAgenteTableTableManager
+    extends
+        RootTableManager<
+          _$AppDatabase,
+          $ClientiAgenteTable,
+          ClientiAgenteData,
+          $$ClientiAgenteTableFilterComposer,
+          $$ClientiAgenteTableOrderingComposer,
+          $$ClientiAgenteTableAnnotationComposer,
+          $$ClientiAgenteTableCreateCompanionBuilder,
+          $$ClientiAgenteTableUpdateCompanionBuilder,
+          (
+            ClientiAgenteData,
+            BaseReferences<
+              _$AppDatabase,
+              $ClientiAgenteTable,
+              ClientiAgenteData
+            >,
+          ),
+          ClientiAgenteData,
+          PrefetchHooks Function()
+        > {
+  $$ClientiAgenteTableTableManager(_$AppDatabase db, $ClientiAgenteTable table)
+    : super(
+        TableManagerState(
+          db: db,
+          table: table,
+          createFilteringComposer: () =>
+              $$ClientiAgenteTableFilterComposer($db: db, $table: table),
+          createOrderingComposer: () =>
+              $$ClientiAgenteTableOrderingComposer($db: db, $table: table),
+          createComputedFieldComposer: () =>
+              $$ClientiAgenteTableAnnotationComposer($db: db, $table: table),
+          updateCompanionCallback:
+              ({
+                Value<int> idClientiAgente = const Value.absent(),
+                Value<int> idCliente = const Value.absent(),
+                Value<int> idAgente = const Value.absent(),
+                Value<int> attivo = const Value.absent(),
+              }) => ClientiAgenteCompanion(
+                idClientiAgente: idClientiAgente,
+                idCliente: idCliente,
+                idAgente: idAgente,
+                attivo: attivo,
+              ),
+          createCompanionCallback:
+              ({
+                Value<int> idClientiAgente = const Value.absent(),
+                required int idCliente,
+                required int idAgente,
+                Value<int> attivo = const Value.absent(),
+              }) => ClientiAgenteCompanion.insert(
+                idClientiAgente: idClientiAgente,
+                idCliente: idCliente,
+                idAgente: idAgente,
+                attivo: attivo,
+              ),
+          withReferenceMapper: (p0) => p0
+              .map((e) => (e.readTable(table), BaseReferences(db, table, e)))
+              .toList(),
+          prefetchHooksCallback: null,
+        ),
+      );
+}
+
+typedef $$ClientiAgenteTableProcessedTableManager =
+    ProcessedTableManager<
+      _$AppDatabase,
+      $ClientiAgenteTable,
+      ClientiAgenteData,
+      $$ClientiAgenteTableFilterComposer,
+      $$ClientiAgenteTableOrderingComposer,
+      $$ClientiAgenteTableAnnotationComposer,
+      $$ClientiAgenteTableCreateCompanionBuilder,
+      $$ClientiAgenteTableUpdateCompanionBuilder,
+      (
+        ClientiAgenteData,
+        BaseReferences<_$AppDatabase, $ClientiAgenteTable, ClientiAgenteData>,
+      ),
+      ClientiAgenteData,
+      PrefetchHooks Function()
+    >;
+typedef $$ScadenzeTableCreateCompanionBuilder =
+    ScadenzeCompanion Function({
+      Value<int> idScadenza,
+      Value<int?> idCliente,
+      Value<int?> idAgente,
+      Value<String?> chiave,
+      Value<String?> numPartita,
+      Value<String?> dataScadenza,
+      Value<String?> segno,
+      Value<double?> importoFattura,
+      Value<String?> valuta,
+      Value<String?> numDoc,
+      Value<String?> serieDoc,
+      Value<String?> dataDoc,
+      Value<double?> importoScadenza,
+      Value<double?> saldo,
+      Value<String?> tipoPagamento,
+      Value<int?> flgSoppressa,
+      Value<double?> importoAbbuono,
+      Value<String?> note,
+      Value<String?> dataModifica,
+      Value<String?> stato,
+    });
+typedef $$ScadenzeTableUpdateCompanionBuilder =
+    ScadenzeCompanion Function({
+      Value<int> idScadenza,
+      Value<int?> idCliente,
+      Value<int?> idAgente,
+      Value<String?> chiave,
+      Value<String?> numPartita,
+      Value<String?> dataScadenza,
+      Value<String?> segno,
+      Value<double?> importoFattura,
+      Value<String?> valuta,
+      Value<String?> numDoc,
+      Value<String?> serieDoc,
+      Value<String?> dataDoc,
+      Value<double?> importoScadenza,
+      Value<double?> saldo,
+      Value<String?> tipoPagamento,
+      Value<int?> flgSoppressa,
+      Value<double?> importoAbbuono,
+      Value<String?> note,
+      Value<String?> dataModifica,
+      Value<String?> stato,
+    });
+
+class $$ScadenzeTableFilterComposer
+    extends Composer<_$AppDatabase, $ScadenzeTable> {
+  $$ScadenzeTableFilterComposer({
+    required super.$db,
+    required super.$table,
+    super.joinBuilder,
+    super.$addJoinBuilderToRootComposer,
+    super.$removeJoinBuilderFromRootComposer,
+  });
+  ColumnFilters<int> get idScadenza => $composableBuilder(
+    column: $table.idScadenza,
+    builder: (column) => ColumnFilters(column),
+  );
+
+  ColumnFilters<int> get idCliente => $composableBuilder(
+    column: $table.idCliente,
+    builder: (column) => ColumnFilters(column),
+  );
+
+  ColumnFilters<int> get idAgente => $composableBuilder(
+    column: $table.idAgente,
+    builder: (column) => ColumnFilters(column),
+  );
+
+  ColumnFilters<String> get chiave => $composableBuilder(
+    column: $table.chiave,
+    builder: (column) => ColumnFilters(column),
+  );
+
+  ColumnFilters<String> get numPartita => $composableBuilder(
+    column: $table.numPartita,
+    builder: (column) => ColumnFilters(column),
+  );
+
+  ColumnFilters<String> get dataScadenza => $composableBuilder(
+    column: $table.dataScadenza,
+    builder: (column) => ColumnFilters(column),
+  );
+
+  ColumnFilters<String> get segno => $composableBuilder(
+    column: $table.segno,
+    builder: (column) => ColumnFilters(column),
+  );
+
+  ColumnFilters<double> get importoFattura => $composableBuilder(
+    column: $table.importoFattura,
+    builder: (column) => ColumnFilters(column),
+  );
+
+  ColumnFilters<String> get valuta => $composableBuilder(
+    column: $table.valuta,
+    builder: (column) => ColumnFilters(column),
+  );
+
+  ColumnFilters<String> get numDoc => $composableBuilder(
+    column: $table.numDoc,
+    builder: (column) => ColumnFilters(column),
+  );
+
+  ColumnFilters<String> get serieDoc => $composableBuilder(
+    column: $table.serieDoc,
+    builder: (column) => ColumnFilters(column),
+  );
+
+  ColumnFilters<String> get dataDoc => $composableBuilder(
+    column: $table.dataDoc,
+    builder: (column) => ColumnFilters(column),
+  );
+
+  ColumnFilters<double> get importoScadenza => $composableBuilder(
+    column: $table.importoScadenza,
+    builder: (column) => ColumnFilters(column),
+  );
+
+  ColumnFilters<double> get saldo => $composableBuilder(
+    column: $table.saldo,
+    builder: (column) => ColumnFilters(column),
+  );
+
+  ColumnFilters<String> get tipoPagamento => $composableBuilder(
+    column: $table.tipoPagamento,
+    builder: (column) => ColumnFilters(column),
+  );
+
+  ColumnFilters<int> get flgSoppressa => $composableBuilder(
+    column: $table.flgSoppressa,
+    builder: (column) => ColumnFilters(column),
+  );
+
+  ColumnFilters<double> get importoAbbuono => $composableBuilder(
+    column: $table.importoAbbuono,
+    builder: (column) => ColumnFilters(column),
+  );
+
+  ColumnFilters<String> get note => $composableBuilder(
+    column: $table.note,
+    builder: (column) => ColumnFilters(column),
+  );
+
+  ColumnFilters<String> get dataModifica => $composableBuilder(
+    column: $table.dataModifica,
+    builder: (column) => ColumnFilters(column),
+  );
+
+  ColumnFilters<String> get stato => $composableBuilder(
+    column: $table.stato,
+    builder: (column) => ColumnFilters(column),
+  );
+}
+
+class $$ScadenzeTableOrderingComposer
+    extends Composer<_$AppDatabase, $ScadenzeTable> {
+  $$ScadenzeTableOrderingComposer({
+    required super.$db,
+    required super.$table,
+    super.joinBuilder,
+    super.$addJoinBuilderToRootComposer,
+    super.$removeJoinBuilderFromRootComposer,
+  });
+  ColumnOrderings<int> get idScadenza => $composableBuilder(
+    column: $table.idScadenza,
+    builder: (column) => ColumnOrderings(column),
+  );
+
+  ColumnOrderings<int> get idCliente => $composableBuilder(
+    column: $table.idCliente,
+    builder: (column) => ColumnOrderings(column),
+  );
+
+  ColumnOrderings<int> get idAgente => $composableBuilder(
+    column: $table.idAgente,
+    builder: (column) => ColumnOrderings(column),
+  );
+
+  ColumnOrderings<String> get chiave => $composableBuilder(
+    column: $table.chiave,
+    builder: (column) => ColumnOrderings(column),
+  );
+
+  ColumnOrderings<String> get numPartita => $composableBuilder(
+    column: $table.numPartita,
+    builder: (column) => ColumnOrderings(column),
+  );
+
+  ColumnOrderings<String> get dataScadenza => $composableBuilder(
+    column: $table.dataScadenza,
+    builder: (column) => ColumnOrderings(column),
+  );
+
+  ColumnOrderings<String> get segno => $composableBuilder(
+    column: $table.segno,
+    builder: (column) => ColumnOrderings(column),
+  );
+
+  ColumnOrderings<double> get importoFattura => $composableBuilder(
+    column: $table.importoFattura,
+    builder: (column) => ColumnOrderings(column),
+  );
+
+  ColumnOrderings<String> get valuta => $composableBuilder(
+    column: $table.valuta,
+    builder: (column) => ColumnOrderings(column),
+  );
+
+  ColumnOrderings<String> get numDoc => $composableBuilder(
+    column: $table.numDoc,
+    builder: (column) => ColumnOrderings(column),
+  );
+
+  ColumnOrderings<String> get serieDoc => $composableBuilder(
+    column: $table.serieDoc,
+    builder: (column) => ColumnOrderings(column),
+  );
+
+  ColumnOrderings<String> get dataDoc => $composableBuilder(
+    column: $table.dataDoc,
+    builder: (column) => ColumnOrderings(column),
+  );
+
+  ColumnOrderings<double> get importoScadenza => $composableBuilder(
+    column: $table.importoScadenza,
+    builder: (column) => ColumnOrderings(column),
+  );
+
+  ColumnOrderings<double> get saldo => $composableBuilder(
+    column: $table.saldo,
+    builder: (column) => ColumnOrderings(column),
+  );
+
+  ColumnOrderings<String> get tipoPagamento => $composableBuilder(
+    column: $table.tipoPagamento,
+    builder: (column) => ColumnOrderings(column),
+  );
+
+  ColumnOrderings<int> get flgSoppressa => $composableBuilder(
+    column: $table.flgSoppressa,
+    builder: (column) => ColumnOrderings(column),
+  );
+
+  ColumnOrderings<double> get importoAbbuono => $composableBuilder(
+    column: $table.importoAbbuono,
+    builder: (column) => ColumnOrderings(column),
+  );
+
+  ColumnOrderings<String> get note => $composableBuilder(
+    column: $table.note,
+    builder: (column) => ColumnOrderings(column),
+  );
+
+  ColumnOrderings<String> get dataModifica => $composableBuilder(
+    column: $table.dataModifica,
+    builder: (column) => ColumnOrderings(column),
+  );
+
+  ColumnOrderings<String> get stato => $composableBuilder(
+    column: $table.stato,
+    builder: (column) => ColumnOrderings(column),
+  );
+}
+
+class $$ScadenzeTableAnnotationComposer
+    extends Composer<_$AppDatabase, $ScadenzeTable> {
+  $$ScadenzeTableAnnotationComposer({
+    required super.$db,
+    required super.$table,
+    super.joinBuilder,
+    super.$addJoinBuilderToRootComposer,
+    super.$removeJoinBuilderFromRootComposer,
+  });
+  GeneratedColumn<int> get idScadenza => $composableBuilder(
+    column: $table.idScadenza,
+    builder: (column) => column,
+  );
+
+  GeneratedColumn<int> get idCliente =>
+      $composableBuilder(column: $table.idCliente, builder: (column) => column);
+
+  GeneratedColumn<int> get idAgente =>
+      $composableBuilder(column: $table.idAgente, builder: (column) => column);
+
+  GeneratedColumn<String> get chiave =>
+      $composableBuilder(column: $table.chiave, builder: (column) => column);
+
+  GeneratedColumn<String> get numPartita => $composableBuilder(
+    column: $table.numPartita,
+    builder: (column) => column,
+  );
+
+  GeneratedColumn<String> get dataScadenza => $composableBuilder(
+    column: $table.dataScadenza,
+    builder: (column) => column,
+  );
+
+  GeneratedColumn<String> get segno =>
+      $composableBuilder(column: $table.segno, builder: (column) => column);
+
+  GeneratedColumn<double> get importoFattura => $composableBuilder(
+    column: $table.importoFattura,
+    builder: (column) => column,
+  );
+
+  GeneratedColumn<String> get valuta =>
+      $composableBuilder(column: $table.valuta, builder: (column) => column);
+
+  GeneratedColumn<String> get numDoc =>
+      $composableBuilder(column: $table.numDoc, builder: (column) => column);
+
+  GeneratedColumn<String> get serieDoc =>
+      $composableBuilder(column: $table.serieDoc, builder: (column) => column);
+
+  GeneratedColumn<String> get dataDoc =>
+      $composableBuilder(column: $table.dataDoc, builder: (column) => column);
+
+  GeneratedColumn<double> get importoScadenza => $composableBuilder(
+    column: $table.importoScadenza,
+    builder: (column) => column,
+  );
+
+  GeneratedColumn<double> get saldo =>
+      $composableBuilder(column: $table.saldo, builder: (column) => column);
+
+  GeneratedColumn<String> get tipoPagamento => $composableBuilder(
+    column: $table.tipoPagamento,
+    builder: (column) => column,
+  );
+
+  GeneratedColumn<int> get flgSoppressa => $composableBuilder(
+    column: $table.flgSoppressa,
+    builder: (column) => column,
+  );
+
+  GeneratedColumn<double> get importoAbbuono => $composableBuilder(
+    column: $table.importoAbbuono,
+    builder: (column) => column,
+  );
+
+  GeneratedColumn<String> get note =>
+      $composableBuilder(column: $table.note, builder: (column) => column);
+
+  GeneratedColumn<String> get dataModifica => $composableBuilder(
+    column: $table.dataModifica,
+    builder: (column) => column,
+  );
+
+  GeneratedColumn<String> get stato =>
+      $composableBuilder(column: $table.stato, builder: (column) => column);
+}
+
+class $$ScadenzeTableTableManager
+    extends
+        RootTableManager<
+          _$AppDatabase,
+          $ScadenzeTable,
+          Scadenza,
+          $$ScadenzeTableFilterComposer,
+          $$ScadenzeTableOrderingComposer,
+          $$ScadenzeTableAnnotationComposer,
+          $$ScadenzeTableCreateCompanionBuilder,
+          $$ScadenzeTableUpdateCompanionBuilder,
+          (Scadenza, BaseReferences<_$AppDatabase, $ScadenzeTable, Scadenza>),
+          Scadenza,
+          PrefetchHooks Function()
+        > {
+  $$ScadenzeTableTableManager(_$AppDatabase db, $ScadenzeTable table)
+    : super(
+        TableManagerState(
+          db: db,
+          table: table,
+          createFilteringComposer: () =>
+              $$ScadenzeTableFilterComposer($db: db, $table: table),
+          createOrderingComposer: () =>
+              $$ScadenzeTableOrderingComposer($db: db, $table: table),
+          createComputedFieldComposer: () =>
+              $$ScadenzeTableAnnotationComposer($db: db, $table: table),
+          updateCompanionCallback:
+              ({
+                Value<int> idScadenza = const Value.absent(),
+                Value<int?> idCliente = const Value.absent(),
+                Value<int?> idAgente = const Value.absent(),
+                Value<String?> chiave = const Value.absent(),
+                Value<String?> numPartita = const Value.absent(),
+                Value<String?> dataScadenza = const Value.absent(),
+                Value<String?> segno = const Value.absent(),
+                Value<double?> importoFattura = const Value.absent(),
+                Value<String?> valuta = const Value.absent(),
+                Value<String?> numDoc = const Value.absent(),
+                Value<String?> serieDoc = const Value.absent(),
+                Value<String?> dataDoc = const Value.absent(),
+                Value<double?> importoScadenza = const Value.absent(),
+                Value<double?> saldo = const Value.absent(),
+                Value<String?> tipoPagamento = const Value.absent(),
+                Value<int?> flgSoppressa = const Value.absent(),
+                Value<double?> importoAbbuono = const Value.absent(),
+                Value<String?> note = const Value.absent(),
+                Value<String?> dataModifica = const Value.absent(),
+                Value<String?> stato = const Value.absent(),
+              }) => ScadenzeCompanion(
+                idScadenza: idScadenza,
+                idCliente: idCliente,
+                idAgente: idAgente,
+                chiave: chiave,
+                numPartita: numPartita,
+                dataScadenza: dataScadenza,
+                segno: segno,
+                importoFattura: importoFattura,
+                valuta: valuta,
+                numDoc: numDoc,
+                serieDoc: serieDoc,
+                dataDoc: dataDoc,
+                importoScadenza: importoScadenza,
+                saldo: saldo,
+                tipoPagamento: tipoPagamento,
+                flgSoppressa: flgSoppressa,
+                importoAbbuono: importoAbbuono,
+                note: note,
+                dataModifica: dataModifica,
+                stato: stato,
+              ),
+          createCompanionCallback:
+              ({
+                Value<int> idScadenza = const Value.absent(),
+                Value<int?> idCliente = const Value.absent(),
+                Value<int?> idAgente = const Value.absent(),
+                Value<String?> chiave = const Value.absent(),
+                Value<String?> numPartita = const Value.absent(),
+                Value<String?> dataScadenza = const Value.absent(),
+                Value<String?> segno = const Value.absent(),
+                Value<double?> importoFattura = const Value.absent(),
+                Value<String?> valuta = const Value.absent(),
+                Value<String?> numDoc = const Value.absent(),
+                Value<String?> serieDoc = const Value.absent(),
+                Value<String?> dataDoc = const Value.absent(),
+                Value<double?> importoScadenza = const Value.absent(),
+                Value<double?> saldo = const Value.absent(),
+                Value<String?> tipoPagamento = const Value.absent(),
+                Value<int?> flgSoppressa = const Value.absent(),
+                Value<double?> importoAbbuono = const Value.absent(),
+                Value<String?> note = const Value.absent(),
+                Value<String?> dataModifica = const Value.absent(),
+                Value<String?> stato = const Value.absent(),
+              }) => ScadenzeCompanion.insert(
+                idScadenza: idScadenza,
+                idCliente: idCliente,
+                idAgente: idAgente,
+                chiave: chiave,
+                numPartita: numPartita,
+                dataScadenza: dataScadenza,
+                segno: segno,
+                importoFattura: importoFattura,
+                valuta: valuta,
+                numDoc: numDoc,
+                serieDoc: serieDoc,
+                dataDoc: dataDoc,
+                importoScadenza: importoScadenza,
+                saldo: saldo,
+                tipoPagamento: tipoPagamento,
+                flgSoppressa: flgSoppressa,
+                importoAbbuono: importoAbbuono,
+                note: note,
+                dataModifica: dataModifica,
+                stato: stato,
+              ),
+          withReferenceMapper: (p0) => p0
+              .map((e) => (e.readTable(table), BaseReferences(db, table, e)))
+              .toList(),
+          prefetchHooksCallback: null,
+        ),
+      );
+}
+
+typedef $$ScadenzeTableProcessedTableManager =
+    ProcessedTableManager<
+      _$AppDatabase,
+      $ScadenzeTable,
+      Scadenza,
+      $$ScadenzeTableFilterComposer,
+      $$ScadenzeTableOrderingComposer,
+      $$ScadenzeTableAnnotationComposer,
+      $$ScadenzeTableCreateCompanionBuilder,
+      $$ScadenzeTableUpdateCompanionBuilder,
+      (Scadenza, BaseReferences<_$AppDatabase, $ScadenzeTable, Scadenza>),
+      Scadenza,
+      PrefetchHooks Function()
+    >;
+typedef $$StatisticheVenditaTableCreateCompanionBuilder =
+    StatisticheVenditaCompanion Function({
+      Value<int> id,
+      Value<int?> idAgente,
+      Value<int?> idCliente,
+      Value<int?> idArticolo,
+      Value<String?> codStatistiche,
+      Value<int?> riga,
+      Value<String?> numeroFattura,
+      Value<String?> dataFattura,
+      Value<double?> qta,
+      Value<double?> importo,
+      Value<String?> tipoVendita,
+    });
+typedef $$StatisticheVenditaTableUpdateCompanionBuilder =
+    StatisticheVenditaCompanion Function({
+      Value<int> id,
+      Value<int?> idAgente,
+      Value<int?> idCliente,
+      Value<int?> idArticolo,
+      Value<String?> codStatistiche,
+      Value<int?> riga,
+      Value<String?> numeroFattura,
+      Value<String?> dataFattura,
+      Value<double?> qta,
+      Value<double?> importo,
+      Value<String?> tipoVendita,
+    });
+
+class $$StatisticheVenditaTableFilterComposer
+    extends Composer<_$AppDatabase, $StatisticheVenditaTable> {
+  $$StatisticheVenditaTableFilterComposer({
+    required super.$db,
+    required super.$table,
+    super.joinBuilder,
+    super.$addJoinBuilderToRootComposer,
+    super.$removeJoinBuilderFromRootComposer,
+  });
+  ColumnFilters<int> get id => $composableBuilder(
+    column: $table.id,
+    builder: (column) => ColumnFilters(column),
+  );
+
+  ColumnFilters<int> get idAgente => $composableBuilder(
+    column: $table.idAgente,
+    builder: (column) => ColumnFilters(column),
+  );
+
+  ColumnFilters<int> get idCliente => $composableBuilder(
+    column: $table.idCliente,
+    builder: (column) => ColumnFilters(column),
+  );
+
+  ColumnFilters<int> get idArticolo => $composableBuilder(
+    column: $table.idArticolo,
+    builder: (column) => ColumnFilters(column),
+  );
+
+  ColumnFilters<String> get codStatistiche => $composableBuilder(
+    column: $table.codStatistiche,
+    builder: (column) => ColumnFilters(column),
+  );
+
+  ColumnFilters<int> get riga => $composableBuilder(
+    column: $table.riga,
+    builder: (column) => ColumnFilters(column),
+  );
+
+  ColumnFilters<String> get numeroFattura => $composableBuilder(
+    column: $table.numeroFattura,
+    builder: (column) => ColumnFilters(column),
+  );
+
+  ColumnFilters<String> get dataFattura => $composableBuilder(
+    column: $table.dataFattura,
+    builder: (column) => ColumnFilters(column),
+  );
+
+  ColumnFilters<double> get qta => $composableBuilder(
+    column: $table.qta,
+    builder: (column) => ColumnFilters(column),
+  );
+
+  ColumnFilters<double> get importo => $composableBuilder(
+    column: $table.importo,
+    builder: (column) => ColumnFilters(column),
+  );
+
+  ColumnFilters<String> get tipoVendita => $composableBuilder(
+    column: $table.tipoVendita,
+    builder: (column) => ColumnFilters(column),
+  );
+}
+
+class $$StatisticheVenditaTableOrderingComposer
+    extends Composer<_$AppDatabase, $StatisticheVenditaTable> {
+  $$StatisticheVenditaTableOrderingComposer({
+    required super.$db,
+    required super.$table,
+    super.joinBuilder,
+    super.$addJoinBuilderToRootComposer,
+    super.$removeJoinBuilderFromRootComposer,
+  });
+  ColumnOrderings<int> get id => $composableBuilder(
+    column: $table.id,
+    builder: (column) => ColumnOrderings(column),
+  );
+
+  ColumnOrderings<int> get idAgente => $composableBuilder(
+    column: $table.idAgente,
+    builder: (column) => ColumnOrderings(column),
+  );
+
+  ColumnOrderings<int> get idCliente => $composableBuilder(
+    column: $table.idCliente,
+    builder: (column) => ColumnOrderings(column),
+  );
+
+  ColumnOrderings<int> get idArticolo => $composableBuilder(
+    column: $table.idArticolo,
+    builder: (column) => ColumnOrderings(column),
+  );
+
+  ColumnOrderings<String> get codStatistiche => $composableBuilder(
+    column: $table.codStatistiche,
+    builder: (column) => ColumnOrderings(column),
+  );
+
+  ColumnOrderings<int> get riga => $composableBuilder(
+    column: $table.riga,
+    builder: (column) => ColumnOrderings(column),
+  );
+
+  ColumnOrderings<String> get numeroFattura => $composableBuilder(
+    column: $table.numeroFattura,
+    builder: (column) => ColumnOrderings(column),
+  );
+
+  ColumnOrderings<String> get dataFattura => $composableBuilder(
+    column: $table.dataFattura,
+    builder: (column) => ColumnOrderings(column),
+  );
+
+  ColumnOrderings<double> get qta => $composableBuilder(
+    column: $table.qta,
+    builder: (column) => ColumnOrderings(column),
+  );
+
+  ColumnOrderings<double> get importo => $composableBuilder(
+    column: $table.importo,
+    builder: (column) => ColumnOrderings(column),
+  );
+
+  ColumnOrderings<String> get tipoVendita => $composableBuilder(
+    column: $table.tipoVendita,
+    builder: (column) => ColumnOrderings(column),
+  );
+}
+
+class $$StatisticheVenditaTableAnnotationComposer
+    extends Composer<_$AppDatabase, $StatisticheVenditaTable> {
+  $$StatisticheVenditaTableAnnotationComposer({
+    required super.$db,
+    required super.$table,
+    super.joinBuilder,
+    super.$addJoinBuilderToRootComposer,
+    super.$removeJoinBuilderFromRootComposer,
+  });
+  GeneratedColumn<int> get id =>
+      $composableBuilder(column: $table.id, builder: (column) => column);
+
+  GeneratedColumn<int> get idAgente =>
+      $composableBuilder(column: $table.idAgente, builder: (column) => column);
+
+  GeneratedColumn<int> get idCliente =>
+      $composableBuilder(column: $table.idCliente, builder: (column) => column);
+
+  GeneratedColumn<int> get idArticolo => $composableBuilder(
+    column: $table.idArticolo,
+    builder: (column) => column,
+  );
+
+  GeneratedColumn<String> get codStatistiche => $composableBuilder(
+    column: $table.codStatistiche,
+    builder: (column) => column,
+  );
+
+  GeneratedColumn<int> get riga =>
+      $composableBuilder(column: $table.riga, builder: (column) => column);
+
+  GeneratedColumn<String> get numeroFattura => $composableBuilder(
+    column: $table.numeroFattura,
+    builder: (column) => column,
+  );
+
+  GeneratedColumn<String> get dataFattura => $composableBuilder(
+    column: $table.dataFattura,
+    builder: (column) => column,
+  );
+
+  GeneratedColumn<double> get qta =>
+      $composableBuilder(column: $table.qta, builder: (column) => column);
+
+  GeneratedColumn<double> get importo =>
+      $composableBuilder(column: $table.importo, builder: (column) => column);
+
+  GeneratedColumn<String> get tipoVendita => $composableBuilder(
+    column: $table.tipoVendita,
+    builder: (column) => column,
+  );
+}
+
+class $$StatisticheVenditaTableTableManager
+    extends
+        RootTableManager<
+          _$AppDatabase,
+          $StatisticheVenditaTable,
+          StatisticheVenditaData,
+          $$StatisticheVenditaTableFilterComposer,
+          $$StatisticheVenditaTableOrderingComposer,
+          $$StatisticheVenditaTableAnnotationComposer,
+          $$StatisticheVenditaTableCreateCompanionBuilder,
+          $$StatisticheVenditaTableUpdateCompanionBuilder,
+          (
+            StatisticheVenditaData,
+            BaseReferences<
+              _$AppDatabase,
+              $StatisticheVenditaTable,
+              StatisticheVenditaData
+            >,
+          ),
+          StatisticheVenditaData,
+          PrefetchHooks Function()
+        > {
+  $$StatisticheVenditaTableTableManager(
+    _$AppDatabase db,
+    $StatisticheVenditaTable table,
+  ) : super(
+        TableManagerState(
+          db: db,
+          table: table,
+          createFilteringComposer: () =>
+              $$StatisticheVenditaTableFilterComposer($db: db, $table: table),
+          createOrderingComposer: () =>
+              $$StatisticheVenditaTableOrderingComposer($db: db, $table: table),
+          createComputedFieldComposer: () =>
+              $$StatisticheVenditaTableAnnotationComposer(
+                $db: db,
+                $table: table,
+              ),
+          updateCompanionCallback:
+              ({
+                Value<int> id = const Value.absent(),
+                Value<int?> idAgente = const Value.absent(),
+                Value<int?> idCliente = const Value.absent(),
+                Value<int?> idArticolo = const Value.absent(),
+                Value<String?> codStatistiche = const Value.absent(),
+                Value<int?> riga = const Value.absent(),
+                Value<String?> numeroFattura = const Value.absent(),
+                Value<String?> dataFattura = const Value.absent(),
+                Value<double?> qta = const Value.absent(),
+                Value<double?> importo = const Value.absent(),
+                Value<String?> tipoVendita = const Value.absent(),
+              }) => StatisticheVenditaCompanion(
+                id: id,
+                idAgente: idAgente,
+                idCliente: idCliente,
+                idArticolo: idArticolo,
+                codStatistiche: codStatistiche,
+                riga: riga,
+                numeroFattura: numeroFattura,
+                dataFattura: dataFattura,
+                qta: qta,
+                importo: importo,
+                tipoVendita: tipoVendita,
+              ),
+          createCompanionCallback:
+              ({
+                Value<int> id = const Value.absent(),
+                Value<int?> idAgente = const Value.absent(),
+                Value<int?> idCliente = const Value.absent(),
+                Value<int?> idArticolo = const Value.absent(),
+                Value<String?> codStatistiche = const Value.absent(),
+                Value<int?> riga = const Value.absent(),
+                Value<String?> numeroFattura = const Value.absent(),
+                Value<String?> dataFattura = const Value.absent(),
+                Value<double?> qta = const Value.absent(),
+                Value<double?> importo = const Value.absent(),
+                Value<String?> tipoVendita = const Value.absent(),
+              }) => StatisticheVenditaCompanion.insert(
+                id: id,
+                idAgente: idAgente,
+                idCliente: idCliente,
+                idArticolo: idArticolo,
+                codStatistiche: codStatistiche,
+                riga: riga,
+                numeroFattura: numeroFattura,
+                dataFattura: dataFattura,
+                qta: qta,
+                importo: importo,
+                tipoVendita: tipoVendita,
+              ),
+          withReferenceMapper: (p0) => p0
+              .map((e) => (e.readTable(table), BaseReferences(db, table, e)))
+              .toList(),
+          prefetchHooksCallback: null,
+        ),
+      );
+}
+
+typedef $$StatisticheVenditaTableProcessedTableManager =
+    ProcessedTableManager<
+      _$AppDatabase,
+      $StatisticheVenditaTable,
+      StatisticheVenditaData,
+      $$StatisticheVenditaTableFilterComposer,
+      $$StatisticheVenditaTableOrderingComposer,
+      $$StatisticheVenditaTableAnnotationComposer,
+      $$StatisticheVenditaTableCreateCompanionBuilder,
+      $$StatisticheVenditaTableUpdateCompanionBuilder,
+      (
+        StatisticheVenditaData,
+        BaseReferences<
+          _$AppDatabase,
+          $StatisticheVenditaTable,
+          StatisticheVenditaData
+        >,
+      ),
+      StatisticheVenditaData,
+      PrefetchHooks Function()
+    >;
+typedef $$ArticoliConPromoTableCreateCompanionBuilder =
+    ArticoliConPromoCompanion Function({
+      required int idArticolo,
+      Value<String?> codArticolo,
+      Value<String?> descrizione,
+      Value<double?> prezzoBase,
+      Value<int?> attivo,
+      Value<int?> nonDisponibile,
+      Value<int?> inPromo,
+      Value<double?> ultimoPrezzo,
+      Value<String?> lastDateSold,
+    });
+typedef $$ArticoliConPromoTableUpdateCompanionBuilder =
+    ArticoliConPromoCompanion Function({
+      Value<int> idArticolo,
+      Value<String?> codArticolo,
+      Value<String?> descrizione,
+      Value<double?> prezzoBase,
+      Value<int?> attivo,
+      Value<int?> nonDisponibile,
+      Value<int?> inPromo,
+      Value<double?> ultimoPrezzo,
+      Value<String?> lastDateSold,
+    });
+
+class $$ArticoliConPromoTableFilterComposer
+    extends Composer<_$AppDatabase, $ArticoliConPromoTable> {
+  $$ArticoliConPromoTableFilterComposer({
+    required super.$db,
+    required super.$table,
+    super.joinBuilder,
+    super.$addJoinBuilderToRootComposer,
+    super.$removeJoinBuilderFromRootComposer,
+  });
+  ColumnFilters<int> get idArticolo => $composableBuilder(
+    column: $table.idArticolo,
+    builder: (column) => ColumnFilters(column),
+  );
+
+  ColumnFilters<String> get codArticolo => $composableBuilder(
+    column: $table.codArticolo,
+    builder: (column) => ColumnFilters(column),
+  );
+
+  ColumnFilters<String> get descrizione => $composableBuilder(
+    column: $table.descrizione,
+    builder: (column) => ColumnFilters(column),
+  );
+
+  ColumnFilters<double> get prezzoBase => $composableBuilder(
+    column: $table.prezzoBase,
+    builder: (column) => ColumnFilters(column),
+  );
+
+  ColumnFilters<int> get attivo => $composableBuilder(
+    column: $table.attivo,
+    builder: (column) => ColumnFilters(column),
+  );
+
+  ColumnFilters<int> get nonDisponibile => $composableBuilder(
+    column: $table.nonDisponibile,
+    builder: (column) => ColumnFilters(column),
+  );
+
+  ColumnFilters<int> get inPromo => $composableBuilder(
+    column: $table.inPromo,
+    builder: (column) => ColumnFilters(column),
+  );
+
+  ColumnFilters<double> get ultimoPrezzo => $composableBuilder(
+    column: $table.ultimoPrezzo,
+    builder: (column) => ColumnFilters(column),
+  );
+
+  ColumnFilters<String> get lastDateSold => $composableBuilder(
+    column: $table.lastDateSold,
+    builder: (column) => ColumnFilters(column),
+  );
+}
+
+class $$ArticoliConPromoTableOrderingComposer
+    extends Composer<_$AppDatabase, $ArticoliConPromoTable> {
+  $$ArticoliConPromoTableOrderingComposer({
+    required super.$db,
+    required super.$table,
+    super.joinBuilder,
+    super.$addJoinBuilderToRootComposer,
+    super.$removeJoinBuilderFromRootComposer,
+  });
+  ColumnOrderings<int> get idArticolo => $composableBuilder(
+    column: $table.idArticolo,
+    builder: (column) => ColumnOrderings(column),
+  );
+
+  ColumnOrderings<String> get codArticolo => $composableBuilder(
+    column: $table.codArticolo,
+    builder: (column) => ColumnOrderings(column),
+  );
+
+  ColumnOrderings<String> get descrizione => $composableBuilder(
+    column: $table.descrizione,
+    builder: (column) => ColumnOrderings(column),
+  );
+
+  ColumnOrderings<double> get prezzoBase => $composableBuilder(
+    column: $table.prezzoBase,
+    builder: (column) => ColumnOrderings(column),
+  );
+
+  ColumnOrderings<int> get attivo => $composableBuilder(
+    column: $table.attivo,
+    builder: (column) => ColumnOrderings(column),
+  );
+
+  ColumnOrderings<int> get nonDisponibile => $composableBuilder(
+    column: $table.nonDisponibile,
+    builder: (column) => ColumnOrderings(column),
+  );
+
+  ColumnOrderings<int> get inPromo => $composableBuilder(
+    column: $table.inPromo,
+    builder: (column) => ColumnOrderings(column),
+  );
+
+  ColumnOrderings<double> get ultimoPrezzo => $composableBuilder(
+    column: $table.ultimoPrezzo,
+    builder: (column) => ColumnOrderings(column),
+  );
+
+  ColumnOrderings<String> get lastDateSold => $composableBuilder(
+    column: $table.lastDateSold,
+    builder: (column) => ColumnOrderings(column),
+  );
+}
+
+class $$ArticoliConPromoTableAnnotationComposer
+    extends Composer<_$AppDatabase, $ArticoliConPromoTable> {
+  $$ArticoliConPromoTableAnnotationComposer({
+    required super.$db,
+    required super.$table,
+    super.joinBuilder,
+    super.$addJoinBuilderToRootComposer,
+    super.$removeJoinBuilderFromRootComposer,
+  });
+  GeneratedColumn<int> get idArticolo => $composableBuilder(
+    column: $table.idArticolo,
+    builder: (column) => column,
+  );
+
+  GeneratedColumn<String> get codArticolo => $composableBuilder(
+    column: $table.codArticolo,
+    builder: (column) => column,
+  );
+
+  GeneratedColumn<String> get descrizione => $composableBuilder(
+    column: $table.descrizione,
+    builder: (column) => column,
+  );
+
+  GeneratedColumn<double> get prezzoBase => $composableBuilder(
+    column: $table.prezzoBase,
+    builder: (column) => column,
+  );
+
+  GeneratedColumn<int> get attivo =>
+      $composableBuilder(column: $table.attivo, builder: (column) => column);
+
+  GeneratedColumn<int> get nonDisponibile => $composableBuilder(
+    column: $table.nonDisponibile,
+    builder: (column) => column,
+  );
+
+  GeneratedColumn<int> get inPromo =>
+      $composableBuilder(column: $table.inPromo, builder: (column) => column);
+
+  GeneratedColumn<double> get ultimoPrezzo => $composableBuilder(
+    column: $table.ultimoPrezzo,
+    builder: (column) => column,
+  );
+
+  GeneratedColumn<String> get lastDateSold => $composableBuilder(
+    column: $table.lastDateSold,
+    builder: (column) => column,
+  );
+}
+
+class $$ArticoliConPromoTableTableManager
+    extends
+        RootTableManager<
+          _$AppDatabase,
+          $ArticoliConPromoTable,
+          ArticoliConPromoData,
+          $$ArticoliConPromoTableFilterComposer,
+          $$ArticoliConPromoTableOrderingComposer,
+          $$ArticoliConPromoTableAnnotationComposer,
+          $$ArticoliConPromoTableCreateCompanionBuilder,
+          $$ArticoliConPromoTableUpdateCompanionBuilder,
+          (
+            ArticoliConPromoData,
+            BaseReferences<
+              _$AppDatabase,
+              $ArticoliConPromoTable,
+              ArticoliConPromoData
+            >,
+          ),
+          ArticoliConPromoData,
+          PrefetchHooks Function()
+        > {
+  $$ArticoliConPromoTableTableManager(
+    _$AppDatabase db,
+    $ArticoliConPromoTable table,
+  ) : super(
+        TableManagerState(
+          db: db,
+          table: table,
+          createFilteringComposer: () =>
+              $$ArticoliConPromoTableFilterComposer($db: db, $table: table),
+          createOrderingComposer: () =>
+              $$ArticoliConPromoTableOrderingComposer($db: db, $table: table),
+          createComputedFieldComposer: () =>
+              $$ArticoliConPromoTableAnnotationComposer($db: db, $table: table),
+          updateCompanionCallback:
+              ({
+                Value<int> idArticolo = const Value.absent(),
+                Value<String?> codArticolo = const Value.absent(),
+                Value<String?> descrizione = const Value.absent(),
+                Value<double?> prezzoBase = const Value.absent(),
+                Value<int?> attivo = const Value.absent(),
+                Value<int?> nonDisponibile = const Value.absent(),
+                Value<int?> inPromo = const Value.absent(),
+                Value<double?> ultimoPrezzo = const Value.absent(),
+                Value<String?> lastDateSold = const Value.absent(),
+              }) => ArticoliConPromoCompanion(
+                idArticolo: idArticolo,
+                codArticolo: codArticolo,
+                descrizione: descrizione,
+                prezzoBase: prezzoBase,
+                attivo: attivo,
+                nonDisponibile: nonDisponibile,
+                inPromo: inPromo,
+                ultimoPrezzo: ultimoPrezzo,
+                lastDateSold: lastDateSold,
+              ),
+          createCompanionCallback:
+              ({
+                required int idArticolo,
+                Value<String?> codArticolo = const Value.absent(),
+                Value<String?> descrizione = const Value.absent(),
+                Value<double?> prezzoBase = const Value.absent(),
+                Value<int?> attivo = const Value.absent(),
+                Value<int?> nonDisponibile = const Value.absent(),
+                Value<int?> inPromo = const Value.absent(),
+                Value<double?> ultimoPrezzo = const Value.absent(),
+                Value<String?> lastDateSold = const Value.absent(),
+              }) => ArticoliConPromoCompanion.insert(
+                idArticolo: idArticolo,
+                codArticolo: codArticolo,
+                descrizione: descrizione,
+                prezzoBase: prezzoBase,
+                attivo: attivo,
+                nonDisponibile: nonDisponibile,
+                inPromo: inPromo,
+                ultimoPrezzo: ultimoPrezzo,
+                lastDateSold: lastDateSold,
+              ),
+          withReferenceMapper: (p0) => p0
+              .map((e) => (e.readTable(table), BaseReferences(db, table, e)))
+              .toList(),
+          prefetchHooksCallback: null,
+        ),
+      );
+}
+
+typedef $$ArticoliConPromoTableProcessedTableManager =
+    ProcessedTableManager<
+      _$AppDatabase,
+      $ArticoliConPromoTable,
+      ArticoliConPromoData,
+      $$ArticoliConPromoTableFilterComposer,
+      $$ArticoliConPromoTableOrderingComposer,
+      $$ArticoliConPromoTableAnnotationComposer,
+      $$ArticoliConPromoTableCreateCompanionBuilder,
+      $$ArticoliConPromoTableUpdateCompanionBuilder,
+      (
+        ArticoliConPromoData,
+        BaseReferences<
+          _$AppDatabase,
+          $ArticoliConPromoTable,
+          ArticoliConPromoData
+        >,
+      ),
+      ArticoliConPromoData,
+      PrefetchHooks Function()
+    >;
+typedef $$OrdiniSenzaRigheTableCreateCompanionBuilder =
+    OrdiniSenzaRigheCompanion Function({
+      required int idOrdine,
+      Value<int?> numeroOrdine,
+      Value<String?> dataOrdine,
+      Value<String?> dataConsegna,
+      Value<String?> riferimento,
+      Value<String?> noteCliente,
+      Value<String?> stato,
+      Value<int?> idCliente,
+      Value<String?> codCliente,
+      Value<String?> ragioneSociale,
+      Value<double?> totale,
+      Value<double?> totQta,
+    });
+typedef $$OrdiniSenzaRigheTableUpdateCompanionBuilder =
+    OrdiniSenzaRigheCompanion Function({
+      Value<int> idOrdine,
+      Value<int?> numeroOrdine,
+      Value<String?> dataOrdine,
+      Value<String?> dataConsegna,
+      Value<String?> riferimento,
+      Value<String?> noteCliente,
+      Value<String?> stato,
+      Value<int?> idCliente,
+      Value<String?> codCliente,
+      Value<String?> ragioneSociale,
+      Value<double?> totale,
+      Value<double?> totQta,
+    });
+
+class $$OrdiniSenzaRigheTableFilterComposer
+    extends Composer<_$AppDatabase, $OrdiniSenzaRigheTable> {
+  $$OrdiniSenzaRigheTableFilterComposer({
+    required super.$db,
+    required super.$table,
+    super.joinBuilder,
+    super.$addJoinBuilderToRootComposer,
+    super.$removeJoinBuilderFromRootComposer,
+  });
+  ColumnFilters<int> get idOrdine => $composableBuilder(
+    column: $table.idOrdine,
+    builder: (column) => ColumnFilters(column),
+  );
+
+  ColumnFilters<int> get numeroOrdine => $composableBuilder(
+    column: $table.numeroOrdine,
+    builder: (column) => ColumnFilters(column),
+  );
+
+  ColumnFilters<String> get dataOrdine => $composableBuilder(
+    column: $table.dataOrdine,
+    builder: (column) => ColumnFilters(column),
+  );
+
+  ColumnFilters<String> get dataConsegna => $composableBuilder(
+    column: $table.dataConsegna,
+    builder: (column) => ColumnFilters(column),
+  );
+
+  ColumnFilters<String> get riferimento => $composableBuilder(
+    column: $table.riferimento,
+    builder: (column) => ColumnFilters(column),
+  );
+
+  ColumnFilters<String> get noteCliente => $composableBuilder(
+    column: $table.noteCliente,
+    builder: (column) => ColumnFilters(column),
+  );
+
+  ColumnFilters<String> get stato => $composableBuilder(
+    column: $table.stato,
+    builder: (column) => ColumnFilters(column),
+  );
+
+  ColumnFilters<int> get idCliente => $composableBuilder(
+    column: $table.idCliente,
+    builder: (column) => ColumnFilters(column),
+  );
+
+  ColumnFilters<String> get codCliente => $composableBuilder(
+    column: $table.codCliente,
+    builder: (column) => ColumnFilters(column),
+  );
+
+  ColumnFilters<String> get ragioneSociale => $composableBuilder(
+    column: $table.ragioneSociale,
+    builder: (column) => ColumnFilters(column),
+  );
+
+  ColumnFilters<double> get totale => $composableBuilder(
+    column: $table.totale,
+    builder: (column) => ColumnFilters(column),
+  );
+
+  ColumnFilters<double> get totQta => $composableBuilder(
+    column: $table.totQta,
+    builder: (column) => ColumnFilters(column),
+  );
+}
+
+class $$OrdiniSenzaRigheTableOrderingComposer
+    extends Composer<_$AppDatabase, $OrdiniSenzaRigheTable> {
+  $$OrdiniSenzaRigheTableOrderingComposer({
+    required super.$db,
+    required super.$table,
+    super.joinBuilder,
+    super.$addJoinBuilderToRootComposer,
+    super.$removeJoinBuilderFromRootComposer,
+  });
+  ColumnOrderings<int> get idOrdine => $composableBuilder(
+    column: $table.idOrdine,
+    builder: (column) => ColumnOrderings(column),
+  );
+
+  ColumnOrderings<int> get numeroOrdine => $composableBuilder(
+    column: $table.numeroOrdine,
+    builder: (column) => ColumnOrderings(column),
+  );
+
+  ColumnOrderings<String> get dataOrdine => $composableBuilder(
+    column: $table.dataOrdine,
+    builder: (column) => ColumnOrderings(column),
+  );
+
+  ColumnOrderings<String> get dataConsegna => $composableBuilder(
+    column: $table.dataConsegna,
+    builder: (column) => ColumnOrderings(column),
+  );
+
+  ColumnOrderings<String> get riferimento => $composableBuilder(
+    column: $table.riferimento,
+    builder: (column) => ColumnOrderings(column),
+  );
+
+  ColumnOrderings<String> get noteCliente => $composableBuilder(
+    column: $table.noteCliente,
+    builder: (column) => ColumnOrderings(column),
+  );
+
+  ColumnOrderings<String> get stato => $composableBuilder(
+    column: $table.stato,
+    builder: (column) => ColumnOrderings(column),
+  );
+
+  ColumnOrderings<int> get idCliente => $composableBuilder(
+    column: $table.idCliente,
+    builder: (column) => ColumnOrderings(column),
+  );
+
+  ColumnOrderings<String> get codCliente => $composableBuilder(
+    column: $table.codCliente,
+    builder: (column) => ColumnOrderings(column),
+  );
+
+  ColumnOrderings<String> get ragioneSociale => $composableBuilder(
+    column: $table.ragioneSociale,
+    builder: (column) => ColumnOrderings(column),
+  );
+
+  ColumnOrderings<double> get totale => $composableBuilder(
+    column: $table.totale,
+    builder: (column) => ColumnOrderings(column),
+  );
+
+  ColumnOrderings<double> get totQta => $composableBuilder(
+    column: $table.totQta,
+    builder: (column) => ColumnOrderings(column),
+  );
+}
+
+class $$OrdiniSenzaRigheTableAnnotationComposer
+    extends Composer<_$AppDatabase, $OrdiniSenzaRigheTable> {
+  $$OrdiniSenzaRigheTableAnnotationComposer({
+    required super.$db,
+    required super.$table,
+    super.joinBuilder,
+    super.$addJoinBuilderToRootComposer,
+    super.$removeJoinBuilderFromRootComposer,
+  });
+  GeneratedColumn<int> get idOrdine =>
+      $composableBuilder(column: $table.idOrdine, builder: (column) => column);
+
+  GeneratedColumn<int> get numeroOrdine => $composableBuilder(
+    column: $table.numeroOrdine,
+    builder: (column) => column,
+  );
+
+  GeneratedColumn<String> get dataOrdine => $composableBuilder(
+    column: $table.dataOrdine,
+    builder: (column) => column,
+  );
+
+  GeneratedColumn<String> get dataConsegna => $composableBuilder(
+    column: $table.dataConsegna,
+    builder: (column) => column,
+  );
+
+  GeneratedColumn<String> get riferimento => $composableBuilder(
+    column: $table.riferimento,
+    builder: (column) => column,
+  );
+
+  GeneratedColumn<String> get noteCliente => $composableBuilder(
+    column: $table.noteCliente,
+    builder: (column) => column,
+  );
+
+  GeneratedColumn<String> get stato =>
+      $composableBuilder(column: $table.stato, builder: (column) => column);
+
+  GeneratedColumn<int> get idCliente =>
+      $composableBuilder(column: $table.idCliente, builder: (column) => column);
+
+  GeneratedColumn<String> get codCliente => $composableBuilder(
+    column: $table.codCliente,
+    builder: (column) => column,
+  );
+
+  GeneratedColumn<String> get ragioneSociale => $composableBuilder(
+    column: $table.ragioneSociale,
+    builder: (column) => column,
+  );
+
+  GeneratedColumn<double> get totale =>
+      $composableBuilder(column: $table.totale, builder: (column) => column);
+
+  GeneratedColumn<double> get totQta =>
+      $composableBuilder(column: $table.totQta, builder: (column) => column);
+}
+
+class $$OrdiniSenzaRigheTableTableManager
+    extends
+        RootTableManager<
+          _$AppDatabase,
+          $OrdiniSenzaRigheTable,
+          OrdiniSenzaRigheData,
+          $$OrdiniSenzaRigheTableFilterComposer,
+          $$OrdiniSenzaRigheTableOrderingComposer,
+          $$OrdiniSenzaRigheTableAnnotationComposer,
+          $$OrdiniSenzaRigheTableCreateCompanionBuilder,
+          $$OrdiniSenzaRigheTableUpdateCompanionBuilder,
+          (
+            OrdiniSenzaRigheData,
+            BaseReferences<
+              _$AppDatabase,
+              $OrdiniSenzaRigheTable,
+              OrdiniSenzaRigheData
+            >,
+          ),
+          OrdiniSenzaRigheData,
+          PrefetchHooks Function()
+        > {
+  $$OrdiniSenzaRigheTableTableManager(
+    _$AppDatabase db,
+    $OrdiniSenzaRigheTable table,
+  ) : super(
+        TableManagerState(
+          db: db,
+          table: table,
+          createFilteringComposer: () =>
+              $$OrdiniSenzaRigheTableFilterComposer($db: db, $table: table),
+          createOrderingComposer: () =>
+              $$OrdiniSenzaRigheTableOrderingComposer($db: db, $table: table),
+          createComputedFieldComposer: () =>
+              $$OrdiniSenzaRigheTableAnnotationComposer($db: db, $table: table),
+          updateCompanionCallback:
+              ({
+                Value<int> idOrdine = const Value.absent(),
+                Value<int?> numeroOrdine = const Value.absent(),
+                Value<String?> dataOrdine = const Value.absent(),
+                Value<String?> dataConsegna = const Value.absent(),
+                Value<String?> riferimento = const Value.absent(),
+                Value<String?> noteCliente = const Value.absent(),
+                Value<String?> stato = const Value.absent(),
+                Value<int?> idCliente = const Value.absent(),
+                Value<String?> codCliente = const Value.absent(),
+                Value<String?> ragioneSociale = const Value.absent(),
+                Value<double?> totale = const Value.absent(),
+                Value<double?> totQta = const Value.absent(),
+              }) => OrdiniSenzaRigheCompanion(
+                idOrdine: idOrdine,
+                numeroOrdine: numeroOrdine,
+                dataOrdine: dataOrdine,
+                dataConsegna: dataConsegna,
+                riferimento: riferimento,
+                noteCliente: noteCliente,
+                stato: stato,
+                idCliente: idCliente,
+                codCliente: codCliente,
+                ragioneSociale: ragioneSociale,
+                totale: totale,
+                totQta: totQta,
+              ),
+          createCompanionCallback:
+              ({
+                required int idOrdine,
+                Value<int?> numeroOrdine = const Value.absent(),
+                Value<String?> dataOrdine = const Value.absent(),
+                Value<String?> dataConsegna = const Value.absent(),
+                Value<String?> riferimento = const Value.absent(),
+                Value<String?> noteCliente = const Value.absent(),
+                Value<String?> stato = const Value.absent(),
+                Value<int?> idCliente = const Value.absent(),
+                Value<String?> codCliente = const Value.absent(),
+                Value<String?> ragioneSociale = const Value.absent(),
+                Value<double?> totale = const Value.absent(),
+                Value<double?> totQta = const Value.absent(),
+              }) => OrdiniSenzaRigheCompanion.insert(
+                idOrdine: idOrdine,
+                numeroOrdine: numeroOrdine,
+                dataOrdine: dataOrdine,
+                dataConsegna: dataConsegna,
+                riferimento: riferimento,
+                noteCliente: noteCliente,
+                stato: stato,
+                idCliente: idCliente,
+                codCliente: codCliente,
+                ragioneSociale: ragioneSociale,
+                totale: totale,
+                totQta: totQta,
+              ),
+          withReferenceMapper: (p0) => p0
+              .map((e) => (e.readTable(table), BaseReferences(db, table, e)))
+              .toList(),
+          prefetchHooksCallback: null,
+        ),
+      );
+}
+
+typedef $$OrdiniSenzaRigheTableProcessedTableManager =
+    ProcessedTableManager<
+      _$AppDatabase,
+      $OrdiniSenzaRigheTable,
+      OrdiniSenzaRigheData,
+      $$OrdiniSenzaRigheTableFilterComposer,
+      $$OrdiniSenzaRigheTableOrderingComposer,
+      $$OrdiniSenzaRigheTableAnnotationComposer,
+      $$OrdiniSenzaRigheTableCreateCompanionBuilder,
+      $$OrdiniSenzaRigheTableUpdateCompanionBuilder,
+      (
+        OrdiniSenzaRigheData,
+        BaseReferences<
+          _$AppDatabase,
+          $OrdiniSenzaRigheTable,
+          OrdiniSenzaRigheData
+        >,
+      ),
+      OrdiniSenzaRigheData,
+      PrefetchHooks Function()
+    >;
+typedef $$TopItemTableCreateCompanionBuilder =
+    TopItemCompanion Function({
+      required int idArticolo,
+      Value<String?> codArticolo,
+      Value<String?> descrizione,
+      Value<double?> totale,
+    });
+typedef $$TopItemTableUpdateCompanionBuilder =
+    TopItemCompanion Function({
+      Value<int> idArticolo,
+      Value<String?> codArticolo,
+      Value<String?> descrizione,
+      Value<double?> totale,
+    });
+
+class $$TopItemTableFilterComposer
+    extends Composer<_$AppDatabase, $TopItemTable> {
+  $$TopItemTableFilterComposer({
+    required super.$db,
+    required super.$table,
+    super.joinBuilder,
+    super.$addJoinBuilderToRootComposer,
+    super.$removeJoinBuilderFromRootComposer,
+  });
+  ColumnFilters<int> get idArticolo => $composableBuilder(
+    column: $table.idArticolo,
+    builder: (column) => ColumnFilters(column),
+  );
+
+  ColumnFilters<String> get codArticolo => $composableBuilder(
+    column: $table.codArticolo,
+    builder: (column) => ColumnFilters(column),
+  );
+
+  ColumnFilters<String> get descrizione => $composableBuilder(
+    column: $table.descrizione,
+    builder: (column) => ColumnFilters(column),
+  );
+
+  ColumnFilters<double> get totale => $composableBuilder(
+    column: $table.totale,
+    builder: (column) => ColumnFilters(column),
+  );
+}
+
+class $$TopItemTableOrderingComposer
+    extends Composer<_$AppDatabase, $TopItemTable> {
+  $$TopItemTableOrderingComposer({
+    required super.$db,
+    required super.$table,
+    super.joinBuilder,
+    super.$addJoinBuilderToRootComposer,
+    super.$removeJoinBuilderFromRootComposer,
+  });
+  ColumnOrderings<int> get idArticolo => $composableBuilder(
+    column: $table.idArticolo,
+    builder: (column) => ColumnOrderings(column),
+  );
+
+  ColumnOrderings<String> get codArticolo => $composableBuilder(
+    column: $table.codArticolo,
+    builder: (column) => ColumnOrderings(column),
+  );
+
+  ColumnOrderings<String> get descrizione => $composableBuilder(
+    column: $table.descrizione,
+    builder: (column) => ColumnOrderings(column),
+  );
+
+  ColumnOrderings<double> get totale => $composableBuilder(
+    column: $table.totale,
+    builder: (column) => ColumnOrderings(column),
+  );
+}
+
+class $$TopItemTableAnnotationComposer
+    extends Composer<_$AppDatabase, $TopItemTable> {
+  $$TopItemTableAnnotationComposer({
+    required super.$db,
+    required super.$table,
+    super.joinBuilder,
+    super.$addJoinBuilderToRootComposer,
+    super.$removeJoinBuilderFromRootComposer,
+  });
+  GeneratedColumn<int> get idArticolo => $composableBuilder(
+    column: $table.idArticolo,
+    builder: (column) => column,
+  );
+
+  GeneratedColumn<String> get codArticolo => $composableBuilder(
+    column: $table.codArticolo,
+    builder: (column) => column,
+  );
+
+  GeneratedColumn<String> get descrizione => $composableBuilder(
+    column: $table.descrizione,
+    builder: (column) => column,
+  );
+
+  GeneratedColumn<double> get totale =>
+      $composableBuilder(column: $table.totale, builder: (column) => column);
+}
+
+class $$TopItemTableTableManager
+    extends
+        RootTableManager<
+          _$AppDatabase,
+          $TopItemTable,
+          TopItemData,
+          $$TopItemTableFilterComposer,
+          $$TopItemTableOrderingComposer,
+          $$TopItemTableAnnotationComposer,
+          $$TopItemTableCreateCompanionBuilder,
+          $$TopItemTableUpdateCompanionBuilder,
+          (
+            TopItemData,
+            BaseReferences<_$AppDatabase, $TopItemTable, TopItemData>,
+          ),
+          TopItemData,
+          PrefetchHooks Function()
+        > {
+  $$TopItemTableTableManager(_$AppDatabase db, $TopItemTable table)
+    : super(
+        TableManagerState(
+          db: db,
+          table: table,
+          createFilteringComposer: () =>
+              $$TopItemTableFilterComposer($db: db, $table: table),
+          createOrderingComposer: () =>
+              $$TopItemTableOrderingComposer($db: db, $table: table),
+          createComputedFieldComposer: () =>
+              $$TopItemTableAnnotationComposer($db: db, $table: table),
+          updateCompanionCallback:
+              ({
+                Value<int> idArticolo = const Value.absent(),
+                Value<String?> codArticolo = const Value.absent(),
+                Value<String?> descrizione = const Value.absent(),
+                Value<double?> totale = const Value.absent(),
+              }) => TopItemCompanion(
+                idArticolo: idArticolo,
+                codArticolo: codArticolo,
+                descrizione: descrizione,
+                totale: totale,
+              ),
+          createCompanionCallback:
+              ({
+                required int idArticolo,
+                Value<String?> codArticolo = const Value.absent(),
+                Value<String?> descrizione = const Value.absent(),
+                Value<double?> totale = const Value.absent(),
+              }) => TopItemCompanion.insert(
+                idArticolo: idArticolo,
+                codArticolo: codArticolo,
+                descrizione: descrizione,
+                totale: totale,
+              ),
+          withReferenceMapper: (p0) => p0
+              .map((e) => (e.readTable(table), BaseReferences(db, table, e)))
+              .toList(),
+          prefetchHooksCallback: null,
+        ),
+      );
+}
+
+typedef $$TopItemTableProcessedTableManager =
+    ProcessedTableManager<
+      _$AppDatabase,
+      $TopItemTable,
+      TopItemData,
+      $$TopItemTableFilterComposer,
+      $$TopItemTableOrderingComposer,
+      $$TopItemTableAnnotationComposer,
+      $$TopItemTableCreateCompanionBuilder,
+      $$TopItemTableUpdateCompanionBuilder,
+      (TopItemData, BaseReferences<_$AppDatabase, $TopItemTable, TopItemData>),
+      TopItemData,
+      PrefetchHooks Function()
+    >;
+typedef $$TopCustomerTableCreateCompanionBuilder =
+    TopCustomerCompanion Function({
+      required int idCliente,
+      Value<String?> codCliente,
+      Value<String?> ragioneSociale,
+      Value<double?> totale,
+    });
+typedef $$TopCustomerTableUpdateCompanionBuilder =
+    TopCustomerCompanion Function({
+      Value<int> idCliente,
+      Value<String?> codCliente,
+      Value<String?> ragioneSociale,
+      Value<double?> totale,
+    });
+
+class $$TopCustomerTableFilterComposer
+    extends Composer<_$AppDatabase, $TopCustomerTable> {
+  $$TopCustomerTableFilterComposer({
+    required super.$db,
+    required super.$table,
+    super.joinBuilder,
+    super.$addJoinBuilderToRootComposer,
+    super.$removeJoinBuilderFromRootComposer,
+  });
+  ColumnFilters<int> get idCliente => $composableBuilder(
+    column: $table.idCliente,
+    builder: (column) => ColumnFilters(column),
+  );
+
+  ColumnFilters<String> get codCliente => $composableBuilder(
+    column: $table.codCliente,
+    builder: (column) => ColumnFilters(column),
+  );
+
+  ColumnFilters<String> get ragioneSociale => $composableBuilder(
+    column: $table.ragioneSociale,
+    builder: (column) => ColumnFilters(column),
+  );
+
+  ColumnFilters<double> get totale => $composableBuilder(
+    column: $table.totale,
+    builder: (column) => ColumnFilters(column),
+  );
+}
+
+class $$TopCustomerTableOrderingComposer
+    extends Composer<_$AppDatabase, $TopCustomerTable> {
+  $$TopCustomerTableOrderingComposer({
+    required super.$db,
+    required super.$table,
+    super.joinBuilder,
+    super.$addJoinBuilderToRootComposer,
+    super.$removeJoinBuilderFromRootComposer,
+  });
+  ColumnOrderings<int> get idCliente => $composableBuilder(
+    column: $table.idCliente,
+    builder: (column) => ColumnOrderings(column),
+  );
+
+  ColumnOrderings<String> get codCliente => $composableBuilder(
+    column: $table.codCliente,
+    builder: (column) => ColumnOrderings(column),
+  );
+
+  ColumnOrderings<String> get ragioneSociale => $composableBuilder(
+    column: $table.ragioneSociale,
+    builder: (column) => ColumnOrderings(column),
+  );
+
+  ColumnOrderings<double> get totale => $composableBuilder(
+    column: $table.totale,
+    builder: (column) => ColumnOrderings(column),
+  );
+}
+
+class $$TopCustomerTableAnnotationComposer
+    extends Composer<_$AppDatabase, $TopCustomerTable> {
+  $$TopCustomerTableAnnotationComposer({
+    required super.$db,
+    required super.$table,
+    super.joinBuilder,
+    super.$addJoinBuilderToRootComposer,
+    super.$removeJoinBuilderFromRootComposer,
+  });
+  GeneratedColumn<int> get idCliente =>
+      $composableBuilder(column: $table.idCliente, builder: (column) => column);
+
+  GeneratedColumn<String> get codCliente => $composableBuilder(
+    column: $table.codCliente,
+    builder: (column) => column,
+  );
+
+  GeneratedColumn<String> get ragioneSociale => $composableBuilder(
+    column: $table.ragioneSociale,
+    builder: (column) => column,
+  );
+
+  GeneratedColumn<double> get totale =>
+      $composableBuilder(column: $table.totale, builder: (column) => column);
+}
+
+class $$TopCustomerTableTableManager
+    extends
+        RootTableManager<
+          _$AppDatabase,
+          $TopCustomerTable,
+          TopCustomerData,
+          $$TopCustomerTableFilterComposer,
+          $$TopCustomerTableOrderingComposer,
+          $$TopCustomerTableAnnotationComposer,
+          $$TopCustomerTableCreateCompanionBuilder,
+          $$TopCustomerTableUpdateCompanionBuilder,
+          (
+            TopCustomerData,
+            BaseReferences<_$AppDatabase, $TopCustomerTable, TopCustomerData>,
+          ),
+          TopCustomerData,
+          PrefetchHooks Function()
+        > {
+  $$TopCustomerTableTableManager(_$AppDatabase db, $TopCustomerTable table)
+    : super(
+        TableManagerState(
+          db: db,
+          table: table,
+          createFilteringComposer: () =>
+              $$TopCustomerTableFilterComposer($db: db, $table: table),
+          createOrderingComposer: () =>
+              $$TopCustomerTableOrderingComposer($db: db, $table: table),
+          createComputedFieldComposer: () =>
+              $$TopCustomerTableAnnotationComposer($db: db, $table: table),
+          updateCompanionCallback:
+              ({
+                Value<int> idCliente = const Value.absent(),
+                Value<String?> codCliente = const Value.absent(),
+                Value<String?> ragioneSociale = const Value.absent(),
+                Value<double?> totale = const Value.absent(),
+              }) => TopCustomerCompanion(
+                idCliente: idCliente,
+                codCliente: codCliente,
+                ragioneSociale: ragioneSociale,
+                totale: totale,
+              ),
+          createCompanionCallback:
+              ({
+                required int idCliente,
+                Value<String?> codCliente = const Value.absent(),
+                Value<String?> ragioneSociale = const Value.absent(),
+                Value<double?> totale = const Value.absent(),
+              }) => TopCustomerCompanion.insert(
+                idCliente: idCliente,
+                codCliente: codCliente,
+                ragioneSociale: ragioneSociale,
+                totale: totale,
+              ),
+          withReferenceMapper: (p0) => p0
+              .map((e) => (e.readTable(table), BaseReferences(db, table, e)))
+              .toList(),
+          prefetchHooksCallback: null,
+        ),
+      );
+}
+
+typedef $$TopCustomerTableProcessedTableManager =
+    ProcessedTableManager<
+      _$AppDatabase,
+      $TopCustomerTable,
+      TopCustomerData,
+      $$TopCustomerTableFilterComposer,
+      $$TopCustomerTableOrderingComposer,
+      $$TopCustomerTableAnnotationComposer,
+      $$TopCustomerTableCreateCompanionBuilder,
+      $$TopCustomerTableUpdateCompanionBuilder,
+      (
+        TopCustomerData,
+        BaseReferences<_$AppDatabase, $TopCustomerTable, TopCustomerData>,
+      ),
+      TopCustomerData,
+      PrefetchHooks Function()
+    >;
+
+class $AppDatabaseManager {
+  final _$AppDatabase _db;
+  $AppDatabaseManager(this._db);
+  $$AgentiTableTableManager get agenti =>
+      $$AgentiTableTableManager(_db, _db.agenti);
+  $$ArticoliTableTableManager get articoli =>
+      $$ArticoliTableTableManager(_db, _db.articoli);
+  $$ClientiTableTableManager get clienti =>
+      $$ClientiTableTableManager(_db, _db.clienti);
+  $$OrdiniTableTableManager get ordini =>
+      $$OrdiniTableTableManager(_db, _db.ordini);
+  $$RigheOrdineTableTableManager get righeOrdine =>
+      $$RigheOrdineTableTableManager(_db, _db.righeOrdine);
+  $$FilialiTableTableManager get filiali =>
+      $$FilialiTableTableManager(_db, _db.filiali);
+  $$ListiniTableTableManager get listini =>
+      $$ListiniTableTableManager(_db, _db.listini);
+  $$ListiniArticoloTableTableManager get listiniArticolo =>
+      $$ListiniArticoloTableTableManager(_db, _db.listiniArticolo);
+  $$ListiniClienteTableTableManager get listiniCliente =>
+      $$ListiniClienteTableTableManager(_db, _db.listiniCliente);
+  $$ScontiTableTableManager get sconti =>
+      $$ScontiTableTableManager(_db, _db.sconti);
+  $$ScontiClienteTableTableManager get scontiCliente =>
+      $$ScontiClienteTableTableManager(_db, _db.scontiCliente);
+  $$PagamentiTableTableManager get pagamenti =>
+      $$PagamentiTableTableManager(_db, _db.pagamenti);
+  $$ParametriTableTableManager get parametri =>
+      $$ParametriTableTableManager(_db, _db.parametri);
+  $$TabelleTableTableManager get tabelle =>
+      $$TabelleTableTableManager(_db, _db.tabelle);
+  $$PromozioniTableTableManager get promozioni =>
+      $$PromozioniTableTableManager(_db, _db.promozioni);
+  $$PromoArticoliTableTableManager get promoArticoli =>
+      $$PromoArticoliTableTableManager(_db, _db.promoArticoli);
+  $$PromoListiniTableTableManager get promoListini =>
+      $$PromoListiniTableTableManager(_db, _db.promoListini);
+  $$PromoOmaggiTableTableManager get promoOmaggi =>
+      $$PromoOmaggiTableTableManager(_db, _db.promoOmaggi);
+  $$ClientiAgenteTableTableManager get clientiAgente =>
+      $$ClientiAgenteTableTableManager(_db, _db.clientiAgente);
+  $$ScadenzeTableTableManager get scadenze =>
+      $$ScadenzeTableTableManager(_db, _db.scadenze);
+  $$StatisticheVenditaTableTableManager get statisticheVendita =>
+      $$StatisticheVenditaTableTableManager(_db, _db.statisticheVendita);
+  $$ArticoliConPromoTableTableManager get articoliConPromo =>
+      $$ArticoliConPromoTableTableManager(_db, _db.articoliConPromo);
+  $$OrdiniSenzaRigheTableTableManager get ordiniSenzaRighe =>
+      $$OrdiniSenzaRigheTableTableManager(_db, _db.ordiniSenzaRighe);
+  $$TopItemTableTableManager get topItem =>
+      $$TopItemTableTableManager(_db, _db.topItem);
+  $$TopCustomerTableTableManager get topCustomer =>
+      $$TopCustomerTableTableManager(_db, _db.topCustomer);
+}

+ 2 - 0
lib/database/db_connector.dart

@@ -0,0 +1,2 @@
+export 'db_connector_io.dart'
+    if (dart.library.html) 'db_connector_web.dart';

+ 33 - 0
lib/database/db_connector_io.dart

@@ -0,0 +1,33 @@
+import 'dart:io';
+import 'package:drift/native.dart';
+import 'package:drift/drift.dart';
+import 'package:path/path.dart' as p;
+import 'package:path_provider/path_provider.dart';
+import 'package:flutter/services.dart' show rootBundle;
+import '../core/constants.dart';
+
+QueryExecutor createDb(String dirPath, String dbName) {
+  return NativeDatabase(File(p.join(dirPath, dbName)));
+}
+
+Future<String> ensureDbReady() async {
+  final dir = await getApplicationDocumentsDirectory();
+  final dbFile = File(p.join(dir.path, AppConstants.kDbName));
+  if (!await dbFile.exists()) {
+    try {
+      final data = await rootBundle.load(AppConstants.kAssetsDbPath);
+      await dbFile.create(recursive: true);
+      await dbFile.writeAsBytes(data.buffer.asUint8List());
+    } catch (_) {
+      // No seed DB in assets, will create empty
+    }
+  }
+  return dir.path;
+}
+
+Future<bool> isDatabaseEmpty(String dirPath) async {
+  final dbFile = File(p.join(dirPath, AppConstants.kDbName));
+  if (!await dbFile.exists()) return true;
+  final stat = await dbFile.stat();
+  return stat.size < 1024;
+}

+ 14 - 0
lib/database/db_connector_web.dart

@@ -0,0 +1,14 @@
+import 'package:drift/drift.dart';
+import 'package:drift/web.dart';
+
+QueryExecutor createDb(String dirPath, String dbName) {
+  return WebDatabase(dbName);
+}
+
+Future<String> ensureDbReady() async {
+  return '';
+}
+
+Future<bool> isDatabaseEmpty(String dirPath) async {
+  return false;
+}

+ 23 - 0
lib/database/tables/agenti.dart

@@ -0,0 +1,23 @@
+import 'package:drift/drift.dart';
+
+@DataClassName('Agente')
+class Agenti extends Table {
+  IntColumn get idAgente => integer().autoIncrement()();
+  TextColumn get codAgente => text().named('codAgente')();
+  TextColumn get ragioneSociale => text().named('ragioneSociale').nullable()();
+  TextColumn get pwd => text().named('pwd').nullable()();
+  TextColumn get telefono => text().named('telefono').nullable()();
+  TextColumn get cellulare => text().named('cellulare').nullable()();
+  TextColumn get email => text().named('email').nullable()();
+  TextColumn get indirizzo => text().named('indirizzo').nullable()();
+  TextColumn get citta => text().named('citta').nullable()();
+  TextColumn get cap => text().named('cap').nullable()();
+  TextColumn get provincia => text().named('provincia').nullable()();
+  TextColumn get frazione => text().named('frazione').nullable()();
+  IntColumn get attivo => integer().named('attivo').withDefault(const Constant(1))();
+  IntColumn get modificaPrezzi => integer().named('modificaPrezzi').nullable()();
+  TextColumn get capoArea => text().named('capoArea').nullable()();
+
+  @override
+  String get tableName => 'Agenti';
+}

+ 33 - 0
lib/database/tables/articoli.dart

@@ -0,0 +1,33 @@
+import 'package:drift/drift.dart';
+
+@DataClassName('Articolo')
+class Articoli extends Table {
+  IntColumn get idArticolo => integer().autoIncrement()();
+  IntColumn get posizione => integer().named('posizione').nullable()();
+  TextColumn get codArticolo => text().named('codArticolo')();
+  TextColumn get descrizione => text().named('descrizione').nullable()();
+  TextColumn get ean => text().named('ean').nullable()();
+  IntColumn get idIva => integer().named('idIva').nullable()();
+  IntColumn get idClassifica1 => integer().named('idClassifica1').nullable()();
+  IntColumn get idClassifica2 => integer().named('idClassifica2').nullable()();
+  IntColumn get idClassifica3 => integer().named('idClassifica3').nullable()();
+  IntColumn get idClassifica4 => integer().named('idClassifica4').nullable()();
+  RealColumn get peso => real().named('peso').nullable()();
+  RealColumn get giacenza => real().named('giacenza').nullable()();
+  TextColumn get unitaMisura => text().named('unitaMisura').nullable()();
+  IntColumn get attivo => integer().named('attivo').withDefault(const Constant(1))();
+  IntColumn get nonDisponibile => integer().named('nonDisponibile').nullable()();
+  RealColumn get pezziConfezione => real().named('pezziConfezione').nullable()();
+  TextColumn get fileFoto => text().named('fileFoto').nullable()();
+  TextColumn get schedaProdotto => text().named('schedaProdotto').nullable()();
+  TextColumn get prezzoBase => text().named('prezzoBase').nullable()();
+  TextColumn get stato => text().named('stato').nullable()();
+  TextColumn get dataModifica => text().named('dataModifica').nullable()();
+  TextColumn get gruppo => text().named('gruppo').nullable()();
+  TextColumn get categoria => text().named('categoria').nullable()();
+  TextColumn get colliPerStrato => text().named('colliPerStrato').nullable()();
+  TextColumn get stratiPerPallet => text().named('stratiPerPallet').nullable()();
+
+  @override
+  String get tableName => 'Articoli';
+}

+ 41 - 0
lib/database/tables/clienti.dart

@@ -0,0 +1,41 @@
+import 'package:drift/drift.dart';
+
+@DataClassName('Cliente')
+class Clienti extends Table {
+  IntColumn get idCliente => integer().autoIncrement()();
+  IntColumn get idClienteRemoto => integer().named('idClienteRemoto').nullable()();
+  TextColumn get codCliente => text().named('codCliente').nullable()();
+  TextColumn get ragioneSociale => text().named('ragioneSociale').nullable()();
+  TextColumn get indirizzo => text().named('indirizzo').nullable()();
+  TextColumn get citta => text().named('citta').nullable()();
+  TextColumn get provincia => text().named('provincia').nullable()();
+  TextColumn get cap => text().named('cap').nullable()();
+  TextColumn get frazione => text().named('frazione').nullable()();
+  TextColumn get nazione => text().named('nazione').nullable()();
+  TextColumn get telefono => text().named('telefono').nullable()();
+  TextColumn get cellulare => text().named('cellulare').nullable()();
+  TextColumn get fax => text().named('fax').nullable()();
+  TextColumn get email => text().named('email').nullable()();
+  TextColumn get partitaIva => text().named('partitaIva').nullable()();
+  TextColumn get codiceFiscale => text().named('codiceFiscale').nullable()();
+  TextColumn get note => text().named('note').nullable()();
+  TextColumn get noteOrdine => text().named('noteOrdine').nullable()();
+  TextColumn get stato => text().named('stato').withDefault(const Constant('N'))();
+  IntColumn get attivo => integer().named('attivo').withDefault(const Constant(1))();
+  IntColumn get idPagamento => integer().named('idPagamento').nullable()();
+  IntColumn get idListino => integer().named('idListino').nullable()();
+  TextColumn get dataModifica => text().named('dataModifica').nullable()();
+  TextColumn get sdi => text().named('sdi').nullable()();
+  TextColumn get pec => text().named('pec').nullable()();
+  TextColumn get altreNote => text().named('altreNote').nullable()();
+  TextColumn get numeroCivico => text().named('numeroCivico').nullable()();
+  TextColumn get pod => text().named('pod').nullable()();
+  TextColumn get pdr => text().named('pdr').nullable()();
+  TextColumn get ubicazione => text().named('ubicazione').nullable()();
+  TextColumn get banca => text().named('banca').nullable()();
+  TextColumn get bancaFiliale => text().named('bancaFiliale').nullable()();
+  TextColumn get codBlocco => text().named('codBlocco').nullable()();
+
+  @override
+  String get tableName => 'Clienti';
+}

+ 12 - 0
lib/database/tables/clienti_agente.dart

@@ -0,0 +1,12 @@
+import 'package:drift/drift.dart';
+
+@DataClassName('ClientiAgenteData')
+class ClientiAgente extends Table {
+  IntColumn get idClientiAgente => integer().autoIncrement()();
+  IntColumn get idCliente => integer().named('idCliente')();
+  IntColumn get idAgente => integer().named('idAgente')();
+  IntColumn get attivo => integer().named('attivo').withDefault(const Constant(1))();
+
+  @override
+  String get tableName => 'Clienti_Agente';
+}

+ 27 - 0
lib/database/tables/filiali.dart

@@ -0,0 +1,27 @@
+import 'package:drift/drift.dart';
+
+@DataClassName('Filiale')
+class Filiali extends Table {
+  IntColumn get idFiliale => integer().autoIncrement()();
+  IntColumn get idFilialeRemoto => integer().named('idFilialeRemoto').nullable()();
+  IntColumn get idCliente => integer().named('idCliente').nullable()();
+  IntColumn get idAgente => integer().named('idAgente').nullable()();
+  TextColumn get codFiliale => text().named('codFiliale').nullable()();
+  TextColumn get descrizione => text().named('descrizione').nullable()();
+  TextColumn get indirizzo => text().named('indirizzo').nullable()();
+  TextColumn get citta => text().named('citta').nullable()();
+  TextColumn get provincia => text().named('provincia').nullable()();
+  TextColumn get cap => text().named('cap').nullable()();
+  TextColumn get frazione => text().named('frazione').nullable()();
+  TextColumn get nazione => text().named('nazione').nullable()();
+  TextColumn get telefono => text().named('telefono').nullable()();
+  TextColumn get cellulare => text().named('cellulare').nullable()();
+  TextColumn get fax => text().named('fax').nullable()();
+  TextColumn get email => text().named('email').nullable()();
+  TextColumn get stato => text().named('stato').nullable()();
+  IntColumn get attivo => integer().named('attivo').withDefault(const Constant(1))();
+  TextColumn get note => text().named('note').nullable()();
+
+  @override
+  String get tableName => 'Filiali';
+}

Vissa filer visades inte eftersom för många filer har ändrats