# Transformation Engine
Develop an independent python script
1. Design a schema to store mappings between source(ORC/workday) to integration entity; title -> job_title, desc -> description
2. Call an API to get the entity payload in source(ORC/Workday/any other ATS) format
3. Get the required mapping from DB
4. Convert entity payload to integration entity payload and return the data
## Workday
```python=
{
"id": "1234",
"title": "Python Developer",
"jobDescription": "abcdefghijklmnopqrstuvwxyz",
"jobLocation": "Bangalore",
"openPositions": 100,
"endDate": "12/04/2023",
"jobType": "onsite",
"jobSite": "https://naukri.com/jd=1234"
}
```
## ORC
```python=
{
"job_id": "1234",
"job_title": "Python Developer",
"job_description": "abcdefghijklmnopqrstuvwxyz",
"job_location": "Bangalore",
"vacancy": 100,
"closing_date": "12/04/2023",
"job_type": "onsite",
"job_site": "https://naukri.com/jd=1234",
"working_hours_type": "flexible"
}
```
## Brassrings
```python=
{
"id": "1234",
"Title": "Python Developer",
"Description": "abcdefghijklmnopqrstuvwxyz",
"Location": "Bangalore",
"Positions": 100,
"ClosingDate": "12/04/2023",
"OpportunityType": "onsite",
"Site": "https://naukri.com/jd=1234",
"WorkType": "flexible"
}
```
## Integration Job
```python=
{
"ar_id": "1234",
"ar_title": "Python Developer",
"ar_description": "abcdefghijklmnopqrstuvwxyz",
"posting_location": "Bangalore",
"vacancies": 100,
"closing_time": "12/04/2023",
"posting_type": "onsite",
"job_source": "https://naukri.com/jd=1234",
"posting_hours": "flexible",
"recruiter_email": "edge_admin@getedge.ai"
}
```
## Mappings
Store it in DB table - Propose a schema
| source | entity_type | input_field | output_field | destination |
|:------------- | ----------- | ----------- |:-------------- |:----------- |
| orc_candidate | candidate | name | candidate_name | Integration |
| wd_job | Job | id | ar_id | Integration |
### workday
```
id -> ar_id
title -> ar_title
jobDescription -> ar_description
jobLocation -> posting_location
...
```
### ORC
```
job_id -> ar_id
job_title -> ar_title
job_description -> ar_description
job_location -> posting_location
vacancy -> vacancies
...
```
## Boilerplate code
```python=
data = {
"id": "1234",
"title": "Python Developer",
"jobDescription": "abcdefghijklmnopqrstuvwxyz",
"jobLocation": "Bangalore",
"openPositions": 100,
"endDate": "12/04/2023",
"jobType": "onsite",
"jobSite": "https://naukri.com/jd=1234"
}
def transform_job(source: str, data: dict) -> dict:
"""
source = wd_job
"""
pass
```