This script is designed for preparing daily_report

Short details of HOWTO

>**first of all, make sure that required postgres and snowflake credentials are indicated in environment vars**

Install requirements:
```
pip3 install -r requirements.txt
```
here is an example of environment varilables
```

export POSTGRES_DATABASE="mydb"
export POSTGRES_USER="test_user"
export POSTGRES_PASSWORD="123456"
export POSTGRES_HOST="mypostgres.company.com"   # IP or domain name
export POSTGRES_PORT=5432

export SNOWFLAKE_USER="snowflake_test_user"
export SNOWFLAKE_PASSWORD="123456"
export SNOWFLAKE_ACCOUNT="mycompany.us-east-1"  # it consist from account name and region, e.g - mycompany.us-east-1
export SNOWFLAKE_DATABASE="MYDATABASE"

export SLACK_TOKEN="app_token"
export SLACK_CHANNEL_ID="channel ID"

export MAIL_SERVER="smtp_server"
export MAIL_PORT=25
export MAIL_FROM="from_sender"
export MAIL_TO=""
export MAIL_BCC=""

```

scripts help info:
```
./main.py --help
usage: main.py [-h] [-d {1,2,3,4,5}] [-m] [-p] [-s]

optional arguments:
  -h, --help            show this help message and exit
  -d {1,2,3,4,5}, --date-shifter {1,2,3,4,5}
  -m, --mail
  -p, --print
  -s, --slack
```
Options:
```
-d, --day-shifter       Replace "today" position date back to some days, from 1 and up to 5.
                        For example, you can get Sunday's data results, by running the script on Monday.
                        Currently it doesn't work for snowflake data according to its sql query.
-p, --print             Print result to console output.
-m, --mail              Send result and downloaded csv files to specified email.
                        NOTE. Make sure that SMTP(sendmail, postfix, etc.) server  is up on a server or local machine where the script is located.
```

Examples:
```

./main.py -p -m                                     # print output and send result to email
./main.py -p -d 2 -m                                # get results starting from 2 days ago, instead of today, print it and send to email
./main.py -p                                        # print output only
./main.py -m                                        # email result only
./main.py -p -d 1                                   # print result starting from 2 days ago
./main.py -s                                        # post result message to Slack channel
```