#!/usr/bin/python3
#encoding:utf-8


import datetime
import sqlite3
import os
import traceback
import json

from sitepackage.helper import passhash, generate

__config__ = {
  'log_dir_path':'log',
  'db_name':'queue.db'}


def wipe_base():
  base_path = os.path.join(
    __config__['db_name'])
  name = os.path.join(
    __config__['log_dir_path'],
    'wiped_base_' + datetime.datetime.now().strftime('%Y%m%d%H%M%S%f') + '.db')
  try:
    bu_base = open(name, 'wb')
    bu_base.write(open(base_path, 'rb').read())
    bu_base.close()
  except:
    print(traceback.format_exc())
    print('не удалось забекапить базу:копирование')
  else:
    try:
      base = open(base_path, 'wb')
      base.write(b'')
      base.close()
    except:
      print('не удалось забекапить базу:очистка')
    else:
      base = sqlite3.connect(base_path)
      base_c = base.cursor()
      
      '''
      print('0')
      base_c.execute("""CREATE TABLE settings (
        key TEXT,
        value TEXT)""")
      '''
      print('1')
      base_c.execute("""CREATE TABLE sessions (
        session_id TEXT,
        login TEXT,
        expires TEXT)""")
      print('2')
      base_c.execute("""CREATE TABLE users (
        login TEXT,
        password TEXT,
        role TEXT)""")
      print('3')
      base_c.execute("""CREATE TABLE files (
        file_id INTEGER,
        file_name TEXT)""")
      base_c.execute("INSERT INTO files VALUES (?,?)",
          (0,""))
      print('4')
      base_c.execute("""CREATE TABLE pay_result (
        uid TEXT,
        pay_sys TEXT,
        pay_sys_ref TEXT,
        request TEXT,
        payment TEXT,
        payment_success INTEGER,
        mail_success INTEGER,
        mail_success2 INTEGER,
        date TEXT)""")
      user_id = 0
      for login, password, role in [
          ['admin', '9e4a12313813ffc0', "admin"]]:
        base_c.execute("INSERT INTO users VALUES (?,?,?)",
          (login, passhash(password, login), role))
      
      base.commit()


if __name__ == '__main__':
  wipe_base()
