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’),
),
],
),
),
);
}
}