build_app

This commit is contained in:
risadmin_prod 2025-09-16 04:45:20 +00:00
parent d9042518dc
commit 65bfedd6ff
42 changed files with 6210 additions and 578 deletions

View File

@ -0,0 +1,6 @@
CREATE TABLE bflutter.Basicp1(id BIGINT NOT NULL AUTO_INCREMENT, textarea_field VARCHAR(400), paragraph_field VARCHAR(400), textarea VARCHAR(400), paragraph_field2 VARCHAR(400), phone_number2 VARCHAR(400), name VARCHAR(400), number1 int, phone_number VARCHAR(400), number2 int, name2 VARCHAR(400), password_field VARCHAR(400), textarea_field2 VARCHAR(400), PRIMARY KEY (id));
CREATE TABLE bflutter.Basicp2(id BIGINT NOT NULL AUTO_INCREMENT, datetime_field2 VARCHAR(400), about VARCHAR(400), datetime_field VARCHAR(400), userid_field VARCHAR(400), email_field2 VARCHAR(400), date_field Date, email_field VARCHAR(400), textarea2 VARCHAR(400), date_field2 Date, PRIMARY KEY (id));
CREATE TABLE bflutter.Basicp3(id BIGINT NOT NULL AUTO_INCREMENT, toggle_switch2 VARCHAR(400), decimal_field2 double, documentsequenc VARCHAR(400), toggle_switch VARCHAR(400), recaptcha VARCHAR(400), percentage_field int, percentage_field2 int, url_field VARCHAR(400), url_field2 VARCHAR(400), decimal_field double, recaptcha2 VARCHAR(400), PRIMARY KEY (id));

View File

@ -0,0 +1,120 @@
import 'dart:typed_data';
import 'package:dio/dio.dart';
import 'package:http_parser/http_parser.dart';
import '../../../../resources/api_constants.dart';
import '../../../../data/network/base_network_service.dart';
import '../../../../data/network/network_api_service.dart';
class Basicp1ApiService {
final String baseUrl = ApiConstants.baseUrl;
final BaseNetworkService _helper = NetworkApiService();
Future<List<Map<String, dynamic>>> getEntities() async {
try {
final response = await _helper.getGetApiResponse('$baseUrl/Basicp1/Basicp1');
final entities = (response as List).cast<Map<String, dynamic>>();
return entities;
} catch (e) {
throw Exception('Failed to get all entities: $e');
}
}
Future<List<Map<String, dynamic>>> getAllWithPagination(
int page, int size) async {
try {
final response =
await _helper.getGetApiResponse('$baseUrl/Basicp1/Basicp1/getall/page?page=$page&size=$size');
final entities =
(response['content'] as List).cast<Map<String, dynamic>>();
return entities;
} catch (e) {
throw Exception('Failed to get all without pagination: $e');
}
}
Future<Map<String, dynamic>> createEntity(
Map<String, dynamic> entity) async {
try {
print("in post api$entity");
final response =
await _helper.getPostApiResponse('$baseUrl/Basicp1/Basicp1', entity);
print(entity);
// Assuming the response is a Map<String, dynamic>
Map<String, dynamic> responseData = response;
return responseData;
} catch (e) {
throw Exception('Failed to create entity: $e');
}
}
Future<void> updateEntity( int entityId, Map<String, dynamic> entity) async {
try {
await _helper.getPutApiResponse('$baseUrl/Basicp1/Basicp1/$entityId',
entity); print(entity);
} catch (e) {
throw Exception('Failed to update entity: $e');
}
}
Future<void> deleteEntity( int entityId) async {
try {
await _helper.getDeleteApiResponse('$baseUrl/Basicp1/Basicp1/$entityId');
} catch (e) {
throw Exception('Failed to delete entity: $e');
}
}
}

View File

@ -0,0 +1,100 @@
// ignore_for_file: use_build_context_synchronously
import 'dart:convert';
import 'package:flutter/material.dart';
import 'package:file_picker/file_picker.dart';
import 'package:image_picker/image_picker.dart';
import 'package:provider/provider.dart';
import '../Basicp1_viewModel/Basicp1_view_model_screen.dart';
import 'Basicp1_fields.dart';import 'package:base_project/BuilderField/shared/ui/entity_screens.dart';
import '../../../../utils/image_constant.dart';
import '../../../../utils/size_utils.dart';
import '../../../../theme/app_style.dart';
import '../../../../widgets/app_bar/appbar_image.dart';
import '../../../../widgets/app_bar/appbar_title.dart';
import '../../../../widgets/app_bar/custom_app_bar.dart';
import '../../../../widgets/custom_button.dart';
import '../../../../widgets/custom_text_form_field.dart';
import '../../../../widgets/custom_dropdown_field.dart';
import 'dart:math';
import 'package:qr_flutter/qr_flutter.dart';
import 'package:barcode_widget/barcode_widget.dart';
import 'package:intl/intl.dart';
import 'package:autocomplete_textfield/autocomplete_textfield.dart';
import 'package:http/http.dart' as http;
import 'package:flutter/services.dart';
import 'package:image_picker/image_picker.dart';
import 'package:fluttertoast/fluttertoast.dart';
import '../../../../Reuseable/reusable_date_picker_field.dart';
import '../../../../Reuseable/reusable_date_time_picker_field.dart'
;import 'package:multi_select_flutter/multi_select_flutter.dart';
import 'package:just_audio/just_audio.dart';
import 'package:video_player/video_player.dart';
import 'package:google_fonts/google_fonts.dart';
import 'package:lottie/lottie.dart';
import '../../../../utils/toast_messages/toast_message_util.dart';
import 'dart:io';
import '../../../../Reuseable/reusable_text_field.dart';
import '../../../../Reuseable/reusable_dropdown_field.dart';
class Basicp1CreateEntityScreen extends StatefulWidget {
const Basicp1CreateEntityScreen({super.key});
@override
_Basicp1CreateEntityScreenState createState() => _Basicp1CreateEntityScreenState();
}
class _Basicp1CreateEntityScreenState extends State<Basicp1CreateEntityScreen> {
final Map<String, dynamic> formData = {};
final _formKey = GlobalKey<FormState>();
@override
Widget build(BuildContext context) {
return Consumer<Basicp1ViewModelScreen>(
builder: (context, viewModel, child) {
return EntityCreateScreen(
fields: Basicp1Fields.getFields(context),
onSubmit: (data) => _handleSubmit(data),
title: 'Basicp1',
isLoading: viewModel.isLoading,
errorMessage:
viewModel.errorMessage.isNotEmpty ? viewModel.errorMessage : null,
);
},
);
}
Future<void> _handleSubmit(Map<String, dynamic> formData) async {
final provider =
Provider.of<Basicp1ViewModelScreen>(context, listen: false);
final success = await provider.createEntity(formData);
if (success && mounted) {
Navigator.pop(context);
}
}
}

View File

@ -0,0 +1,108 @@
// ignore_for_file: use_build_context_synchronously
import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
import '../../../../BuilderField/shared/ui/entity_details.dart';
import '../Basicp1_viewModel/Basicp1_view_model_screen.dart';
import 'Basicp1_update_entity_screen.dart';
class Basicp1DetailsScreen extends StatefulWidget {
final Map<String, dynamic> entity;
const Basicp1DetailsScreen({
super.key,
required this.entity,
});
@override
State<Basicp1DetailsScreen> createState() => _Basicp1DetailsScreenState();
}
class _Basicp1DetailsScreenState extends State<Basicp1DetailsScreen> {
void _navigateToUpdateScreen(Map<String, dynamic> entity) {
Navigator.push(
context,
MaterialPageRoute(
builder: (context) => ChangeNotifierProvider(
create: (context) => Basicp1ViewModelScreen(),
child: Basicp1UpdateEntityScreen(entity: entity),
),
),
).then((_) {
// Refresh the details screen with updated data
setState(() {});
});
}
void _showDeleteDialog(Map<String, dynamic> entity) {
showDialog(
context: context,
builder: (BuildContext context) {
return AlertDialog(
title: const Text('Confirm Deletion'),
content: const Text('Are you sure you want to delete this Basicp1?'),
actions: [
TextButton(
child: const Text('Cancel'),
onPressed: () {
Navigator.of(context).pop();
},
),
TextButton(
child: const Text('Delete'),
onPressed: () async {
Navigator.of(context).pop();
final vm =
Provider.of<Basicp1ViewModelScreen>(context, listen: false);
final success = await vm.deleteEntity(entity['id']);
if (success && mounted) {
Navigator.pop(context); // Go back to list
}
},
),
],
);
},
);
}
@override
Widget build(BuildContext context) {
return Consumer<Basicp1ViewModelScreen>(
builder: (context, viewModel, child) {
return EntityDetails(
entity: widget.entity,
onEdit: (entity) => _navigateToUpdateScreen(entity),
onDelete: (entity) => _showDeleteDialog(entity),
title: 'Basicp1',
displayFields: [
{'key': 'name', 'label': 'name', 'type': 'text'},
{'key': 'name2', 'label': 'name2', 'type': 'text'},
{'key': 'number1', 'label': 'number1', 'type': 'number'},
{'key': 'number2', 'label': 'number2', 'type': 'number'},
{'key': 'phone_number', 'label': 'Phone Number', 'type': 'phone'},
{'key': 'phone_number2', 'label': 'Phone Number2', 'type': 'phone'},
{'key': 'paragraph_field', 'label': 'Paragraph Field', 'type': 'paragraph'},
{'key': 'paragraph_field2', 'label': 'Paragraph Field2', 'type': 'paragraph'},
{'key': 'password_field', 'label': 'Password Field', 'type': 'password'},
{'key': 'textarea', 'label': 'Textarea', 'type': 'textarea'},
{'key': 'textarea_field', 'label': 'Textarea Field', 'type': 'textarea'},
{'key': 'textarea_field2', 'label': 'Textarea Field2', 'type': 'textarea'},
],
isLoading: viewModel.isLoading,
);
},
);
}
}

View File

@ -0,0 +1,168 @@
// ignore_for_file: use_build_context_synchronously
import 'package:flutter/material.dart';
import 'package:intl/intl.dart';
import 'package:base_project/BuilderField/shared/ui/entity_list.dart';
import 'Basicp1_create_entity_screen.dart';
import 'Basicp1_update_entity_screen.dart';
import '../Basicp1_viewModel/Basicp1_view_model_screen.dart';
import 'Basicp1_details_screen.dart';import 'package:flutter/services.dart';
import 'package:speech_to_text/speech_to_text.dart' as stt;
import '../../../../theme/app_style.dart';
import '../../../../utils/size_utils.dart';
import '../../../../widgets/custom_icon_button.dart';
import '../../../../utils/image_constant.dart';
import '../../../../widgets/app_bar/appbar_image.dart';
import '../../../../widgets/app_bar/appbar_title.dart';
import '../../../../widgets/app_bar/custom_app_bar.dart';
import '../../../../theme/app_decoration.dart';
import 'package:multi_select_flutter/multi_select_flutter.dart';
import '../../../../Reuseable/reusable_text_field.dart';
import 'package:provider/provider.dart';
import '../../../../utils/toast_messages/toast_message_util.dart';
import 'package:fluttertoast/fluttertoast.dart';
class Basicp1_entity_list_screen extends StatefulWidget {
static const String routeName = '/entity-list';
@override
_Basicp1_entity_list_screenState createState() => _Basicp1_entity_list_screenState();
}
class _Basicp1_entity_list_screenState extends State<Basicp1_entity_list_screen> {
@override
void initState() {
super.initState();
_loadData();
}
void _loadData() {
WidgetsBinding.instance.addPostFrameCallback((_) {
if (mounted) {
final vm = Provider.of<Basicp1ViewModelScreen>(context, listen: false);
vm.getAllWithPagination(refresh: true);
}
});
}
void _navigateToCreateScreen() {
Navigator.push(
context,
MaterialPageRoute(
builder: (context) => ChangeNotifierProvider(
create: (context) => Basicp1ViewModelScreen(),
child: const Basicp1CreateEntityScreen(),
),
),
).then((_) {
final vm = Provider.of<Basicp1ViewModelScreen>(context, listen: false);
vm.refreshData();
});
}
void _navigateToUpdateScreen(Map<String, dynamic> entity) {
Navigator.push(
context,
MaterialPageRoute(
builder: (context) => ChangeNotifierProvider(
create: (context) => Basicp1ViewModelScreen(),
child: Basicp1UpdateEntityScreen(entity: entity),
),
),
).then((_) {
final vm = Provider.of<Basicp1ViewModelScreen>(context, listen: false);
vm.refreshData();
});
}
void _navigateToDetailsScreen(Map<String, dynamic> entity) {
Navigator.push(
context,
MaterialPageRoute(
builder: (context) => ChangeNotifierProvider(
create: (context) => Basicp1ViewModelScreen(),
child: Basicp1DetailsScreen(entity: entity),
),
),
);
}
void _showDeleteDialog(Map<String, dynamic> entity) {
final parentContext = context;
showDialog(
context: context,
builder: (BuildContext context) {
return AlertDialog(
title: const Text('Confirm Deletion'),
content: const Text('Are you sure you want to delete this Basicp1?'),
actions: [
TextButton(
child: const Text('Cancel'),
onPressed: () {
Navigator.of(context).pop();
},
),
TextButton(
child: const Text('Delete'),
onPressed: () async {
Navigator.of(context).pop();
final vm =
Provider.of<Basicp1ViewModelScreen>(parentContext, listen: false);
await vm.deleteEntity(entity['id']);
},
),
],
);
},
);
}
@override
Widget build(BuildContext context) {
return Consumer<Basicp1ViewModelScreen>(
builder: (context, viewModel, child) {
return EntityList(
entities: viewModel.filteredList,
isLoading: viewModel.isLoading,
errorMessage:
viewModel.errorMessage.isNotEmpty ? viewModel.errorMessage : null,
hasMoreData: viewModel.hasMoreData,
searchQuery: viewModel.searchQuery,
onSearchChanged: (query) => viewModel.searchbasicp1(query),
onEdit: (entity) => _navigateToUpdateScreen(entity),
onDelete: (entity) => _showDeleteDialog(entity),
onTap: (entity) => _navigateToDetailsScreen(entity),
onRefresh: () => viewModel.refreshData(),
onLoadMore: () => viewModel.getAllWithPagination(),
title: 'Basicp1',
onAddNew: _navigateToCreateScreen,
displayFields: [
{'key': 'name', 'label': 'name', 'type': 'text'},
{'key': 'name2', 'label': 'name2', 'type': 'text'},
{'key': 'number1', 'label': 'number1', 'type': 'number'},
{'key': 'number2', 'label': 'number2', 'type': 'number'},
{'key': 'phone_number', 'label': 'Phone Number', 'type': 'phone'},
{'key': 'phone_number2', 'label': 'Phone Number2', 'type': 'phone'},
{'key': 'paragraph_field', 'label': 'Paragraph Field', 'type': 'paragraph'},
{'key': 'paragraph_field2', 'label': 'Paragraph Field2', 'type': 'paragraph'},
{'key': 'password_field', 'label': 'Password Field', 'type': 'password'},
{'key': 'textarea', 'label': 'Textarea', 'type': 'textarea'},
{'key': 'textarea_field', 'label': 'Textarea Field', 'type': 'textarea'},
{'key': 'textarea_field2', 'label': 'Textarea Field2', 'type': 'textarea'},
],
);
},
);
}
}

View File

