from __future__ import absolute_import
import psycopg2
from datetime import datetime
from dostadmin import app, db, app_logger
from utils.helpers.helpers import get_current_isttime
from utils.helpers import db_helper


class ChangeReqs(db.Model):
    __tablename__ = "change_reqs"

    id = db.Column(db.Integer, primary_key=True)
    request_type = db.Column(db.String(20))
    request_date = db.Column(db.Date)
    phone = db.Column(db.String(20))
    new_data = db.Column(db.String(50))
    change_date = db.Column(db.Date)
    status = db.Column(db.String(20), server_default="open")

    @classmethod
    def create_change_request(cls, phone, new_time):
        db_connection = db_helper.get_db_connection()
        if not db_connection:
            return False

        cursor = db_connection.cursor()
        today_date = get_current_isttime().date()
        insert_sql = (
            f"INSERT INTO change_reqs(request_type, request_date, "
            f"phone, new_data) VALUES('TIME_CR', '{today_date.strftime('%Y-%m-%d')}', "
            f"'{phone}', '{new_time}')"
        )
        cursor.execute(insert_sql)
        db_connection.commit()
        return True
