# Appointments vNext
Auth
How we will make requests to appointment service without a token? We would usually have the UI wrapped in an auth0 provider that requires a user to login so that we can make authenticated requests. In this case, we need to make authenticated requests to appointment service to get a shop, customer and create an appointment.
Auth0 account per consultant:
- Consume SF users in account-service
- Create auth0 accounts for consultants
- consultants login to scheduling UI
Auth0 account per sales region
- add consultant role to auth0
- consultants login to scheduling UI with regional user
- appointment-service fetches SF user to verify they exist and have access
- IE) consultant gets fired, even if they save the URL they won't be able to access the UI
- Could we share password via lastpass and change with turnover?
## TODOs:
### Backend Tasks
- [ ] Add Journey to appointment configuration types
### Frontend Tasks
- [ ] Create UI stories for new [shared components](https://www.figma.com/file/98UIVXX7zghxS4e7nMxrMw/Appointments-Service?node-id=85%3A44133)
- [ ] AppointmentScheduler
- [ ] InputContainer
- [ ] AppointmentType
- [ ] CustomerTitle
- [ ] Dropdown (AppointmentType)
- [ ] Dropdown (Fitter)
- [ ] Dropdown (CustomerTimezone)
- [ ] Chip (FitterTimezone)
- [ ] AppointmentDaySelect
- [ ] Date input
- [ ] AppointmentTimeSelect
- [ ] DateTitle
- [ ] Timepicker
- [ ] AvailableBlocks (whitespace)
- [ ] CallToActions
- [ ] Cancel Button
- [ ] Save Button
- [ ] Create new frontend repo for embedding in SF (scheduler)
- [ ] Create shared components in library and use them in scheduler
- [ ] Embed scheduler in Salesforce
### Other tasks for v1
- [ ] Update roger sales to send appointments to Salesforce
- [ ] Launch new nodejs version of RS
- [ ] Need customer's timezone from account service (machine-to-machine)
- [ ] Do we need to wonk the time to eastern going to SF?
- [ ] Add shops and resources permisisons to staging/prod
### Future Tasks
- [ ] Complete openapi spec
- [ ] Add consultants to account-service (consume users from pulsar) and auth0 (Brea usually does via UI but we'll need to automate)
- [ ] Add email from auth token to created_by/updated_by
- [ ] Update auth-middleware
- [ ] update appointment service auth middleware
- [ ] Add rule to auth0 for adding email to usermeta
- [ ] Fix import for `AppointmentStatus` into seed.ts
- [ ] Fix/remove husky
- [ ] Add build/jenkins
- [ ] Privacy considerations for customers when they start creating appointments
- [ ] Add coverage gutters extension to suggested VSCode extensions
- [ ] New Relic single request id (via headers)
## ta-appointment-ui
- [x] Protect branches accordingly
- [ ] Get jenkins/build passing
- [ ] Add infra to build
- [ ] Ensure linting & type-checking is working
- [ ] Add Makefile
## DONE
- [x] Get jenkins working
- [x] Fix port for tfvars health check
- [x] Kill docker containers before running tests
- [x] Fix deployment to testing error
- [x] Add `/appointment-types` endpoint
- [x] Implement unit tests
- [x] Implement repository integration tests
- [x] Shops
- [x] Appointments
- [x] AppointmentsToResources
- [x] Customers
- [x] Resources
- [x] Implement service unit tests
- [x] Shops
- [x] Appointments
- [x] Customers
- [x] Resources
- [x] Implement API handler unit tests
- [x] shops
- [x] resources
- [x] appointments
- [x] customers