@ -0,0 +1,166 @@
import 'package:base_project/BuilderField/shared/fields/number_field.dart';
import 'package:base_project/BuilderField/shared/fields/password_field.dart';
import 'package:base_project/BuilderField/shared/fields/phone_field.dart';
import 'package:base_project/BuilderField/shared/fields/custom_text_field.dart';
import '../../../../BuilderField/shared/fields/base_field.dart';
import '../../../../BuilderField/shared/fields/date_field.dart';
import '../../../../BuilderField/shared/fields/datetime_field.dart';
import '../../../../BuilderField/shared/fields/email_field.dart';
import 'package:base_project/BuilderField/shared/fields/url_field.dart';
import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
import '../../../../BuilderField/shared/fields/custom_text_field.dart' as shared_text;
import '../../../../BuilderField/shared/fields/one_to_one_relation_field.dart';
import '../../../../BuilderField/shared/fields/calculated_field.dart';
import '../../../../BuilderField/shared/fields/one_to_many_field.dart';
import '../../../../BuilderField/shared/fields/value_list_picker_field.dart';
import '../../../../BuilderField/shared/fields/captcha_field.dart';
import '../../../../BuilderField/shared/fields/switch_field.dart';
import '../../../../BuilderField/shared/fields/url_field.dart';
import '../../../../BuilderField/shared/fields/audio_upload_field.dart';
import '../../../../BuilderField/shared/fields/checkbox_field.dart';
import '../../../../BuilderField/shared/fields/file_upload_field.dart';
import '../../../../BuilderField/shared/fields/image_upload_field.dart';
import '../../../../BuilderField/shared/fields/radio_field.dart';
import '../../../../BuilderField/shared/fields/video_upload_field.dart';
import '../../../../BuilderField/shared/fields/autocomplete_dropdown_field.dart';
import '../../../../BuilderField/shared/fields/autocomplete_multiselect_field.dart';
import '../../../../BuilderField/shared/fields/one_to_one_relation_field.dart';
import '../../../../BuilderField/shared/fields/data_grid_field.dart';
import '../../../../BuilderField/shared/fields/dropdown_field.dart';
import '../../../../BuilderField/shared/fields/dynamic_dropdown_field.dart';
import '../../../../BuilderField/shared/fields/dynamic_multiselect_dropdown_field.dart';
import '../../../../BuilderField/shared/fields/static_multiselect_field.dart';
import '../../../../BuilderField/shared/fields/currency_field.dart';
import '../../../../BuilderField/shared/fields/field_group_field.dart';
import '../../../../BuilderField/shared/fields/qr_code_field.dart';
import '../../../../BuilderField/shared/fields/barcode_field.dart';
import '../Basicp1_viewModel/Basicp1_view_model_screen.dart';/// Field definitions for Basicp1 entity
/// This defines the structure and validation for Basicp1 forms
class Basicp1Fields {
/// Get field definitions for Basicp1 entity
static List<BaseField> getFields(BuildContext context) {
final viewModel =
Provider.of<Basicp1ViewModelScreen>(context, listen: false);
return [
// Basic Information
CustomTextField(
fieldKey: 'name',
label: 'name',
hint: 'Enter name',
isRequired: true,
maxLength: 50,
),
CustomTextField(
fieldKey: 'name2',
label: 'name2',
hint: 'Enter name2',
isRequired: true,
maxLength: 50,
),
// Number Fields
NumberField(
fieldKey: 'number1',
label: 'number1',
hint: 'Enter number1',
isRequired: false,
min: 0,
decimalPlaces: 0,
),
// Number Fields
NumberField(
fieldKey: 'number2',
label: 'number2',
hint: 'Enter number2',
isRequired: false,
min: 0,
decimalPlaces: 0,
),
PhoneField(
fieldKey: 'phone_number',
label: 'Phone Number',
hint: 'Enter Phone Number',
isRequired: false,
countryCode: '+91',
),
PhoneField(
fieldKey: 'phone_number2',
label: 'Phone Number2',
hint: 'Enter Phone Number2',
isRequired: false,
countryCode: '+91',
),
CustomTextField(
fieldKey: 'paragraph_field',
label: 'Paragraph Field',
hint: 'Enter Paragraph Field',
isRequired: false,
maxLength: 500,
),
CustomTextField(
fieldKey: 'paragraph_field2',
label: 'Paragraph Field2',
hint: 'Enter Paragraph Field2',
isRequired: false,
maxLength: 500,
),
// Password Fields (dynamic names supported via fieldKey)
PasswordField(
fieldKey: 'password_field',
label: 'Password Field',
hint: 'Enter Password Field',
isRequired: false,
maxLength: 50,
groupId: 'p1',
),
PasswordField(
fieldKey: 'confirm+password_field',
label: 'Confirm Password Field',
hint: 'Confirm Password Field',
isRequired: false,
maxLength: 50,
groupId: 'p1',
isConfirm: true,
),
CustomTextField(
fieldKey: 'textarea',
label: 'Textarea',
hint: 'Enter Textarea',
isRequired: false,
maxLength: 1000,
),
CustomTextField(
fieldKey: 'textarea_field',
label: 'Textarea Field',
hint: 'Enter Textarea Field',
isRequired: false,
maxLength: 1000,
),
CustomTextField(
fieldKey: 'textarea_field2',
label: 'Textarea Field2',
hint: 'Enter Textarea Field2',
isRequired: false,
maxLength: 1000,
),
];
}
}

View File

@ -0,0 +1,95 @@
// ignore_for_file: use_build_context_synchronously
import 'dart:convert';
import 'package:provider/provider.dart';
import '../Basicp1_viewModel/Basicp1_view_model_screen.dart';
import 'package:base_project/BuilderField/shared/ui/entity_screens.dart';
import 'Basicp1_fields.dart';import '../../../../utils/image_constant.dart';
import '../../../../utils/size_utils.dart';
import '../../../../theme/app_style.dart';
import '../../../../widgets/app_bar/appbar_image.dart';
import '../../../../widgets/app_bar/appbar_title.dart';
import '../../../../widgets/app_bar/custom_app_bar.dart';
import 'package:barcode_widget/barcode_widget.dart';
import 'package:fluttertoast/fluttertoast.dart';
import '../../../../widgets/custom_button.dart';
import '../../../../widgets/custom_text_form_field.dart';
import 'package:flutter/material.dart';
import 'package:autocomplete_textfield/autocomplete_textfield.dart';
import 'package:qr_flutter/qr_flutter.dart';
import 'package:intl/intl.dart';
import 'dart:math';
import '../../../../Reuseable/reusable_text_field.dart';
import '../../../../Reuseable/reusable_date_picker_field.dart';
import '../../../../Reuseable/reusable_date_time_picker_field.dart';
import '../../../../Reuseable/reusable_dropdown_field.dart';
import 'package:flutter/services.dart';
class Basicp1UpdateEntityScreen extends StatefulWidget {
final Map<String, dynamic> entity;
Basicp1UpdateEntityScreen({required this.entity});
@override
_Basicp1UpdateEntityScreenState createState() => _Basicp1UpdateEntityScreenState();
}
class _Basicp1UpdateEntityScreenState extends State<Basicp1UpdateEntityScreen> {
final _formKey = GlobalKey<FormState>();
@override
Widget build(BuildContext context) {
return Consumer<Basicp1ViewModelScreen>(
builder: (context, viewModel, child) {
// Start with all fields, then remove upload fields (generic filter by keys)
final Set<String> hiddenKeys = {
};
final fields = Basicp1Fields.getFields(context)
.where((f) => !hiddenKeys.contains(f.fieldKey))
.toList(); return EntityUpdateScreen(
fields: fields,
initialData: widget.entity,
onSubmit: (data) => _handleSubmit(data),
title: 'Basicp1',
isLoading: viewModel.isLoading,
errorMessage:
viewModel.errorMessage.isNotEmpty ? viewModel.errorMessage : null,
);
},
);
}
Future<void> _handleSubmit(Map<String, dynamic> formData) async {
final provider =
Provider.of<Basicp1ViewModelScreen>(context, listen: false);
final success = await provider.updateEntity(widget.entity['id'], formData);
if (success && mounted) {
Navigator.pop(context);
}
}
}

View File

@ -0,0 +1,113 @@
import 'package:dio/dio.dart';
import '../../../../data/network/base_network_service.dart';
import '../../../../data/network/network_api_service.dart';
import '../../../../resources/api_constants.dart';
import 'package:base_project/data/response/api_response.dart';
class Basicp1RepoScreen {
final String baseUrl = ApiConstants.baseUrl;
final BaseNetworkService _helper = NetworkApiService();
final String _endpointPath = '/Basicp1/Basicp1';
Future<ApiResponse<List<Map<String, dynamic>>>> getEntities() async {
try {
final response =
await _helper.getGetApiResponse('$baseUrl$_endpointPath');
print('Response received: $response');
List<Map<String, dynamic>> entities = const [];
if (response is List) {
entities = response
.whereType<Map>()
.map((e) => Map<String, dynamic>.from(e as Map))
.toList();
} else if (response is Map<String, dynamic>) {
final dynamic content = response['content'];
if (content is List) {
entities = content
.whereType<Map>()
.map((e) => Map<String, dynamic>.from(e as Map))
.toList();
}
}
return ApiResponse.success(entities);
} catch (e) {
print(' error got $e');
return ApiResponse.error('Failed to get all entities: $e');
}
}
Future<ApiResponse<List<Map<String, dynamic>>>> getAllWithPagination(
int page, int size) async {
try {
final response = await _helper.getGetApiResponse(
'$baseUrl$_endpointPath/getall/page?page=$page&size=$size');
if (response is Map<String, dynamic> && response['content'] is List) {
final List<Map<String, dynamic>> entities =
(response['content'] as List).cast<Map<String, dynamic>>().toList();
return ApiResponse.success(entities);
} else {
return ApiResponse.error('Invalid response format');
}
} catch (e) {
return ApiResponse.error('Failed to get all without pagination: $e');
}
}
Future<ApiResponse<Map<String, dynamic>>> createEntity(
Map<String, dynamic> entity) async {
try {
print("in post api$entity");
final response =
await _helper.getPostApiResponse('$baseUrl$_endpointPath', entity);
return ApiResponse.success(response as Map<String, dynamic>);
} catch (e) {
return ApiResponse.error('Failed to create entity: $e');
}
}
Future<ApiResponse<Map<String, dynamic>>> updateEntity(
int entityId, Map<String, dynamic> entity) async {
try {
final response = await _helper.getPutApiResponse(
'$baseUrl$_endpointPath/$entityId', entity);
return ApiResponse.success(response as Map<String, dynamic>);
} catch (e) {
return ApiResponse.error('Failed to update entity: $e');
}
}
Future<ApiResponse<void>> deleteEntity(int entityId) async {
try {
await _helper.getDeleteApiResponse('$baseUrl$_endpointPath/$entityId');
return ApiResponse.success(null);
} catch (e) {
return ApiResponse.error('Failed to delete entity: $e');
}
}
}

View File

@ -0,0 +1,452 @@
import 'package:base_project/data/response/status.dart';
import 'dart:typed_data';
import 'package:dio/dio.dart';
import 'package:http_parser/http_parser.dart';
import '../../../../utils/toast_messages/toast_message_util.dart';
import '../../../../BuilderField/shared/utils/entity_field_store.dart';
import 'package:flutter/material.dart';
import '../Basicp1_Repo/Basicp1_repo_screen.dart';
class Basicp1ViewModelScreen extends ChangeNotifier{
final Basicp1RepoScreen repo = Basicp1RepoScreen();
// State variables
List<Map<String, dynamic>> _basicp1List = [];
List<Map<String, dynamic>> _filteredList = [];
bool _isLoading = false;
String _errorMessage = '';
int _currentPage = 0;
int _pageSize = 10;
bool _hasMoreData = true;
String _searchQuery = '';
// Getters
List<Map<String, dynamic>> get basicp1List => _basicp1List;
List<Map<String, dynamic>> get filteredList => _filteredList;
bool get isLoading => _isLoading;
String get errorMessage => _errorMessage;
bool get hasMoreData => _hasMoreData;
String get searchQuery => _searchQuery;
// Set loading state
void _setLoading(bool loading) {
_isLoading = loading;
notifyListeners();
}
// Set error message
void _setError(String error) {
_errorMessage = error;
notifyListeners();
}
// Clear error
void clearError() {
_errorMessage = '';
notifyListeners();
}
// Get basicp1 list
Future<void> getEntities() async {
_setLoading(true);
_setError('');
try {
final response = await repo.getEntities();
if (response.status == Status.SUCCESS) {
_basicp1List = response.data ?? [];
_filteredList = List.from(_basicp1List);
_currentPage = 0;
_hasMoreData = true;
} else {
_setError(response.message ?? 'Failed to fetch basicp1 list');
}
} catch (e) {
_setError('Failed to fetch basicp1 list: $e');
} finally {
_setLoading(false);
}
}
// Get basicp1 list with pagination
Future<void> getAllWithPagination({bool refresh = false}) async {
if (refresh) {
_currentPage = 0;
_basicp1List.clear();
_filteredList.clear();
_hasMoreData = true;
}
if (!_hasMoreData || _isLoading) return;
_setLoading(true);
_setError('');
try {
final response = await repo.getAllWithPagination(_currentPage, _pageSize);
if (response.status == Status.SUCCESS) {
final newItems = response.data ?? [];
if (refresh) {
_basicp1List = newItems;
} else {
_basicp1List.addAll(newItems);
}
_filteredList = List.from(_basicp1List);
_currentPage++;
// Check if we have more data
_hasMoreData = newItems.length == _pageSize;
} else {
_setError(response.message ?? 'Failed to fetch Basicp1 list');
}
} catch (e) {
_setError('Failed to fetch basicp1 list: $e');
} finally {
_setLoading(false);
}
}
// Create Basicp1
Future<bool> createEntity(Map<String, dynamic> entity) async {
_setLoading(true);
_setError('');
try {
final response = await repo.createEntity(entity);
if (response.status == Status.SUCCESS) {
// Get the response ID for image upload
final responseId = response.data!['id'].toString();
ToastMessageUtil.showToast(
message: 'basicp1 created successfully',
toastType: ToastType.success,
);
// Refresh the list
await getEntities();
return true;
} else {
_setError(response.message ?? 'Failed to create Basicp1');
ToastMessageUtil.showToast(
message: response.message ?? 'Failed to create Basicp1',
toastType: ToastType.error,
);
return false;
}
} catch (e) {
_setError('Failed to create basicp1: $e');
ToastMessageUtil.showToast(
message: 'Failed to create Basicp1: $e',
toastType: ToastType.error,
);
return false;
} finally {
_setLoading(false);
}
}
// Update basicp1
Future<bool> updateEntity(int id, Map<String, dynamic> entity) async {
_setLoading(true);
_setError('');
try {
final response = await repo.updateEntity(id, entity);
if (response.status == Status.SUCCESS) {
ToastMessageUtil.showToast(
message: 'Basicp1 updated successfully',
toastType: ToastType.success,
);
// Update the item in the list
final index = _basicp1List.indexWhere((item) => item['id'] == id);
if (index != -1) {
_basicp1List[index] = response.data!;
_filteredList = List.from(_basicp1List);
notifyListeners();
}
return true;
} else {
_setError(response.message ?? 'Failed to update Basicp1');
ToastMessageUtil.showToast(
message: response.message ?? 'Failed to update Basicp1',
toastType: ToastType.error,
);
return false;
}
} catch (e) {
_setError('Failed to update basicp1: $e');
ToastMessageUtil.showToast(
message: 'Failed to update Basicp1: $e',
toastType: ToastType.error,
);
return false;
} finally {
_setLoading(false);
}
}
// Delete basicp1
Future<bool> deleteEntity(int id) async {
_setLoading(true);
_setError('');
try {
final response = await repo.deleteEntity(id);
if (response.status == Status.SUCCESS) {
ToastMessageUtil.showToast(
message: 'Basicp1 deleted successfully',
toastType: ToastType.success,
);
// Remove the item from the list
_basicp1List.removeWhere((item) => item['id'] == id);
_filteredList = List.from(_basicp1List);
notifyListeners();
return true;
} else {
_setError(response.message ?? 'Failed to delete Basicp1');
ToastMessageUtil.showToast(
message: response.message ?? 'Failed to delete Basicp1',
toastType: ToastType.error,
);
return false;
}
} catch (e) {
_setError('Failed to delete basicp1: $e');
ToastMessageUtil.showToast(
message: 'Failed to delete Basicp1: $e',
toastType: ToastType.error,
);
return false;
} finally {
_setLoading(false);
}
}
// Search basicp1
void searchbasicp1(String query) {
_searchQuery = query;
if (query.isEmpty) {
_filteredList = List.from(_basicp1List);
} else {
_filteredList = _basicp1List.where((item) {
return
(item['name']?.toString().toLowerCase().contains(query.toLowerCase()) ??false) ||
(item['name2']?.toString().toLowerCase().contains(query.toLowerCase()) ??false) ||
(item['number1']?.toString().toLowerCase().contains(query.toLowerCase()) ??false) ||
(item['number2']?.toString().toLowerCase().contains(query.toLowerCase()) ??false) ||
(item['phone_number']?.toString().toLowerCase().contains(query.toLowerCase()) ??false) ||
(item['phone_number2']?.toString().toLowerCase().contains(query.toLowerCase()) ??false) ||
(item['paragraph_field']?.toString().toLowerCase().contains(query.toLowerCase()) ??false) ||
(item['paragraph_field2']?.toString().toLowerCase().contains(query.toLowerCase()) ??false) ||
(item['password_field']?.toString().toLowerCase().contains(query.toLowerCase()) ??false) ||
(item['textarea']?.toString().toLowerCase().contains(query.toLowerCase()) ??false) ||
(item['textarea_field']?.toString().toLowerCase().contains(query.toLowerCase()) ??false) ||
(item['textarea_field2']?.toString().toLowerCase().contains(query.toLowerCase()) ??false)
;
}).toList();
}
notifyListeners();
}
// Clear search
void clearSearch() {
_searchQuery = '';
_filteredList = List.from(_basicp1List);
notifyListeners();
}
// Refresh data
Future<void> refreshData() async {
await getAllWithPagination(refresh: true);
}
}

