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:
@@ -431,7 +431,8 @@
|
||||
"leave": "مرخصی",
|
||||
"payroll": "حقوق",
|
||||
"access": "دسترسی شعب",
|
||||
"credentials": "رمز ورود"
|
||||
"credentials": "رمز ورود",
|
||||
"team": "کارکنان"
|
||||
},
|
||||
"myAttendance": "حضور من",
|
||||
"clockIn": "ورود",
|
||||
@@ -456,6 +457,33 @@
|
||||
"saved": "رمز ورود ذخیره شد.",
|
||||
"removed": "رمز ورود حذف شد.",
|
||||
"usernameTaken": "این نام کاربری قبلاً استفاده شده است."
|
||||
},
|
||||
"addEmployee": "افزودن کارمند",
|
||||
"noEmployees": "هنوز کارمندی ثبت نشده است.",
|
||||
"employeeCreated": "کارمند اضافه شد",
|
||||
"save": "ذخیره",
|
||||
"cancel": "انصراف",
|
||||
"fields": {
|
||||
"name": "نام",
|
||||
"phone": "موبایل",
|
||||
"role": "نقش",
|
||||
"branch": "شعبه",
|
||||
"branchOptional": "اختیاری",
|
||||
"noBranch": "بدون شعبه",
|
||||
"baseSalary": "حقوق پایه (تومان)",
|
||||
"optional": "اختیاری",
|
||||
"enableLogin": "ایجاد نام کاربری و رمز ورود",
|
||||
"username": "نام کاربری",
|
||||
"password": "رمز عبور",
|
||||
"passwordHint": "حداقل ۸ کاراکتر"
|
||||
},
|
||||
"roles": {
|
||||
"Owner": "مالک",
|
||||
"Manager": "مدیر",
|
||||
"Cashier": "صندوقدار",
|
||||
"Waiter": "گارسون",
|
||||
"Chef": "آشپز",
|
||||
"Delivery": "پیک"
|
||||
}
|
||||
},
|
||||
"reviews": {
|
||||
|
||||
Reference in New Issue
Block a user