شکایات و تخلفات
هدف مدل موجودیتی
هدف این مدل، مدیریت ساختارمند شکایتها و تخلفات ساختمانی است؛ طوری که هر اعتراض یا تخلف فقط یک پیام ساده نباشد، بلکه به یک پرونده قابل پیگیری تبدیل شود؛ با گزارشدهنده، طرف مقابل، مدرک، قانون مرتبط، بررسی مدیر، تاریخچه اخطارها، جریمه احتمالی، امکان پاسخ/اعتراض و وضعیت نهایی پرونده.
یعنی این مدل کمک میکند سیستم بتواند اینها را درست مدیریت کند:
- ثبت شکایت توسط ساکن
- بررسی اعتبار توسط مدیر
- ارسال تذکر یا اخطار رسمی
- تشخیص تخلف تکراری
- اعمال جریمه طبق قانون ساختمان
- امکان پاسخ یا اعتراض طرف مقابل
- بستن یا ارجاع پرونده
نقشه موجودیتهای محصول
graph LR
REP["ساکن / گزارشدهنده"] --> CASE["پرونده شکایت / تخلف"]
CASE --> TYPE["نوع شکایت / دسته تخلف"]
TYPE --> TYPE_DEFAULT["دستههای پیشفرض"]
TYPE_DEFAULT --> TYPE1["سروصدا / ایجاد مزاحمت"]
TYPE_DEFAULT --> TYPE2["تخلف پارکینگ"]
TYPE_DEFAULT --> TYPE3["استفاده نادرست از مشاعات"]
TYPE_DEFAULT --> TYPE4["تخلف مربوط به حیوانات خانگی"]
TYPE_DEFAULT --> TYPE5["تخلف مربوط به پرداخت"]
TYPE_DEFAULT --> TYPE6["سایر تخلفات"]
TYPE --> TYPE_CUSTOM["دسته سفارشی"]
TYPE_CUSTOM --> TYPE_CUSTOM1["ایجاد توسط مدیر ساختمان / ادمین ساختمان"]
TYPE_CUSTOM --> TYPE_CUSTOM2["فعال / غیرفعال"]
TYPE_CUSTOM --> TYPE_CUSTOM3["قانون مرتبط"]
TYPE_CUSTOM --> TYPE_CUSTOM4["شدت پیشفرض"]
TYPE_CUSTOM --> TYPE_CUSTOM5["سیاست رسیدگی به تخلف"]
CASE --> AGAINST["علیه"]
AGAINST --> AGAINST1["واحد"]
AGAINST --> AGAINST2["ساکن"]
AGAINST --> AGAINST3["مستأجر"]
AGAINST --> AGAINST4["مالک"]
AGAINST --> AGAINST5["عضو خانواده / کاربر وابسته"]
AGAINST --> AGAINST6["نیروی ساختمان"]
CASE --> DESC["شرح شکایت"]
DESC --> DESC1["عنوان"]
DESC --> DESC2["توضیحات"]
DESC --> DESC3["تاریخ و زمان وقوع"]
DESC --> DESC4["محل وقوع"]
DESC --> DESC5["تکرارشونده / یکباره"]
CASE --> EVID["مدارک و شواهد"]
EVID --> EVID1["متن"]
EVID --> EVID2["تصویر"]
EVID --> EVID3["صوت"]
EVID --> EVID4["ویدیو"]
EVID --> EVID5["شاهد"]
EVID --> EVID6["پیوست"]
CASE --> RULE["قانون مرتبط"]
RULE --> RULE1["قانون ساختمان"]
RULE --> RULE2["آییننامه تخلفات"]
RULE --> POLICY["سیاست رسیدگی"]
POLICY --> POLICY1["تعداد مجاز اخطار"]
POLICY --> POLICY2["مبلغ جریمه"]
POLICY --> POLICY3["دوره پاک شدن سابقه / Cooldown"]
POLICY --> POLICY4["نیاز به تأیید"]
POLICY --> POLICY5["قانون تشدید برخورد"]
POLICY --> POLICY6["اقدام بعدی پس از تکرار"]
CASE --> REVIEW["بررسی مدیر ساختمان"]
REVIEW --> REVIEW1["قبول شکایت"]
REVIEW --> REVIEW2["رد شکایت"]
REVIEW --> REVIEW3["نیاز به اطلاعات بیشتر"]
REVIEW --> REVIEW4["ادغام با پرونده مشابه"]
REVIEW --> REVIEW5["ارجاع به هیئتمدیره"]
REVIEW --> REVIEW6["ارجاع به بازرس"]
CASE --> ASSIGN["پیگیری و ارجاع داخلی پرونده"]
ASSIGN --> ASSIGN1["مسئول فعلی پرونده"]
ASSIGN1 --> ASSIGN1A["مدیر ساختمان"]
ASSIGN1 --> ASSIGN1B["حسابدار"]
ASSIGN1 --> ASSIGN1C["خزانهدار"]
ASSIGN1 --> ASSIGN1D["عضو هیئتمدیره"]
ASSIGN1 --> ASSIGN1E["رئیس هیئتمدیره"]
ASSIGN1 --> ASSIGN1F["بازرس"]
ASSIGN1 --> ASSIGN1G["ادمین ساختمان"]
ASSIGN --> ASSIGN2["ارجاع پرونده"]
ASSIGN2 --> ASSIGN2A["ارجاع به شخص"]
ASSIGN2 --> ASSIGN2B["ارجاع به نقش"]
ASSIGN2 --> ASSIGN2C["ارجاع با توضیح"]
ASSIGN2 --> ASSIGN2D["مهلت پاسخ"]
ASSIGN2 --> ASSIGN2E["برگشت به ارجاعدهنده"]
ASSIGN --> ASSIGN3["کامنت داخلی"]
ASSIGN3 --> ASSIGN3A["قابل مشاهده فقط برای تیم داخلی"]
ASSIGN3 --> ASSIGN3B["قابل مشاهده برای نقشهای مجاز"]
ASSIGN3 --> ASSIGN3C["پیوست داخلی"]
ASSIGN3 --> ASSIGN3D["تگ کردن شخص یا نقش"]
ASSIGN --> ASSIGN4["پاسخ قابل مشاهده برای طرفین"]
ASSIGN4 --> ASSIGN4A["پاسخ به گزارشدهنده"]
ASSIGN4 --> ASSIGN4B["پاسخ به طرف مقابل"]
ASSIGN4 --> ASSIGN4C["درخواست اطلاعات بیشتر"]
ASSIGN4 --> ASSIGN4D["اعلام تصمیم رسمی"]
ASSIGN --> ASSIGN5["وضعیت پیگیری داخلی"]
ASSIGN5 --> ASSIGN5A["ارجاع نشده"]
ASSIGN5 --> ASSIGN5B["ارجاع شده"]
ASSIGN5 --> ASSIGN5C["در حال بررسی توسط ارجاعشونده"]
ASSIGN5 --> ASSIGN5D["نیازمند اقدام مدیر"]
ASSIGN5 --> ASSIGN5E["برگشت داده شده"]
ASSIGN5 --> ASSIGN5F["آماده تصمیم نهایی"]
CASE --> NOTICE["تاریخچه تذکر و اخطار"]
NOTICE --> NOTICE1["تذکر اول"]
NOTICE --> NOTICE2["اخطار دوم"]
NOTICE --> NOTICE3["اخطار نهایی"]
NOTICE --> NOTICE4["اعلام جریمه"]
NOTICE --> NOTICE5["اخطار رسمی / حقوقی"]
NOTICE --> NOTICE6["اعلام بسته شدن پرونده"]
CASE --> MSG["پیامهای مرتبط با پرونده"]
MSG --> MSG1["ثبت شکایت"]
MSG --> MSG2["درخواست اطلاعات بیشتر"]
MSG --> MSG3["ارسال تذکر"]
MSG --> MSG4["ارسال اخطار"]
MSG --> MSG5["پاسخ طرف مقابل"]
MSG --> MSG6["تصمیم مدیر"]
MSG --> MSG7["پیام جریمه"]
MSG --> MSG8["پیام حقوقی"]
MSG --> MSG9["پیام بستن پرونده"]
MSG --> MSG10["کامنت داخلی"]
MSG --> MSG11["ارجاع داخلی"]
MSG --> MSG12["پاسخ رسمی"]
CASE --> FINE["جریمه / پیامد مالی"]
FINE --> FINE1["مبلغ جریمه"]
FINE --> FINE2["مهلت پرداخت"]
FINE --> FINE3["وضعیت پرداخت"]
FINE --> FINE4["افزودن به شارژ واحد"]
FINE --> FINE5["لغو جریمه"]
FINE --> FINE6["تأیید جریمه توسط نقش مجاز"]
CASE --> APPEAL["پاسخ / اعتراض طرف مقابل"]
APPEAL --> APPEAL1["متن پاسخ"]
APPEAL --> APPEAL2["پیوست"]
APPEAL --> APPEAL3["درخواست بررسی مجدد"]
APPEAL --> APPEAL_STATUS["وضعیت اعتراض"]
APPEAL_STATUS --> APPEAL_STATUS1["در انتظار بررسی"]
APPEAL_STATUS --> APPEAL_STATUS2["پذیرفتهشده"]
APPEAL_STATUS --> APPEAL_STATUS3["رد شده"]
CASE --> ESC["تشدید برخورد"]
ESC --> ESC1["تخلف تکراری"]
ESC --> ESC2["بررسی توسط هیئتمدیره"]
ESC --> ESC3["اعمال جریمه نقدی"]
ESC --> ESC4["اخطار حقوقی"]
ESC --> ESC5["اقدام قضایی احتمالی"]
ESC --> ESC6["ارجاع به مدیر بالاتر / ادمین ساختمان"]
CASE --> STATUS["وضعیت پرونده"]
STATUS --> STATUS1["باز"]
STATUS --> STATUS2["در حال بررسی"]
STATUS --> STATUS3["در انتظار اطلاعات بیشتر"]
STATUS --> STATUS4["تذکر ارسالشده"]
STATUS --> STATUS5["اخطار ارسالشده"]
STATUS --> STATUS6["تشدید شده"]
STATUS --> STATUS7["جریمه شده"]
STATUS --> STATUS8["حل شده"]
STATUS --> STATUS9["بسته شده"]
STATUS --> STATUS10["رد شده"]
CASE --> ACCESS["دسترسیها و نقشها"]
ACCESS --> REPORTER_ROLE["گزارشدهنده"]
REPORTER_ROLE --> REPORTER1["ثبت شکایت"]
REPORTER_ROLE --> REPORTER2["مشاهده وضعیت پرونده خودش"]
REPORTER_ROLE --> REPORTER3["افزودن مدرک"]
REPORTER_ROLE --> REPORTER4["مشاهده نتیجه نهایی محدود"]
ACCESS --> MANAGER_ROLE["مدیر ساختمان"]
MANAGER_ROLE --> MANAGER1["بررسی شکایت"]
MANAGER_ROLE --> MANAGER2["قبول / رد"]
MANAGER_ROLE --> MANAGER3["ارسال تذکر / اخطار"]
MANAGER_ROLE --> MANAGER4["اعمال جریمه طبق قانون"]
MANAGER_ROLE --> MANAGER5["بستن پرونده"]
MANAGER_ROLE --> MANAGER6["ارجاع پرونده"]
MANAGER_ROLE --> MANAGER7["مشاهده کامنتهای داخلی"]
ACCESS --> AGAINST_ROLE["طرف مقابل"]
AGAINST_ROLE --> AGAINST_ROLE1["مشاهده تذکر / اخطار مرتبط"]
AGAINST_ROLE --> AGAINST_ROLE2["پاسخ دادن"]
AGAINST_ROLE --> AGAINST_ROLE3["ثبت اعتراض"]
AGAINST_ROLE --> AGAINST_ROLE4["پرداخت جریمه در صورت اعمال"]
ACCESS --> BOARD_ROLE["هیئتمدیره / رئیس هیئتمدیره"]
BOARD_ROLE --> BOARD1["مشاهده موارد مهم"]
BOARD_ROLE --> BOARD2["بررسی اعتراض"]
BOARD_ROLE --> BOARD3["تصمیمگیری در موارد حساس"]
BOARD_ROLE --> BOARD4["کامنت داخلی روی پرونده"]
BOARD_ROLE --> BOARD5["ارجاع مجدد پرونده"]
ACCESS --> INSPECTOR_ROLE["بازرس"]
INSPECTOR_ROLE --> INSPECTOR1["مشاهده پروندههای مهم یا مالی"]
INSPECTOR_ROLE --> INSPECTOR2["ارسال تذکر نظارتی"]
INSPECTOR_ROLE --> INSPECTOR3["کامنت داخلی نظارتی"]
ACCESS --> FINANCE_ROLE["حسابدار / خزانهدار"]
FINANCE_ROLE --> FINANCE1["مشاهده پروندههای دارای اثر مالی"]
FINANCE_ROLE --> FINANCE2["کامنت داخلی مالی"]
FINANCE_ROLE --> FINANCE3["بررسی جریمه"]
FINANCE_ROLE --> FINANCE4["ارجاع برگشتی به مدیر"]
CASE --> LOG["لاگ و پیگیری"]
LOG --> LOG1["تاریخ ایجاد پرونده"]
LOG --> LOG2["ایجادکننده"]
LOG --> LOG3["آخرین تغییر"]
LOG --> LOG4["تغییردهنده"]
LOG --> LOG5["تاریخچه وضعیتها"]
LOG --> LOG6["تاریخچه پیامها"]
LOG --> LOG7["تاریخچه اخطارها"]
LOG --> LOG8["تاریخچه ارجاعها"]
LOG --> LOG9["تاریخچه کامنتهای داخلی"]
دسترسیهای پیشنهادی این ماژول
| نقش |
دسترسی پیشنهادی در شکایات و تخلفات |
| مالک |
ثبت / مشاهده پروندههای مرتبط با واحد خود / پاسخ به موارد مرتبط |
| مستأجر |
ثبت / مشاهده پروندههای مرتبط با واحد خود / پاسخ به موارد مرتبط |
| ساکن اصلی |
ثبت / مشاهده پروندههای مرتبط با واحد خود / پاسخ به موارد مرتبط |
| عضو خانواده |
با اجازه کاربر اصلی واحد |
| مدیر ساختمان |
ثبت / مشاهده / قبول / رد / ارسال تذکر / ارسال اخطار / اعمال جریمه / بستن پرونده |
| ادمین ساختمان |
تنظیم دستهبندیها / تنظیم سیاست تخلف / مشاهده موارد مهم |
| رئیس هیئتمدیره |
مشاهده موارد مهم / بررسی اعتراض / تصمیمگیری در موارد حساس |
| عضو هیئتمدیره |
مشاهده موارد مهم، در صورت مجاز بودن |
| بازرس |
مشاهده پروندههای مهم یا مالی / ارسال تذکر نظارتی |
| خزانهدار |
مشاهده موارد دارای جریمه مالی |
| حسابدار |
مشاهده موارد دارای اثر مالی / ثبت یا پیگیری جریمه در شارژ، در صورت مجاز بودن |
| لابیمن / پذیرش |
ثبت یادداشت یا گزارش رخداد مرتبط |
| نگهبان |
ثبت یادداشت یا گزارش رخداد مرتبط |
| پشتیبان سیستم |
دسترسی موقت و مبتنی بر تیکت |
| ادمین پلتفرم |
مشاهده / مدیریت طبق سطح دسترسی داخلی |
اصل محصولی مهم
شکایتها و تخلفات نباید فقط داخل «پیامها» مدیریت شوند.
ثبت شکایت
↓
بررسی مدیر ساختمان
↓
پیگیری / ارجاع داخلی
↓
کامنت داخلی یا تصمیم
↓
ارسال پیام رسمی به طرف مقابل
↓
پاسخ / اعتراض
↓
تصمیم نهایی / بستن پرونده
پیامها و اعلانات در این مدل نقش لایه ارتباطی دارند؛ یعنی پیامها داخل پرونده ثبت و ارسال میشوند، اما منطق اصلی پرونده در ماژول شکایات و تخلفات مدیریت میشود.
نکته درباره دستهبندیها
نوع شکایت یا تخلف نباید hard-code باشد.
مدیر ساختمان یا ادمین ساختمان باید بتواند دستهبندیهای جدید تعریف کند، آنها را فعال/غیرفعال کند و برای هر دسته، سیاست رسیدگی جداگانه تنظیم کند.
دستههای پیشفرض
├── سروصدا / ایجاد مزاحمت
├── تخلف پارکینگ
├── استفاده نادرست از مشاعات
├── تخلف مربوط به حیوانات خانگی
└── تخلف مربوط به پرداخت
دستههای سفارشی
├── ایجاد توسط مدیر ساختمان / ادمین ساختمان
├── فعال / غیرفعال
├── قانون مرتبط
├── شدت پیشفرض
└── سیاست رسیدگی به تخلف
بازگشت