chore: update package name and bundle identifier to com.marcoonfieldwork.aiot

This commit is contained in:
Vaibhav Surve 2025-11-17 20:17:14 +05:30
parent 2260382990
commit 618ac6f27a
9 changed files with 31 additions and 54 deletions

View File

@ -15,7 +15,7 @@ if (keystorePropertiesFile.exists()) {
android { android {
// Define the namespace for your Android application // Define the namespace for your Android application
namespace = "com.marco.aiot" namespace = "com.marcoonfieldwork.aiot"
// Set the compile SDK version based on Flutter's configuration // Set the compile SDK version based on Flutter's configuration
compileSdk = flutter.compileSdkVersion compileSdk = flutter.compileSdkVersion
// Set the NDK version based on Flutter's configuration // Set the NDK version based on Flutter's configuration
@ -37,7 +37,7 @@ android {
// Default configuration for your application // Default configuration for your application
defaultConfig { defaultConfig {
// Specify your unique Application ID. This identifies your app on Google Play. // Specify your unique Application ID. This identifies your app on Google Play.
applicationId = "com.marco.aiot" applicationId = "com.marcoonfieldwork.aiot"
// Set minimum and target SDK versions based on Flutter's configuration // Set minimum and target SDK versions based on Flutter's configuration
minSdk = 23 minSdk = 23
targetSdk = flutter.targetSdkVersion targetSdk = flutter.targetSdkVersion

View File

@ -9,7 +9,7 @@
"client_info": { "client_info": {
"mobilesdk_app_id": "1:626581282477:android:8d3cf5009ff92ef67ff024", "mobilesdk_app_id": "1:626581282477:android:8d3cf5009ff92ef67ff024",
"android_client_info": { "android_client_info": {
"package_name": "com.marco.aiot" "package_name": "com.marcoonfieldwork.aiot"
} }
}, },
"oauth_client": [], "oauth_client": [],

View File

@ -1,4 +1,4 @@
package com.marco.aiot package com.marcoonfieldwork.aiot
import io.flutter.embedding.android.FlutterActivity import io.flutter.embedding.android.FlutterActivity

View File

@ -368,7 +368,7 @@
"$(inherited)", "$(inherited)",
"@executable_path/Frameworks", "@executable_path/Frameworks",
); );
PRODUCT_BUNDLE_IDENTIFIER = com.marco.aiot; PRODUCT_BUNDLE_IDENTIFIER = com.marcoonfieldwork.aiot;
PRODUCT_NAME = "$(TARGET_NAME)"; PRODUCT_NAME = "$(TARGET_NAME)";
SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";
SWIFT_VERSION = 5.0; SWIFT_VERSION = 5.0;
@ -384,7 +384,7 @@
CURRENT_PROJECT_VERSION = 1; CURRENT_PROJECT_VERSION = 1;
GENERATE_INFOPLIST_FILE = YES; GENERATE_INFOPLIST_FILE = YES;
MARKETING_VERSION = 1.0; MARKETING_VERSION = 1.0;
PRODUCT_BUNDLE_IDENTIFIER = com.marco.aiot.RunnerTests; PRODUCT_BUNDLE_IDENTIFIER = com.marcoonfieldwork.aiot.RunnerTests;
PRODUCT_NAME = "$(TARGET_NAME)"; PRODUCT_NAME = "$(TARGET_NAME)";
SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG;
SWIFT_OPTIMIZATION_LEVEL = "-Onone"; SWIFT_OPTIMIZATION_LEVEL = "-Onone";
@ -401,7 +401,7 @@
CURRENT_PROJECT_VERSION = 1; CURRENT_PROJECT_VERSION = 1;
GENERATE_INFOPLIST_FILE = YES; GENERATE_INFOPLIST_FILE = YES;
MARKETING_VERSION = 1.0; MARKETING_VERSION = 1.0;
PRODUCT_BUNDLE_IDENTIFIER = com.marco.aiot.RunnerTests; PRODUCT_BUNDLE_IDENTIFIER = com.marcoonfieldwork.aiot.RunnerTests;
PRODUCT_NAME = "$(TARGET_NAME)"; PRODUCT_NAME = "$(TARGET_NAME)";
SWIFT_VERSION = 5.0; SWIFT_VERSION = 5.0;
TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Runner.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/Runner"; TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Runner.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/Runner";
@ -416,7 +416,7 @@
CURRENT_PROJECT_VERSION = 1; CURRENT_PROJECT_VERSION = 1;
GENERATE_INFOPLIST_FILE = YES; GENERATE_INFOPLIST_FILE = YES;
MARKETING_VERSION = 1.0; MARKETING_VERSION = 1.0;
PRODUCT_BUNDLE_IDENTIFIER = com.marco.aiot.RunnerTests; PRODUCT_BUNDLE_IDENTIFIER = com.marcoonfieldwork.aiot.RunnerTests;
PRODUCT_NAME = "$(TARGET_NAME)"; PRODUCT_NAME = "$(TARGET_NAME)";
SWIFT_VERSION = 5.0; SWIFT_VERSION = 5.0;
TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Runner.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/Runner"; TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Runner.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/Runner";
@ -547,7 +547,7 @@
"$(inherited)", "$(inherited)",
"@executable_path/Frameworks", "@executable_path/Frameworks",
); );
PRODUCT_BUNDLE_IDENTIFIER = com.marco.aiot; PRODUCT_BUNDLE_IDENTIFIER = com.marcoonfieldwork.aiot;
PRODUCT_NAME = "$(TARGET_NAME)"; PRODUCT_NAME = "$(TARGET_NAME)";
SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";
SWIFT_OPTIMIZATION_LEVEL = "-Onone"; SWIFT_OPTIMIZATION_LEVEL = "-Onone";
@ -569,7 +569,7 @@
"$(inherited)", "$(inherited)",
"@executable_path/Frameworks", "@executable_path/Frameworks",
); );
PRODUCT_BUNDLE_IDENTIFIER = com.marco.aiot; PRODUCT_BUNDLE_IDENTIFIER = com.marcoonfieldwork.aiot;
PRODUCT_NAME = "$(TARGET_NAME)"; PRODUCT_NAME = "$(TARGET_NAME)";
SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";
SWIFT_VERSION = 5.0; SWIFT_VERSION = 5.0;

