Office / HR / Attendance
بررسی جداول:
- offices
- office_departments
- office_locations
- office_config
- attendance_face_encoding
- rollcalls
- rollcall_licenses
- shift_works
- operator_shift_work
- salary_annual_obligation
- offices
- office_departments
- office_locations
- office_config
- attendance_face_encoding
- rollcalls
- rollcall_licenses
- shift_works
- operator_shift_work
- salary_annual_obligation
offices
جدول دفاتر و نمایندگیها
مقدمه
این جدول هسته اطلاعاتی دفاتر، نمایندگیها و موجودیتهای عملیاتی سیستم را تشکیل میدهد. هر رکورد میتواند یک شعبه، نماینده فروش، کارگزار یا دفتر مرکزی باشد و علاوه بر مشخصات تماس و موقعیت جغرافیایی، تنظیمات برند، دامنه، محدودیتهای مالی و تنظیمات ظاهری را نیز در خود نگه میدارد.
ساختار جدول
| ستون | نوع داده | توضیحات |
|---|---|---|
| id | SMALLINT UNSIGNED | شناسه یکتا دفتر یا نمایندگی |
| type | ENUM('white_label','agent','branch','broker') | نوع دفتر در ساختار سازمانی |
| title_fa | VARCHAR(255) | عنوان فارسی دفتر |
| title_en | VARCHAR(255) | عنوان انگلیسی دفتر |
| brand_fa | VARCHAR(255) | نام فارسی برند |
| brand_en | VARCHAR(255) | نام انگلیسی برند |
| leader | BIGINT | شناسه مدیر یا مسئول دفتر |
| phone | VARCHAR(255) | شماره تماس ثابت |
| mobile | VARCHAR(255) | شماره موبایل |
| support | VARCHAR(255) | شماره یا کانال پشتیبانی |
| accounting_mobile | VARCHAR(255) | شماره تماس امور مالی |
| VARCHAR(255) | پست الکترونیکی رسمی دفتر | |
| site | VARCHAR(255) | وبسایت رسمی |
| VARCHAR(255) | شماره یا لینک واتساپ | |
| country | SMALLINT UNSIGNED | شناسه کشور |
| state | INT | شناسه استان |
| city | INT UNSIGNED | شناسه شهر |
| address | VARCHAR(255) | آدرس فارسی |
| address_en | VARCHAR(255) | آدرس انگلیسی |
| address_ar | VARCHAR(255) | آدرس عربی |
| postal_code | VARCHAR(255) | کد پستی |
| location | VARCHAR(255) | مختصات یا لینک موقعیت مکانی |
| logo | VARCHAR(255) | لوگوی اصلی |
| paper_logo | VARCHAR(255) | لوگو مخصوص اسناد |
| favicon | VARCHAR(255) | آیکن وبسایت |
| base_color | VARCHAR(255) | رنگ پایه برند |
| theme | VARCHAR(255) | قالب ظاهری |
| style | VARCHAR(255) | استایل سفارشی |
| additional | LONGTEXT | اطلاعات تکمیلی بهصورت ساختاریافته |
| description | LONGTEXT | توضیحات کامل دفتر |
| social_media | LONGTEXT | اطلاعات شبکههای اجتماعی |
| login_text | LONGTEXT | متن نمایشی صفحه ورود |
| domain | VARCHAR(255) | دامنه اصلی دفتر |
| b2c_domains | VARCHAR(255) | دامنههای فروش مستقیم |
| short_domain | VARCHAR(255) | دامنه کوتاه |
| support_online | LONGTEXT | تنظیمات پشتیبانی آنلاین |
| ip | LONGTEXT | لیست IPهای ثبتشده |
| services | LONGTEXT | سرویسهای فعال برای دفتر |
| expiration | DATETIME | تاریخ پایان اعتبار دفتر |
| period | ENUM('5years','3years','2years','annual','monthly') | دوره قرارداد یا اعتبار |
| credit_limit | BIGINT | سقف اعتبار مالی |
| base_online | INT | مبنای فروش آنلاین |
| footer_announcements | LONGTEXT | اعلانها و پیامهای پایین سایت |
| status | INT | وضعیت فعال یا غیرفعال بودن |
| created_at | TIMESTAMP | زمان ایجاد رکورد |
| updated_at | TIMESTAMP | زمان آخرین بروزرسانی |
نتیجهگیری
جدول دفاتر، یکی از ستونهای اصلی معماری سیستم است که بهصورت همزمان اطلاعات سازمانی، هویتی، مالی، فنی و نمایشی را در خود نگه میدارد. این جدول نقش کلیدی در اتصال ماژولهای کاربران، همکاران، احراز هویت، مالی و برندینگ ایفا میکند و در نهایی بهعنوان یک نود مرکزی در نظر گرفته خواهد شد.
office_departments
جدول واحدها و جایگاههای سازمانی
مقدمه
این جدول برای تعریف ساختار داخلی دفاتر و نمایندگیها استفاده میشود. هر رکورد میتواند یک واحد سازمانی (گروه) یا یک جایگاه شغلی (سمت) را در چارچوب یک دفتر مشخص تعریف کند. این ساختار پایه ارتباط بین دفاتر و همکاران سیستم را فراهم میسازد.
ساختار جدول
| ستون | نوع داده | توضیحات |
|---|---|---|
| id | BIGINT | شناسه یکتای واحد یا جایگاه سازمانی |
| branch | SMALLINT UNSIGNED | شناسه دفتر یا نمایندگی مرتبط |
| type | ENUM('group','position') | نوع ساختار: واحد سازمانی یا جایگاه شغلی |
| slug | VARCHAR(255) | نام یکتا و قابل استفاده در آدرسها یا شناسایی سیستمی |
| title | VARCHAR(255) | عنوان نمایشی واحد یا جایگاه |
| managers | LONGTEXT | فهرست مدیران یا مسئولان مرتبط با این واحد |
| request_confirmation | INT | الزام تأیید درخواستها از سوی این واحد |
| status | INT | وضعیت فعال یا غیرفعال بودن، پیشفرض ۱ |
نتیجهگیری
جدول واحدها و جایگاههای سازمانی، نقش مهمی در مدلسازی چارت سازمانی دفاتر ایفا میکند و مبنای تخصیص نقشها، مسئولیتها و جریان تأیید درخواستها در سیستم است. این جدول در دیاگرم دنهایی، بهعنوان پل ارتباطی میان دفاتر و منابع انسانی در نظر گرفته میشود.
office_locations
جدول موقعیتهای مکانی دفاتر
مقدمه
این جدول برای ثبت مختصات جغرافیایی دفاتر و نمایندگیها استفاده میشود. اطلاعات این جدول معمولاً جهت نمایش روی نقشه، مسیریابی، گزارشگیری مکانی و تحلیل پراکندگی جغرافیایی دفاتر بهکار میرود و بهصورت مستقیم به ساختار دفاتر متصل است.
ساختار جدول
| ستون | نوع داده | توضیحات |
|---|---|---|
| id | INT | شناسه یکتای رکورد موقعیت مکانی |
| branch | SMALLINT UNSIGNED | شناسه دفتر متصل به آفیس |
| lat | DOUBLE | عرض جغرافیایی موقعیت دفتر |
| lon | DOUBLE | طول جغرافیایی موقعیت دفتر |
| status | INT | وضعیت فعال یا غیرفعال بودن موقعیت، پیشفرض ۱ |
نتیجهگیری
جدول موقعیتهای مکانی دفاتر نقش تکمیلی اما مهمی در معماری سیستم دارد و امکان جداسازی اطلاعات مکانی از دادههای هویتی دفتر را فراهم میکند. این رویکرد باعث انعطافپذیری بیشتر، امکان ثبت چند موقعیت برای یک دفتر و توسعه آسان قابلیتهای نقشهمحور در آینده میشود.
office_config
جدول تنظیمات دفاتر
مقدمه
این جدول برای نگهداری تنظیمات قابل تغییر مرتبط با هر دفتر یا نمایندگی استفاده میشود. ساختار کلید-مقدار این جدول اجازه میدهد بدون تغییر ساختار پایگاه داده، رفتار سیستم، رابط کاربری یا محدودیتهای عملیاتی دفاتر بهصورت پویا کنترل شود.
ساختار جدول
| ستون | نوع داده | توضیحات |
|---|---|---|
| id | BIGINT | شناسه یکتای تنظیم |
| office | BIGINT | شناسه دفتر یا نمایندگی مرتبط با تنظیم |
| key | VARCHAR(255) | کلید شناسایی تنظیم (نام تنظیم) |
| value | LONGTEXT | مقدار تنظیم؛ قابل ذخیره به صورت رشته، عدد یا داده ساختاریافته |
| updated_at | DATETIME | زمان آخرین بهروزرسانی تنظیم |
نتیجهگیری
جدول تنظیمات دفاتر یکی از اجزای کلیدی انعطافپذیری سیستم محسوب میشود و امکان پیادهسازی تنظیمات اختصاصی برای هر دفتر را فراهم میکند. این طراحی کمک میکند بسیاری از تغییرات رفتاری در سیستم، بدون نیاز به توسعه مجدد یا مهاجرت دیتابیس انجام شوند.
attendance_face_encoding
جدول کدگذاری چهره حضور و غیاب
مقدمه
این جدول برای ذخیره اطلاعات کدگذاریشده چهره اپراتورها در سیستم حضور و غیاب مبتنی بر تشخیص چهره استفاده میشود. دادههای این جدول مبنای مقایسه الگوریتمی تصاویر ورودی با چهرههای ثبتشده هستند.
ساختار جدول
| ستون | نوع داده | توضیحات |
|---|---|---|
| id | BIGINT | شناسه یکتای رکورد کدگذاری چهره |
| operator | INT UNSIGNED | شناسه اپراتور مرتبط با این کدگذاری چهره |
| base_image | VARCHAR(255) | مسیر یا نام فایل تصویر مرجع چهره اپراتور |
| status | INT | وضعیت فعال یا غیرفعال بودن رکورد کدگذاری چهره |
| e_1 | FLOAT | مولفه اول بردار ویژگی چهره |
| e_2 | FLOAT | مولفه دوم بردار ویژگی چهره |
| e_3 | FLOAT | مولفه سوم بردار ویژگی چهره |
نتیجهگیری
جدول کدگذاری چهره حضور و غیاب یکی از اجزای حساس و امنیتی سیستم محسوب میشود و دادههای آن مستقیماً در فرآیند تطبیق چهره و تشخیص هویت اپراتورها استفاده میگردد. طراحی این جدول بهگونهای است که امکان توسعه الگوریتمهای تشخیص چهره و افزایش دقت تطبیق را فراهم کند.
rollcalls
جدول ثبت تردد
مقدمه
این جدول برای ثبت رویدادهای حضور و غیاب، ورود، مأموریت و مرخصی اپراتورها استفاده میشود. هر رکورد معرف یک رویداد زمانی مشخص بوده و اطلاعات آن میتواند از روشهای مختلف (دستی، موقعیت مکانی، تشخیص چهره یا ترکیبی) ثبت شده باشد.
ساختار جدول
| ستون | نوع داده | توضیحات |
|---|---|---|
| id | BIGINT UNSIGNED | شناسه یکتای رکورد ثبت تردد |
| operator | INT UNSIGNED | شناسه اپراتور مرتبط با این تردد متصل به جدول اپراتور ها |
| personnel_id | VARCHAR(255) | شناسه کاربر در دستگاه یا سامانه ثبتکننده |
| office | INT | شناسه دفتر |
| gateway | ENUM('manual','location','face','combined','device') | روش یا درگاه ثبت تردد |
| type | INT | نوع تردد: 1 = ورود 2 = مأموریت 3 = مرخصی |
| date | VARCHAR(8) | تاریخ ثبت تردد (فرمت فشرده) |
| time | VARCHAR(4) | ساعت ثبت تردد (فرمت فشرده) |
| status | INT | وضعیت فعال یا معتبر بودن رکورد |
| updated_at | DATETIME | زمان آخرین ویرایش رکورد |
| updated_by | BIGINT | شناسه کاربری که آخرین ویرایش را انجام داده است |
| updated_note | VARCHAR(255) | یادداشت مربوط به ویرایش رکورد |
| description | LONGTEXT | توضیحات تکمیلی درباره رویداد تردد |
نتیجهگیری
جدول ثبت تردد، هسته عملیاتی سیستم حضور و غیاب محسوب میشود و تمامی گزارشها، محاسبات کارکرد و کنترلهای مدیریتی بر پایه دادههای این جدول انجام میگیرد. طراحی آن بهگونهای است که از چندین روش ثبت و سناریوهای متنوع پشتیبانی کند.
rollcall_licenses
جدول مجوزها و مرخصیهای حضور
مقدمه
این جدول برای مدیریت انواع مجوزها، مرخصیها و تعلیقهای مرتبط با حضور و غیاب اپراتورها استفاده میشود. هر رکورد نمایانگر یک درخواست یا مجوز تأییدشده است که میتواند باعث تغییر در منطق ثبت تردد و محاسبه کارکرد اپراتور گردد.
ساختار جدول
| ستون | نوع داده | توضیحات |
|---|---|---|
| id | BIGINT UNSIGNED | شناسه یکتای رکورد مجوز یا مرخصی |
| branch | SMALLINT UNSIGNED | شناسه دفتر |
| operator | INT UNSIGNED | شناسه اپراتور مرتبط با این مجوز متصل به اپراتور ها |
| licenses_type | INT | نوع مجوز: 1 = استحقاقی 2 = استعلاجی 3 = تعلیق 4 = بدون حقوق |
| time_type | INT | نوع بازه زمانی: 1 = روز 2 = ساعت |
| start_date | INT | تاریخ شروع مجوز |
| start_time | VARCHAR(5) | ساعت شروع مجوز |
| end_date | INT | تاریخ پایان مجوز |
| end_time | VARCHAR(5) | ساعت پایان مجوز |
| agreement | INT | توافق یا تأیید مقدار درخواستشده |
| personnel_id | INT | شناسه پرسنلی ثبتشده در سیستم یا دستگاه |
| substitute_by | BIGINT | شناسه فرد جایگزین در مدت مجوز |
| substitute_at | DATETIME | زمان تعیین فرد جایگزین |
| substitute_note | VARCHAR(255) | یادداشت مربوط به جایگزینی |
| confirm_by | BIGINT | شناسه تأییدکننده اولیه |
| confirm_note | VARCHAR(255) | یادداشت تأیید اولیه |
| final_approval_by | BIGINT | شناسه تأییدکننده نهایی |
| final_approval_at | DATETIME | زمان تأیید نهایی |
| final_approval_note | VARCHAR(255) | یادداشت تأیید نهایی |
| details | LONGTEXT | توضیحات تکمیلی درباره مجوز یا مرخصی |
| status | INT | وضعیت فعال یا معتبر بودن رکورد |
| confirm_at | DATETIME | زمان تأیید اولیه |
| created_at | TIMESTAMP | زمان ایجاد رکورد |
| updated_at | TIMESTAMP | زمان آخرین بهروزرسانی رکورد |
نتیجهگیری
جدول مجوزها و مرخصیهای حضور نقش کلیدی در کنترل منطق تردد، محاسبه کارکرد و تصمیمگیریهای مدیریتی دارد. طراحی چندمرحلهای تأیید و امکان تعریف جایگزین، این جدول را به یک جزء فرآیندی بالغ در سیستم حضور و غیاب تبدیل کرده است.
shift_works
جدول شیفتهای کاری
مقدمه
جدول shift_works برای تعریف و نگهداری اطلاعات مربوط به الگوهای شیفت کاری استفاده میشود. هر رکورد بیانگر یک نوع شیفت مشخص با ویژگیهایی مانند ساعت شروع و پایان، تاخیر مجاز، مرخصی ماهانه و مجوزهای ویژه کاری است.
ساختار جدول
| ستون | نوع داده | توضیحات |
|---|---|---|
| id | INT UNSIGNED | شناسه یکتای شیفت کاری |
| branch | SMALLINT UNSIGNED | شناسه دفتر |
| title | VARCHAR(255) | عنوان شیفت (مثلاً: صبح، عصر، شب) |
| login | LONGTEXT | محدوده زمانی مجاز برای ورود (میتواند شامل تنظیمات پیشرفته زمانبندی باشد) |
| time_work | LONGTEXT | بازه کاری مفید - شامل ساعت شروع و پایان اصلی |
| allowed_delay | INT | میزان تأخیر مجاز (برحسب دقیقه) |
| rest | VARCHAR(255) | بازه استراحت بین کار (Rest period) |
| vacations | VARCHAR(255) | مقدار مرخصی ماهانه مجاز برای این شیفت |
| closure | INT | مجوز کار در روزهای تعطیل (1 = مجاز / 0 = غیرمجاز) |
| status | INT | وضعیت فعال یا غیرفعال بودن شیفت |
نتیجهگیری
جدول shift_works ستون فقرات مدل کاری سیستم حضور و غیاب است و در محاسبه تطبیق ورودها، مدیریت تاخیر، مرخصی، استراحت و مجوزهای کاری نقش کلیدی دارد.
operator_shift_work
جدول تطبیق شیفت کاری با اپراتور
مقدمه
وظیفهی نگهداری اطلاعات شیفتهای کاری اختصاصدادهشده به اپراتورها در طول بازههای زمانی مشخص (ماه/سال) را برعهده دارد. این جدول ترکیبی از دادههای ثابت شیفت کاری و دادههای وابسته به اپراتور است تا امکان برنامهریزی دقیق حضور و محاسبه خودکار عملکرد فراهم شود.
ساختار جدول
| ستون | نوع داده | توضیحات |
|---|---|---|
| id | BIGINT UNSIGNED AUTO_INCREMENT | شناسه یکتای رکورد تخصیص شیفت |
| branch | INT | شناسه شعبه یا واحد سازمانی مرتبط با اپراتور |
| year | INT | سال تخصیص شیفت |
| month | INT | ماه تخصیص شیفت (۱–۱۲) |
| operator | BIGINT | شناسه اپراتور مرتبط با این شیفت کاری |
| login | LONGTEXT | محدوده یا الگوی زمان ورود (ممکن است ساختار JSON داشته باشد) |
| time_work | LONGTEXT | بازه کاری ثابت یا پویا برای این اپراتور - شامل ساعت شروع/پایان |
| allowed_delay | INT | میزان تأخیر مجاز در ورود (برحسب دقیقه، پیشفرض ۱۵) |
| rest | VARCHAR(255) | بازه استراحت کاری (Rest period) |
| vacations | INT | میزان مرخصی ماهانه اختصاصدادهشده به اپراتور |
| closure | INT | مجوز کار در روزهای تعطیل (1 = مجاز / 0 = غیرمجاز) |
| status | INT | وضعیت فعال بودن رکورد تخصیص شیفت |
نتیجهگیری
نقطهی اتصال میان اپراتور و برنامه شیفت استاندارد است. این ساختار برای کنترل تطبیق زمانی، اعمال مجوزهای کاری و استثناهای محاسباتی طراحی شده تا بتواند ورودی اصلی الگوریتمهای حضور و غیاب و محاسبه کارکرد باشد.
salary_annual_obligation
جدول محاسبه تعهد سالانه حقوق و روزهای کاری
مقدمه
این جدول به منظور نگهداری اطلاعات مربوط به تعداد روزهای کاری، تعطیلات رسمی، جمعهها و محاسبه تعهد سالانه کارکنان برای هر ماه از سال طراحی شده است. دادههای آن مبنای تنظیم محاسبات مالی، حقوق ماهانه و گزارشهای سالانه منابع انسانی خواهد بود.
ساختار جدول
| نام ستون | نوع داده | توضیح |
|---|---|---|
| id | INT | شناسه یکتای هر رکورد در جدول |
| year | INT | سال مربوط به رکورد ذخیرهشده |
| month | INT | شماره ماه بر اساس تقویم رسمی کشور (۱ تا ۱۲) |
| days | INT | تعداد کل روزهای آن ماه |
| friday | INT | تعداد روزهای جمعه در ماه مورد نظر |
| official_holidays | INT | تعداد روزهای تعطیل رسمی آن ماه |
| work_days | INT | تعداد روزهای کاری واقعی پس از کسر تعطیلات و جمعهها |
| duty | FLOAT | ضریب یا شاخص مرتبط با میزان تعهد کاری در آن ماه |
نتیجهگیری
این جدول نمایانگر وضعیت کلی روزهای کاری، تعطیلات و تعهد مالی ماهانه کارکنان در طول سال است و یکی از مبانی اصلی در محاسبات مالی و اجرای الگوریتم پرداخت حقوق و مزایا به شمار میآید. ترکیب آن با سایر جدولهای مرتبط، دید جامعی از وضعیت عملکرد و تعهد سالانه نیروی انسانی فراهم میکند.