View File

@ -0,0 +1,108 @@
import 'dart:typed_data';
import 'package:dio/dio.dart';
import 'package:http_parser/http_parser.dart';
import '../../../../resources/api_constants.dart';
import '../../../../data/network/base_network_service.dart';
import '../../../../data/network/network_api_service.dart';
class Basicp2ApiService {
final String baseUrl = ApiConstants.baseUrl;
final BaseNetworkService _helper = NetworkApiService();
Future<List<Map<String, dynamic>>> getEntities() async {
try {
final response = await _helper.getGetApiResponse('$baseUrl/Basicp2/Basicp2');
final entities = (response as List).cast<Map<String, dynamic>>();
return entities;
} catch (e) {
throw Exception('Failed to get all entities: $e');
}
}
Future<List<Map<String, dynamic>>> getAllWithPagination(
int page, int size) async {
try {
final response =
await _helper.getGetApiResponse('$baseUrl/Basicp2/Basicp2/getall/page?page=$page&size=$size');
final entities =
(response['content'] as List).cast<Map<String, dynamic>>();
return entities;
} catch (e) {
throw Exception('Failed to get all without pagination: $e');
}
}
Future<Map<String, dynamic>> createEntity(
Map<String, dynamic> entity) async {
try {
print("in post api$entity");
final response =
await _helper.getPostApiResponse('$baseUrl/Basicp2/Basicp2', entity);
print(entity);
// Assuming the response is a Map<String, dynamic>
Map<String, dynamic> responseData = response;
return responseData;
} catch (e) {
throw Exception('Failed to create entity: $e');
}
}
Future<void> updateEntity( int entityId, Map<String, dynamic> entity) async {
try {
await _helper.getPutApiResponse('$baseUrl/Basicp2/Basicp2/$entityId',
entity); print(entity);
} catch (e) {
throw Exception('Failed to update entity: $e');
}
}
Future<void> deleteEntity( int entityId) async {
try {
await _helper.getDeleteApiResponse('$baseUrl/Basicp2/Basicp2/$entityId');
} catch (e) {
throw Exception('Failed to delete entity: $e');
}
}
}

View File

@ -0,0 +1,94 @@
// ignore_for_file: use_build_context_synchronously
import 'dart:convert';
import 'package:flutter/material.dart';
import 'package:file_picker/file_picker.dart';
import 'package:image_picker/image_picker.dart';
import 'package:provider/provider.dart';
import '../Basicp2_viewModel/Basicp2_view_model_screen.dart';
import 'Basicp2_fields.dart';import 'package:base_project/BuilderField/shared/ui/entity_screens.dart';
import '../../../../utils/image_constant.dart';
import '../../../../utils/size_utils.dart';
import '../../../../theme/app_style.dart';
import '../../../../widgets/app_bar/appbar_image.dart';
import '../../../../widgets/app_bar/appbar_title.dart';
import '../../../../widgets/app_bar/custom_app_bar.dart';
import '../../../../widgets/custom_button.dart';
import '../../../../widgets/custom_text_form_field.dart';
import '../../../../widgets/custom_dropdown_field.dart';
import 'dart:math';
import 'package:qr_flutter/qr_flutter.dart';
import 'package:barcode_widget/barcode_widget.dart';
import 'package:intl/intl.dart';
import 'package:autocomplete_textfield/autocomplete_textfield.dart';
import 'package:http/http.dart' as http;
import 'package:flutter/services.dart';
import 'package:image_picker/image_picker.dart';
import 'package:fluttertoast/fluttertoast.dart';
import '../../../../Reuseable/reusable_date_picker_field.dart';
import '../../../../Reuseable/reusable_date_time_picker_field.dart'
;import 'package:multi_select_flutter/multi_select_flutter.dart';
import 'package:just_audio/just_audio.dart';
import 'package:video_player/video_player.dart';
import 'package:google_fonts/google_fonts.dart';
import 'package:lottie/lottie.dart';
import '../../../../utils/toast_messages/toast_message_util.dart';
import 'dart:io';
import '../../../../Reuseable/reusable_text_field.dart';
import '../../../../Reuseable/reusable_dropdown_field.dart';
class Basicp2CreateEntityScreen extends StatefulWidget {
const Basicp2CreateEntityScreen({super.key});
@override
_Basicp2CreateEntityScreenState createState() => _Basicp2CreateEntityScreenState();
}
class _Basicp2CreateEntityScreenState extends State<Basicp2CreateEntityScreen> {
final Map<String, dynamic> formData = {};
final _formKey = GlobalKey<FormState>();
@override
Widget build(BuildContext context) {
return Consumer<Basicp2ViewModelScreen>(
builder: (context, viewModel, child) {
return EntityCreateScreen(
fields: Basicp2Fields.getFields(context),
onSubmit: (data) => _handleSubmit(data),
title: 'Basicp2',
isLoading: viewModel.isLoading,
errorMessage:
viewModel.errorMessage.isNotEmpty ? viewModel.errorMessage : null,
);
},
);
}
Future<void> _handleSubmit(Map<String, dynamic> formData) async {
final provider =
Provider.of<Basicp2ViewModelScreen>(context, listen: false);
final success = await provider.createEntity(formData);
if (success && mounted) {
Navigator.pop(context);
}
}
}

View File

@ -0,0 +1,102 @@
// ignore_for_file: use_build_context_synchronously
import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
import '../../../../BuilderField/shared/ui/entity_details.dart';
import '../Basicp2_viewModel/Basicp2_view_model_screen.dart';
import 'Basicp2_update_entity_screen.dart';
class Basicp2DetailsScreen extends StatefulWidget {
final Map<String, dynamic> entity;
const Basicp2DetailsScreen({
super.key,
required this.entity,
});
@override
State<Basicp2DetailsScreen> createState() => _Basicp2DetailsScreenState();
}
class _Basicp2DetailsScreenState extends State<Basicp2DetailsScreen> {
void _navigateToUpdateScreen(Map<String, dynamic> entity) {
Navigator.push(
context,
MaterialPageRoute(
builder: (context) => ChangeNotifierProvider(
create: (context) => Basicp2ViewModelScreen(),
child: Basicp2UpdateEntityScreen(entity: entity),
),
),
).then((_) {
// Refresh the details screen with updated data
setState(() {});
});
}
void _showDeleteDialog(Map<String, dynamic> entity) {
showDialog(
context: context,
builder: (BuildContext context) {
return AlertDialog(
title: const Text('Confirm Deletion'),
content: const Text('Are you sure you want to delete this Basicp2?'),
actions: [
TextButton(
child: const Text('Cancel'),
onPressed: () {
Navigator.of(context).pop();
},
),
TextButton(
child: const Text('Delete'),
onPressed: () async {
Navigator.of(context).pop();
final vm =
Provider.of<Basicp2ViewModelScreen>(context, listen: false);
final success = await vm.deleteEntity(entity['id']);
if (success && mounted) {
Navigator.pop(context); // Go back to list
}
},
),
],
);
},
);
}
@override
Widget build(BuildContext context) {
return Consumer<Basicp2ViewModelScreen>(
builder: (context, viewModel, child) {
return EntityDetails(
entity: widget.entity,
onEdit: (entity) => _navigateToUpdateScreen(entity),
onDelete: (entity) => _showDeleteDialog(entity),
title: 'Basicp2',
displayFields: [
{'key': 'about', 'label': 'about', 'type': 'textarea'},
{'key': 'textarea2', 'label': 'Textarea2', 'type': 'textarea'},
{'key': 'date_field', 'label': 'Date Field', 'type': 'date'},
{'key': 'date_field2', 'label': 'Date Field2', 'type': 'date'},
{'key': 'datetime_field', 'label': 'Datetime Field', 'type': 'datetime'},
{'key': 'datetime_field2', 'label': 'Datetime Field2', 'type': 'datetime'},
{'key': 'email_field', 'label': 'Email Field', 'type': 'email'},
{'key': 'email_field2', 'label': 'Email Field2', 'type': 'email'},
{'key': 'userid_field', 'label': 'UserId Field', 'type': 'userid'},
],
isLoading: viewModel.isLoading,
);
},
);
}
}

View File

@ -0,0 +1,162 @@
// ignore_for_file: use_build_context_synchronously
import 'package:flutter/material.dart';
import 'package:intl/intl.dart';
import 'package:base_project/BuilderField/shared/ui/entity_list.dart';
import 'Basicp2_create_entity_screen.dart';
import 'Basicp2_update_entity_screen.dart';
import '../Basicp2_viewModel/Basicp2_view_model_screen.dart';
import 'Basicp2_details_screen.dart';import 'package:flutter/services.dart';
import 'package:speech_to_text/speech_to_text.dart' as stt;
import '../../../../theme/app_style.dart';
import '../../../../utils/size_utils.dart';
import '../../../../widgets/custom_icon_button.dart';
import '../../../../utils/image_constant.dart';
import '../../../../widgets/app_bar/appbar_image.dart';
import '../../../../widgets/app_bar/appbar_title.dart';
import '../../../../widgets/app_bar/custom_app_bar.dart';
import '../../../../theme/app_decoration.dart';
import 'package:multi_select_flutter/multi_select_flutter.dart';
import '../../../../Reuseable/reusable_text_field.dart';
import 'package:provider/provider.dart';
import '../../../../utils/toast_messages/toast_message_util.dart';
import 'package:fluttertoast/fluttertoast.dart';
class Basicp2_entity_list_screen extends StatefulWidget {
static const String routeName = '/entity-list';
@override
_Basicp2_entity_list_screenState createState() => _Basicp2_entity_list_screenState();
}
class _Basicp2_entity_list_screenState extends State<Basicp2_entity_list_screen> {
@override
void initState() {
super.initState();
_loadData();
}
void _loadData() {
WidgetsBinding.instance.addPostFrameCallback((_) {
if (mounted) {
final vm = Provider.of<Basicp2ViewModelScreen>(context, listen: false);
vm.getAllWithPagination(refresh: true);
}
});
}
void _navigateToCreateScreen() {
Navigator.push(
context,
MaterialPageRoute(
builder: (context) => ChangeNotifierProvider(
create: (context) => Basicp2ViewModelScreen(),
child: const Basicp2CreateEntityScreen(),
),
),
).then((_) {
final vm = Provider.of<Basicp2ViewModelScreen>(context, listen: false);
vm.refreshData();
});
}
void _navigateToUpdateScreen(Map<String, dynamic> entity) {
Navigator.push(
context,
MaterialPageRoute(
builder: (context) => ChangeNotifierProvider(
create: (context) => Basicp2ViewModelScreen(),
child: Basicp2UpdateEntityScreen(entity: entity),
),
),
).then((_) {
final vm = Provider.of<Basicp2ViewModelScreen>(context, listen: false);
vm.refreshData();
});
}
void _navigateToDetailsScreen(Map<String, dynamic> entity) {
Navigator.push(
context,
MaterialPageRoute(
builder: (context) => ChangeNotifierProvider(
create: (context) => Basicp2ViewModelScreen(),
child: Basicp2DetailsScreen(entity: entity),
),
),
);
}
void _showDeleteDialog(Map<String, dynamic> entity) {
final parentContext = context;
showDialog(
context: context,
builder: (BuildContext context) {
return AlertDialog(
title: const Text('Confirm Deletion'),
content: const Text('Are you sure you want to delete this Basicp2?'),
actions: [
TextButton(
child: const Text('Cancel'),
onPressed: () {
Navigator.of(context).pop();
},
),
TextButton(
child: const Text('Delete'),
onPressed: () async {
Navigator.of(context).pop();
final vm =
Provider.of<Basicp2ViewModelScreen>(parentContext, listen: false);
await vm.deleteEntity(entity['id']);
},
),
],
);
},
);
}
@override
Widget build(BuildContext context) {
return Consumer<Basicp2ViewModelScreen>(
builder: (context, viewModel, child) {
return EntityList(
entities: viewModel.filteredList,
isLoading: viewModel.isLoading,
errorMessage:
viewModel.errorMessage.isNotEmpty ? viewModel.errorMessage : null,
hasMoreData: viewModel.hasMoreData,
searchQuery: viewModel.searchQuery,
onSearchChanged: (query) => viewModel.searchbasicp2(query),
onEdit: (entity) => _navigateToUpdateScreen(entity),
onDelete: (entity) => _showDeleteDialog(entity),
onTap: (entity) => _navigateToDetailsScreen(entity),
onRefresh: () => viewModel.refreshData(),
onLoadMore: () => viewModel.getAllWithPagination(),
title: 'Basicp2',
onAddNew: _navigateToCreateScreen,
displayFields: [
{'key': 'about', 'label': 'about', 'type': 'textarea'},
{'key': 'textarea2', 'label': 'Textarea2', 'type': 'textarea'},
{'key': 'date_field', 'label': 'Date Field', 'type': 'date'},
{'key': 'date_field2', 'label': 'Date Field2', 'type': 'date'},
{'key': 'datetime_field', 'label': 'Datetime Field', 'type': 'datetime'},
{'key': 'datetime_field2', 'label': 'Datetime Field2', 'type': 'datetime'},
{'key': 'email_field', 'label': 'Email Field', 'type': 'email'},
{'key': 'email_field2', 'label': 'Email Field2', 'type': 'email'},
{'key': 'userid_field', 'label': 'UserId Field', 'type': 'userid'},
],
);
},
);
}
}

