Gig Job Lifecycle & State Transitions
Gig Job States
DRAFT
Meaning: A job is being prepared but is not visible to applicants.
Purpose:
- Allow save-for-later
- Prevent half-created jobs from going live
Allowed actions:
- Edit job details
- Publish job (move to OPEN)
- Delete job
OPEN
Meaning: The job is published and accepting applications.
Entered when:
- Job is published from DRAFT
- Job is newly created
Allowed actions:
- Applicants can apply
- Hiring Manager can edit job details
- Hiring Manager can cancel the job
CONFIRMED
Meaning: At least one applicant has been selected for the job.
Entered when:
- Hiring Manager selects 1 or more applicant(s)
Allowed actions:
- Another applicant can still apply
- Selected applicant can acknowledge the job
- Hiring Manager can cancel applicant
- Hiring Manager can cancel the job
- Selected applicant can cancel the job
ACTIVE
Meaning: The job has started and work is in progress.
Entered when:
- Job start time is reached, or
- First clock-in occurs
Allowed actions:
- Applicants can do clock in / clock out
- Hiring Manager can review before clock out
- Applicants can review before clock out
- Cancellation is restricted
- Job details are locked
PENDING_PAYMENT (Need Review)
Meaning: The applicants have already clocked out and payment is being processed.
Entered when:
- The job is done
- All applicants have clocked out
Allowed actions:
- Cancellation is restricted
COMPLETED
Meaning: All processes are completed.
Entered when:
- All selected applicants have received payment
- Credits have been deducted from company/outlet
Allowed actions:
- Job becomes read-only
CANCELLED
Meaning: The job will not proceed or was stopped before completion.
Entered when:
- Hiring Manager cancels the job
EXPIRED_NO_APPLICATIONS
Meaning: The job reached its expiration time without receiving any applications.
Entered when:
- Job remains OPEN
- No applicants applied
- Expire date passed
EXPIRED_NO_SELECTION
Meaning: The job received applications, but no applicant was selected before expiration.
Entered when:
- Job remains OPEN
- Has applicants
- No selection made
- Expire date passed
Key Business Rules
These rules lock the model and prevent future ambiguity:
- A job always starts in DRAFT or OPEN
- Applicants can only apply when the job is OPEN
- A job becomes CONFIRMED once ≥ 1 applicant is selected
- A job cannot return to OPEN after becoming CONFIRMED
- Clock-in is only allowed when job is ACTIVE
- Expiration only applies to OPEN jobs
- COMPLETED, CANCELLED, and EXPIRED_* are final states