import ‘package:flutter/material.dart’; import ‘package:cloud_firestore/cloud_firestore.dart’; import ‘package:firebase_auth/firebase_auth.dart’; import ‘package:in_app_purchase/in_app_purchase.dart’; void main() { runApp(MyApp()); } class MyApp extends StatelessWidget { @override Widget build(BuildContext context) { return MaterialApp( title: ‘Portal dos Sonhos’, theme: ThemeData(primarySwatch: Colors.blue), home: HomePage(), ); } } class HomePage extends StatefulWidget { @override _HomePageState createState() => _HomePageState(); } class _HomePageState extends State { final TextEditingController _dreamController = TextEditingController(); final List _dreams = []; // Aqui vamos salvar os sonhos do usuário @override void initState() { super.initState(); } void _addDream() { String dream = _dreamController.text; if (dream.isNotEmpty) { setState(() { _dreams.add(dream); }); _dreamController.clear(); // Aqui você pode salvar o sonho no Firebase Firestore FirebaseFirestore.instance.collection(‘dreams’).add({ ‘dream’: dream, ‘user_id’: FirebaseAuth.instance.currentUser?.uid ?? ‘guest’, ‘timestamp’: Timestamp.now() }); } } void _showSubscriptionScreen() { Navigator.push( context, MaterialPageRoute(builder: (context) => SubscriptionPage()), ); } @override Widget build(BuildContext context) { return Scaffold( appBar: AppBar( title: Text(‘Portal dos Sonhos’), actions: [ IconButton( icon: Icon(Icons.lock_open), onPressed: _showSubscriptionScreen, ), ], ), body: Column( children: [ Padding( padding: const EdgeInsets.all(8.0), child: TextField( controller: _dreamController, decoration: InputDecoration( labelText: ‘Digite seu sonho aqui…’, border: OutlineInputBorder(), ), ), ), ElevatedButton( onPressed: _addDream, child: Text(‘Adicionar Sonho’), ), Expanded( child: ListView.builder( itemCount: _dreams.length, itemBuilder: (context, index) { return ListTile( title: Text(_dreams[index]), ); }, ), ), ], ), ); } } class SubscriptionPage extends StatelessWidget { void _subscribe() { // Aqui vai o código para ativar a assinatura InAppPurchase.instance.buyNonConsumable( purchaseParam: PurchaseParam(productDetails: ProductDetails( id: ‘premium_subscription’, title: ‘Assinatura Premium’, description: ‘Desbloqueie interpretações personalizadas’, )), ); } @override Widget build(BuildContext context) { return Scaffold( appBar: AppBar(title: Text(‘Assinatura Premium’)), body: Padding( padding: EdgeInsets.all(16.0), child: Column( crossAxisAlignment: CrossAxisAlignment.stretch, children: [ Text( ‘Desbloqueie benefícios exclusivos:’, style: TextStyle(fontSize: 18, fontWeight: FontWeight.bold), ), SizedBox(height: 10), Text(‘- Interpretação personalizada de sonhos.’), Text(‘- Relatórios de sonhos recorrentes.’), Text(‘- Consultoria com especialistas.’), SizedBox(height: 20), ElevatedButton( onPressed: _subscribe, child: Text(‘Assinar Agora’), ), ], ), ), ); } }