View File

@ -0,0 +1,122 @@
import 'package:base_project/BuilderField/shared/fields/number_field.dart';
import 'package:base_project/BuilderField/shared/fields/password_field.dart';
import 'package:base_project/BuilderField/shared/fields/phone_field.dart';
import 'package:base_project/BuilderField/shared/fields/custom_text_field.dart';
import '../../../../BuilderField/shared/fields/base_field.dart';
import '../../../../BuilderField/shared/fields/date_field.dart';
import '../../../../BuilderField/shared/fields/datetime_field.dart';
import '../../../../BuilderField/shared/fields/email_field.dart';
import 'package:base_project/BuilderField/shared/fields/url_field.dart';
import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
import '../../../../BuilderField/shared/fields/custom_text_field.dart' as shared_text;
import '../../../../BuilderField/shared/fields/one_to_one_relation_field.dart';
import '../../../../BuilderField/shared/fields/calculated_field.dart';
import '../../../../BuilderField/shared/fields/one_to_many_field.dart';
import '../../../../BuilderField/shared/fields/value_list_picker_field.dart';
import '../../../../BuilderField/shared/fields/captcha_field.dart';
import '../../../../BuilderField/shared/fields/switch_field.dart';
import '../../../../BuilderField/shared/fields/url_field.dart';
import '../../../../BuilderField/shared/fields/audio_upload_field.dart';
import '../../../../BuilderField/shared/fields/checkbox_field.dart';
import '../../../../BuilderField/shared/fields/file_upload_field.dart';
import '../../../../BuilderField/shared/fields/image_upload_field.dart';
import '../../../../BuilderField/shared/fields/radio_field.dart';
import '../../../../BuilderField/shared/fields/video_upload_field.dart';
import '../../../../BuilderField/shared/fields/autocomplete_dropdown_field.dart';
import '../../../../BuilderField/shared/fields/autocomplete_multiselect_field.dart';
import '../../../../BuilderField/shared/fields/one_to_one_relation_field.dart';
import '../../../../BuilderField/shared/fields/data_grid_field.dart';
import '../../../../BuilderField/shared/fields/dropdown_field.dart';
import '../../../../BuilderField/shared/fields/dynamic_dropdown_field.dart';
import '../../../../BuilderField/shared/fields/dynamic_multiselect_dropdown_field.dart';
import '../../../../BuilderField/shared/fields/static_multiselect_field.dart';
import '../../../../BuilderField/shared/fields/currency_field.dart';
import '../../../../BuilderField/shared/fields/field_group_field.dart';
import '../../../../BuilderField/shared/fields/qr_code_field.dart';
import '../../../../BuilderField/shared/fields/barcode_field.dart';
import '../Basicp2_viewModel/Basicp2_view_model_screen.dart';/// Field definitions for Basicp2 entity
/// This defines the structure and validation for Basicp2 forms
class Basicp2Fields {
/// Get field definitions for Basicp2 entity
static List<BaseField> getFields(BuildContext context) {
final viewModel =
Provider.of<Basicp2ViewModelScreen>(context, listen: false);
return [
// Basic Information
CustomTextField(
fieldKey: 'about',
label: 'about',
hint: 'Enter about',
isRequired: false,
maxLength: 1000,
),
CustomTextField(
fieldKey: 'textarea2',
label: 'Textarea2',
hint: 'Enter Textarea2',
isRequired: false,
maxLength: 1000,
),
DateField(
fieldKey: 'date_field',
label: 'Date Field',
hint: 'Select Date Field',
isRequired: false,
),
DateField(
fieldKey: 'date_field2',
label: 'Date Field2',
hint: 'Select Date Field2',
isRequired: false,
),
CustomTextField(
fieldKey: 'datetime_field',
label: 'Datetime Field',
hint: 'Enter Datetime Field',
isRequired: true,
maxLength: 50,
),
CustomTextField(
fieldKey: 'datetime_field2',
label: 'Datetime Field2',
hint: 'Enter Datetime Field2',
isRequired: true,
maxLength: 50,
),
EmailField(
fieldKey: 'email_field',
label: 'Email Field',
hint: 'Enter Email Field',
isRequired: false,
),
EmailField(
fieldKey: 'email_field2',
label: 'Email Field2',
hint: 'Enter Email Field2',
isRequired: false,
),
CustomTextField(
fieldKey: 'userid_field',
label: 'UserId Field',
hint: 'Enter UserId Field',
isRequired: true,
maxLength: 50,
),
];
}
}

View File

@ -0,0 +1,89 @@
// ignore_for_file: use_build_context_synchronously
import 'dart:convert';
import 'package:provider/provider.dart';
import '../Basicp2_viewModel/Basicp2_view_model_screen.dart';
import 'package:base_project/BuilderField/shared/ui/entity_screens.dart';
import 'Basicp2_fields.dart';import '../../../../utils/image_constant.dart';
import '../../../../utils/size_utils.dart';
import '../../../../theme/app_style.dart';
import '../../../../widgets/app_bar/appbar_image.dart';
import '../../../../widgets/app_bar/appbar_title.dart';
import '../../../../widgets/app_bar/custom_app_bar.dart';
import 'package:barcode_widget/barcode_widget.dart';
import 'package:fluttertoast/fluttertoast.dart';
import '../../../../widgets/custom_button.dart';
import '../../../../widgets/custom_text_form_field.dart';
import 'package:flutter/material.dart';
import 'package:autocomplete_textfield/autocomplete_textfield.dart';
import 'package:qr_flutter/qr_flutter.dart';
import 'package:intl/intl.dart';
import 'dart:math';
import '../../../../Reuseable/reusable_text_field.dart';
import '../../../../Reuseable/reusable_date_picker_field.dart';
import '../../../../Reuseable/reusable_date_time_picker_field.dart';
import '../../../../Reuseable/reusable_dropdown_field.dart';
import 'package:flutter/services.dart';
class Basicp2UpdateEntityScreen extends StatefulWidget {
final Map<String, dynamic> entity;
Basicp2UpdateEntityScreen({required this.entity});
@override
_Basicp2UpdateEntityScreenState createState() => _Basicp2UpdateEntityScreenState();
}
class _Basicp2UpdateEntityScreenState extends State<Basicp2UpdateEntityScreen> {
final _formKey = GlobalKey<FormState>();
@override
Widget build(BuildContext context) {
return Consumer<Basicp2ViewModelScreen>(
builder: (context, viewModel, child) {
// Start with all fields, then remove upload fields (generic filter by keys)
final Set<String> hiddenKeys = {
};
final fields = Basicp2Fields.getFields(context)
.where((f) => !hiddenKeys.contains(f.fieldKey))
.toList(); return EntityUpdateScreen(
fields: fields,
initialData: widget.entity,
onSubmit: (data) => _handleSubmit(data),
title: 'Basicp2',
isLoading: viewModel.isLoading,
errorMessage:
viewModel.errorMessage.isNotEmpty ? viewModel.errorMessage : null,
);
},
);
}
Future<void> _handleSubmit(Map<String, dynamic> formData) async {
final provider =
Provider.of<Basicp2ViewModelScreen>(context, listen: false);
final success = await provider.updateEntity(widget.entity['id'], formData);
if (success && mounted) {
Navigator.pop(context);
}
}
}

View File

@ -0,0 +1,107 @@
import 'package:dio/dio.dart';
import '../../../../data/network/base_network_service.dart';
import '../../../../data/network/network_api_service.dart';
import '../../../../resources/api_constants.dart';
import 'package:base_project/data/response/api_response.dart';
class Basicp2RepoScreen {
final String baseUrl = ApiConstants.baseUrl;
final BaseNetworkService _helper = NetworkApiService();
final String _endpointPath = '/Basicp2/Basicp2';
Future<ApiResponse<List<Map<String, dynamic>>>> getEntities() async {
try {
final response =
await _helper.getGetApiResponse('$baseUrl$_endpointPath');
print('Response received: $response');
List<Map<String, dynamic>> entities = const [];
if (response is List) {
entities = response
.whereType<Map>()
.map((e) => Map<String, dynamic>.from(e as Map))
.toList();
} else if (response is Map<String, dynamic>) {
final dynamic content = response['content'];
if (content is List) {
entities = content
.whereType<Map>()
.map((e) => Map<String, dynamic>.from(e as Map))
.toList();
}
}
return ApiResponse.success(entities);
} catch (e) {
print(' error got $e');
return ApiResponse.error('Failed to get all entities: $e');
}
}
Future<ApiResponse<List<Map<String, dynamic>>>> getAllWithPagination(
int page, int size) async {
try {
final response = await _helper.getGetApiResponse(
'$baseUrl$_endpointPath/getall/page?page=$page&size=$size');
if (response is Map<String, dynamic> && response['content'] is List) {
final List<Map<String, dynamic>> entities =
(response['content'] as List).cast<Map<String, dynamic>>().toList();
return ApiResponse.success(entities);
} else {
return ApiResponse.error('Invalid response format');
}
} catch (e) {
return ApiResponse.error('Failed to get all without pagination: $e');
}
}
Future<ApiResponse<Map<String, dynamic>>> createEntity(
Map<String, dynamic> entity) async {
try {
print("in post api$entity");
final response =
await _helper.getPostApiResponse('$baseUrl$_endpointPath', entity);
return ApiResponse.success(response as Map<String, dynamic>);
} catch (e) {
return ApiResponse.error('Failed to create entity: $e');
}
}
Future<ApiResponse<Map<String, dynamic>>> updateEntity(
int entityId, Map<String, dynamic> entity) async {
try {
final response = await _helper.getPutApiResponse(
'$baseUrl$_endpointPath/$entityId', entity);
return ApiResponse.success(response as Map<String, dynamic>);
} catch (e) {
return ApiResponse.error('Failed to update entity: $e');
}
}
Future<ApiResponse<void>> deleteEntity(int entityId) async {
try {
await _helper.getDeleteApiResponse('$baseUrl$_endpointPath/$entityId');
return ApiResponse.success(null);
} catch (e) {
return ApiResponse.error('Failed to delete entity: $e');
}
}
}

View File

@ -0,0 +1,400 @@
import 'package:base_project/data/response/status.dart';
import 'dart:typed_data';
import 'package:dio/dio.dart';
import 'package:http_parser/http_parser.dart';
import '../../../../utils/toast_messages/toast_message_util.dart';
import '../../../../BuilderField/shared/utils/entity_field_store.dart';
import 'package:flutter/material.dart';
import '../Basicp2_Repo/Basicp2_repo_screen.dart';
class Basicp2ViewModelScreen extends ChangeNotifier{
final Basicp2RepoScreen repo = Basicp2RepoScreen();
// State variables
List<Map<String, dynamic>> _basicp2List = [];
List<Map<String, dynamic>> _filteredList = [];
bool _isLoading = false;
String _errorMessage = '';
int _currentPage = 0;
int _pageSize = 10;
bool _hasMoreData = true;
String _searchQuery = '';
// Getters
List<Map<String, dynamic>> get basicp2List => _basicp2List;
List<Map<String, dynamic>> get filteredList => _filteredList;
bool get isLoading => _isLoading;
String get errorMessage => _errorMessage;
bool get hasMoreData => _hasMoreData;
String get searchQuery => _searchQuery;
// Set loading state
void _setLoading(bool loading) {
_isLoading = loading;
notifyListeners();
}
// Set error message
void _setError(String error) {
_errorMessage = error;
notifyListeners();
}
// Clear error
void clearError() {
_errorMessage = '';
notifyListeners();
}
// Get basicp2 list
Future<void> getEntities() async {
_setLoading(true);
_setError('');
try {
final response = await repo.getEntities();
if (response.status == Status.SUCCESS) {
_basicp2List = response.data ?? [];
_filteredList = List.from(_basicp2List);
_currentPage = 0;
_hasMoreData = true;
} else {
_setError(response.message ?? 'Failed to fetch basicp2 list');
}
} catch (e) {
_setError('Failed to fetch basicp2 list: $e');
} finally {
_setLoading(false);
}
}
// Get basicp2 list with pagination
Future<void> getAllWithPagination({bool refresh = false}) async {
if (refresh) {
_currentPage = 0;
_basicp2List.clear();
_filteredList.clear();
_hasMoreData = true;
}
if (!_hasMoreData || _isLoading) return;
_setLoading(true);
_setError('');
try {
final response = await repo.getAllWithPagination(_currentPage, _pageSize);
if (response.status == Status.SUCCESS) {
final newItems = response.data ?? [];
if (refresh) {
_basicp2List = newItems;
} else {
_basicp2List.addAll(newItems);
}
_filteredList = List.from(_basicp2List);
_currentPage++;
// Check if we have more data
_hasMoreData = newItems.length == _pageSize;
} else {
_setError(response.message ?? 'Failed to fetch Basicp2 list');
}
} catch (e) {
_setError('Failed to fetch basicp2 list: $e');
} finally {
_setLoading(false);
}
}
// Create Basicp2
Future<bool> createEntity(Map<String, dynamic> entity) async {
_setLoading(true);
_setError('');
try {
final response = await repo.createEntity(entity);
if (response.status == Status.SUCCESS) {
// Get the response ID for image upload
final responseId = response.data!['id'].toString();
ToastMessageUtil.showToast(
message: 'basicp2 created successfully',
toastType: ToastType.success,
);
// Refresh the list
await getEntities();
return true;
} else {
_setError(response.message ?? 'Failed to create Basicp2');
ToastMessageUtil.showToast(
message: response.message ?? 'Failed to create Basicp2',
toastType: ToastType.error,
);
return false;
}
} catch (e) {
_setError('Failed to create basicp2: $e');
ToastMessageUtil.showToast(
message: 'Failed to create Basicp2: $e',
toastType: ToastType.error,
);
return false;
} finally {
_setLoading(false);
}
}
// Update basicp2
Future<bool> updateEntity(int id, Map<String, dynamic> entity) async {
_setLoading(true);
_setError('');
try {
final response = await repo.updateEntity(id, entity);
if (response.status == Status.SUCCESS) {
ToastMessageUtil.showToast(
message: 'Basicp2 updated successfully',
toastType: ToastType.success,
);
// Update the item in the list
final index = _basicp2List.indexWhere((item) => item['id'] == id);
if (index != -1) {
_basicp2List[index] = response.data!;
_filteredList = List.from(_basicp2List);
notifyListeners();
}
return true;
} else {
_setError(response.message ?? 'Failed to update Basicp2');
ToastMessageUtil.showToast(
message: response.message ?? 'Failed to update Basicp2',
toastType: ToastType.error,
);
return false;
}
} catch (e) {
_setError('Failed to update basicp2: $e');
ToastMessageUtil.showToast(
message: 'Failed to update Basicp2: $e',
toastType: ToastType.error,
);
return false;
} finally {
_setLoading(false);
}
}
// Delete basicp2
Future<bool> deleteEntity(int id) async {
_setLoading(true);
_setError('');
try {
final response = await repo.deleteEntity(id);
if (response.status == Status.SUCCESS) {
ToastMessageUtil.showToast(
message: 'Basicp2 deleted successfully',
toastType: ToastType.success,
);
// Remove the item from the list
_basicp2List.removeWhere((item) => item['id'] == id);
_filteredList = List.from(_basicp2List);
notifyListeners();
return true;
} else {
_setError(response.message ?? 'Failed to delete Basicp2');
ToastMessageUtil.showToast(
message: response.message ?? 'Failed to delete Basicp2',
toastType: ToastType.error,
);
return false;
}
} catch (e) {
_setError('Failed to delete basicp2: $e');
ToastMessageUtil.showToast(
message: 'Failed to delete Basicp2: $e',
toastType: ToastType.error,
);
return false;
} finally {
_setLoading(false);
}
}
// Search basicp2
void searchbasicp2(String query) {
_searchQuery = query;
if (query.isEmpty) {
_filteredList = List.from(_basicp2List);
} else {
_filteredList = _basicp2List.where((item) {
return
(item['about']?.toString().toLowerCase().contains(query.toLowerCase()) ??false) ||
(item['textarea2']?.toString().toLowerCase().contains(query.toLowerCase()) ??false) ||
(item['date_field']?.toString().toLowerCase().contains(query.toLowerCase()) ??false) ||
(item['date_field2']?.toString().toLowerCase().contains(query.toLowerCase()) ??false) ||
(item['datetime_field']?.toString().toLowerCase().contains(query.toLowerCase()) ??false) ||
(item['datetime_field2']?.toString().toLowerCase().contains(query.toLowerCase()) ??false) ||
(item['email_field']?.toString().toLowerCase().contains(query.toLowerCase()) ??false) ||
(item['email_field2']?.toString().toLowerCase().contains(query.toLowerCase()) ??false)
;
}).toList();
}
notifyListeners();
}
// Clear search
void clearSearch() {
_searchQuery = '';
_filteredList = List.from(_basicp2List);
notifyListeners();
}
// Refresh data
Future<void> refreshData() async {
await getAllWithPagination(refresh: true);
}
}

