Files
portal/vendor/trainer/plans/contractor.yaml
T

123 lines
5.7 KiB
YAML
Raw Normal View History

# The contractor from intakes/contractor.yaml as a plan: the needs spec
# plus what each form collects. Everything structural in the generated
# site comes from this file; a model only writes the words.
business: Nordvik Bygg
language: en
contact: { name: Ingrid Nordvik, email: ingrid@nordvikbygg.example }
about: >
Twelve people who survey old buildings, draw up rehabilitation plans,
handle the permit application, and do the building work with their
own carpenters plus subcontractors for electrical, plumbing and
scaffolding.
needs:
- id: survey-enquiry
who: a housing board or private owner with a problem in a building
wants: someone qualified to come and look at it and say what it takes
lands_in: enquiries
handled_by: project_managers
stages: [open, surveyed, quoted, won, lost]
done_when: [won, lost]
success: [won]
max_fields: 4
collects:
- { name: name }
- { name: phone, type: tel }
- { name: address }
- { name: problem, type: textarea }
- { name: access, optional: true }
- id: build-enquiry
who: an owner who already knows what they want built or changed
wants: drawings, a permit application and a price
lands_in: enquiries
handled_by: project_managers
stages: [open, surveyed, quoted, won, lost]
done_when: [won, lost]
success: [won]
max_fields: 5
collects:
- { name: name }
- { name: phone, type: tel }
- { name: address }
- { name: project, type: textarea }
- { name: timeframe, type: select, options: [This year, Next year, No fixed date] }
- id: log-phone-enquiry
who: a project manager who just took a call or a text about a building
wants: the enquiry written down before it gets lost
enters_as: project_managers
lands_in: enquiries
handled_by: project_managers
stages: [open, surveyed, quoted, won, lost]
done_when: [won, lost]
success: [won]
max_fields: 4
collects:
- { name: caller }
- { name: phone, type: tel }
- { name: address }
- { name: problem, type: textarea }
- id: subcontractor-application
who: a trade firm doing electrical, plumbing or scaffolding work
wants: to be approved once, and then be called when a job needs them
lands_in: subcontractors
handled_by: project_managers
stages: [open, awaiting_papers, approved, declined]
done_when: [approved, declined]
success: [approved]
skippable: [awaiting_papers]
max_fields: 5
collects:
- { name: company }
- { name: registration_number }
- { name: trade, type: select, options: [Electrical, Plumbing, Scaffolding, Sheet metal, Other] }
- { name: contact_email, type: email }
- { name: insurance_confirmed, type: select, options: ["Yes", Not yet] }
- { name: trade_approval, optional: true }
- id: job-application
who: a carpenter, bricklayer or apprentice looking for work
wants: to be considered, without writing a letter
lands_in: applicants
handled_by: project_managers
stages: [open, interviewing, hired, declined]
done_when: [hired, declined]
success: [hired]
max_fields: 3
collects:
- { name: name }
- { name: phone, type: tel }
- { name: trade, type: select, options: [Carpenter, Bricklayer, Apprentice, Other] }
- { name: experience, type: textarea, optional: true }
- id: report-site-issue
who: anyone on site, ours or a subcontractor's, on a phone with gloves on
wants: to report a hazard, a near miss or wrong materials before they forget
enters_as: crew
lands_in: site_issues
handled_by: safety_officer
stages: [open, in_hand, closed]
done_when: [closed]
success: [closed]
max_fields: 3
collects:
- { name: kind, type: select, options: [Hazard, Near miss, Wrong materials, Other] }
- { name: where }
- { name: what_happened, type: textarea }
# Held out from every model that writes words: these are the personas
# from sectors/construction, which no generator has seen.
personas:
- { id: housing-board-damp, need: survey-enquiry, text: "I chair the board of a housing cooperative from the seventies. Two ground-floor flats have damp in the walls and we don't know if it's drainage or the facade. We need someone to tell us." }
- { id: buyer-before-purchase, need: survey-enquiry, text: "We are about to buy an old timber house. Before we sign we want a professional to go through it and tell us what is wrong with it." }
- { id: attic-conversion, need: build-enquiry, text: "We want to turn our attic into two bedrooms and a bathroom. We need drawings and someone who handles the application to the municipality." }
- { id: shop-to-flat, need: build-enquiry, text: "I own a former shop on the ground floor and want to make it a flat. I have no idea what is allowed. Can you sort that out and give me a price?" }
- { id: electrician-firm, need: subcontractor-application, text: "We are a four-person electrical firm, fully certified. We would like to get on your list so you call us when you need electricians." }
- { id: scaffolder, need: subcontractor-application, text: "I run a scaffolding company. How do I get to do jobs for you?" }
- { id: carpenter-jobseeker, need: job-application, text: "I'm a certified carpenter with eight years on rehabilitation jobs. Are you hiring?" }
- { id: apprentice, need: job-application, text: "I finish vocational school this spring and need an apprenticeship as a bricklayer." }
- { id: loose-railing, need: report-site-issue, text: "The railing on the third level of the scaffold on the north side is loose. Nobody got hurt but someone will." }
- { id: wrong-membrane, need: report-site-issue, text: "The bathroom membrane delivered today is not the one in the specification. We stopped work on it." }