import 'package:flutter_bloc/flutter_bloc.dart'; import 'package:equatable/equatable.dart'; import 'package:get_it/get_it.dart'; import 'package:supabase_flutter/supabase_flutter.dart'; part 'company_events.dart'; part 'company_state.dart'; class CompanyBloc extends Bloc { final _supabase = GetIt.instance(); CompanyBloc() : super(const CompanyState(status: CompanyStatus.initial)) { on((event, emit) async { emit(const CompanyState(status: CompanyStatus.loading)); try { // Recuperiamo l'ID utente corrente da Supabase Auth final userId = _supabase.auth.currentUser!.id; await _supabase.from('company').insert({ 'user_id': userId, 'ragione_sociale': event.ragioneSociale, 'partita_iva': event.partitaIva, // Se il CF รจ vuoto, usa la P.IVA (logica salva-tempo per ditte individuali) 'codice_fiscale': event.codiceFiscale.isEmpty ? event.partitaIva : event.codiceFiscale, 'codice_univoco': event.codiceUnivoco, 'indirizzo': event.indirizzo, 'cap': event.cap, 'citta': event.citta, 'provincia': event.provincia, 'company_logo': event.companyLogo, 'is_paid': false, // Di default partono con trial/non pagato }); emit(const CompanyState(status: CompanyStatus.success)); } catch (e) { emit(CompanyState(status: CompanyStatus.failure, error: e.toString())); } }); } }