View File

@ -0,0 +1,116 @@
import 'dart:typed_data';
import 'package:dio/dio.dart';
import 'package:http_parser/http_parser.dart';
import '../../../../resources/api_constants.dart';
import '../../../../data/network/base_network_service.dart';
import '../../../../data/network/network_api_service.dart';
class Basicp3ApiService {
final String baseUrl = ApiConstants.baseUrl;
final BaseNetworkService _helper = NetworkApiService();
Future<List<Map<String, dynamic>>> getEntities() async {
try {
final response = await _helper.getGetApiResponse('$baseUrl/Basicp3/Basicp3');
final entities = (response as List).cast<Map<String, dynamic>>();
return entities;
} catch (e) {
throw Exception('Failed to get all entities: $e');
}
}
Future<List<Map<String, dynamic>>> getAllWithPagination(
int page, int size) async {
try {
final response =
await _helper.getGetApiResponse('$baseUrl/Basicp3/Basicp3/getall/page?page=$page&size=$size');
final entities =
(response['content'] as List).cast<Map<String, dynamic>>();
return entities;
} catch (e) {
throw Exception('Failed to get all without pagination: $e');
}
}
Future<Map<String, dynamic>> createEntity(
Map<String, dynamic> entity) async {
try {
print("in post api$entity");
final response =
await _helper.getPostApiResponse('$baseUrl/Basicp3/Basicp3', entity);
print(entity);
// Assuming the response is a Map<String, dynamic>
Map<String, dynamic> responseData = response;
return responseData;
} catch (e) {
throw Exception('Failed to create entity: $e');
}
}
Future<void> updateEntity( int entityId, Map<String, dynamic> entity) async {
try {
await _helper.getPutApiResponse('$baseUrl/Basicp3/Basicp3/$entityId',
entity); print(entity);
} catch (e) {
throw Exception('Failed to update entity: $e');
}
}
Future<void> deleteEntity( int entityId) async {
try {
await _helper.getDeleteApiResponse('$baseUrl/Basicp3/Basicp3/$entityId');
} catch (e) {
throw Exception('Failed to delete entity: $e');
}
}
}

View File

@ -0,0 +1,98 @@
// ignore_for_file: use_build_context_synchronously
import 'dart:convert';
import 'package:flutter/material.dart';
import 'package:file_picker/file_picker.dart';
import 'package:image_picker/image_picker.dart';
import 'package:provider/provider.dart';
import '../Basicp3_viewModel/Basicp3_view_model_screen.dart';
import 'Basicp3_fields.dart';import 'package:base_project/BuilderField/shared/ui/entity_screens.dart';
import '../../../../utils/image_constant.dart';
import '../../../../utils/size_utils.dart';
import '../../../../theme/app_style.dart';
import '../../../../widgets/app_bar/appbar_image.dart';
import '../../../../widgets/app_bar/appbar_title.dart';
import '../../../../widgets/app_bar/custom_app_bar.dart';
import '../../../../widgets/custom_button.dart';
import '../../../../widgets/custom_text_form_field.dart';
import '../../../../widgets/custom_dropdown_field.dart';
import 'dart:math';
import 'package:qr_flutter/qr_flutter.dart';
import 'package:barcode_widget/barcode_widget.dart';
import 'package:intl/intl.dart';
import 'package:autocomplete_textfield/autocomplete_textfield.dart';
import 'package:http/http.dart' as http;
import 'package:flutter/services.dart';
import 'package:image_picker/image_picker.dart';
import 'package:fluttertoast/fluttertoast.dart';
import '../../../../Reuseable/reusable_date_picker_field.dart';
import '../../../../Reuseable/reusable_date_time_picker_field.dart'
;import 'package:multi_select_flutter/multi_select_flutter.dart';
import 'package:just_audio/just_audio.dart';
import 'package:video_player/video_player.dart';
import 'package:google_fonts/google_fonts.dart';
import 'package:lottie/lottie.dart';
import '../../../../utils/toast_messages/toast_message_util.dart';
import 'dart:io';
import '../../../../Reuseable/reusable_text_field.dart';
import '../../../../Reuseable/reusable_dropdown_field.dart';
class Basicp3CreateEntityScreen extends StatefulWidget {
const Basicp3CreateEntityScreen({super.key});
@override
_Basicp3CreateEntityScreenState createState() => _Basicp3CreateEntityScreenState();
}
class _Basicp3CreateEntityScreenState extends State<Basicp3CreateEntityScreen> {
final Map<String, dynamic> formData = {};
final _formKey = GlobalKey<FormState>();
@override
Widget build(BuildContext context) {
return Consumer<Basicp3ViewModelScreen>(
builder: (context, viewModel, child) {
return EntityCreateScreen(
fields: Basicp3Fields.getFields(context),
onSubmit: (data) => _handleSubmit(data),
title: 'Basicp3',
isLoading: viewModel.isLoading,
errorMessage:
viewModel.errorMessage.isNotEmpty ? viewModel.errorMessage : null,
);
},
);
}
Future<void> _handleSubmit(Map<String, dynamic> formData) async {
final provider =
Provider.of<Basicp3ViewModelScreen>(context, listen: false);
final success = await provider.createEntity(formData);
if (success && mounted) {
Navigator.pop(context);
}
}
}

View File

@ -0,0 +1,106 @@
// ignore_for_file: use_build_context_synchronously
import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
import '../../../../BuilderField/shared/ui/entity_details.dart';
import '../Basicp3_viewModel/Basicp3_view_model_screen.dart';
import 'Basicp3_update_entity_screen.dart';
class Basicp3DetailsScreen extends StatefulWidget {
final Map<String, dynamic> entity;
const Basicp3DetailsScreen({
super.key,
required this.entity,
});
@override
State<Basicp3DetailsScreen> createState() => _Basicp3DetailsScreenState();
}
class _Basicp3DetailsScreenState extends State<Basicp3DetailsScreen> {
void _navigateToUpdateScreen(Map<String, dynamic> entity) {
Navigator.push(
context,
MaterialPageRoute(
builder: (context) => ChangeNotifierProvider(
create: (context) => Basicp3ViewModelScreen(),
child: Basicp3UpdateEntityScreen(entity: entity),
),
),
).then((_) {
// Refresh the details screen with updated data
setState(() {});
});
}
void _showDeleteDialog(Map<String, dynamic> entity) {
showDialog(
context: context,
builder: (BuildContext context) {
return AlertDialog(
title: const Text('Confirm Deletion'),
content: const Text('Are you sure you want to delete this Basicp3?'),
actions: [
TextButton(
child: const Text('Cancel'),
onPressed: () {
Navigator.of(context).pop();
},
),
TextButton(
child: const Text('Delete'),
onPressed: () async {
Navigator.of(context).pop();
final vm =
Provider.of<Basicp3ViewModelScreen>(context, listen: false);
final success = await vm.deleteEntity(entity['id']);
if (success && mounted) {
Navigator.pop(context); // Go back to list
}
},
),
],
);
},
);
}
@override
Widget build(BuildContext context) {
return Consumer<Basicp3ViewModelScreen>(
builder: (context, viewModel, child) {
return EntityDetails(
entity: widget.entity,
onEdit: (entity) => _navigateToUpdateScreen(entity),
onDelete: (entity) => _showDeleteDialog(entity),
title: 'Basicp3',
displayFields: [
{'key': 'toggle_switch', 'label': 'Toggle Switch', 'type': 'toggle_switch'},
{'key': 'toggle_switch2', 'label': 'Toggle Switch2', 'type': 'toggle_switch'},
{'key': 'url_field', 'label': 'Url Field', 'type': 'url'},
{'key': 'url_field2', 'label': 'Url Field2', 'type': 'url'},
{'key': 'decimal_field', 'label': 'Decimal Field', 'type': 'decimal'},
{'key': 'decimal_field2', 'label': 'Decimal Field2', 'type': 'decimal'},
{'key': 'percentage_field', 'label': 'Percentage Field', 'type': 'number'},
{'key': 'percentage_field2', 'label': 'Percentage Field2', 'type': 'number'},
{'key': 'documentsequenc', 'label': 'documentsequenc', 'type': 'document_sequence'},
{'key': 'recaptcha', 'label': 'recaptcha', 'type': 'recaptcha'},
{'key': 'recaptcha2', 'label': 'recaptcha2', 'type': 'recaptcha'},
],
isLoading: viewModel.isLoading,
);
},
);
}
}

View File

@ -0,0 +1,166 @@
// ignore_for_file: use_build_context_synchronously
import 'package:flutter/material.dart';
import 'package:intl/intl.dart';
import 'package:base_project/BuilderField/shared/ui/entity_list.dart';
import 'Basicp3_create_entity_screen.dart';
import 'Basicp3_update_entity_screen.dart';
import '../Basicp3_viewModel/Basicp3_view_model_screen.dart';
import 'Basicp3_details_screen.dart';import 'package:flutter/services.dart';
import 'package:speech_to_text/speech_to_text.dart' as stt;
import '../../../../theme/app_style.dart';
import '../../../../utils/size_utils.dart';
import '../../../../widgets/custom_icon_button.dart';
import '../../../../utils/image_constant.dart';
import '../../../../widgets/app_bar/appbar_image.dart';
import '../../../../widgets/app_bar/appbar_title.dart';
import '../../../../widgets/app_bar/custom_app_bar.dart';
import '../../../../theme/app_decoration.dart';
import 'package:multi_select_flutter/multi_select_flutter.dart';
import '../../../../Reuseable/reusable_text_field.dart';
import 'package:provider/provider.dart';
import '../../../../utils/toast_messages/toast_message_util.dart';
import 'package:fluttertoast/fluttertoast.dart';
class Basicp3_entity_list_screen extends StatefulWidget {
static const String routeName = '/entity-list';
@override
_Basicp3_entity_list_screenState createState() => _Basicp3_entity_list_screenState();
}
class _Basicp3_entity_list_screenState extends State<Basicp3_entity_list_screen> {
@override
void initState() {
super.initState();
_loadData();
}
void _loadData() {
WidgetsBinding.instance.addPostFrameCallback((_) {
if (mounted) {
final vm = Provider.of<Basicp3ViewModelScreen>(context, listen: false);
vm.getAllWithPagination(refresh: true);
}
});
}
void _navigateToCreateScreen() {
Navigator.push(
context,
MaterialPageRoute(
builder: (context) => ChangeNotifierProvider(
create: (context) => Basicp3ViewModelScreen(),
child: const Basicp3CreateEntityScreen(),
),
),
).then((_) {
final vm = Provider.of<Basicp3ViewModelScreen>(context, listen: false);
vm.refreshData();
});
}
void _navigateToUpdateScreen(Map<String, dynamic> entity) {
Navigator.push(
context,
MaterialPageRoute(
builder: (context) => ChangeNotifierProvider(
create: (context) => Basicp3ViewModelScreen(),
child: Basicp3UpdateEntityScreen(entity: entity),
),
),
).then((_) {
final vm = Provider.of<Basicp3ViewModelScreen>(context, listen: false);
vm.refreshData();
});
}
void _navigateToDetailsScreen(Map<String, dynamic> entity) {
Navigator.push(
context,
MaterialPageRoute(
builder: (context) => ChangeNotifierProvider(
create: (context) => Basicp3ViewModelScreen(),
child: Basicp3DetailsScreen(entity: entity),
),
),
);
}
void _showDeleteDialog(Map<String, dynamic> entity) {
final parentContext = context;
showDialog(
context: context,
builder: (BuildContext context) {
return AlertDialog(
title: const Text('Confirm Deletion'),
content: const Text('Are you sure you want to delete this Basicp3?'),
actions: [
TextButton(
child: const Text('Cancel'),
onPressed: () {
Navigator.of(context).pop();
},
),
TextButton(
child: const Text('Delete'),
onPressed: () async {
Navigator.of(context).pop();
final vm =
Provider.of<Basicp3ViewModelScreen>(parentContext, listen: false);
await vm.deleteEntity(entity['id']);
},
),
],
);
},
);
}
@override
Widget build(BuildContext context) {
return Consumer<Basicp3ViewModelScreen>(
builder: (context, viewModel, child) {
return EntityList(
entities: viewModel.filteredList,
isLoading: viewModel.isLoading,
errorMessage:
viewModel.errorMessage.isNotEmpty ? viewModel.errorMessage : null,
hasMoreData: viewModel.hasMoreData,
searchQuery: viewModel.searchQuery,
onSearchChanged: (query) => viewModel.searchbasicp3(query),
onEdit: (entity) => _navigateToUpdateScreen(entity),
onDelete: (entity) => _showDeleteDialog(entity),
onTap: (entity) => _navigateToDetailsScreen(entity),
onRefresh: () => viewModel.refreshData(),
onLoadMore: () => viewModel.getAllWithPagination(),
title: 'Basicp3',
onAddNew: _navigateToCreateScreen,
displayFields: [
{'key': 'toggle_switch', 'label': 'Toggle Switch', 'type': 'toggle_switch'},
{'key': 'toggle_switch2', 'label': 'Toggle Switch2', 'type': 'toggle_switch'},
{'key': 'url_field', 'label': 'Url Field', 'type': 'url'},
{'key': 'url_field2', 'label': 'Url Field2', 'type': 'url'},
{'key': 'decimal_field', 'label': 'Decimal Field', 'type': 'decimal'},
{'key': 'decimal_field2', 'label': 'Decimal Field2', 'type': 'decimal'},
{'key': 'percentage_field', 'label': 'Percentage Field', 'type': 'number'},
{'key': 'percentage_field2', 'label': 'Percentage Field2', 'type': 'number'},
{'key': 'documentsequenc', 'label': 'documentsequenc', 'type': 'document_sequence'},
{'key': 'recaptcha', 'label': 'recaptcha', 'type': 'recaptcha'},
{'key': 'recaptcha2', 'label': 'recaptcha2', 'type': 'recaptcha'},
],
);
},
);
}
}

