create employee table
Some checks failed
CI / test (push) Failing after 4m38s
CI / fixture (push) Failing after 9s

This commit is contained in:
2026-09-05 10:44:47 +05:30
parent dc785b917c
commit cf99866e12
11 changed files with 820 additions and 26 deletions

View File

@@ -57,13 +57,18 @@ which already carry the funnel, the interview and the outcome.
Each line is `field | question | suggestions | required?`. Suggestions beginning
with `@` come from the application's own data.
`@workers` is the worker profiles already on screen for this organization.
Picking one records the role against that person's profile and email; typing an
email address that has no profile yet also works, because a role can be declared
before a profile exists. The worker is always asked for and is never assumed to
be whoever is typing — an operator records this on somebody's behalf.
This creates a NEW employee. The name is not looked up — an organization may
employ several people who share one, so a name selects nobody — and the email is
asked for outright and never derived from the name, from the operator's account
or from an earlier conversation. The email is the identity: `worker_profiles`
carries UNIQUE (org_id, email), so the database decides whether this person
already exists.
- worker | Which worker is this role for? Type their name or email. | @workers | required
Recording another role for somebody who is already on file is a different
request and is not this flow.
- worker_name | What is the new employee’s full name? | | required
- worker_email | What is their email address? | | required
- role_category | What role do they work as? | @roles | required
- experience_years | How much experience do they have? | No experience; 1 year; 2 years; 3+ years | optional
- english_level | What is their English level? | @english | optional