from configs.firebase import db
from datetime import  timedelta
from functions.helpers import time
def productsLastUpdated(shopId):
    ref = db.collection("productsUpdates").document(shopId).get()
    if ref.exists:
        return ref.to_dict()
    return dict(
        timestamp =int((time.now() - timedelta(days=30)).timestamp()),
        time = time.now() - timedelta(days=30),
        count = 0,
        lastPage = 1,
        nextPage = 1,
        message = "",
        existed=False
    )
def saveProductsLastUpdated(shopId, count = 0, lastPage = 1, nextPage = 1, timestamp = None, total = None, message=None, **kwargs):
    lastUpdate = dict(
        time = time.now(),
        timestamp =timestamp if  timestamp else time.timestamp(),
        count = count,
        lastPage = lastPage,
        nextPage = nextPage,
        message = message,
        total = total if total else count,
        **kwargs
    )
    db.collection("productsUpdates").document(shopId).set(lastUpdate, merge=True)
    return None


def ordersLastUpdated(shopId):
    ref = db.collection("ordersUpdates").document(shopId).get()
    if ref.exists:
        return ref.to_dict()
    return dict(
        timestamp =int((time.now() - timedelta(days=2)).timestamp()),
        time = time.now() - timedelta(days=1),
        count = 0,
        lastPage = 1,
        nextPage = 1,
        message = ""
    )

def saveOrdersLastUpdated(shopId, count = 0, lastPage =1, nextPage = 1,timestamp = None, message=None, **kwargs):
    lastUpdate = dict(
        timestamp =timestamp if timestamp else int((time.now()).timestamp()),
        time = time.now(),
        count = count,
        lastPage = lastPage,
        nextPage = nextPage,
        message = message,
        **kwargs
    )
    db.collection("ordersUpdates").document(shopId).set(lastUpdate, merge=True)
    return lastUpdate

def bankProductsLastUpdated():
    ref = db.collection("updates").document("blankProducts").get()
    if ref.exists:
        return ref.to_dict()
    return dict(
        timestamp = int((time.now() - timedelta(days=7)).timestamp()),
        time = time.now() - timedelta(days=7),
        count = 0,
        lastPage = 1,
        nextPage = 1,
        message = ""
    )