Refactor employee model imports and restructure employee-related files

- Updated import paths for employee model files to reflect new directory structure.
- Deleted obsolete models: JobRecentApplicationModel, LeadReportModel, Product, ProductOrderModal, ProjectSummaryModel, RecentOrderModel, TaskListModel, TimeLineModel, User, VisitorByChannelsModel.
- Introduced new AttendanceLogModel, AttendanceLogViewModel, AttendanceModel, TaskModel, TaskListModel, EmployeeInfo, and EmployeeModel with comprehensive fields and JSON serialization methods.
- Enhanced data handling in attendance and task management features.
This commit is contained in:
Vaibhav Surve 2025-08-26 11:53:53 +05:30
parent c69e0d5221
commit 91184b48bb
41 changed files with 27 additions and 498 deletions

View File

@ -9,12 +9,12 @@ import 'package:marco/helpers/services/app_logger.dart';
import 'package:marco/helpers/services/api_service.dart';
import 'package:marco/helpers/widgets/my_image_compressor.dart';
import 'package:marco/model/attendance_model.dart';
import 'package:marco/model/attendance/attendance_model.dart';
import 'package:marco/model/project_model.dart';
import 'package:marco/model/employee_model.dart';
import 'package:marco/model/attendance_log_model.dart';
import 'package:marco/model/employees/employee_model.dart';
import 'package:marco/model/attendance/attendance_log_model.dart';
import 'package:marco/model/regularization_log_model.dart';
import 'package:marco/model/attendance_log_view_model.dart';
import 'package:marco/model/attendance/attendance_log_view_model.dart';
import 'package:marco/controller/project_controller.dart';

View File

