diff --git a/.gitattributes b/.gitattributes
new file mode 100644
index 0000000..dfe0770
--- /dev/null
+++ b/.gitattributes
@@ -0,0 +1,2 @@
+# Auto detect text files and perform LF normalization
+* text=auto
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..24476c5
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,44 @@
+# Miscellaneous
+*.class
+*.log
+*.pyc
+*.swp
+.DS_Store
+.atom/
+.buildlog/
+.history
+.svn/
+migrate_working_dir/
+
+# IntelliJ related
+*.iml
+*.ipr
+*.iws
+.idea/
+
+# The .vscode folder contains launch configuration and tasks you configure in
+# VS Code which you may wish to be included in version control, so this line
+# is commented out by default.
+#.vscode/
+
+# Flutter/Dart/Pub related
+**/doc/api/
+**/ios/Flutter/.last_build_id
+.dart_tool/
+.flutter-plugins
+.flutter-plugins-dependencies
+.packages
+.pub-cache/
+.pub/
+/build/
+
+# Symbolication related
+app.*.symbols
+
+# Obfuscation related
+app.*.map.json
+
+# Android Studio will place build artifacts here
+/android/app/debug
+/android/app/profile
+/android/app/release
diff --git a/.metadata b/.metadata
new file mode 100644
index 0000000..ff2d6f1
--- /dev/null
+++ b/.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: "2e9cb0aa71a386a91f73f7088d115c0d96654829"
+ channel: "stable"
+
+project_type: app
+
+# Tracks metadata for the flutter migrate command
+migration:
+ platforms:
+ - platform: root
+ create_revision: 2e9cb0aa71a386a91f73f7088d115c0d96654829
+ base_revision: 2e9cb0aa71a386a91f73f7088d115c0d96654829
+ - platform: android
+ create_revision: 2e9cb0aa71a386a91f73f7088d115c0d96654829
+ base_revision: 2e9cb0aa71a386a91f73f7088d115c0d96654829
+ - platform: ios
+ create_revision: 2e9cb0aa71a386a91f73f7088d115c0d96654829
+ base_revision: 2e9cb0aa71a386a91f73f7088d115c0d96654829
+ - platform: linux
+ create_revision: 2e9cb0aa71a386a91f73f7088d115c0d96654829
+ base_revision: 2e9cb0aa71a386a91f73f7088d115c0d96654829
+ - platform: macos
+ create_revision: 2e9cb0aa71a386a91f73f7088d115c0d96654829
+ base_revision: 2e9cb0aa71a386a91f73f7088d115c0d96654829
+ - platform: web
+ create_revision: 2e9cb0aa71a386a91f73f7088d115c0d96654829
+ base_revision: 2e9cb0aa71a386a91f73f7088d115c0d96654829
+ - platform: windows
+ create_revision: 2e9cb0aa71a386a91f73f7088d115c0d96654829
+ base_revision: 2e9cb0aa71a386a91f73f7088d115c0d96654829
+
+ # 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'
diff --git a/LICENSE b/LICENSE
new file mode 100644
index 0000000..1b8cef1
--- /dev/null
+++ b/LICENSE
@@ -0,0 +1,21 @@
+MIT License
+
+Copyright (c) 2024 Pedro Pontes
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
diff --git a/README.md b/README.md
index c747d37..fa2e4d3 100644
--- a/README.md
+++ b/README.md
@@ -1 +1,53 @@
-Descrição: [desafio_flutter.pdf](./desafio_flutter.pdf)
+# Wattio
+
+Teste Flutter Wattio
+
+## Visão Geral
+
+O Aplicativo Wattio é uma aplicação Flutter onde o usuário insere alguns dados sobre si mesmo e, com base nesses dados, recebe diferentes ofertas das cooperativas pré-cadastradas. As ofertas são listadas de acordo com as condições de cada cooperativa, se os dados que o usuário inseriu combinam com elas. Após receber as ofertas, o usuário escolhe uma e a aplicação mostra a economia que ele vai ganhar com essa oferta.
+
+## Imagens screen
+
+
+
+
+
+
+## test unitario screen
+
+
+
+## Como Usar
+
+### Pré-requisitos
+
+- Flutter 3.10.6
+- Dart 3.0.6
+
+### Instalação
+
+1. Clone o repositório:
+
+ ```bash
+ git clone https://github.com/pontes2014/wattio-frontend-desafio
+ ```
+
+2. Navegue até o diretório do projeto:
+
+ ```bash
+ cd seu-repositorio
+ ```
+
+3. Execute os comandos:
+
+ ```bash
+ flutter pub get
+ flutter run
+ ```
+
+Agora você pode abrir o aplicativo no seu dispositivo ou emulador.
+
+## Licença
+
+@pontes2014
+
diff --git a/analysis_options.yaml b/analysis_options.yaml
new file mode 100644
index 0000000..0d29021
--- /dev/null
+++ b/analysis_options.yaml
@@ -0,0 +1,28 @@
+# This file configures the analyzer, which statically analyzes Dart code to
+# check for errors, warnings, and lints.
+#
+# The issues identified by the analyzer are surfaced in the UI of Dart-enabled
+# IDEs (https://dart.dev/tools#ides-and-editors). The analyzer can also be
+# invoked from the command line by running `flutter analyze`.
+
+# The following line activates a set of recommended lints for Flutter apps,
+# packages, and plugins designed to encourage good coding practices.
+include: package:flutter_lints/flutter.yaml
+
+linter:
+ # The lint rules applied to this project can be customized in the
+ # section below to disable rules from the `package:flutter_lints/flutter.yaml`
+ # included above or to enable additional rules. A list of all available lints
+ # and their documentation is published at https://dart.dev/lints.
+ #
+ # Instead of disabling a lint rule for the entire project in the
+ # section below, it can also be suppressed for a single line of code
+ # or a specific dart file by using the `// ignore: name_of_lint` and
+ # `// ignore_for_file: name_of_lint` syntax on the line or in the file
+ # producing the lint.
+ rules:
+ # avoid_print: false # Uncomment to disable the `avoid_print` rule
+ # prefer_single_quotes: true # Uncomment to enable the `prefer_single_quotes` rule
+
+# Additional information about this file can be found at
+# https://dart.dev/guides/language/analysis-options
diff --git a/android/.gitignore b/android/.gitignore
new file mode 100644
index 0000000..6f56801
--- /dev/null
+++ b/android/.gitignore
@@ -0,0 +1,13 @@
+gradle-wrapper.jar
+/.gradle
+/captures/
+/gradlew
+/gradlew.bat
+/local.properties
+GeneratedPluginRegistrant.java
+
+# Remember to never publicly share your keystore.
+# See https://flutter.dev/docs/deployment/android#reference-the-keystore-from-the-app
+key.properties
+**/*.keystore
+**/*.jks
diff --git a/android/app/build.gradle b/android/app/build.gradle
new file mode 100644
index 0000000..6ecea00
--- /dev/null
+++ b/android/app/build.gradle
@@ -0,0 +1,67 @@
+plugins {
+ id "com.android.application"
+ id "kotlin-android"
+ id "dev.flutter.flutter-gradle-plugin"
+}
+
+def localProperties = new Properties()
+def localPropertiesFile = rootProject.file('local.properties')
+if (localPropertiesFile.exists()) {
+ localPropertiesFile.withReader('UTF-8') { reader ->
+ localProperties.load(reader)
+ }
+}
+
+def flutterVersionCode = localProperties.getProperty('flutter.versionCode')
+if (flutterVersionCode == null) {
+ flutterVersionCode = '1'
+}
+
+def flutterVersionName = localProperties.getProperty('flutter.versionName')
+if (flutterVersionName == null) {
+ flutterVersionName = '1.0'
+}
+
+android {
+ namespace "com.example.wattio_test"
+ compileSdkVersion flutter.compileSdkVersion
+ ndkVersion flutter.ndkVersion
+
+ compileOptions {
+ sourceCompatibility JavaVersion.VERSION_1_8
+ targetCompatibility JavaVersion.VERSION_1_8
+ }
+
+ kotlinOptions {
+ jvmTarget = '1.8'
+ }
+
+ sourceSets {
+ main.java.srcDirs += 'src/main/kotlin'
+ }
+
+ defaultConfig {
+ // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).
+ applicationId "com.example.wattio_test"
+ // You can update the following values to match your application needs.
+ // For more information, see: https://docs.flutter.dev/deployment/android#reviewing-the-gradle-build-configuration.
+ minSdkVersion flutter.minSdkVersion
+ targetSdkVersion flutter.targetSdkVersion
+ versionCode flutterVersionCode.toInteger()
+ versionName flutterVersionName
+ }
+
+ 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.debug
+ }
+ }
+}
+
+flutter {
+ source '../..'
+}
+
+dependencies {}
diff --git a/android/app/src/debug/AndroidManifest.xml b/android/app/src/debug/AndroidManifest.xml
new file mode 100644
index 0000000..399f698
--- /dev/null
+++ b/android/app/src/debug/AndroidManifest.xml
@@ -0,0 +1,7 @@
+
+
+
+
diff --git a/android/app/src/main/AndroidManifest.xml b/android/app/src/main/AndroidManifest.xml
new file mode 100644
index 0000000..6c369c3
--- /dev/null
+++ b/android/app/src/main/AndroidManifest.xml
@@ -0,0 +1,34 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/android/app/src/main/kotlin/com/example/wattio_test/MainActivity.kt b/android/app/src/main/kotlin/com/example/wattio_test/MainActivity.kt
new file mode 100644
index 0000000..05365b1
--- /dev/null
+++ b/android/app/src/main/kotlin/com/example/wattio_test/MainActivity.kt
@@ -0,0 +1,6 @@
+package com.example.wattio_test
+
+import io.flutter.embedding.android.FlutterActivity
+
+class MainActivity: FlutterActivity() {
+}
diff --git a/android/app/src/main/res/drawable-v21/launch_background.xml b/android/app/src/main/res/drawable-v21/launch_background.xml
new file mode 100644
index 0000000..f74085f
--- /dev/null
+++ b/android/app/src/main/res/drawable-v21/launch_background.xml
@@ -0,0 +1,12 @@
+
+
+
+
+
+
+
+
diff --git a/android/app/src/main/res/drawable/launch_background.xml b/android/app/src/main/res/drawable/launch_background.xml
new file mode 100644
index 0000000..304732f
--- /dev/null
+++ b/android/app/src/main/res/drawable/launch_background.xml
@@ -0,0 +1,12 @@
+
+
+
+
+
+
+
+
diff --git a/android/app/src/main/res/mipmap-hdpi/ic_launcher.png b/android/app/src/main/res/mipmap-hdpi/ic_launcher.png
new file mode 100644
index 0000000..db77bb4
Binary files /dev/null and b/android/app/src/main/res/mipmap-hdpi/ic_launcher.png differ
diff --git a/android/app/src/main/res/mipmap-mdpi/ic_launcher.png b/android/app/src/main/res/mipmap-mdpi/ic_launcher.png
new file mode 100644
index 0000000..17987b7
Binary files /dev/null and b/android/app/src/main/res/mipmap-mdpi/ic_launcher.png differ
diff --git a/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png b/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png
new file mode 100644
index 0000000..09d4391
Binary files /dev/null and b/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png differ
diff --git a/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png b/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png
new file mode 100644
index 0000000..d5f1c8d
Binary files /dev/null and b/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png differ
diff --git a/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png b/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png
new file mode 100644
index 0000000..4d6372e
Binary files /dev/null and b/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png differ
diff --git a/android/app/src/main/res/values-night/styles.xml b/android/app/src/main/res/values-night/styles.xml
new file mode 100644
index 0000000..06952be
--- /dev/null
+++ b/android/app/src/main/res/values-night/styles.xml
@@ -0,0 +1,18 @@
+
+
+
+
+
+
+
diff --git a/android/app/src/main/res/values/styles.xml b/android/app/src/main/res/values/styles.xml
new file mode 100644
index 0000000..cb1ef88
--- /dev/null
+++ b/android/app/src/main/res/values/styles.xml
@@ -0,0 +1,18 @@
+
+
+
+
+
+
+
diff --git a/android/app/src/profile/AndroidManifest.xml b/android/app/src/profile/AndroidManifest.xml
new file mode 100644
index 0000000..399f698
--- /dev/null
+++ b/android/app/src/profile/AndroidManifest.xml
@@ -0,0 +1,7 @@
+
+
+
+
diff --git a/android/build.gradle b/android/build.gradle
new file mode 100644
index 0000000..e83fb5d
--- /dev/null
+++ b/android/build.gradle
@@ -0,0 +1,30 @@
+buildscript {
+ ext.kotlin_version = '1.7.10'
+ repositories {
+ google()
+ mavenCentral()
+ }
+
+ dependencies {
+ classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
+ }
+}
+
+allprojects {
+ repositories {
+ google()
+ mavenCentral()
+ }
+}
+
+rootProject.buildDir = '../build'
+subprojects {
+ project.buildDir = "${rootProject.buildDir}/${project.name}"
+}
+subprojects {
+ project.evaluationDependsOn(':app')
+}
+
+tasks.register("clean", Delete) {
+ delete rootProject.buildDir
+}
diff --git a/android/gradle.properties b/android/gradle.properties
new file mode 100644
index 0000000..598d13f
--- /dev/null
+++ b/android/gradle.properties
@@ -0,0 +1,3 @@
+org.gradle.jvmargs=-Xmx4G
+android.useAndroidX=true
+android.enableJetifier=true
diff --git a/android/gradle/wrapper/gradle-wrapper.properties b/android/gradle/wrapper/gradle-wrapper.properties
new file mode 100644
index 0000000..3c472b9
--- /dev/null
+++ b/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-7.5-all.zip
diff --git a/android/settings.gradle b/android/settings.gradle
new file mode 100644
index 0000000..7cd7128
--- /dev/null
+++ b/android/settings.gradle
@@ -0,0 +1,29 @@
+pluginManagement {
+ def flutterSdkPath = {
+ def properties = new Properties()
+ file("local.properties").withInputStream { properties.load(it) }
+ def flutterSdkPath = properties.getProperty("flutter.sdk")
+ assert flutterSdkPath != null, "flutter.sdk not set in local.properties"
+ return flutterSdkPath
+ }
+ settings.ext.flutterSdkPath = flutterSdkPath()
+
+ includeBuild("${settings.ext.flutterSdkPath}/packages/flutter_tools/gradle")
+
+ repositories {
+ google()
+ mavenCentral()
+ gradlePluginPortal()
+ }
+
+ plugins {
+ id "dev.flutter.flutter-gradle-plugin" version "1.0.0" apply false
+ }
+}
+
+plugins {
+ id "dev.flutter.flutter-plugin-loader" version "1.0.0"
+ id "com.android.application" version "7.3.0" apply false
+}
+
+include ":app"
diff --git a/assets/images/calculadora.png b/assets/images/calculadora.png
new file mode 100644
index 0000000..b0cb985
Binary files /dev/null and b/assets/images/calculadora.png differ
diff --git a/assets/images/companhia.png b/assets/images/companhia.png
new file mode 100644
index 0000000..53b6858
Binary files /dev/null and b/assets/images/companhia.png differ
diff --git a/assets/images/consumo-de-energia.png b/assets/images/consumo-de-energia.png
new file mode 100644
index 0000000..c348b07
Binary files /dev/null and b/assets/images/consumo-de-energia.png differ
diff --git a/assets/images/desconto.png b/assets/images/desconto.png
new file mode 100644
index 0000000..8ff63b1
Binary files /dev/null and b/assets/images/desconto.png differ
diff --git a/assets/images/economico.png b/assets/images/economico.png
new file mode 100644
index 0000000..b9aff69
Binary files /dev/null and b/assets/images/economico.png differ
diff --git a/assets/images/icon_energia.png b/assets/images/icon_energia.png
new file mode 100644
index 0000000..dfc5db4
Binary files /dev/null and b/assets/images/icon_energia.png differ
diff --git a/assets/images/livro.png b/assets/images/livro.png
new file mode 100644
index 0000000..def027e
Binary files /dev/null and b/assets/images/livro.png differ
diff --git a/assets/json/descontos_pf_empresas.json b/assets/json/descontos_pf_empresas.json
new file mode 100644
index 0000000..3ed9cdb
--- /dev/null
+++ b/assets/json/descontos_pf_empresas.json
@@ -0,0 +1,178 @@
+{
+ "empresas": [
+ {
+ "nome": "EnerLimpa",
+ "valorMinimoMensal": 100,
+ "valorMaximoMensal": 500,
+ "desconto": 5
+ },
+ {
+ "nome": "EcoEnergia",
+ "valorMinimoMensal": 180,
+ "valorMaximoMensal": 600,
+ "desconto": 4
+ },
+ {
+ "nome": "SustentaPower",
+ "valorMinimoMensal": 10,
+ "valorMaximoMensal": 700,
+ "desconto": 3
+ },
+ {
+ "nome": "GreenTech",
+ "valorMinimoMensal": 250,
+ "valorMaximoMensal": 800,
+ "desconto": 2
+ },
+ {
+ "nome": "RenovaEco",
+ "valorMinimoMensal": 170,
+ "valorMaximoMensal": 550,
+ "desconto": 5
+ },
+ {
+ "nome": "EcoPower",
+ "valorMinimoMensal": 190,
+ "valorMaximoMensal": 620,
+ "desconto": 4
+ },
+ {
+ "nome": "NaturezaViva",
+ "valorMinimoMensal": 220,
+ "valorMaximoMensal": 680,
+ "desconto": 3
+ },
+ {
+ "nome": "LimpEnergia",
+ "valorMinimoMensal": 280,
+ "valorMaximoMensal": 750,
+ "desconto": 2
+ },
+ {
+ "nome": "VerdeSustentável",
+ "valorMinimoMensal": 160,
+ "valorMaximoMensal": 530,
+ "desconto": 5
+ },
+ {
+ "nome": "EcoFriendlyPower",
+ "valorMinimoMensal": 200,
+ "valorMaximoMensal": 690,
+ "desconto": 4
+ },
+ {
+ "nome": "LimpaEnergia",
+ "valorMinimoMensal": 240,
+ "valorMaximoMensal": 770,
+ "desconto": 3
+ },
+ {
+ "nome": "SustainableSolutions",
+ "valorMinimoMensal": 210,
+ "valorMaximoMensal": 730,
+ "desconto": 2
+ },
+ {
+ "nome": "EnergiaVerde",
+ "valorMinimoMensal": 190,
+ "valorMaximoMensal": 620,
+ "desconto": 5
+ },
+ {
+ "nome": "CleanPowerCo",
+ "valorMinimoMensal": 160,
+ "valorMaximoMensal": 530,
+ "desconto": 4
+ },
+ {
+ "nome": "EcoSource",
+ "valorMinimoMensal": 230,
+ "valorMaximoMensal": 700,
+ "desconto": 3
+ },
+ {
+ "nome": "GreenGenius",
+ "valorMinimoMensal": 250,
+ "valorMaximoMensal": 780,
+ "desconto": 2
+ },
+ {
+ "nome": "RenewableEnergyCorp",
+ "valorMinimoMensal": 210,
+ "valorMaximoMensal": 730,
+ "desconto": 5
+ },
+ {
+ "nome": "PureEcoPower",
+ "valorMinimoMensal": 180,
+ "valorMaximoMensal": 600,
+ "desconto": 4
+ },
+ {
+ "nome": "GreenHarmony",
+ "valorMinimoMensal": 200,
+ "valorMaximoMensal": 650,
+ "desconto": 3
+ },
+ {
+ "nome": "EcoWave",
+ "valorMinimoMensal": 240,
+ "valorMaximoMensal": 720,
+ "desconto": 2
+ },
+ {
+ "nome": "CleanEnergySolutions",
+ "valorMinimoMensal": 170,
+ "valorMaximoMensal": 550,
+ "desconto": 5
+ },
+ {
+ "nome": "SustainablePowerCo",
+ "valorMinimoMensal": 230,
+ "valorMaximoMensal": 770,
+ "desconto": 4
+ },
+ {
+ "nome": "EcoBright",
+ "valorMinimoMensal": 210,
+ "valorMaximoMensal": 730,
+ "desconto": 3
+ },
+ {
+ "nome": "GreenEnergize",
+ "valorMinimoMensal": 190,
+ "valorMaximoMensal": 620,
+ "desconto": 2
+ },
+ {
+ "nome": "RenewablePowerSolutions",
+ "valorMinimoMensal": 160,
+ "valorMaximoMensal": 530,
+ "desconto": 5
+ },
+ {
+ "nome": "EcoSpark",
+ "valorMinimoMensal": 180,
+ "valorMaximoMensal": 600,
+ "desconto": 4
+ },
+ {
+ "nome": "PureGreenEnergy",
+ "valorMinimoMensal": 220,
+ "valorMaximoMensal": 680,
+ "desconto": 3
+ },
+ {
+ "nome": "GreenTechSolutions",
+ "valorMinimoMensal": 250,
+ "valorMaximoMensal": 800,
+ "desconto": 2
+ },
+ {
+ "nome": "EcoInnovate",
+ "valorMinimoMensal": 240,
+ "valorMaximoMensal": 720,
+ "desconto": 5
+ }
+ ]
+}
diff --git a/assets/json/descontos_pj_empresas.json b/assets/json/descontos_pj_empresas.json
new file mode 100644
index 0000000..49f8604
--- /dev/null
+++ b/assets/json/descontos_pj_empresas.json
@@ -0,0 +1,454 @@
+{
+ "empresas": [
+ {
+ "nome": "EnerLimpa",
+ "valorMinimoMensal": 1000,
+ "valorMaximoMensal": 2500,
+ "desconto": 8
+ },
+ {
+ "nome": "EcoEnergia",
+ "valorMinimoMensal": 1200,
+ "valorMaximoMensal": 2800,
+ "desconto": 10
+ },
+ {
+ "nome": "SustentaPower",
+ "valorMinimoMensal": 1300,
+ "valorMaximoMensal": 3000,
+ "desconto": 12
+ },
+ {
+ "nome": "GreenTech",
+ "valorMinimoMensal": 1100,
+ "valorMaximoMensal": 2600,
+ "desconto": 14
+ },
+ {
+ "nome": "RenovaEco",
+ "valorMinimoMensal": 1400,
+ "valorMaximoMensal": 3200,
+ "desconto": 16
+ },
+ {
+ "nome": "EcoPower",
+ "valorMinimoMensal": 1500,
+ "valorMaximoMensal": 3400,
+ "desconto": 18
+ },
+ {
+ "nome": "NaturezaViva",
+ "valorMinimoMensal": 1600,
+ "valorMaximoMensal": 3600,
+ "desconto": 20
+ },
+ {
+ "nome": "LimpEnergia",
+ "valorMinimoMensal": 1700,
+ "valorMaximoMensal": 3800,
+ "desconto": 22
+ },
+ {
+ "nome": "VerdeSustentável",
+ "valorMinimoMensal": 1800,
+ "valorMaximoMensal": 4000,
+ "desconto": 24
+ },
+ {
+ "nome": "EcoFriendlyPower",
+ "valorMinimoMensal": 1900,
+ "valorMaximoMensal": 4200,
+ "desconto": 26
+ },
+ {
+ "nome": "LimpaEnergia",
+ "valorMinimoMensal": 2000,
+ "valorMaximoMensal": 4400,
+ "desconto": 28
+ },
+ {
+ "nome": "SustainableSolutions",
+ "valorMinimoMensal": 2100,
+ "valorMaximoMensal": 4600,
+ "desconto": 30
+ },
+ {
+ "nome": "EnergiaVerde",
+ "valorMinimoMensal": 2200,
+ "valorMaximoMensal": 4800,
+ "desconto": 32
+ },
+ {
+ "nome": "CleanPowerCo",
+ "valorMinimoMensal": 2300,
+ "valorMaximoMensal": 5000,
+ "desconto": 34
+ },
+ {
+ "nome": "EcoSource",
+ "valorMinimoMensal": 2400,
+ "valorMaximoMensal": 5200,
+ "desconto": 36
+ },
+ {
+ "nome": "PontesEletricas",
+ "valorMinimoMensal": 100,
+ "valorMaximoMensal": 5200,
+ "desconto": 10
+ },
+ {
+ "nome": "GreenGenius",
+ "valorMinimoMensal": 2500,
+ "valorMaximoMensal": 5400,
+ "desconto": 38
+ },
+ {
+ "nome": "RenewableEnergyCorp",
+ "valorMinimoMensal": 2600,
+ "valorMaximoMensal": 5600,
+ "desconto": 40
+ },
+ {
+ "nome": "PureEcoPower",
+ "valorMinimoMensal": 2700,
+ "valorMaximoMensal": 5800,
+ "desconto": 42
+ },
+ {
+ "nome": "GreenHarmony",
+ "valorMinimoMensal": 2800,
+ "valorMaximoMensal": 6000,
+ "desconto": 43
+ },
+ {
+ "nome": "EcoWave",
+ "valorMinimoMensal": 2900,
+ "valorMaximoMensal": 6200,
+ "desconto": 42
+ },
+ {
+ "nome": "CleanEnergySolutions",
+ "valorMinimoMensal": 3000,
+ "valorMaximoMensal": 6400,
+ "desconto": 40
+ },
+ {
+ "nome": "SustainablePowerCo",
+ "valorMinimoMensal": 3100,
+ "valorMaximoMensal": 6600,
+ "desconto": 38
+ },
+ {
+ "nome": "EcoBright",
+ "valorMinimoMensal": 3200,
+ "valorMaximoMensal": 6800,
+ "desconto": 36
+ },
+ {
+ "nome": "GreenEnergize",
+ "valorMinimoMensal": 3300,
+ "valorMaximoMensal": 7000,
+ "desconto": 34
+ },
+ {
+ "nome": "RenewablePowerSolutions",
+ "valorMinimoMensal": 3400,
+ "valorMaximoMensal": 7200,
+ "desconto": 32
+ },
+ {
+ "nome": "EcoSpark",
+ "valorMinimoMensal": 3500,
+ "valorMaximoMensal": 7400,
+ "desconto": 30
+ },
+ {
+ "nome": "PureGreenEnergy",
+ "valorMinimoMensal": 3600,
+ "valorMaximoMensal": 7600,
+ "desconto": 28
+ },
+ {
+ "nome": "GreenTechSolutions",
+ "valorMinimoMensal": 3700,
+ "valorMaximoMensal": 7800,
+ "desconto": 26
+ },
+ {
+ "nome": "EcoInnovate",
+ "valorMinimoMensal": 3800,
+ "valorMaximoMensal": 8000,
+ "desconto": 24
+ },
+ {
+ "nome": "EcoMax",
+ "valorMinimoMensal": 3900,
+ "valorMaximoMensal": 8200,
+ "desconto": 22
+ },
+ {
+ "nome": "PowerSavings",
+ "valorMinimoMensal": 4000,
+ "valorMaximoMensal": 8400,
+ "desconto": 20
+ },
+ {
+ "nome": "EcoSolution",
+ "valorMinimoMensal": 4100,
+ "valorMaximoMensal": 8600,
+ "desconto": 18
+ },
+ {
+ "nome": "GreenEnergyGroup",
+ "valorMinimoMensal": 4200,
+ "valorMaximoMensal": 8800,
+ "desconto": 16
+ },
+ {
+ "nome": "RenewablePowerTech",
+ "valorMinimoMensal": 4300,
+ "valorMaximoMensal": 9000,
+ "desconto": 14
+ },
+ {
+ "nome": "EcoHarmony",
+ "valorMinimoMensal": 4400,
+ "valorMaximoMensal": 9200,
+ "desconto": 12
+ },
+ {
+ "nome": "SustainableEnergyCo",
+ "valorMinimoMensal": 4500,
+ "valorMaximoMensal": 9400,
+ "desconto": 10
+ },
+ {
+ "nome": "GreenTechInnovate",
+ "valorMinimoMensal": 4600,
+ "valorMaximoMensal": 9600,
+ "desconto": 8
+ },
+ {
+ "nome": "EcoPowerSolutions",
+ "valorMinimoMensal": 4700,
+ "valorMaximoMensal": 9800,
+ "desconto": 10
+ },
+ {
+ "nome": "RenewableEcoTech",
+ "valorMinimoMensal": 4800,
+ "valorMaximoMensal": 10000,
+ "desconto": 12
+ },
+ {
+ "nome": "EcoDynamic",
+ "valorMinimoMensal": 4900,
+ "valorMaximoMensal": 10200,
+ "desconto": 14
+ },
+ {
+ "nome": "GreenInnovators",
+ "valorMinimoMensal": 5000,
+ "valorMaximoMensal": 10400,
+ "desconto": 16
+ },
+ {
+ "nome": "EcoRevolution",
+ "valorMinimoMensal": 5100,
+ "valorMaximoMensal": 10600,
+ "desconto": 18
+ },
+ {
+ "nome": "EcoFuture",
+ "valorMinimoMensal": 5200,
+ "valorMaximoMensal": 10800,
+ "desconto": 20
+ },
+ {
+ "nome": "SustainableInnovate",
+ "valorMinimoMensal": 5300,
+ "valorMaximoMensal": 11000,
+ "desconto": 22
+ },
+ {
+ "nome": "GreenSolutions",
+ "valorMinimoMensal": 5400,
+ "valorMaximoMensal": 11200,
+ "desconto": 24
+ },
+ {
+ "nome": "EcoTechGroup",
+ "valorMinimoMensal": 5500,
+ "valorMaximoMensal": 11400,
+ "desconto": 26
+ },
+ {
+ "nome": "RenewableEnergyInnovate",
+ "valorMinimoMensal": 5600,
+ "valorMaximoMensal": 11600,
+ "desconto": 28
+ },
+ {
+ "nome": "EcoInnovation",
+ "valorMinimoMensal": 5700,
+ "valorMaximoMensal": 11800,
+ "desconto": 30
+ },
+ {
+ "nome": "GreenPowerTech",
+ "valorMinimoMensal": 5800,
+ "valorMaximoMensal": 12000,
+ "desconto": 32
+ },
+ {
+ "nome": "EcoHarvest",
+ "valorMinimoMensal": 5900,
+ "valorMaximoMensal": 12200,
+ "desconto": 34
+ },
+ {
+ "nome": "SustainableTech",
+ "valorMinimoMensal": 6000,
+ "valorMaximoMensal": 12400,
+ "desconto": 36
+ },
+ {
+ "nome": "GreenEcoSolutions",
+ "valorMinimoMensal": 6100,
+ "valorMaximoMensal": 12600,
+ "desconto": 38
+ },
+ {
+ "nome": "RenewableInnovate",
+ "valorMinimoMensal": 6200,
+ "valorMaximoMensal": 12800,
+ "desconto": 40
+ },
+ {
+ "nome": "EcoGenius",
+ "valorMinimoMensal": 6300,
+ "valorMaximoMensal": 13000,
+ "desconto": 42
+ },
+ {
+ "nome": "GreenPowerSolutions",
+ "valorMinimoMensal": 6400,
+ "valorMaximoMensal": 13200,
+ "desconto": 43
+ },
+ {
+ "nome": "EcoRenew",
+ "valorMinimoMensal": 6500,
+ "valorMaximoMensal": 13400,
+ "desconto": 42
+ },
+ {
+ "nome": "SustainableEnergyCo",
+ "valorMinimoMensal": 6600,
+ "valorMaximoMensal": 13600,
+ "desconto": 40
+ },
+ {
+ "nome": "GreenTechInnovate",
+ "valorMinimoMensal": 6700,
+ "valorMaximoMensal": 13800,
+ "desconto": 38
+ },
+ {
+ "nome": "EcoBright",
+ "valorMinimoMensal": 6800,
+ "valorMaximoMensal": 14000,
+ "desconto": 36
+ },
+ {
+ "nome": "GreenEnergize",
+ "valorMinimoMensal": 6900,
+ "valorMaximoMensal": 14200,
+ "desconto": 34
+ },
+ {
+ "nome": "EcoRevolution",
+ "valorMinimoMensal": 6400,
+ "valorMaximoMensal": 13200,
+ "desconto": 43
+ },
+ {
+ "nome": "EcoMax",
+ "valorMinimoMensal": 6500,
+ "valorMaximoMensal": 13400,
+ "desconto": 42
+ },
+ {
+ "nome": "PowerSavings",
+ "valorMinimoMensal": 6600,
+ "valorMaximoMensal": 13600,
+ "desconto": 4
+ },
+ {
+ "nome": "EcoSolution",
+ "valorMinimoMensal": 6700,
+ "valorMaximoMensal": 13800,
+ "desconto": 38
+ },
+ {
+ "nome": "GreenEnergyGroup",
+ "valorMinimoMensal": 6800,
+ "valorMaximoMensal": 14000,
+ "desconto": 36
+ },
+ {
+ "nome": "RenewablePowerTech",
+ "valorMinimoMensal": 6900,
+ "valorMaximoMensal": 14200,
+ "desconto": 34
+ },
+ {
+ "nome": "GreenEnergyGroup",
+ "valorMinimoMensal": 8000,
+ "valorMaximoMensal": 14200,
+ "desconto": 40
+ },
+ {
+ "nome": "RenewablePowerTech",
+ "valorMinimoMensal": 8300,
+ "valorMaximoMensal": 16000,
+ "desconto": 40
+ },
+ {
+ "nome": "EcoHarmony",
+ "valorMinimoMensal": 8400,
+ "valorMaximoMensal": 16000,
+ "desconto": 12
+ },
+ {
+ "nome": "SustainableEnergyCo",
+ "valorMinimoMensal": 9000,
+ "valorMaximoMensal": 19400,
+ "desconto": 54
+ },
+ {
+ "nome": "GreenTechInnovate",
+ "valorMinimoMensal": 9000,
+ "valorMaximoMensal": 19600,
+ "desconto": 8
+ },
+ {
+ "nome": "EcoPowerSolutions",
+ "valorMinimoMensal": 14700,
+ "valorMaximoMensal": 20000,
+ "desconto": 14
+ },
+ {
+ "nome": "RenewableEcoTech",
+ "valorMinimoMensal": 13800,
+ "valorMaximoMensal": 20000,
+ "desconto": 12
+ },
+ {
+ "nome": "EcoDynamic",
+ "valorMinimoMensal": 12900,
+ "valorMaximoMensal": 19200,
+ "desconto": 14
+ }
+ ]
+}
\ No newline at end of file
diff --git a/calculete_screen2.jpeg b/calculete_screen2.jpeg
new file mode 100644
index 0000000..99f5164
Binary files /dev/null and b/calculete_screen2.jpeg differ
diff --git a/empresas_screen.jpeg b/empresas_screen.jpeg
new file mode 100644
index 0000000..b7ed7df
Binary files /dev/null and b/empresas_screen.jpeg differ
diff --git a/initial_screen.jpeg b/initial_screen.jpeg
new file mode 100644
index 0000000..d7f78b8
Binary files /dev/null and b/initial_screen.jpeg differ
diff --git a/lib/data/repositories/api_service.dart.dart b/lib/data/repositories/api_service.dart.dart
new file mode 100644
index 0000000..a3cf6fd
--- /dev/null
+++ b/lib/data/repositories/api_service.dart.dart
@@ -0,0 +1,15 @@
+import 'dart:convert';
+import 'package:flutter/services.dart';
+
+class ApiService {
+ static Future> fetchData(String fileName) async {
+ try {
+ String data = await rootBundle.loadString('assets/json/$fileName');
+ return json.decode(data)['empresas'];
+ } catch (error) {
+ throw Exception('Failed to load data: $error');
+ }
+ }
+}
+
+
diff --git a/lib/data/repositories/desconto_repository.dart b/lib/data/repositories/desconto_repository.dart
new file mode 100644
index 0000000..47d2566
--- /dev/null
+++ b/lib/data/repositories/desconto_repository.dart
@@ -0,0 +1,22 @@
+import 'package:wattio_test/data/repositories/api_service.dart.dart';
+
+class DescontoRepository {
+ Future>> fetchDescontos(String tipoCliente) async {
+ try {
+ String fileName = tipoCliente == 'PF'
+ ? 'descontos_pf_empresas.json'
+ : 'descontos_pj_empresas.json';
+
+ List data = await ApiService.fetchData(fileName);
+
+ if (data.every((element) => element is Map)) {
+ return List