View File

@ -1,3 +1,4 @@
// ---------------- ExpenseDetailModel ----------------
class ExpenseDetailModel { class ExpenseDetailModel {
final String id; final String id;
final Project project; final Project project;
@ -23,7 +24,7 @@ class ExpenseDetailModel {
final String? gstNumber; final String? gstNumber;
final int noOfPersons; final int noOfPersons;
final bool isActive; final bool isActive;
final dynamic expensesReimburse; // can be replaced with model later final dynamic expensesReimburse;
ExpenseDetailModel({ ExpenseDetailModel({
required this.id, required this.id,
@ -56,51 +57,30 @@ class ExpenseDetailModel {
factory ExpenseDetailModel.fromJson(Map<String, dynamic> json) { factory ExpenseDetailModel.fromJson(Map<String, dynamic> json) {
return ExpenseDetailModel( return ExpenseDetailModel(
id: json['id'] ?? '', id: json['id'] ?? '',
project: json['project'] != null project: json['project'] != null ? Project.fromJson(json['project']) : Project.empty(),
? Project.fromJson(json['project'])
: Project.empty(),
expensesType: json['expensesType'] != null expensesType: json['expensesType'] != null
? ExpensesType.fromJson(json['expensesType']) ? ExpensesType.fromJson(json['expensesType'])
: ExpensesType.empty(), : ExpensesType.empty(),
paymentMode: json['paymentMode'] != null paymentMode: json['paymentMode'] != null
? PaymentMode.fromJson(json['paymentMode']) ? PaymentMode.fromJson(json['paymentMode'])
: PaymentMode.empty(), : PaymentMode.empty(),
paidBy: json['paidBy'] != null paidBy: json['paidBy'] != null ? Person.fromJson(json['paidBy']) : Person.empty(),
? Person.fromJson(json['paidBy']) createdBy: json['createdBy'] != null ? Person.fromJson(json['createdBy']) : Person.empty(),
: Person.empty(), reviewedBy: json['reviewedBy'] != null ? Person.fromJson(json['reviewedBy']) : null,
createdBy: json['createdBy'] != null approvedBy: json['approvedBy'] != null ? Person.fromJson(json['approvedBy']) : null,
? Person.fromJson(json['createdBy']) processedBy: json['processedBy'] != null ? Person.fromJson(json['processedBy']) : null,
: Person.empty(),
reviewedBy:
json['reviewedBy'] != null ? Person.fromJson(json['reviewedBy']) : null,
approvedBy:
json['approvedBy'] != null ? Person.fromJson(json['approvedBy']) : null,
processedBy: json['processedBy'] != null
? Person.fromJson(json['processedBy'])
: null,
transactionDate: json['transactionDate'] ?? '', transactionDate: json['transactionDate'] ?? '',
createdAt: json['createdAt'] ?? '', createdAt: json['createdAt'] ?? '',
supplerName: json['supplerName'] ?? '', supplerName: json['supplerName'] ?? '',
amount: (json['amount'] as num?)?.toDouble() ?? 0.0, amount: (json['amount'] as num?)?.toDouble() ?? 0.0,
status: json['status'] != null status: json['status'] != null ? ExpenseStatus.fromJson(json['status']) : ExpenseStatus.empty(),
? ExpenseStatus.fromJson(json['status']) nextStatus: (json['nextStatus'] as List?)?.map((e) => ExpenseStatus.fromJson(e)).toList() ?? [],
: ExpenseStatus.empty(),
nextStatus: (json['nextStatus'] as List?)
?.map((e) => ExpenseStatus.fromJson(e))
.toList() ??
[],
preApproved: json['preApproved'] ?? false, preApproved: json['preApproved'] ?? false,
transactionId: json['transactionId'] ?? '', transactionId: json['transactionId'] ?? '',
description: json['description'] ?? '', description: json['description'] ?? '',
location: json['location'] ?? '', location: json['location'] ?? '',
documents: (json['documents'] as List?) documents: (json['documents'] as List?)?.map((e) => ExpenseDocument.fromJson(e)).toList() ?? [],
?.map((e) => ExpenseDocument.fromJson(e)) expenseLogs: (json['expenseLogs'] as List?)?.map((e) => ExpenseLog.fromJson(e)).toList() ?? [],
.toList() ??
[],
expenseLogs: (json['expenseLogs'] as List?)
?.map((e) => ExpenseLog.fromJson(e))
.toList() ??
[],
gstNumber: json['gstNumber']?.toString(), gstNumber: json['gstNumber']?.toString(),
noOfPersons: json['noOfPersons'] ?? 0, noOfPersons: json['noOfPersons'] ?? 0,
isActive: json['isActive'] ?? true, isActive: json['isActive'] ?? true,
@ -259,7 +239,7 @@ class ExpenseStatus {
final String name; final String name;
final String displayName; final String displayName;
final String description; final String description;
final String? permissionIds; // API sends list, but can stringify final String? permissionIds;
final String color; final String color;
final bool isSystem; final bool isSystem;
@ -268,7 +248,7 @@ class ExpenseStatus {
required this.name, required this.name,
required this.displayName, required this.displayName,
required this.description, required this.description,
required this.permissionIds, this.permissionIds,
required this.color, required this.color,
required this.isSystem, required this.isSystem,
}); });
@ -342,9 +322,7 @@ class ExpenseLog {
factory ExpenseLog.fromJson(Map<String, dynamic> json) { factory ExpenseLog.fromJson(Map<String, dynamic> json) {
return ExpenseLog( return ExpenseLog(
id: json['id'] ?? '', id: json['id'] ?? '',
updatedBy: json['updatedBy'] != null updatedBy: json['updatedBy'] != null ? Person.fromJson(json['updatedBy']) : Person.empty(),
? Person.fromJson(json['updatedBy'])
: Person.empty(),
action: json['action'] ?? '', action: json['action'] ?? '',
updateAt: json['updateAt'] ?? '', updateAt: json['updateAt'] ?? '',
comment: json['comment'] ?? '', comment: json['comment'] ?? '',

View File

@ -7,7 +7,7 @@ project(runner LANGUAGES CXX)
set(BINARY_NAME "marco") set(BINARY_NAME "marco")
# The unique GTK application identifier for this application. See: # The unique GTK application identifier for this application. See:
# https://wiki.gnome.org/HowDoI/ChooseApplicationID # https://wiki.gnome.org/HowDoI/ChooseApplicationID
set(APPLICATION_ID "com.marco.aiot") set(APPLICATION_ID "com.marcoonfieldwork.aiot")
# Explicitly opt in to modern CMake behaviors to avoid warnings with recent # Explicitly opt in to modern CMake behaviors to avoid warnings with recent
# versions of CMake. # versions of CMake.

View File

@ -385,7 +385,7 @@
CURRENT_PROJECT_VERSION = 1; CURRENT_PROJECT_VERSION = 1;
GENERATE_INFOPLIST_FILE = YES; GENERATE_INFOPLIST_FILE = YES;
MARKETING_VERSION = 1.0; MARKETING_VERSION = 1.0;
PRODUCT_BUNDLE_IDENTIFIER = com.marco.aiot.RunnerTests; PRODUCT_BUNDLE_IDENTIFIER = com.marcoonfieldwork.aiot.RunnerTests;
PRODUCT_NAME = "$(TARGET_NAME)"; PRODUCT_NAME = "$(TARGET_NAME)";
SWIFT_VERSION = 5.0; SWIFT_VERSION = 5.0;
TEST_HOST = "$(BUILT_PRODUCTS_DIR)/marco.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/marco"; TEST_HOST = "$(BUILT_PRODUCTS_DIR)/marco.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/marco";
@ -399,7 +399,7 @@
CURRENT_PROJECT_VERSION = 1; CURRENT_PROJECT_VERSION = 1;
GENERATE_INFOPLIST_FILE = YES; GENERATE_INFOPLIST_FILE = YES;
MARKETING_VERSION = 1.0; MARKETING_VERSION = 1.0;
PRODUCT_BUNDLE_IDENTIFIER = com.marco.aiot.RunnerTests; PRODUCT_BUNDLE_IDENTIFIER = com.marcoonfieldwork.aiot.RunnerTests;
PRODUCT_NAME = "$(TARGET_NAME)"; PRODUCT_NAME = "$(TARGET_NAME)";
SWIFT_VERSION = 5.0; SWIFT_VERSION = 5.0;
TEST_HOST = "$(BUILT_PRODUCTS_DIR)/marco.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/marco"; TEST_HOST = "$(BUILT_PRODUCTS_DIR)/marco.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/marco";
@ -413,7 +413,7 @@
CURRENT_PROJECT_VERSION = 1; CURRENT_PROJECT_VERSION = 1;
GENERATE_INFOPLIST_FILE = YES; GENERATE_INFOPLIST_FILE = YES;
MARKETING_VERSION = 1.0; MARKETING_VERSION = 1.0;
PRODUCT_BUNDLE_IDENTIFIER = com.marco.aiot.RunnerTests; PRODUCT_BUNDLE_IDENTIFIER = com.marcoonfieldwork.aiot.RunnerTests;
PRODUCT_NAME = "$(TARGET_NAME)"; PRODUCT_NAME = "$(TARGET_NAME)";
SWIFT_VERSION = 5.0; SWIFT_VERSION = 5.0;
TEST_HOST = "$(BUILT_PRODUCTS_DIR)/marco.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/marco"; TEST_HOST = "$(BUILT_PRODUCTS_DIR)/marco.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/marco";

View File

@ -8,7 +8,7 @@
PRODUCT_NAME = marco PRODUCT_NAME = marco
// The application's bundle identifier // The application's bundle identifier
PRODUCT_BUNDLE_IDENTIFIER = com.marco.aiot PRODUCT_BUNDLE_IDENTIFIER = com.marcoonfieldwork.aiot
// The copyright displayed in application information // The copyright displayed in application information
PRODUCT_COPYRIGHT = Copyright © 2024 com.example. All rights reserved. PRODUCT_COPYRIGHT = Copyright © 2024 com.example. All rights reserved.

View File

@ -16,8 +16,7 @@ publish_to: 'none' # Remove this line if you wish to publish to pub.dev
# https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html # https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html
# In Windows, build-name is used as the major, minor, and patch parts # In Windows, build-name is used as the major, minor, and patch parts
# of the product and file versions while build-number is used as the build suffix. # of the product and file versions while build-number is used as the build suffix.
version: 1.0.0+7 version: 1.0.0+13
environment: environment:
sdk: ^3.5.3 sdk: ^3.5.3