View File

@ -0,0 +1,130 @@
import 'package:base_project/BuilderField/shared/fields/number_field.dart';
import 'package:base_project/BuilderField/shared/fields/password_field.dart';
import 'package:base_project/BuilderField/shared/fields/phone_field.dart';
import 'package:base_project/BuilderField/shared/fields/custom_text_field.dart';
import '../../../../BuilderField/shared/fields/base_field.dart';
import '../../../../BuilderField/shared/fields/date_field.dart';
import '../../../../BuilderField/shared/fields/datetime_field.dart';
import '../../../../BuilderField/shared/fields/email_field.dart';
import 'package:base_project/BuilderField/shared/fields/url_field.dart';
import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
import '../../../../BuilderField/shared/fields/custom_text_field.dart' as shared_text;
import '../../../../BuilderField/shared/fields/one_to_one_relation_field.dart';
import '../../../../BuilderField/shared/fields/calculated_field.dart';
import '../../../../BuilderField/shared/fields/one_to_many_field.dart';
import '../../../../BuilderField/shared/fields/value_list_picker_field.dart';
import '../../../../BuilderField/shared/fields/captcha_field.dart';
import '../../../../BuilderField/shared/fields/switch_field.dart';
import '../../../../BuilderField/shared/fields/url_field.dart';
import '../../../../BuilderField/shared/fields/audio_upload_field.dart';
import '../../../../BuilderField/shared/fields/checkbox_field.dart';
import '../../../../BuilderField/shared/fields/file_upload_field.dart';
import '../../../../BuilderField/shared/fields/image_upload_field.dart';
import '../../../../BuilderField/shared/fields/radio_field.dart';
import '../../../../BuilderField/shared/fields/video_upload_field.dart';
import '../../../../BuilderField/shared/fields/autocomplete_dropdown_field.dart';
import '../../../../BuilderField/shared/fields/autocomplete_multiselect_field.dart';
import '../../../../BuilderField/shared/fields/one_to_one_relation_field.dart';
import '../../../../BuilderField/shared/fields/data_grid_field.dart';
import '../../../../BuilderField/shared/fields/dropdown_field.dart';
import '../../../../BuilderField/shared/fields/dynamic_dropdown_field.dart';
import '../../../../BuilderField/shared/fields/dynamic_multiselect_dropdown_field.dart';
import '../../../../BuilderField/shared/fields/static_multiselect_field.dart';
import '../../../../BuilderField/shared/fields/currency_field.dart';
import '../../../../BuilderField/shared/fields/field_group_field.dart';
import '../../../../BuilderField/shared/fields/qr_code_field.dart';
import '../../../../BuilderField/shared/fields/barcode_field.dart';
import '../Basicp3_viewModel/Basicp3_view_model_screen.dart';/// Field definitions for Basicp3 entity
/// This defines the structure and validation for Basicp3 forms
class Basicp3Fields {
/// Get field definitions for Basicp3 entity
static List<BaseField> getFields(BuildContext context) {
final viewModel =
Provider.of<Basicp3ViewModelScreen>(context, listen: false);
return [
// Basic Information
SwitchField(
fieldKey: 'toggle_switch',
label: 'Toggle Switch',
),
SwitchField(
fieldKey: 'toggle_switch2',
label: 'Toggle Switch2',
),
UrlField(
fieldKey: 'url_field',
label: 'Url Field',
hint: 'Enter Url Field',
),
UrlField(
fieldKey: 'url_field2',
label: 'Url Field2',
hint: 'Enter Url Field2',
),
NumberField(
fieldKey: 'decimal_field',
label: 'Decimal Field',
hint: '0.00',
isRequired: false,
decimalPlaces: 2,
),
NumberField(
fieldKey: 'decimal_field2',
label: 'Decimal Field2',
hint: '0.00',
isRequired: false,
decimalPlaces: 2,
),
// Number Fields
NumberField(
fieldKey: 'percentage_field',
label: 'Percentage Field',
hint: 'Enter Percentage Field',
isRequired: false,
min: 0,
decimalPlaces: 0,
),
// Number Fields
NumberField(
fieldKey: 'percentage_field2',
label: 'Percentage Field2',
hint: 'Enter Percentage Field2',
isRequired: false,
min: 0,
decimalPlaces: 0,
),
CaptchaField(
fieldKey: 'recaptcha',
label: 'recaptcha',
length: 6,
),
CaptchaField(
fieldKey: 'recaptcha2',
label: 'recaptcha2',
length: 6,
),
];
}
}

View File

@ -0,0 +1,93 @@
// ignore_for_file: use_build_context_synchronously
import 'dart:convert';
import 'package:provider/provider.dart';
import '../Basicp3_viewModel/Basicp3_view_model_screen.dart';
import 'package:base_project/BuilderField/shared/ui/entity_screens.dart';
import 'Basicp3_fields.dart';import '../../../../utils/image_constant.dart';
import '../../../../utils/size_utils.dart';
import '../../../../theme/app_style.dart';
import '../../../../widgets/app_bar/appbar_image.dart';
import '../../../../widgets/app_bar/appbar_title.dart';
import '../../../../widgets/app_bar/custom_app_bar.dart';
import 'package:barcode_widget/barcode_widget.dart';
import 'package:fluttertoast/fluttertoast.dart';
import '../../../../widgets/custom_button.dart';
import '../../../../widgets/custom_text_form_field.dart';
import 'package:flutter/material.dart';
import 'package:autocomplete_textfield/autocomplete_textfield.dart';
import 'package:qr_flutter/qr_flutter.dart';
import 'package:intl/intl.dart';
import 'dart:math';
import '../../../../Reuseable/reusable_text_field.dart';
import '../../../../Reuseable/reusable_date_picker_field.dart';
import '../../../../Reuseable/reusable_date_time_picker_field.dart';
import '../../../../Reuseable/reusable_dropdown_field.dart';
import 'package:flutter/services.dart';
class Basicp3UpdateEntityScreen extends StatefulWidget {
final Map<String, dynamic> entity;
Basicp3UpdateEntityScreen({required this.entity});
@override
_Basicp3UpdateEntityScreenState createState() => _Basicp3UpdateEntityScreenState();
}
class _Basicp3UpdateEntityScreenState extends State<Basicp3UpdateEntityScreen> {
final _formKey = GlobalKey<FormState>();
@override
Widget build(BuildContext context) {
return Consumer<Basicp3ViewModelScreen>(
builder: (context, viewModel, child) {
// Start with all fields, then remove upload fields (generic filter by keys)
final Set<String> hiddenKeys = {
};
final fields = Basicp3Fields.getFields(context)
.where((f) => !hiddenKeys.contains(f.fieldKey))
.toList(); return EntityUpdateScreen(
fields: fields,
initialData: widget.entity,
onSubmit: (data) => _handleSubmit(data),
title: 'Basicp3',
isLoading: viewModel.isLoading,
errorMessage:
viewModel.errorMessage.isNotEmpty ? viewModel.errorMessage : null,
);
},
);
}
Future<void> _handleSubmit(Map<String, dynamic> formData) async {
final provider =
Provider.of<Basicp3ViewModelScreen>(context, listen: false);
final success = await provider.updateEntity(widget.entity['id'], formData);
if (success && mounted) {
Navigator.pop(context);
}
}
}

View File

@ -0,0 +1,111 @@
import 'package:dio/dio.dart';
import '../../../../data/network/base_network_service.dart';
import '../../../../data/network/network_api_service.dart';
import '../../../../resources/api_constants.dart';
import 'package:base_project/data/response/api_response.dart';
class Basicp3RepoScreen {
final String baseUrl = ApiConstants.baseUrl;
final BaseNetworkService _helper = NetworkApiService();
final String _endpointPath = '/Basicp3/Basicp3';
Future<ApiResponse<List<Map<String, dynamic>>>> getEntities() async {
try {
final response =
await _helper.getGetApiResponse('$baseUrl$_endpointPath');
print('Response received: $response');
List<Map<String, dynamic>> entities = const [];
if (response is List) {
entities = response
.whereType<Map>()
.map((e) => Map<String, dynamic>.from(e as Map))
.toList();
} else if (response is Map<String, dynamic>) {
final dynamic content = response['content'];
if (content is List) {
entities = content
.whereType<Map>()
.map((e) => Map<String, dynamic>.from(e as Map))
.toList();
}
}
return ApiResponse.success(entities);
} catch (e) {
print(' error got $e');
return ApiResponse.error('Failed to get all entities: $e');
}
}
Future<ApiResponse<List<Map<String, dynamic>>>> getAllWithPagination(
int page, int size) async {
try {
final response = await _helper.getGetApiResponse(
'$baseUrl$_endpointPath/getall/page?page=$page&size=$size');
if (response is Map<String, dynamic> && response['content'] is List) {
final List<Map<String, dynamic>> entities =
(response['content'] as List).cast<Map<String, dynamic>>().toList();
return ApiResponse.success(entities);
} else {
return ApiResponse.error('Invalid response format');
}
} catch (e) {
return ApiResponse.error('Failed to get all without pagination: $e');
}
}
Future<ApiResponse<Map<String, dynamic>>> createEntity(
Map<String, dynamic> entity) async {
try {
print("in post api$entity");
final response =
await _helper.getPostApiResponse('$baseUrl$_endpointPath', entity);
return ApiResponse.success(response as Map<String, dynamic>);
} catch (e) {
return ApiResponse.error('Failed to create entity: $e');
}
}
Future<ApiResponse<Map<String, dynamic>>> updateEntity(
int entityId, Map<String, dynamic> entity) async {
try {
final response = await _helper.getPutApiResponse(
'$baseUrl$_endpointPath/$entityId', entity);
return ApiResponse.success(response as Map<String, dynamic>);
} catch (e) {
return ApiResponse.error('Failed to update entity: $e');
}
}
Future<ApiResponse<void>> deleteEntity(int entityId) async {
try {
await _helper.getDeleteApiResponse('$baseUrl$_endpointPath/$entityId');
return ApiResponse.success(null);
} catch (e) {
return ApiResponse.error('Failed to delete entity: $e');
}
}
}

View File

@ -0,0 +1,422 @@
import 'package:base_project/data/response/status.dart';
import 'dart:typed_data';
import 'package:dio/dio.dart';
import 'package:http_parser/http_parser.dart';
import '../../../../utils/toast_messages/toast_message_util.dart';
import '../../../../BuilderField/shared/utils/entity_field_store.dart';
import 'package:flutter/material.dart';
import '../Basicp3_Repo/Basicp3_repo_screen.dart';
class Basicp3ViewModelScreen extends ChangeNotifier{
final Basicp3RepoScreen repo = Basicp3RepoScreen();
// State variables
List<Map<String, dynamic>> _basicp3List = [];
List<Map<String, dynamic>> _filteredList = [];
bool _isLoading = false;
String _errorMessage = '';
int _currentPage = 0;
int _pageSize = 10;
bool _hasMoreData = true;
String _searchQuery = '';
// Getters
List<Map<String, dynamic>> get basicp3List => _basicp3List;
List<Map<String, dynamic>> get filteredList => _filteredList;
bool get isLoading => _isLoading;
String get errorMessage => _errorMessage;
bool get hasMoreData => _hasMoreData;
String get searchQuery => _searchQuery;
// Set loading state
void _setLoading(bool loading) {
_isLoading = loading;
notifyListeners();
}
// Set error message
void _setError(String error) {
_errorMessage = error;
notifyListeners();
}
// Clear error
void clearError() {
_errorMessage = '';
notifyListeners();
}
// Get basicp3 list
Future<void> getEntities() async {
_setLoading(true);
_setError('');
try {
final response = await repo.getEntities();
if (response.status == Status.SUCCESS) {
_basicp3List = response.data ?? [];
_filteredList = List.from(_basicp3List);
_currentPage = 0;
_hasMoreData = true;
} else {
_setError(response.message ?? 'Failed to fetch basicp3 list');
}
} catch (e) {
_setError('Failed to fetch basicp3 list: $e');
} finally {
_setLoading(false);
}
}
// Get basicp3 list with pagination
Future<void> getAllWithPagination({bool refresh = false}) async {
if (refresh) {
_currentPage = 0;
_basicp3List.clear();
_filteredList.clear();
_hasMoreData = true;
}
if (!_hasMoreData || _isLoading) return;
_setLoading(true);
_setError('');
try {
final response = await repo.getAllWithPagination(_currentPage, _pageSize);
if (response.status == Status.SUCCESS) {
final newItems = response.data ?? [];
if (refresh) {
_basicp3List = newItems;
} else {
_basicp3List.addAll(newItems);
}
_filteredList = List.from(_basicp3List);
_currentPage++;
// Check if we have more data
_hasMoreData = newItems.length == _pageSize;
} else {
_setError(response.message ?? 'Failed to fetch Basicp3 list');
}
} catch (e) {
_setError('Failed to fetch basicp3 list: $e');
} finally {
_setLoading(false);
}
}
// Create Basicp3
Future<bool> createEntity(Map<String, dynamic> entity) async {
_setLoading(true);
_setError('');
try {
final response = await repo.createEntity(entity);
if (response.status == Status.SUCCESS) {
// Get the response ID for image upload
final responseId = response.data!['id'].toString();
ToastMessageUtil.showToast(
message: 'basicp3 created successfully',
toastType: ToastType.success,
);
// Refresh the list
await getEntities();
return true;
} else {
_setError(response.message ?? 'Failed to create Basicp3');
ToastMessageUtil.showToast(
message: response.message ?? 'Failed to create Basicp3',
toastType: ToastType.error,
);
return false;
}
} catch (e) {
_setError('Failed to create basicp3: $e');
ToastMessageUtil.showToast(
message: 'Failed to create Basicp3: $e',
toastType: ToastType.error,
);
return false;
} finally {
_setLoading(false);
}
}
// Update basicp3
Future<bool> updateEntity(int id, Map<String, dynamic> entity) async {
_setLoading(true);
_setError('');
try {
final response = await repo.updateEntity(id, entity);
if (response.status == Status.SUCCESS) {
ToastMessageUtil.showToast(
message: 'Basicp3 updated successfully',
toastType: ToastType.success,
);
// Update the item in the list
final index = _basicp3List.indexWhere((item) => item['id'] == id);
if (index != -1) {
_basicp3List[index] = response.data!;
_filteredList = List.from(_basicp3List);
notifyListeners();
}
return true;
} else {
_setError(response.message ?? 'Failed to update Basicp3');
ToastMessageUtil.showToast(
message: response.message ?? 'Failed to update Basicp3',
toastType: ToastType.error,
);
return false;
}
} catch (e) {
_setError('Failed to update basicp3: $e');
ToastMessageUtil.showToast(
message: 'Failed to update Basicp3: $e',
toastType: ToastType.error,
);
return false;
} finally {
_setLoading(false);
}
}
// Delete basicp3
Future<bool> deleteEntity(int id) async {
_setLoading(true);
_setError('');
try {
final response = await repo.deleteEntity(id);
if (response.status == Status.SUCCESS) {
ToastMessageUtil.showToast(
message: 'Basicp3 deleted successfully',
toastType: ToastType.success,
);
// Remove the item from the list
_basicp3List.removeWhere((item) => item['id'] == id);
_filteredList = List.from(_basicp3List);
notifyListeners();
return true;
} else {
_setError(response.message ?? 'Failed to delete Basicp3');
ToastMessageUtil.showToast(
message: response.message ?? 'Failed to delete Basicp3',
toastType: ToastType.error,
);
return false;
}
} catch (e) {
_setError('Failed to delete basicp3: $e');
ToastMessageUtil.showToast(
message: 'Failed to delete Basicp3: $e',
toastType: ToastType.error,
);
return false;
} finally {
_setLoading(false);
}
}
// Search basicp3
void searchbasicp3(String query) {
_searchQuery = query;
if (query.isEmpty) {
_filteredList = List.from(_basicp3List);
} else {
_filteredList = _basicp3List.where((item) {
return(item['toggle_switch']?.toString().toLowerCase().contains(query.toLowerCase()) ??false) ||
(item['toggle_switch2']?.toString().toLowerCase().contains(query.toLowerCase()) ??false) ||
(item['url_field']?.toString().toLowerCase().contains(query.toLowerCase()) ??false) ||
(item['url_field2']?.toString().toLowerCase().contains(query.toLowerCase()) ??false) ||
(item['decimal_field']?.toString().toLowerCase().contains(query.toLowerCase()) ??false) ||
(item['decimal_field2']?.toString().toLowerCase().contains(query.toLowerCase()) ??false) ||
(item['percentage_field']?.toString().toLowerCase().contains(query.toLowerCase()) ??false) ||
(item['percentage_field2']?.toString().toLowerCase().contains(query.toLowerCase()) ??false) ||
(item['documentsequenc']?.toString().toLowerCase().contains(query.toLowerCase()) ??false)
;
}).toList();
}
notifyListeners();
}
// Clear search
void clearSearch() {
_searchQuery = '';
_filteredList = List.from(_basicp3List);
notifyListeners();
}
// Refresh data
Future<void> refreshData() async {
await getAllWithPagination(refresh: true);
}
}

