Attendance Management মডিউলে বিভিন্ন টেবিল থাকবে যা কর্মীদের উপস্থিতি, ছুটি, এবং সংশ্লিষ্ট ডিভাইস বা নোটিফিকেশন সম্পর্কিত তথ্য সঞ্চয় করবে। প্রতিটি টেবিলে company_id থাকবে যা নিশ্চিত করবে যে প্রতিটি রেকর্ড একটি নির্দিষ্ট কোম্পানির অধীনে রয়েছে।
1. AttendanceRecords
কাজ: কর্মীদের দৈনিক উপস্থিতি, ছুটি, এবং অন্যান্য উপস্থিতির তথ্য সংরক্ষণ করে।
| Field Name | Data Type | Description |
|---|---|---|
| attendance_id | INT (PK) | উপস্থিতি রেকর্ডের জন্য ইউনিক আইডি |
| company_id | INT (FK) | কোম্পানির আইডি |
| employee_id | INT (FK) | কর্মীর আইডি |
| attendance_date | DATE | উপস্থিতির তারিখ |
| check_in_time | TIME | চেক-ইন সময় |
| check_out_time | TIME | চেক-আউট সময় |
| status | ENUM | উপস্থিতির অবস্থা (Present, Absent, Leave, etc.) |
| remarks | TEXT | উপস্থিতি সম্পর্কিত মন্তব্য |
| created_at | TIMESTAMP | রেকর্ড তৈরির সময় |
| updated_at | TIMESTAMP | রেকর্ড আপডেটের সময় |
রিলেশন:
- company_id কোম্পানির সাথে সংযুক্ত, প্রতিটি উপস্থিতি রেকর্ডের কোম্পানির মালিকানা নির্দেশ করে।
- employee_id কর্মীর তথ্যের সাথে সংযুক্ত।
2. BiometricDevices
কাজ: বায়োমেট্রিক ডিভাইসের তথ্য, যেমন ডিভাইস আইডি, অবস্থান এবং কার্যক্রম সংরক্ষণ করে।
| Field Name | Data Type | Description |
|---|---|---|
| device_id | INT (PK) | বায়োমেট্রিক ডিভাইসের ইউনিক আইডি |
| company_id | INT (FK) | কোম্পানির আইডি |
| device_name | VARCHAR(100) | ডিভাইসের নাম |
| location | VARCHAR(100) | ডিভাইসের অবস্থান |
| device_status | ENUM | ডিভাইসের অবস্থা (Active, Inactive) |
| last_activity | TIMESTAMP | সর্বশেষ কার্যক্রমের সময় |
| created_at | TIMESTAMP | ডিভাইস রেকর্ড তৈরির সময় |
| updated_at | TIMESTAMP | ডিভাইস রেকর্ড আপডেটের সময় |
রিলেশন:
- company_id কোম্পানির সাথে সংযুক্ত, প্রতিটি ডিভাইস নির্দিষ্ট কোম্পানির অধীনে থাকবে।
3. MobileCheckIn
কাজ: মোবাইল ডিভাইস থেকে উপস্থিতি চেক-ইন করার রেকর্ড রাখে, যা GPS তথ্যসহ উপস্থিতির বিস্তারিত সংরক্ষণ করে।
| Field Name | Data Type | Description |
|---|---|---|
| checkin_id | INT (PK) | মোবাইল চেক-ইনের জন্য ইউনিক আইডি |
| company_id | INT (FK) | কোম্পানির আইডি |
| employee_id | INT (FK) | কর্মীর আইডি |
| checkin_time | TIMESTAMP | চেক-ইন সময় |
| gps_location | VARCHAR(100) | GPS লোকেশন |
| device_info | VARCHAR(100) | মোবাইল ডিভাইসের তথ্য |
| remarks | TEXT | চেক-ইন সম্পর্কিত মন্তব্য |
| created_at | TIMESTAMP | রেকর্ড তৈরির সময় |
| updated_at | TIMESTAMP | রেকর্ড আপডেটের সময় |
রিলেশন:
- company_id কোম্পানির সাথে সংযুক্ত থাকবে এবং employee_id কর্মীর সাথে সংযুক্ত থাকবে।
4. ManualAdjustments
কাজ: ম্যানুয়াল সংশোধনের জন্য তথ্য সংরক্ষণ করে, যেমন কোনো কর্মীর উপস্থিতি পরিবর্তন বা সংশোধন।
| Field Name | Data Type | Description |
|---|---|---|
| adjustment_id | INT (PK) | সংশোধনের জন্য ইউনিক আইডি |
| company_id | INT (FK) | কোম্পানির আইডি |
| employee_id | INT (FK) | কর্মীর আইডি |
| adjustment_date | DATE | সংশোধনের তারিখ |
| adjustment_reason | TEXT | সংশোধনের কারণ |
| modified_check_in | TIME | পরিবর্তিত চেক-ইন সময় (যদি প্রযোজ্য হয়) |
| modified_check_out | TIME | পরিবর্তিত চেক-আউট সময় (যদি প্রযোজ্য হয়) |
| created_at | TIMESTAMP | রেকর্ড তৈরির সময় |
| updated_at | TIMESTAMP | রেকর্ড আপডেটের সময় |
রিলেশন:
- company_id এবং employee_id উভয়ই কোম্পানি ও কর্মীর তথ্যের সাথে সংযুক্ত থাকবে।
5. AttendanceSummary
কাজ: দৈনিক, সাপ্তাহিক, বা মাসিক ভিত্তিতে কর্মীদের উপস্থিতির সারসংক্ষেপ সংরক্ষণ করে।
| Field Name | Data Type | Description |
|---|---|---|
| summary_id | INT (PK) | সারসংক্ষেপের জন্য ইউনিক আইডি |
| company_id | INT (FK) | কোম্পানির আইডি |
| employee_id | INT (FK) | কর্মীর আইডি |
| period_start_date | DATE | সময়কাল শুরুর তারিখ |
| period_end_date | DATE | সময়কাল শেষের তারিখ |
| total_present_days | INT | মোট উপস্থিতির দিন |
| total_absent_days | INT | মোট অনুপস্থিতির দিন |
| total_leave_days | INT | মোট ছুটির দিন |
| total_hours_worked | DECIMAL(5,2) | মোট কর্মঘণ্টা |
| created_at | TIMESTAMP | সারসংক্ষেপ তৈরির সময় |
| updated_at | TIMESTAMP | সারসংক্ষেপ আপডেটের সময় |
রিলেশন:
- company_id কোম্পানি এবং employee_id কর্মীর সাথে সংযুক্ত থাকবে।
6. AttendanceExceptions
কাজ: বিশেষ উপস্থিতি বা অনুপস্থিতির ঘটনা সংরক্ষণ করে।
| Field Name | Data Type | Description |
|---|---|---|
| exception_id | INT (PK) | ব্যতিক্রমের জন্য ইউনিক আইডি |
| company_id | INT (FK) | কোম্পানির আইডি |
| employee_id | INT (FK) | কর্মীর আইডি |
| exception_date | DATE | ব্যতিক্রম প্রয়োগের তারিখ |
| exception_type | ENUM | ব্যতিক্রমের ধরন (Late, Sick, etc.) |
| exception_reason | TEXT | ব্যতিক্রমের কারণ |
| created_at | TIMESTAMP | রেকর্ড তৈরির সময় |
| updated_at | TIMESTAMP | রেকর্ড আপডেটের সময় |
রিলেশন:
- company_id কোম্পানি এবং employee_id কর্মীর সাথে সংযুক্ত থাকবে।
7. AttendanceNotifications
কাজ: কর্মীদের উপস্থিতি সংক্রান্ত নোটিফিকেশন ও স্মারক প্রেরণের তথ্য সংরক্ষণ করে।
| Field Name | Data Type | Description |
|---|---|---|
| notification_id | INT (PK) | নোটিফিকেশনের জন্য ইউনিক আইডি |
| company_id | INT (FK) | কোম্পানির আইডি |
| employee_id | INT (FK) | কর্মীর আইডি |
| notification_date | DATE | নোটিফিকেশন প্রেরণের তারিখ |
| notification_type | ENUM | নোটিফিকেশনের ধরন (Reminder, Alert, etc.) |
| message_content | TEXT | নোটিফিকেশনের বিষয়বস্তু |
| status | ENUM | নোটিফিকেশনের অবস্থা (Sent, Pending) |
| created_at | TIMESTAMP | রেকর্ড তৈরির সময় |
| updated_at | TIMESTAMP | রেকর্ড আপডেটের সময় |
রিলেশন:
- company_id কোম্পানি এবং employee_id কর্মীর সাথে সংযুক্ত থাকবে।
এই ডিজাইনটি Attendance Management মডিউলকে মাল্টি-কোম্পানি ভিত্তিক উপস্থিতি ও সংশ্লিষ্ট তথ্য সুষ্ঠুভাবে সংরক্ষণে সহায়ক হবে।