@ -3,7 +3,7 @@ import 'package:get/get.dart';
import 'package:marco/helpers/services/app_logger.dart';
import 'package:marco/helpers/services/api_service.dart';
import 'package:marco/model/project_model.dart';
import 'package:marco/model/daily_task_model.dart';
import 'package:marco/model/dailyTaskPlaning/daily_task_model.dart';
class DailyTaskController extends GetxController {
List<ProjectModel> projects = [];

View File

@ -1,9 +1,9 @@
import 'package:get/get.dart';
import 'package:marco/helpers/services/app_logger.dart';
import 'package:marco/helpers/services/api_service.dart';
import 'package:marco/model/attendance_model.dart';
import 'package:marco/model/attendance/attendance_model.dart';
import 'package:marco/model/project_model.dart';
import 'package:marco/model/employee_model.dart';
import 'package:marco/model/employees/employee_model.dart';
import 'package:marco/model/employees/employee_details_model.dart';
import 'package:marco/controller/project_controller.dart';

View File

@ -1,7 +1,7 @@
import 'package:get/get.dart';
import 'package:marco/helpers/services/app_logger.dart';
import 'package:marco/helpers/services/api_service.dart';
import 'package:marco/model/employee_model.dart';
import 'package:marco/model/employees/employee_model.dart';
import 'package:marco/helpers/widgets/my_snackbar.dart';
import 'package:marco/controller/directory/directory_controller.dart';

View File

@ -12,7 +12,7 @@ import 'package:marco/controller/expense/expense_screen_controller.dart';
import 'package:marco/helpers/services/api_service.dart';
import 'package:marco/helpers/services/app_logger.dart';
import 'package:marco/helpers/widgets/my_snackbar.dart';
import 'package:marco/model/employee_model.dart';
import 'package:marco/model/employees/employee_model.dart';
import 'package:marco/model/expense/expense_type_model.dart';
import 'package:marco/model/expense/payment_types_model.dart';
import 'package:mime/mime.dart';

View File

@ -2,7 +2,7 @@ import 'package:get/get.dart';
import 'package:marco/helpers/services/api_service.dart';
import 'package:marco/helpers/services/app_logger.dart';
import 'package:marco/model/expense/expense_detail_model.dart';
import 'package:marco/model/employee_model.dart';
import 'package:marco/model/employees/employee_model.dart';
import 'package:flutter/material.dart';
class ExpenseDetailController extends GetxController {

View File

@ -6,7 +6,7 @@ import 'package:marco/model/expense/expense_list_model.dart';
import 'package:marco/model/expense/payment_types_model.dart';
import 'package:marco/model/expense/expense_type_model.dart';
import 'package:marco/model/expense/expense_status_model.dart';
import 'package:marco/model/employee_model.dart';
import 'package:marco/model/employees/employee_model.dart';
import 'package:marco/helpers/widgets/my_snackbar.dart';
import 'package:flutter/material.dart';

View File

@ -1,17 +0,0 @@
import 'package:marco/controller/my_controller.dart';
import 'package:marco/helpers/widgets/my_text_utils.dart';
import 'package:marco/model/time_line.dart';
class TimeLineController extends MyController {
List<TimeLineModel> timeline = [];
List<String> dummyTexts = List.generate(12, (index) => MyTextUtils.getDummyText(60));
@override
void onInit() {
TimeLineModel.dummyList.then((value) {
timeline = value.sublist(0, 6);
update();
});
super.onInit();
}
}

View File

@ -5,7 +5,7 @@ import 'package:shared_preferences/shared_preferences.dart';
import 'package:marco/helpers/services/app_logger.dart';
import 'package:marco/helpers/services/permission_service.dart';
import 'package:marco/model/user_permission.dart';
import 'package:marco/model/employee_info.dart';
import 'package:marco/model/employees/employee_info.dart';
import 'package:marco/model/projects_model.dart';
class PermissionController extends GetxController {

View File

@ -5,7 +5,7 @@ import 'package:marco/helpers/widgets/my_form_validator.dart';
import 'package:marco/helpers/widgets/my_snackbar.dart';
import 'package:marco/model/project_model.dart';
import 'package:marco/model/dailyTaskPlaning/daily_task_planing_model.dart';
import 'package:marco/model/employee_model.dart';
import 'package:marco/model/employees/employee_model.dart';
class DailyTaskPlaningController extends GetxController {
List<ProjectModel> projects = [];

View File

@ -1,26 +0,0 @@
import 'package:marco/controller/my_controller.dart';
import 'package:marco/helpers/widgets/my_text_utils.dart';
import 'package:flutter/material.dart';
import 'package:marco/model/drag_n_drop_model.dart';
class DragNDropController extends MyController {
List<DragNDropModel> dragNDrop = [];
final scrollController = ScrollController();
final gridViewKey = GlobalKey();
List<String> dummyTexts = List.generate(12, (index) => MyTextUtils.getDummyText(60));
@override
void onInit() {
DragNDropModel.dummyList.then((value) {
dragNDrop = value;
update();
});
super.onInit();
}
void onReorder(int oldIndex, int newIndex) {
final item = dragNDrop.removeAt(oldIndex);
dragNDrop.insert(newIndex, item);
update();
}
}

View File

@ -1,6 +1,6 @@
class ApiEndpoints {
// static const String baseUrl = "https://stageapi.marcoaiot.com/api";
static const String baseUrl = "https://api.marcoaiot.com/api";
static const String baseUrl = "https://stageapi.marcoaiot.com/api";
// static const String baseUrl = "https://api.marcoaiot.com/api";
// Dashboard Module API Endpoints
static const String getDashboardAttendanceOverview = "/dashboard/attendance-overview";

View File

@ -4,7 +4,7 @@ import 'package:http/http.dart' as http;
import 'package:marco/helpers/services/app_logger.dart';
import 'package:marco/model/user_permission.dart';
import 'package:marco/model/employee_info.dart';
import 'package:marco/model/employees/employee_info.dart';
import 'package:marco/model/projects_model.dart';
import 'package:marco/helpers/services/storage/local_storage.dart';
import 'package:marco/helpers/services/auth_service.dart';

View File

@ -5,7 +5,7 @@ import 'package:marco/controller/project_controller.dart';
import 'package:marco/helpers/services/auth_service.dart';
import 'package:marco/helpers/services/localizations/language.dart';
import 'package:marco/helpers/theme/theme_customizer.dart';
import 'package:marco/model/employee_info.dart';
import 'package:marco/model/employees/employee_info.dart';
import 'package:marco/model/user_permission.dart';
class LocalStorage {

View File

@ -7,7 +7,7 @@ import 'package:marco/helpers/utils/base_bottom_sheet.dart';
import 'package:marco/helpers/widgets/my_text.dart';
import 'package:marco/helpers/widgets/my_spacing.dart';
import 'package:marco/helpers/widgets/my_snackbar.dart';
import 'package:marco/model/employee_model.dart';
import 'package:marco/model/employees/employee_model.dart';
import 'package:marco/model/directory/contact_bucket_list_model.dart';
class EditBucketBottomSheet {

View File

@ -1,39 +0,0 @@
import 'dart:convert';
import 'package:flutter/services.dart';
import 'package:marco/helpers/services/json_decoder.dart';
import 'package:marco/model/identifier_model.dart';
class DragNDropModel extends IdentifierModel {
final String name, image, userName, contactNumber;
DragNDropModel(super.id, this.name, this.image, this.userName, this.contactNumber);
static DragNDropModel fromJSON(Map<String, dynamic> json) {
JSONDecoder decoder = JSONDecoder(json);
String name = decoder.getString('name');
String image = decoder.getString('image');
String userName = decoder.getString('user_name');
String contactNumber = decoder.getString('contact_number');
return DragNDropModel(decoder.getId, name, image, userName, contactNumber);
}
static List<DragNDropModel> listFromJSON(List<dynamic> list) {
return list.map((e) => DragNDropModel.fromJSON(e)).toList();
}
static List<DragNDropModel>? _dummyList;
static Future<List<DragNDropModel>> get dummyList async {
if (_dummyList == null) {
dynamic data = json.decode(await getData());
_dummyList = listFromJSON(data);
}
return _dummyList!;
}
static Future<String> getData() async {
return await rootBundle.loadString('assets/data/drag_n_drop_data.json');
}
}

View File

@ -3,7 +3,7 @@ import 'package:get/get.dart';
import 'package:marco/helpers/widgets/my_spacing.dart';
import 'package:marco/helpers/widgets/my_text.dart';
import 'package:marco/helpers/utils/base_bottom_sheet.dart';
import 'package:marco/model/employee_model.dart';
import 'package:marco/model/employees/employee_model.dart';
class ReusableEmployeeSelectorBottomSheet extends StatelessWidget {
final TextEditingController searchController;

View File

@ -3,7 +3,7 @@ import 'package:get/get.dart';
import 'package:marco/helpers/widgets/my_spacing.dart';
import 'package:marco/helpers/widgets/my_text.dart';
import 'package:marco/helpers/widgets/my_text_style.dart';
import 'package:marco/model/employee_model.dart';
import 'package:marco/model/employees/employee_model.dart';
import 'package:marco/helpers/utils/base_bottom_sheet.dart';
class EmployeeSelectorBottomSheet extends StatefulWidget {

View File

@ -1,45 +0,0 @@
import 'dart:convert';
import 'package:marco/helpers/services/json_decoder.dart';
import 'package:marco/model/identifier_model.dart';
import 'package:flutter/services.dart';
class JobRecentApplicationModel extends IdentifierModel {
final String candidate, category, designation, mail, location, type;
final DateTime date;
JobRecentApplicationModel(super.id, this.candidate, this.category, this.designation, this.mail, this.location, this.type, this.date);
static JobRecentApplicationModel fromJSON(Map<String, dynamic> json) {
JSONDecoder decoder = JSONDecoder(json);
String candidate = decoder.getString('candidate');
String category = decoder.getString('category');
String designation = decoder.getString('designation');
String mail = decoder.getString('mail');
String location = decoder.getString('location');
String type = decoder.getString('type');
DateTime date = decoder.getDateTime('date');
return JobRecentApplicationModel(decoder.getId, candidate, category, designation, mail, location, type, date);
}
static List<JobRecentApplicationModel> listFromJSON(List<dynamic> list) {
return list.map((e) => JobRecentApplicationModel.fromJSON(e)).toList();
}
static List<JobRecentApplicationModel>? _dummyList;
static Future<List<JobRecentApplicationModel>> get dummyList async {
if (_dummyList == null) {
dynamic data = json.decode(await getData());
_dummyList = listFromJSON(data);
}
return _dummyList!;
}
static Future<String> getData() async {
return await rootBundle.loadString('assets/data/job_recent_application.json');
}
}

View File

@ -1,47 +0,0 @@
import 'dart:convert';
import 'package:marco/helpers/services/json_decoder.dart';
import 'package:marco/model/identifier_model.dart';
import 'package:flutter/services.dart';
class LeadReportModel extends IdentifierModel {
final String firstName, email, phoneNumber, companyName, status, location;
final DateTime date;
final int amount;
LeadReportModel(super.id, this.firstName, this.email, this.phoneNumber, this.companyName, this.status, this.location, this.date, this.amount);
static LeadReportModel fromJSON(Map<String, dynamic> json) {
JSONDecoder decoder = JSONDecoder(json);
String firstName = decoder.getString('first_name');
String email = decoder.getString('email');
String phoneNumber = decoder.getString('phone_number');
String companyName = decoder.getString('company_name');
String status = decoder.getString('status');
String location = decoder.getString('location');
DateTime date = decoder.getDateTime('date');
int amount = decoder.getInt('amount');
return LeadReportModel(decoder.getId, firstName, email, phoneNumber, companyName, status, location, date, amount);
}
static List<LeadReportModel> listFromJSON(List<dynamic> list) {
return list.map((e) => LeadReportModel.fromJSON(e)).toList();
}
static List<LeadReportModel>? _dummyList;
static Future<List<LeadReportModel>> get dummyList async {
if (_dummyList == null) {
dynamic data = json.decode(await getData());
_dummyList = listFromJSON(data);
}
return _dummyList!;
}
static Future<String> getData() async {
return await rootBundle.loadString('assets/data/leads_report_data.json');
}
}

View File

@ -1,53 +0,0 @@
import 'dart:convert';
import 'package:flutter/services.dart';
import 'package:marco/helpers/services/json_decoder.dart';
import 'package:marco/model/identifier_model.dart';
class Product extends IdentifierModel {
final String name, description, image, category, sku;
final double price, rating;
final int stock, ordersCount, ratingCount;
final DateTime createdAt;
Product(super.id, this.name, this.description, this.image, this.category, this.sku, this.price, this.rating, this.stock, this.ordersCount, this.ratingCount,
this.createdAt);
static Product fromJSON(Map<String, dynamic> json) {
JSONDecoder decoder = JSONDecoder(json);
String name = decoder.getString('name');
String description = decoder.getString('description');
String image = decoder.getString('image');
String category = decoder.getString('category');
String sku = decoder.getString('sku');
double price = decoder.getDouble('price');
double rating = decoder.getDouble('rating');
int stock = decoder.getInt('stock');
int ordersCount = decoder.getInt('order_counts');
int ratingCount = decoder.getInt('rating_count');
DateTime createdAt = decoder.getDateTime('created_at');
return Product(decoder.getId, name, description, image, category, sku, price, rating, stock, ordersCount, ratingCount, createdAt);
}
static List<Product> listFromJSON(List<dynamic> list) {
return list.map((e) => Product.fromJSON(e)).toList();
}
//Dummy
static List<Product>? _dummyList;
static Future<List<Product>> get dummyList async {
if (_dummyList == null) {
dynamic data = json.decode(await getData());
_dummyList = listFromJSON(data);
}
return _dummyList!.sublist(0, 10);
}
static Future<String> getData() async {
return await rootBundle.loadString('assets/data/product_data.json');
}
}

View File

@ -1,47 +0,0 @@
import 'dart:convert';
import 'package:marco/helpers/services/json_decoder.dart';
import 'package:marco/model/identifier_model.dart';
import 'package:flutter/services.dart';
class ProductOrderModal extends IdentifierModel {
final String orderId, customerName, location, payment, status;
final int quantity, price;
final DateTime orderDate;
ProductOrderModal(super.id, this.orderId, this.customerName, this.location, this.payment, this.status, this.quantity, this.price, this.orderDate);
static ProductOrderModal fromJSON(Map<String, dynamic> json) {
JSONDecoder decoder = JSONDecoder(json);
String orderId = decoder.getString('order_id');
String customerName = decoder.getString('customer_name');
String location = decoder.getString('location');
String payment = decoder.getString('payments');
String status = decoder.getString('status');
int quantity = decoder.getInt('quantity');
int price = decoder.getInt('price');
DateTime orderDate = decoder.getDateTime('order_date');
return ProductOrderModal(decoder.getId, orderId, customerName, location, payment, status, quantity, price, orderDate);
}
static List<ProductOrderModal> listFromJSON(List<dynamic> list) {
return list.map((e) => ProductOrderModal.fromJSON(e)).toList();
}
static List<ProductOrderModal>? _dummyList;
static Future<List<ProductOrderModal>> get dummyList async {
if (_dummyList == null) {
dynamic data = json.decode(await getData());
_dummyList = listFromJSON(data);
}
return _dummyList!;
}
static Future<String> getData() async {
return await rootBundle.loadString('assets/data/product_order.json');
}
}

View File

@ -1,50 +0,0 @@
import 'dart:convert';
import 'package:marco/helpers/services/json_decoder.dart';
import 'package:marco/model/identifier_model.dart';
import 'package:flutter/services.dart';
class ProjectSummaryModel extends IdentifierModel {
final String title, assignTo, priority, status;
final DateTime date;
ProjectSummaryModel(
super.id,
this.title,
this.assignTo,
this.priority,
this.status,
this.date,
);
static ProjectSummaryModel fromJSON(Map<String, dynamic> json) {
JSONDecoder decoder = JSONDecoder(json);
String title = decoder.getString('title');
String assignTo = decoder.getString('assign_to');
String priority = decoder.getString('priority');
String status = decoder.getString('status');
DateTime date = decoder.getDateTime('date');
return ProjectSummaryModel(decoder.getId, title, assignTo, priority, status, date);
}
static List<ProjectSummaryModel> listFromJSON(List<dynamic> list) {
return list.map((e) => ProjectSummaryModel.fromJSON(e)).toList();
}
static List<ProjectSummaryModel>? _dummyList;
static Future<List<ProjectSummaryModel>> get dummyList async {
if (_dummyList == null) {
dynamic data = json.decode(await getData());
_dummyList = listFromJSON(data);
}
return _dummyList!;
}
static Future<String> getData() async {
return await rootBundle.loadString('assets/data/project_summary.json');
}
}

View File

@ -1,53 +0,0 @@
import 'dart:convert';
import 'package:marco/helpers/services/json_decoder.dart';
import 'package:marco/model/identifier_model.dart';
import 'package:flutter/services.dart';
class RecentOrderModel extends IdentifierModel {
final String productName, customer, status;
final int quantity, price;
final DateTime orderDate;
RecentOrderModel(
super.id,
this.productName,
this.customer,
this.status,
this.quantity,
this.price,
this.orderDate,
);
static RecentOrderModel fromJSON(Map<String, dynamic> json) {
JSONDecoder decoder = JSONDecoder(json);
String productName = decoder.getString('product_name');
String customer = decoder.getString('customer');
String status = decoder.getString('status');
int quantity = decoder.getInt('quantity');
int price = decoder.getInt('price');
DateTime orderDate = decoder.getDateTime('order_date');
return RecentOrderModel(decoder.getId, productName, customer, status, quantity, price, orderDate);
}
static List<RecentOrderModel> listFromJSON(List<dynamic> list) {
return list.map((e) => RecentOrderModel.fromJSON(e)).toList();
}
static List<RecentOrderModel>? _dummyList;
static Future<List<RecentOrderModel>> get dummyList async {
if (_dummyList == null) {
dynamic data = json.decode(await getData());
_dummyList = listFromJSON(data);
}
return _dummyList!;
}
static Future<String> getData() async {
return await rootBundle.loadString('assets/data/recent_order.json');
}
}

View File

@ -1,38 +0,0 @@
import 'dart:convert';
import 'package:flutter/services.dart';
import 'package:marco/helpers/services/json_decoder.dart';
import 'package:marco/model/identifier_model.dart';
class TimeLineModel extends IdentifierModel {
final String firstName, lastName, email;
TimeLineModel(super.id, this.firstName, this.lastName, this.email);
static TimeLineModel fromJSON(Map<String, dynamic> json) {
JSONDecoder decoder = JSONDecoder(json);
String firstName = decoder.getString('first_name');
String lastName = decoder.getString('last_name');
String email = decoder.getString('email');
return TimeLineModel(decoder.getId, firstName, lastName, email);
}
static List<TimeLineModel> listFromJSON(List<dynamic> list) {
return list.map((e) => TimeLineModel.fromJSON(e)).toList();
}
static List<TimeLineModel>? _dummyList;
static Future<List<TimeLineModel>> get dummyList async {
if (_dummyList == null) {
dynamic data = json.decode(await getData());
_dummyList = listFromJSON(data);
}
return _dummyList!;
}
static Future<String> getData() async {
return await rootBundle.loadString('assets/data/time_line.json');
}
}

View File

@ -1,10 +0,0 @@
import 'package:marco/model/identifier_model.dart';
class User extends IdentifierModel {
final String username, firstName, lastName;
User(super.id, this.username, this.firstName, this.lastName);
String get name => "$firstName $lastName";
}

View File

@ -1,46 +0,0 @@
import 'dart:convert';
import 'package:marco/helpers/services/json_decoder.dart';
import 'package:marco/model/identifier_model.dart';
import 'package:flutter/services.dart';
class VisitorByChannelsModel extends IdentifierModel {
final String channel;
final int session, targetReached;
final double bounceRate, pagePerSession;
final DateTime sessionDuration;
VisitorByChannelsModel(super.id, this.channel, this.session, this.targetReached, this.bounceRate, this.pagePerSession, this.sessionDuration);
static VisitorByChannelsModel fromJSON(Map<String, dynamic> json) {
JSONDecoder decoder = JSONDecoder(json);
String channel = decoder.getString('channel');
int session = decoder.getInt('session');
int targetReached = decoder.getInt('target_reached');
double bounceRate = decoder.getDouble('bounce_rate');
double pagePerSession = decoder.getDouble('page_per_session');
DateTime sessionDuration = decoder.getDateTime('session_duration');
return VisitorByChannelsModel(decoder.getId, channel, session, targetReached, bounceRate, pagePerSession, sessionDuration);
}
static List<VisitorByChannelsModel> listFromJSON(List<dynamic> list) {
return list.map((e) => VisitorByChannelsModel.fromJSON(e)).toList();
}
static List<VisitorByChannelsModel>? _dummyList;
static Future<List<VisitorByChannelsModel>> get dummyList async {
if (_dummyList == null) {
dynamic data = json.decode(await getData());
_dummyList = listFromJSON(data);
}
return _dummyList!;
}
static Future<String> getData() async {
return await rootBundle.loadString('assets/data/visitors_by_channels_data.json');
}
}

View File

@ -10,7 +10,7 @@ import 'package:marco/helpers/widgets/avatar.dart';
import 'package:marco/controller/project_controller.dart';
import 'package:marco/helpers/widgets/my_custom_skeleton.dart';
import 'package:marco/view/employees/employee_detail_screen.dart';
import 'package:marco/model/employee_model.dart';
import 'package:marco/model/employees/employee_model.dart';
import 'package:marco/helpers/utils/launcher_utils.dart';
import 'package:marco/view/employees/assign_employee_bottom_sheet.dart';
import 'package:marco/controller/permission_controller.dart';

View File

@ -19,7 +19,7 @@ import 'package:marco/helpers/widgets/expense_detail_helpers.dart';
import 'package:marco/helpers/widgets/my_spacing.dart';
import 'package:marco/helpers/widgets/my_text.dart';
import 'package:marco/helpers/services/storage/local_storage.dart';
import 'package:marco/model/employee_info.dart';
import 'package:marco/model/employees/employee_info.dart';
import 'package:timeline_tile/timeline_tile.dart';
class ExpenseDetailScreen extends StatefulWidget {
final String expenseId;

View File

@ -6,7 +6,7 @@ import 'package:marco/helpers/utils/date_time_utils.dart';
import 'package:marco/helpers/widgets/my_spacing.dart';
import 'package:marco/helpers/widgets/my_text.dart';
import 'package:marco/helpers/widgets/my_text_style.dart';
import 'package:marco/model/employee_model.dart';
import 'package:marco/model/employees/employee_model.dart';
import 'package:marco/model/expense/employee_selector_for_filter_bottom_sheet.dart';
class ExpenseFilterBottomSheet extends StatelessWidget {

View File

@ -4,7 +4,7 @@ import 'package:marco/controller/layout/layout_controller.dart';
import 'package:marco/helpers/widgets/my_responsive.dart';
import 'package:marco/helpers/widgets/my_text.dart';
import 'package:marco/helpers/services/storage/local_storage.dart';
import 'package:marco/model/employee_info.dart';
import 'package:marco/model/employees/employee_info.dart';
import 'package:marco/helpers/services/api_endpoints.dart';
import 'package:marco/images.dart';
import 'package:marco/controller/project_controller.dart';

View File

@ -12,7 +12,7 @@ import 'package:flutter/material.dart';
import 'package:get/route_manager.dart';
import 'package:flutter_lucide/flutter_lucide.dart';
import 'package:marco/helpers/services/storage/local_storage.dart';
import 'package:marco/model/employee_info.dart';
import 'package:marco/model/employees/employee_info.dart';
import 'package:marco/helpers/widgets/avatar.dart';
typedef LeftbarMenuFunction = void Function(String key);

View File

@ -13,7 +13,7 @@ import 'package:marco/widgets/custom_pop_menu.dart';
import 'package:flutter/material.dart';
import 'package:flutter_lucide/flutter_lucide.dart';
import 'package:marco/helpers/services/storage/local_storage.dart';
import 'package:marco/model/employee_info.dart';
import 'package:marco/model/employees/employee_info.dart';
import 'package:marco/helpers/widgets/avatar.dart';
class TopBar extends StatefulWidget {

View File

@ -7,7 +7,7 @@ import 'package:marco/helpers/widgets/my_card.dart';
import 'package:marco/helpers/widgets/my_spacing.dart';
import 'package:marco/helpers/widgets/my_text.dart';
import 'package:flutter_lucide/flutter_lucide.dart';
import 'package:marco/model/employee_info.dart';
import 'package:marco/model/employees/employee_info.dart';
import 'package:marco/helpers/widgets/avatar.dart';
import 'package:get/get.dart';
import 'package:marco/controller/auth/mpin_controller.dart';