View File

@ -1,3 +1,12 @@
import '../../Entity/angulardatatype/Basicp3/Basicp3View/Basicp3_entity_list_screen.dart';
import '../../Entity/angulardatatype/Basicp3/Basicp3_viewModel/Basicp3_view_model_screen.dart';
import '../../Entity/angulardatatype/Basicp2/Basicp2View/Basicp2_entity_list_screen.dart';
import '../../Entity/angulardatatype/Basicp2/Basicp2_viewModel/Basicp2_view_model_screen.dart';
import '../../Entity/angulardatatype/Basicp1/Basicp1View/Basicp1_entity_list_screen.dart';
import '../../Entity/angulardatatype/Basicp1/Basicp1_viewModel/Basicp1_view_model_screen.dart';
import 'package:base_project/core/constants/ui_constants.dart';
import 'package:base_project/core/theme/color_scheme.dart';
import 'package:base_project/routes/route_names.dart';
@ -88,6 +97,57 @@ class _HomeViewState extends State<HomeView> with TickerProviderStateMixin {
// NEW ITEMS
// NEW MENU
DrawerItem(
icon: Icons.data_object,
title: 'Basicp3 Management',
subtitle: 'Manage Basicp3 entities',
onTap: (context) {
Navigator.push(
context,
MaterialPageRoute(
builder: (context) => ChangeNotifierProvider(
create: (context) => Basicp3ViewModelScreen(),
child: Basicp3_entity_list_screen(),
),
),
);
},
),
DrawerItem(
icon: Icons.data_object,
title: 'Basicp2 Management',
subtitle: 'Manage Basicp2 entities',
onTap: (context) {
Navigator.push(
context,
MaterialPageRoute(
builder: (context) => ChangeNotifierProvider(
create: (context) => Basicp2ViewModelScreen(),
child: Basicp2_entity_list_screen(),
),
),
);
},
),
DrawerItem(
icon: Icons.data_object,
title: 'Basicp1 Management',
subtitle: 'Manage Basicp1 entities',
onTap: (context) {
Navigator.push(
context,
MaterialPageRoute(
builder: (context) => ChangeNotifierProvider(
create: (context) => Basicp1ViewModelScreen(),
child: Basicp1_entity_list_screen(),
),
),
);
},
),
];
@override

View File

