# -*- coding: utf-8 -*-

from __future__ import division

from django_logit import logit
from django_response import response
from paginator import pagination

from maintenance.models import ExpressCompanyInfo
from utils.error.errno_utils import ExpressStatusCode


@logit
def express_add(request):
    name = request.POST.get('name', '')

    express = ExpressCompanyInfo.objects.create(name=name)

    return response(data={
        'express_id': express.id,
    })


@logit
def express_delete(request):
    express_id = request.POST.get('express_id', '')

    ExpressCompanyInfo.objects.filter(id=express_id).update(status=False)

    return response()


@logit
def express_update(request):
    express_id = request.POST.get('express_id', '')
    name = request.POST.get('name', '')

    try:
        point = ExpressCompanyInfo.objects.get(pk=express_id)
    except ExpressCompanyInfo.DoesNotExist:
        return response(ExpressStatusCode.EXPRESS_NOT_FOUND)

    if name:
        point.name = name
    point.save()

    return response()


@logit
def express_list(request):
    page = request.POST.get('page', 1)
    num = request.POST.get('num', 20)

    express = ExpressCompanyInfo.objects.filter(status=True).order_by('position')
    express = [exp.data for exp in express]
    express, left = pagination(express, page, num)

    return response(data={
        'express': express,
        'left': left,
    })