# -*- coding: utf-8 -*-
from __future__ import unicode_literals

from django.db import models
from django.conf import settings
from datetime import datetime
from django.utils import timezone
# from prostopages.models import *

from ckeditor_uploader.fields import RichTextUploadingField
from ckeditor.fields import RichTextField

#картинка в админке
from django.utils.safestring import mark_safe
# Акции товаров
class Skidka(models.Model):
	name_block = models.CharField(u'Название', max_length=255, null=True, blank=True)
	image = models.ImageField(u'Картинка', upload_to='magazin_skidka',  null=True, blank=True)

	active = models.BooleanField(default=True,verbose_name='Активность',)
	created_at = models.DateTimeField(auto_now_add=True, null=True, blank=True, verbose_name="Дата начала акции")
	updated_at = models.DateTimeField(auto_now=True, verbose_name="Updated at")
	
	def __str__(self):
		return self.name_block

	class Meta:
		verbose_name = "Акции товаров"
		verbose_name_plural = "Акции товаров"
		ordering = ["created_at"]

	# картинка в админке
	def image_img(self,):
		if self.image:
			return mark_safe('<a href="{0}" target="_blank"><img src="{0}" width="100" /></a>' .format(self.image.url))
		else:
			return '(Нет изображения)'
	image_img.short_description = 'Картинка'


# Категории товаров

class Category(models.Model):
	name_block = models.CharField(u'Название категории', max_length=255, null=True, blank=True)
	opisanie = RichTextUploadingField(verbose_name='Описание категории', default='', null=True, blank=True)
	img_category = models.ImageField (u'Основная картинка', upload_to='magazin_category',  null=True, blank=True)
	alt = models.CharField(u'Alt картинки', max_length=255, null=True, blank=True)
	title = models.CharField(u'Title картинки', max_length=255, null=True, blank=True)

	active = models.BooleanField(default=True,verbose_name='Активность',)
	created_at = models.DateTimeField(auto_now_add=True, null=True, blank=True, verbose_name="Created at")
	updated_at = models.DateTimeField(auto_now=True, verbose_name="Updated at")
	category_slug = models.SlugField(unique=True, verbose_name='Url', db_index=True)
	template_name = models.CharField(
		('Выбор шаблона'),
		max_length=70,
		blank=True,
		help_text=(
			"Пример: 'magazin/category2.html'. Если не указано,"
			"система будет использовать 'magazin/category.html'."
		),
	)
	title_us = models.CharField(u'Тайтл', max_length=255, null=True, blank=True)
	description = models.TextField(u'Дескрипшон', null=True, blank=True )
	keywords = models.CharField(u'Кейвордс', max_length=255, null=True, blank=True)

	def __str__(self):
		return self.name_block

	# переопределение названий
	class Meta:
		verbose_name = "Категории"
		verbose_name_plural = "Категории"
		ordering = ["created_at"]


	def get_absolute_url(self):
		return "/shop/%s/" % (self.category_slug)
	

	def save(self, *args, **kwargs):
		if not self.category_slug:
			lastid = Category.objects.latest('id')
			self.category_slug =  createslug(self.name_block)
		super(Category, self).save(*args, **kwargs)

	# картинка в админке
	def image_img(self,):
		if self.img_category:
			return mark_safe('<a href="{0}" target="_blank"><img src="{0}" width="100" /></a>' .format(self.img_category.url))
		else:
			return '(Нет изображения)'
	image_img.short_description = 'Картинка'


# Товар

class Tovar(models.Model):
	name_block = models.CharField(u'Название товара', max_length=255, null=True, blank=True)
	category_tovar = models.ForeignKey('Category', verbose_name='Товар относится к категории', null=True, blank=True, on_delete=models.CASCADE, )
	opisanie_small = RichTextUploadingField(verbose_name='Краткое описание',default='', null=True, blank=True)
	opisanie_full = RichTextUploadingField(verbose_name='Полное описание', default='', null=True, blank=True)
	img_tovar = models.ImageField (u'Основная картинка', upload_to='magazin_tovar',  null=True, blank=True)
	alt = models.CharField(u'Alt картинки', max_length=255, null=True, blank=True)
	title = models.CharField(u'Title картинки', max_length=255, null=True, blank=True)
	
	img_icon = models.ForeignKey ('Skidka', verbose_name='Акция товара', null=True, blank=True, on_delete=models.CASCADE, )
	price = models.DecimalField(verbose_name='Цена', max_digits=5, decimal_places=0, max_length=255, null=True, blank=True)

	active = models.BooleanField(default=True,verbose_name='Активность',)
	created_at = models.DateTimeField(auto_now_add=True, null=True, blank=True, verbose_name="Created at")
	updated_at = models.DateTimeField(auto_now=True, verbose_name="Updated at")
	tovar_slug = models.SlugField(max_length=255, unique=True, verbose_name='Url', db_index=True)
	template_name = models.CharField(
		('Выбор шаблона'),
		max_length=70,
		blank=True,
		help_text=(
			"Пример: 'magazin/magzin_detail2.html'. Если не указано,  "
			"система будет использовать 'magazin/magzin_detail.html'."
		),
	)
	title_us = models.CharField(u'Тайтл', max_length=255, null=True, blank=True)
	description = models.TextField(u'Дескрипшон', null=True, blank=True )
	keywords = models.CharField(u'Кейвордс', max_length=255, null=True, blank=True)

	def __str__(self):
		return self.name_block

	# переопределение названий
	class Meta:
		verbose_name = "Товар"
		verbose_name_plural = "Товар"
		ordering = ["created_at"]


	def get_absolute_url(self):
		return "/shop/%s/%s/" % (self.category_tovar.category_slug, self.tovar_slug)
	
	# картинка в админке
	def image_img(self,):
		if self.img_tovar:
			return mark_safe('<a href="{0}" target="_blank"><img src="{0}" width="100" /></a>' .format(self.img_tovar.url))
		else:
			return '(Нет изображения)'
	image_img.short_description = 'Картинка'

	def save(self, *args, **kwargs):
		if not self.tovar_slug:
			lastid = Tovar.objects.latest('id')
			self.tovar_slug =  createslug(self.name_block)
		super(Tovar, self).save(*args, **kwargs)