@ -69,6 +69,15 @@ public class BuilderService {
executeDump(true);
// ADD OTHER SERVICE
addCustomMenu( "Basicp3","Basicp3", "Transcations");
addCustomMenu( "Basicp2","Basicp2", "Transcations");
addCustomMenu( "Basicp1","Basicp1", "Transcations");
System.out.println("dashboard and menu inserted...");

View File

@ -0,0 +1,171 @@
package com.realnet.angulardatatype.Controllers;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import com.fasterxml.jackson.core.JsonProcessingException;
import org.springframework.web.bind.annotation.CrossOrigin;
import com.fasterxml.jackson.databind.JsonMappingException;
import com.realnet.config.EmailService;
import com.realnet.users.entity1.AppUser;
import com.realnet.users.service1.AppUserServiceImpl;
import com.fasterxml.jackson.databind.ObjectMapper;
import org.springframework.data.domain.*;
import com.realnet.fnd.response.EntityResponse;
import org.springframework.http.*;
import org.springframework.beans.factory.annotation.*;
import com.realnet.angulardatatype.Entity.Basicp1;
import com.realnet.angulardatatype.Services.Basicp1Service ;
@RequestMapping(value = "/Basicp1")
@CrossOrigin("*")
@RestController
public class Basicp1Controller {
@Autowired
private Basicp1Service Service;
@Value("${projectPath}")
private String projectPath;
@PostMapping("/Basicp1")
public Basicp1 Savedata(@RequestBody Basicp1 data) {
Basicp1 save = Service.Savedata(data) ;
System.out.println("data saved..." + save);
return save;
}
@PutMapping("/Basicp1/{id}")
public Basicp1 update(@RequestBody Basicp1 data,@PathVariable Integer id ) {
Basicp1 update = Service.update(data,id);
System.out.println("data update..." + update);
return update;
}
// get all with pagination
@GetMapping("/Basicp1/getall/page")
public Page<Basicp1> getall(@RequestParam(value = "page", required = false) Integer page,
@RequestParam(value = "size", required = false) Integer size) {
Pageable paging = PageRequest.of(page, size);
Page<Basicp1> get = Service.getAllWithPagination(paging);
return get;
}
@GetMapping("/Basicp1")
public List<Basicp1> getdetails() {
List<Basicp1> get = Service.getdetails();
return get;
}
// get all without authentication
@GetMapping("/token/Basicp1")
public List<Basicp1> getallwioutsec() {
List<Basicp1> get = Service.getdetails();
return get;
}
@GetMapping("/Basicp1/{id}")
public Basicp1 getdetailsbyId(@PathVariable Integer id ) {
Basicp1 get = Service.getdetailsbyId(id);
return get;
}
@DeleteMapping("/Basicp1/{id}")
public ResponseEntity<?> delete_by_id(@PathVariable Integer id ) {
Service.delete_by_id(id);
return new ResponseEntity<>(new EntityResponse("Deleted"), HttpStatus.OK);
}
}

View File

@ -0,0 +1,147 @@
package com.realnet.angulardatatype.Controllers;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import com.fasterxml.jackson.core.JsonProcessingException;
import org.springframework.web.bind.annotation.CrossOrigin;
import com.fasterxml.jackson.databind.JsonMappingException;
import com.realnet.config.EmailService;
import com.realnet.users.entity1.AppUser;
import com.realnet.users.service1.AppUserServiceImpl;
import com.fasterxml.jackson.databind.ObjectMapper;
import org.springframework.data.domain.*;
import com.realnet.fnd.response.EntityResponse;
import org.springframework.http.*;
import org.springframework.beans.factory.annotation.*;
import com.realnet.angulardatatype.Entity.Basicp2;
import com.realnet.angulardatatype.Services.Basicp2Service ;
@RequestMapping(value = "/Basicp2")
@CrossOrigin("*")
@RestController
public class Basicp2Controller {
@Autowired
private Basicp2Service Service;
@Value("${projectPath}")
private String projectPath;
@PostMapping("/Basicp2")
public Basicp2 Savedata(@RequestBody Basicp2 data) {
Basicp2 save = Service.Savedata(data) ;
System.out.println("data saved..." + save);
return save;
}
@PutMapping("/Basicp2/{id}")
public Basicp2 update(@RequestBody Basicp2 data,@PathVariable Integer id ) {
Basicp2 update = Service.update(data,id);
System.out.println("data update..." + update);
return update;
}
// get all with pagination
@GetMapping("/Basicp2/getall/page")
public Page<Basicp2> getall(@RequestParam(value = "page", required = false) Integer page,
@RequestParam(value = "size", required = false) Integer size) {
Pageable paging = PageRequest.of(page, size);
Page<Basicp2> get = Service.getAllWithPagination(paging);
return get;
}
@GetMapping("/Basicp2")
public List<Basicp2> getdetails() {
List<Basicp2> get = Service.getdetails();
return get;
}
// get all without authentication
@GetMapping("/token/Basicp2")
public List<Basicp2> getallwioutsec() {
List<Basicp2> get = Service.getdetails();
return get;
}
@GetMapping("/Basicp2/{id}")
public Basicp2 getdetailsbyId(@PathVariable Integer id ) {
Basicp2 get = Service.getdetailsbyId(id);
return get;
}
@DeleteMapping("/Basicp2/{id}")
public ResponseEntity<?> delete_by_id(@PathVariable Integer id ) {
Service.delete_by_id(id);
return new ResponseEntity<>(new EntityResponse("Deleted"), HttpStatus.OK);
}
}

View File

@ -0,0 +1,163 @@
package com.realnet.angulardatatype.Controllers;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import com.fasterxml.jackson.core.JsonProcessingException;
import org.springframework.web.bind.annotation.CrossOrigin;
import com.fasterxml.jackson.databind.JsonMappingException;
import com.realnet.config.EmailService;
import com.realnet.users.entity1.AppUser;
import com.realnet.users.service1.AppUserServiceImpl;
import com.fasterxml.jackson.databind.ObjectMapper;
import org.springframework.data.domain.*;
import com.realnet.fnd.response.EntityResponse;
import org.springframework.http.*;
import org.springframework.beans.factory.annotation.*;
import com.realnet.angulardatatype.Entity.Basicp3;
import com.realnet.angulardatatype.Services.Basicp3Service ;
@RequestMapping(value = "/Basicp3")
@CrossOrigin("*")
@RestController
public class Basicp3Controller {
@Autowired
private Basicp3Service Service;
@Value("${projectPath}")
private String projectPath;
@PostMapping("/Basicp3")
public Basicp3 Savedata(@RequestBody Basicp3 data) {
Basicp3 save = Service.Savedata(data) ;
System.out.println("data saved..." + save);
return save;
}
@PutMapping("/Basicp3/{id}")
public Basicp3 update(@RequestBody Basicp3 data,@PathVariable Integer id ) {
Basicp3 update = Service.update(data,id);
System.out.println("data update..." + update);
return update;
}
// get all with pagination
@GetMapping("/Basicp3/getall/page")
public Page<Basicp3> getall(@RequestParam(value = "page", required = false) Integer page,
@RequestParam(value = "size", required = false) Integer size) {
Pageable paging = PageRequest.of(page, size);
Page<Basicp3> get = Service.getAllWithPagination(paging);
return get;
}
@GetMapping("/Basicp3")
public List<Basicp3> getdetails() {
List<Basicp3> get = Service.getdetails();
return get;
}
// get all without authentication
@GetMapping("/token/Basicp3")
public List<Basicp3> getallwioutsec() {
List<Basicp3> get = Service.getdetails();
return get;
}
@GetMapping("/Basicp3/{id}")
public Basicp3 getdetailsbyId(@PathVariable Integer id ) {
Basicp3 get = Service.getdetailsbyId(id);
return get;
}
@DeleteMapping("/Basicp3/{id}")
public ResponseEntity<?> delete_by_id(@PathVariable Integer id ) {
Service.delete_by_id(id);
return new ResponseEntity<>(new EntityResponse("Deleted"), HttpStatus.OK);
}
}

View File

@ -0,0 +1,171 @@
package com.realnet.angulardatatype.Controllers;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import com.fasterxml.jackson.core.JsonProcessingException;
import org.springframework.web.bind.annotation.CrossOrigin;
import com.fasterxml.jackson.databind.JsonMappingException;
import com.realnet.config.EmailService;
import com.realnet.users.entity1.AppUser;
import com.realnet.users.service1.AppUserServiceImpl;
import com.fasterxml.jackson.databind.ObjectMapper;
import org.springframework.data.domain.*;
import com.realnet.fnd.response.EntityResponse;
import org.springframework.http.*;
import org.springframework.beans.factory.annotation.*;
import com.realnet.angulardatatype.Entity.Basicp1;
import com.realnet.angulardatatype.Services.Basicp1Service ;
@RequestMapping(value = "/token/Basicp1")
@CrossOrigin("*")
@RestController
public class tokenFree_Basicp1Controller {
@Autowired
private Basicp1Service Service;
@Value("${projectPath}")
private String projectPath;
@PostMapping("/Basicp1")
public Basicp1 Savedata(@RequestBody Basicp1 data) {
Basicp1 save = Service.Savedata(data) ;
System.out.println("data saved..." + save);
return save;
}
@PutMapping("/Basicp1/{id}")
public Basicp1 update(@RequestBody Basicp1 data,@PathVariable Integer id ) {
Basicp1 update = Service.update(data,id);
System.out.println("data update..." + update);
return update;
}
// get all with pagination
@GetMapping("/Basicp1/getall/page")
public Page<Basicp1> getall(@RequestParam(value = "page", required = false) Integer page,
@RequestParam(value = "size", required = false) Integer size) {
Pageable paging = PageRequest.of(page, size);
Page<Basicp1> get = Service.getAllWithPagination(paging);
return get;
}
@GetMapping("/Basicp1")
public List<Basicp1> getdetails() {
List<Basicp1> get = Service.getdetails();
return get;
}
// get all without authentication
@GetMapping("/token/Basicp1")
public List<Basicp1> getallwioutsec() {
List<Basicp1> get = Service.getdetails();
return get;
}
@GetMapping("/Basicp1/{id}")
public Basicp1 getdetailsbyId(@PathVariable Integer id ) {
Basicp1 get = Service.getdetailsbyId(id);
return get;
}
@DeleteMapping("/Basicp1/{id}")
public ResponseEntity<?> delete_by_id(@PathVariable Integer id ) {
Service.delete_by_id(id);
return new ResponseEntity<>(new EntityResponse("Deleted"), HttpStatus.OK);
}
}

View File

@ -0,0 +1,147 @@
package com.realnet.angulardatatype.Controllers;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import com.fasterxml.jackson.core.JsonProcessingException;
import org.springframework.web.bind.annotation.CrossOrigin;
import com.fasterxml.jackson.databind.JsonMappingException;
import com.realnet.config.EmailService;
import com.realnet.users.entity1.AppUser;
import com.realnet.users.service1.AppUserServiceImpl;
import com.fasterxml.jackson.databind.ObjectMapper;
import org.springframework.data.domain.*;
import com.realnet.fnd.response.EntityResponse;
import org.springframework.http.*;
import org.springframework.beans.factory.annotation.*;
import com.realnet.angulardatatype.Entity.Basicp2;
import com.realnet.angulardatatype.Services.Basicp2Service ;
@RequestMapping(value = "/token/Basicp2")
@CrossOrigin("*")
@RestController
public class tokenFree_Basicp2Controller {
@Autowired
private Basicp2Service Service;
@Value("${projectPath}")
private String projectPath;
@PostMapping("/Basicp2")
public Basicp2 Savedata(@RequestBody Basicp2 data) {
Basicp2 save = Service.Savedata(data) ;
System.out.println("data saved..." + save);
return save;
}
@PutMapping("/Basicp2/{id}")
public Basicp2 update(@RequestBody Basicp2 data,@PathVariable Integer id ) {
Basicp2 update = Service.update(data,id);
System.out.println("data update..." + update);
return update;
}
// get all with pagination
@GetMapping("/Basicp2/getall/page")
public Page<Basicp2> getall(@RequestParam(value = "page", required = false) Integer page,
@RequestParam(value = "size", required = false) Integer size) {
Pageable paging = PageRequest.of(page, size);
Page<Basicp2> get = Service.getAllWithPagination(paging);
return get;
}
@GetMapping("/Basicp2")
public List<Basicp2> getdetails() {
List<Basicp2> get = Service.getdetails();
return get;
}
// get all without authentication
@GetMapping("/token/Basicp2")
public List<Basicp2> getallwioutsec() {
List<Basicp2> get = Service.getdetails();
return get;
}
@GetMapping("/Basicp2/{id}")
public Basicp2 getdetailsbyId(@PathVariable Integer id ) {
Basicp2 get = Service.getdetailsbyId(id);
return get;
}
@DeleteMapping("/Basicp2/{id}")
public ResponseEntity<?> delete_by_id(@PathVariable Integer id ) {
Service.delete_by_id(id);
return new ResponseEntity<>(new EntityResponse("Deleted"), HttpStatus.OK);
}
}

View File

@ -0,0 +1,163 @@
package com.realnet.angulardatatype.Controllers;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import com.fasterxml.jackson.core.JsonProcessingException;
import org.springframework.web.bind.annotation.CrossOrigin;
import com.fasterxml.jackson.databind.JsonMappingException;
import com.realnet.config.EmailService;
import com.realnet.users.entity1.AppUser;
import com.realnet.users.service1.AppUserServiceImpl;
import com.fasterxml.jackson.databind.ObjectMapper;
import org.springframework.data.domain.*;
import com.realnet.fnd.response.EntityResponse;
import org.springframework.http.*;
import org.springframework.beans.factory.annotation.*;
import com.realnet.angulardatatype.Entity.Basicp3;
import com.realnet.angulardatatype.Services.Basicp3Service ;
@RequestMapping(value = "/token/Basicp3")
@CrossOrigin("*")
@RestController
public class tokenFree_Basicp3Controller {
@Autowired
private Basicp3Service Service;
@Value("${projectPath}")
private String projectPath;
@PostMapping("/Basicp3")
public Basicp3 Savedata(@RequestBody Basicp3 data) {
Basicp3 save = Service.Savedata(data) ;
System.out.println("data saved..." + save);
return save;
}
@PutMapping("/Basicp3/{id}")
public Basicp3 update(@RequestBody Basicp3 data,@PathVariable Integer id ) {
Basicp3 update = Service.update(data,id);
System.out.println("data update..." + update);
return update;
}
// get all with pagination
@GetMapping("/Basicp3/getall/page")
public Page<Basicp3> getall(@RequestParam(value = "page", required = false) Integer page,
@RequestParam(value = "size", required = false) Integer size) {
Pageable paging = PageRequest.of(page, size);
Page<Basicp3> get = Service.getAllWithPagination(paging);
return get;
}
@GetMapping("/Basicp3")
public List<Basicp3> getdetails() {
List<Basicp3> get = Service.getdetails();
return get;
}
// get all without authentication
@GetMapping("/token/Basicp3")
public List<Basicp3> getallwioutsec() {
List<Basicp3> get = Service.getdetails();
return get;
}
@GetMapping("/Basicp3/{id}")
public Basicp3 getdetailsbyId(@PathVariable Integer id ) {
Basicp3 get = Service.getdetailsbyId(id);
return get;
}
@DeleteMapping("/Basicp3/{id}")
public ResponseEntity<?> delete_by_id(@PathVariable Integer id ) {
Service.delete_by_id(id);
return new ResponseEntity<>(new EntityResponse("Deleted"), HttpStatus.OK);
}
}

View File

@ -0,0 +1,77 @@
package com.realnet.angulardatatype.Entity;
import lombok.*;
import com.realnet.WhoColumn.Entity.Extension;
import javax.persistence.*;
import java.time.LocalDateTime;
import java.util.*;
@Entity
@Data
public class Basicp1 extends Extension {
/**
*
*/
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer id;
private String name;
private String name2;
private int number1;
private int number2;
private String phone_number;
private String phone_number2;
@Column(length = 2000)
private String paragraph_field;
@Column(length = 2000)
private String paragraph_field2;
private String password_field;
@Transient
private String confirmpassword_field;
@Column(length = 2000)
private String textarea;
@Column(length = 2000)
private String textarea_field;
@Column(length = 2000)
private String textarea_field2;
}

View File

@ -0,0 +1,59 @@
package com.realnet.angulardatatype.Entity;
import lombok.*;
import com.realnet.WhoColumn.Entity.Extension;
import javax.persistence.*;
import java.time.LocalDateTime;
import java.util.*;
@Entity
@Data
public class Basicp2 extends Extension {
/**
*
*/
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer id;
@Column(length = 2000)
private String about;
@Column(length = 2000)
private String textarea2;
private String date_field;
private String date_field2;
private String datetime_field;
private String datetime_field2;
private String email_field;
private String email_field2;
private Long user_id;
private String user_name;
}

View File

@ -0,0 +1,64 @@
package com.realnet.angulardatatype.Entity;
import lombok.*;
import com.realnet.WhoColumn.Entity.Extension;
import javax.persistence.*;
import java.time.LocalDateTime;
import java.util.*;
@Entity
@Data
public class Basicp3 extends Extension {
/**
*
*/
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer id;
private Boolean toggle_switch;
private Boolean toggle_switch2;
private String url_field;
private String url_field2;
private double decimal_field;
private double decimal_field2;
private int percentage_field;
private int percentage_field2;
private String documentsequenc;
private String recaptcha;
private String recaptcha2;
}

View File

@ -0,0 +1,48 @@
package com.realnet.angulardatatype.Repository;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
import org.springframework.stereotype.Repository;
import java.util.*;
import com.realnet.angulardatatype.Entity.Basicp1;
@Repository
public interface Basicp1Repository extends JpaRepository<Basicp1, Integer> {
@Query(value = "select * from basicp1 where created_by=?1", nativeQuery = true)
List<Basicp1> findAll(Long creayedBy);
@Query(value = "select * from basicp1 where created_by=?1", nativeQuery = true)
Page<Basicp1> findAll( Long creayedBy,Pageable page);
}

View File

@ -0,0 +1,42 @@
package com.realnet.angulardatatype.Repository;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
import org.springframework.stereotype.Repository;
import java.util.*;
import com.realnet.angulardatatype.Entity.Basicp2;
@Repository
public interface Basicp2Repository extends JpaRepository<Basicp2, Integer> {
@Query(value = "select * from basicp2 where created_by=?1", nativeQuery = true)
List<Basicp2> findAll(Long creayedBy);
@Query(value = "select * from basicp2 where created_by=?1", nativeQuery = true)
Page<Basicp2> findAll( Long creayedBy,Pageable page);
}

View File

@ -0,0 +1,46 @@
package com.realnet.angulardatatype.Repository;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
import org.springframework.stereotype.Repository;
import java.util.*;
import com.realnet.angulardatatype.Entity.Basicp3;
@Repository
public interface Basicp3Repository extends JpaRepository<Basicp3, Integer> {
@Query(value = "select * from basicp3 where created_by=?1", nativeQuery = true)
List<Basicp3> findAll(Long creayedBy);
@Query(value = "select * from basicp3 where created_by=?1", nativeQuery = true)
Page<Basicp3> findAll( Long creayedBy,Pageable page);
}

View File

@ -0,0 +1,183 @@
package com.realnet.angulardatatype.Services;
import com.realnet.angulardatatype.Repository.Basicp1Repository;
import com.realnet.angulardatatype.Entity.Basicp1
;import java.util.*;
import org.springframework.beans.factory.annotation.Autowired;
import com.realnet.SequenceGenerator.Service.SequenceService;
import org.springframework.data.domain.Page;
import com.realnet.realm.Entity.Realm;
import com.realnet.realm.Services.RealmService;
import org.springframework.data.domain.Pageable;
import org.springframework.http.*;
import com.realnet.users.service1.AppUserServiceImpl;
import com.realnet.users.entity1.AppUser;
import org.springframework.stereotype.Service;
@Service
public class Basicp1Service {
@Autowired
private Basicp1Repository Repository;
@Autowired
private AppUserServiceImpl userService;
@Autowired
private RealmService realmService;
public Basicp1 Savedata(Basicp1 data) {
data.setUpdatedBy(getUser().getUserId());
data.setCreatedBy(getUser().getUserId());
data.setAccountId(getUser().getAccount().getAccount_id());
Basicp1 save = Repository.save(data);
return save;
}
// get all with pagination
public Page<Basicp1> getAllWithPagination(Pageable page) {
return Repository.findAll( getUser().getUserId(),page);
}
public List<Basicp1> getdetails() {
List<Realm> realm = realmService.findByUserId(getUser().getUserId());
List<Basicp1> all = Repository.findAll(getUser().getUserId());
return all ; }
public Basicp1 getdetailsbyId(Integer id) {
return Repository.findById(id).get();
}
public void delete_by_id(Integer id) {
Repository.deleteById(id);
}
public Basicp1 update(Basicp1 data,Integer id) {
Basicp1 old = Repository.findById(id).get();
old.setName(data.getName());
old.setName2(data.getName2());
old.setNumber1(data.getNumber1());
old.setNumber2(data.getNumber2());
old.setPhone_number(data.getPhone_number());
old.setPhone_number2(data.getPhone_number2());
old.setParagraph_field(data.getParagraph_field());
old.setParagraph_field2(data.getParagraph_field2());
old.setPassword_field(data.getPassword_field());
old.setTextarea(data.getTextarea());
old.setTextarea_field(data.getTextarea_field());
old.setTextarea_field2(data.getTextarea_field2());
final Basicp1 test = Repository.save(old);
data.setUpdatedBy(getUser().getUserId());
return test;}
public AppUser getUser() {
AppUser user = userService.getLoggedInUser();
return user;
}}

View File

@ -0,0 +1,154 @@
package com.realnet.angulardatatype.Services;
import com.realnet.angulardatatype.Repository.Basicp2Repository;
import com.realnet.angulardatatype.Entity.Basicp2
;import java.util.*;
import org.springframework.beans.factory.annotation.Autowired;
import com.realnet.SequenceGenerator.Service.SequenceService;
import org.springframework.data.domain.Page;
import com.realnet.realm.Entity.Realm;
import com.realnet.realm.Services.RealmService;
import org.springframework.data.domain.Pageable;
import org.springframework.http.*;
import com.realnet.users.service1.AppUserServiceImpl;
import com.realnet.users.entity1.AppUser;
import org.springframework.stereotype.Service;
@Service
public class Basicp2Service {
@Autowired
private Basicp2Repository Repository;
@Autowired
private AppUserServiceImpl userService;
@Autowired
private RealmService realmService;
public Basicp2 Savedata(Basicp2 data) {
data.setUser_id(getUser().getUserId());
data.setUser_name(getUser().getFullName());
data.setUpdatedBy(getUser().getUserId());
data.setCreatedBy(getUser().getUserId());
data.setAccountId(getUser().getAccount().getAccount_id());
Basicp2 save = Repository.save(data);
return save;
}
// get all with pagination
public Page<Basicp2> getAllWithPagination(Pageable page) {
return Repository.findAll( getUser().getUserId(),page);
}
public List<Basicp2> getdetails() {
List<Realm> realm = realmService.findByUserId(getUser().getUserId());
List<Basicp2> all = Repository.findAll(getUser().getUserId());
return all ; }
public Basicp2 getdetailsbyId(Integer id) {
return Repository.findById(id).get();
}
public void delete_by_id(Integer id) {
Repository.deleteById(id);
}
public Basicp2 update(Basicp2 data,Integer id) {
Basicp2 old = Repository.findById(id).get();
old.setAbout(data.getAbout());
old.setTextarea2(data.getTextarea2());
old.setDate_field(data.getDate_field());
old.setDate_field2(data.getDate_field2());
old.setDatetime_field(data.getDatetime_field());
old.setDatetime_field2(data.getDatetime_field2());
old.setEmail_field(data.getEmail_field());
old.setEmail_field2(data.getEmail_field2());
final Basicp2 test = Repository.save(old);
data.setUpdatedBy(getUser().getUserId());
return test;}
public AppUser getUser() {
AppUser user = userService.getLoggedInUser();
return user;
}}

View File

@ -0,0 +1,174 @@
package com.realnet.angulardatatype.Services;
import com.realnet.angulardatatype.Repository.Basicp3Repository;
import com.realnet.angulardatatype.Entity.Basicp3
;import java.util.*;
import org.springframework.beans.factory.annotation.Autowired;
import com.realnet.SequenceGenerator.Service.SequenceService;
import org.springframework.data.domain.Page;
import com.realnet.realm.Entity.Realm;
import com.realnet.realm.Services.RealmService;
import org.springframework.data.domain.Pageable;
import org.springframework.http.*;
import com.realnet.users.service1.AppUserServiceImpl;
import com.realnet.users.entity1.AppUser;
import org.springframework.stereotype.Service;
@Service
public class Basicp3Service {
@Autowired
private Basicp3Repository Repository;
@Autowired
private AppUserServiceImpl userService;
@Autowired
private RealmService realmService;
@Autowired
private SequenceService documentsequencsequenceService;
public Basicp3 Savedata(Basicp3 data) {
data.setDocumentsequenc (documentsequencsequenceService.GenerateSequence("ff"));
data.setUpdatedBy(getUser().getUserId());
data.setCreatedBy(getUser().getUserId());
data.setAccountId(getUser().getAccount().getAccount_id());
Basicp3 save = Repository.save(data);
return save;
}
// get all with pagination
public Page<Basicp3> getAllWithPagination(Pageable page) {
return Repository.findAll( getUser().getUserId(),page);
}
public List<Basicp3> getdetails() {
List<Realm> realm = realmService.findByUserId(getUser().getUserId());
List<Basicp3> all = Repository.findAll(getUser().getUserId());
return all ; }
public Basicp3 getdetailsbyId(Integer id) {
return Repository.findById(id).get();
}
public void delete_by_id(Integer id) {
Repository.deleteById(id);
}
public Basicp3 update(Basicp3 data,Integer id) {
Basicp3 old = Repository.findById(id).get();
old.setToggle_switch (data.getToggle_switch());
old.setToggle_switch2 (data.getToggle_switch2());
old.setUrl_field(data.getUrl_field());
old.setUrl_field2(data.getUrl_field2());
old.setDecimal_field(data.getDecimal_field());
old.setDecimal_field2(data.getDecimal_field2());
old.setPercentage_field(data.getPercentage_field());
old.setPercentage_field2(data.getPercentage_field2());
old.setDocumentsequenc(data.getDocumentsequenc());
old.setRecaptcha(data.getRecaptcha());
old.setRecaptcha2(data.getRecaptcha2());
final Basicp3 test = Repository.save(old);
data.setUpdatedBy(getUser().getUserId());
return test;}
public AppUser getUser() {
AppUser user = userService.getLoggedInUser();
return user;
}}