feat(hr): add employees from the dashboard
CI/CD / CI · API (dotnet build + test) (push) Successful in 1m10s
CI/CD / CI · Admin API (dotnet build) (push) Successful in 1m40s
CI/CD / CI · Dashboard (tsc) (push) Successful in 1m5s
CI/CD / CI · Admin Web (tsc) (push) Successful in 1m32s
CI/CD / CI · Website (tsc) (push) Successful in 45s
CI/CD / CI · Koja (tsc) (push) Successful in 49s
CI/CD / Deploy · all services (push) Successful in 9m24s
CI/CD / CI · API (dotnet build + test) (push) Successful in 1m10s
CI/CD / CI · Admin API (dotnet build) (push) Successful in 1m40s
CI/CD / CI · Dashboard (tsc) (push) Successful in 1m5s
CI/CD / CI · Admin Web (tsc) (push) Successful in 1m32s
CI/CD / CI · Website (tsc) (push) Successful in 45s
CI/CD / CI · Koja (tsc) (push) Successful in 49s
CI/CD / Deploy · all services (push) Successful in 9m24s
Previously the only Employee records were the Owner (created at café signup) and
one Manager per branch — there was no way to add a waiter/cashier/chef. Adds it.
Backend:
- POST /api/cafes/{cafeId}/employees (HrController). Owner/Manager only; creating a
Manager requires Owner; Owner cannot be created here. Validates name/phone/role,
enforces one-employee-per-phone, validates branch belongs to the café, and can
optionally set username/password login in the same step (same hashing + uniqueness
as the credentials endpoint). Returns EmployeeSummaryDto.
Dashboard:
- New "Team" tab on the HR screen (now the default): employee roster (name, role,
phone, base salary) + an "Add employee" button (owner/manager) opening an inline
form — name, phone, role, optional branch, optional base salary, optional login.
- Role labels + all form strings in fa/en/ar.
86 API tests pass; dashboard tsc + build clean.
This commit is contained in:
@@ -412,7 +412,8 @@
|
||||
"leave": "الإجازة",
|
||||
"payroll": "الرواتب",
|
||||
"access": "صلاحيات الفروع",
|
||||
"credentials": "بيانات الدخول"
|
||||
"credentials": "بيانات الدخول",
|
||||
"team": "الموظفون"
|
||||
},
|
||||
"myAttendance": "حضوري",
|
||||
"clockIn": "تسجيل دخول",
|
||||
@@ -437,6 +438,33 @@
|
||||
"saved": "تم حفظ بيانات الدخول.",
|
||||
"removed": "تم حذف بيانات الدخول.",
|
||||
"usernameTaken": "اسم المستخدم هذا مستخدم بالفعل."
|
||||
},
|
||||
"addEmployee": "إضافة موظف",
|
||||
"noEmployees": "لا يوجد موظفون بعد.",
|
||||
"employeeCreated": "تمت إضافة الموظف",
|
||||
"save": "حفظ",
|
||||
"cancel": "إلغاء",
|
||||
"fields": {
|
||||
"name": "الاسم",
|
||||
"phone": "الجوال",
|
||||
"role": "الدور",
|
||||
"branch": "الفرع",
|
||||
"branchOptional": "اختياري",
|
||||
"noBranch": "بدون فرع",
|
||||
"baseSalary": "الراتب الأساسي (تومان)",
|
||||
"optional": "اختياري",
|
||||
"enableLogin": "إنشاء اسم مستخدم وكلمة مرور",
|
||||
"username": "اسم المستخدم",
|
||||
"password": "كلمة المرور",
|
||||
"passwordHint": "8 أحرف على الأقل"
|
||||
},
|
||||
"roles": {
|
||||
"Owner": "المالك",
|
||||
"Manager": "مدير",
|
||||
"Cashier": "أمين الصندوق",
|
||||
"Waiter": "نادل",
|
||||
"Chef": "طاهٍ",
|
||||
"Delivery": "موصّل"
|
||||
}
|
||||
},
|
||||
"reviews": {
|
||||
|
||||
Reference in New Issue
Block a user