# -*- 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 sorl.thumbnail import ImageField


from solo.models import SingletonModel

#картинка в админке
from django.utils.safestring import mark_safe

# Акции

class Akciya(models.Model):
	name_block = models.CharField(verbose_name='Заголовок h1', max_length=255, null=True, blank=True)
	image = models.ImageField (verbose_name='Картинка акции', upload_to='akciya',  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)
	text_block = RichTextUploadingField(verbose_name='Описание акции',default='', null=True, blank=True)
	nomer_id = models.IntegerField(u'Номер сортировки',  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")
	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=(
			"Пример: 'akciya/akciya_detail2.html'. Если не указано,  "
			"система будет использовать 'akciya/akciya_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 = ["nomer_id"]


	def get_absolute_url(self):
		return "/akcii/%s/" % (self.slug)
	

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


	# картинка в админке
	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 Slider(models.Model):
	name_block = models.CharField(u'Название слайда', max_length=255, null=True, blank=True)
	image = models.ForeignKey('Akciya', verbose_name='Картинка Акции', null=True, blank=True, on_delete=models.SET_NULL, )
	nomer_id = models.PositiveIntegerField(u'Номер сортировки',  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 = ["nomer_id"]



# Фотографии
class Fotos(models.Model):
	name_block = models.CharField(u'Название', max_length=255, null=True, blank=True)
	image = models.ImageField (verbose_name='Картинка', upload_to='fotos',  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)
	razdel = models.ForeignKey('price.Price_pages', verbose_name='Относится к разделу', null=True, blank=True, on_delete=models.SET_NULL, )

	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 Fotos_preimushestva(models.Model):
	name_block = models.CharField(u'Название', max_length=255, null=True, blank=True)
	image = models.ImageField (verbose_name='Картинка', upload_to='fotos',  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="Дата начала акции")
	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 Blog(models.Model):
	name_block = models.CharField(u'Название новости', max_length=255, null=True, blank=True)
	opisanie_small = RichTextUploadingField(verbose_name='Краткое описание',default='', null=True, blank=True)
	opisanie_full = RichTextUploadingField(verbose_name='Полное описание', default='', null=True, blank=True)
	image = models.ImageField (u'Основная картинка', upload_to='blog',  null=True, blank=True)
	image_url = models.CharField(u'Url картинки', max_length=255, 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")
	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=(
			"Пример: 'blog/blog_detail2.html'. Если не указано,  "
			"система будет использовать 'blog/blog_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 "/blog/%s/" % (self.slug)
	
	# картинка в админке
	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 = 'Картинка'

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





# Заливка Блога из VK

class Blogzalivka(models.Model):
	name_block = models.CharField(u'Название новости', max_length=255, null=True, blank=True)


	def __str__(self):
		return self.name_block or self.__class__.__name_block__

	# переопределение названий
	class Meta:
		verbose_name = "новости"
		verbose_name_plural = "Заливка для блога"





# Главная страница

class Glavnaya(SingletonModel):
	name_block = models.CharField(u'Название', max_length=255, null=True, blank=True)
	opisanie = RichTextUploadingField(verbose_name='Краткое описание',default='', null=True, blank=True)
	opisanie_detail = RichTextUploadingField(verbose_name='Детальное описание',default='', null=True, blank=True)
	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 = ["name_block"]


# Мастера

class Masters(models.Model):
	name_block = models.CharField(u'Имя мастера', max_length=255, null=True, blank=True)
	image = models.ImageField (u'Фотография', upload_to='pages',  null=True, blank=True)
	text_block = models.CharField( max_length=255, verbose_name='Должность',default='', null=True, blank=True)
	text_block2 = RichTextUploadingField(verbose_name='Специализация',default='', null=True, blank=True)
	text_block3 = RichTextUploadingField(verbose_name='Образование и курсы',default='', null=True, blank=True)
	text_block4 = models.CharField( max_length=255, verbose_name='Стаж работы',default='', null=True, blank=True)
	text_block5 = RichTextUploadingField(verbose_name='Отзывы о мастере',default='', null=True, blank=True)
	image_diplom = models.ManyToManyField ('Fotos', related_name='image_diplom', verbose_name='Дипломы и сертификаты мастера',   blank=True , )
	image_rabots = models.ManyToManyField ('Fotos', related_name='image_rabots', verbose_name='Работы мастера',   blank=True , )
	nomer_id = models.PositiveIntegerField(u'Номер сортировки',  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")
	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=(
			"Пример: 'masters/masters2.html'. Если не указано,  "
			"система будет использовать 'masters/masters.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 = ["nomer_id"]


	# def get_absolute_url(self):
	# 	return "/%s/" % (self.slug)
	

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


	# картинка в админке
	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 Otziv(models.Model):
	name_block = models.IntegerField(u'Имя отзыва',  null=True, blank=True)
	image = models.ForeignKey('Masters', related_name='image_otziv', verbose_name='Фото мастера', null=True, blank=True, on_delete=models.SET_NULL, )
	text_block = RichTextUploadingField(verbose_name='Отзыв',default='', null=True, blank=True)
	name_aftor = models.CharField(u'Имя автора', max_length=255, null=True, blank=True)
	master = models.ForeignKey('Masters', related_name='master_otziv', verbose_name='Выбор мастера', null=True, blank=True, on_delete=models.SET_NULL, )
	data = models.CharField(u'Дата отзыва', max_length=255, null=True, blank=True)
	nomer_id = models.PositiveIntegerField(u'Номер сортировки',  null=True, blank=True)

	active = models.BooleanField(default=False,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")
	template_name = models.CharField(
		('Выбор шаблона'),
		max_length=70,
		blank=True,
		help_text=(
			"Пример: 'masters/masters2.html'. Если не указано,  "
			"система будет использовать 'masters/masters.html'."
		),
	)

	def __int__(self):
		return self.name_block

	# переопределение названий
	class Meta:
		verbose_name = "Отзыв"
		verbose_name_plural = "Отзывы"
		ordering = ["-name_block"]


	def get_absolute_url(self):
		return "/vse-otzyivyi/%s/" % (self.id)
	

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



# Простые Страницы

class Prostopages(models.Model):
	name_block = models.CharField(u'Заголовок h1', max_length=255, null=True, blank=True)
	image = models.ImageField (u'Картинка услуги', upload_to='pages',  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)

	text_block = RichTextUploadingField(verbose_name='Описание страницы',default='', null=True, blank=True)

	fotos = models.ManyToManyField('Fotos', related_name='prostopagesfotos', verbose_name='Добавить галерею', blank=True)
	fotos2 = models.ManyToManyField('Fotos', related_name='prostopagesfotos2', verbose_name='Добавить галерею', blank=True)
	fotos3 = models.ManyToManyField('Fotos', related_name='prostopagesfotos3', verbose_name='Добавить галерею', blank=True)
	salonkrasoti = models.ManyToManyField('Fotos', related_name='salonkrasoti', verbose_name='Галерея салона красоты', blank=True)

	master = models.ManyToManyField('Masters', related_name='masterone',  verbose_name='Добавить мастеров', blank=True)
	masterzarabotoy = models.ManyToManyField('Masters', related_name='mastertwo',  verbose_name='Добавить мастеров за работой', blank=True)
	uslugi = models.BooleanField(default=False,verbose_name='Нужен выбор прайсов услуг?', 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")
	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=(
			"Пример: 'pages/pages2.html'. Если не указано,  "
			"система будет использовать 'pages/pages.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 "/%s/" % (self.slug)
	

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


	# картинка в админке
	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 Preimushestva(models.Model):
	name_block = models.CharField(u'Название', max_length=255, null=True, blank=True)
	image_pr = models.ForeignKey ('Fotos_preimushestva', related_name='fotos_preimushestva', verbose_name='Картинка преимущества', null=True, blank=True, on_delete=models.SET_NULL,)
	text_block = RichTextUploadingField(verbose_name='Описание преимущества',default='', null=True, blank=True)
	active = models.BooleanField(default=True,verbose_name='Активность',)

	def __str__(self):
		return self.name_block

	class Meta:
		verbose_name = "Преимущества"
		verbose_name_plural = "Преимущества"


# Страницы услуг

class Pages(models.Model):
	name_block = models.CharField(u'Заголовок h1', max_length=255, null=True, blank=True)
	image = models.ImageField (u'Картинка услуги', upload_to='pages',  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)
	
	small_opisanie = RichTextUploadingField(verbose_name='Краткое описание страницы',default='', null=True, blank=True)
	razdel = models.ForeignKey('price.Price_pages', verbose_name='Относится к разделу', null=True, blank=True, on_delete=models.SET_NULL, )


	text_block = RichTextUploadingField(verbose_name='Описание страницы',default='', null=True, blank=True)
	text_block2 = RichTextUploadingField(verbose_name='Описание страницы (часть-2)',default='', null=True, blank=True)
	text_block3 = RichTextUploadingField(verbose_name='Описание страницы (часть-3)',default='', null=True, blank=True)
	text_block4 = RichTextUploadingField(verbose_name='Описание страницы (часть-4)',default='', null=True, blank=True)
	text_block5 = RichTextUploadingField(verbose_name='Описание страницы (часть-5)',default='', null=True, blank=True)

	gallary1 = models.ManyToManyField ('Fotos', related_name='gallary_1', verbose_name='галерея на странице', blank=True , )
	gallary2 = models.ManyToManyField ('Fotos', related_name='gallary_2', verbose_name='галерея на странице (часть-2)', blank=True , )
	gallary3 = models.ManyToManyField ('Fotos', related_name='gallary_3', verbose_name='галерея на странице (часть-3)', blank=True , )
	gallary4 = models.ManyToManyField ('Fotos', related_name='gallary_4', verbose_name='галерея на странице (часть-4)', blank=True , )
	gallary5 = models.ManyToManyField ('Fotos', related_name='gallary_5', verbose_name='галерея на странице (часть-5)', blank=True , )

	price_kos = models.ManyToManyField('price.Price_kosmetic', verbose_name='Косметический сервис', blank=True)
	price_nog = models.ManyToManyField('price.Price_nogtevoi', verbose_name='Ногтевой сервис', blank=True)
	price_par= models.ManyToManyField('price.Price_parihmaxer', verbose_name='Парихмахерский сервис', blank=True)
	price_kol = models.ManyToManyField('price.Price_kolarium', verbose_name='Коллариум', blank=True)


	# pages_v2
	text_block6 = RichTextUploadingField(verbose_name='Описание страницы (часть-1)',default='', null=True, blank=True)
	text_block7 = RichTextUploadingField(verbose_name='Описание страницы (часть-2)',default='', null=True, blank=True)
	text_block8 = RichTextUploadingField(verbose_name='Описание страницы (часть-3)',default='', null=True, blank=True)
	gallary6 = models.ManyToManyField ('Fotos', related_name='gallary_6', verbose_name='галерея на странице', blank=True , )
	
	pagesnew_h2_1 = models.CharField(u'Заголовок h2', max_length=255, null=True, blank=True)
	pagesnew_h2_2 = models.CharField(u'Заголовок h2', max_length=255, null=True, blank=True)
	pagesnew_h2_3 = models.CharField(u'Заголовок h2', max_length=255, null=True, blank=True)
	tovar_magazin = models.ManyToManyField('magazin.Tovar', verbose_name='Для домашнего ухода', blank=True)
	poxozhie_uslugi = models.ManyToManyField('Pages', verbose_name='Похожие услуги', blank=True)
	preimushestva = models.ManyToManyField('Preimushestva', verbose_name='Преимущества', blank=True)
	masters = models.ManyToManyField('Masters', verbose_name='Мастера', blank=True)
	otziv_master = models.ManyToManyField('Otziv', verbose_name='Отзывы', blank=True)


	#
	knopka = models.BooleanField(verbose_name='Нужна кнопка под прайсом?')
	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")
	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=(
			"Пример: 'pages/pages2.html'. Если не указано,  "
			"система будет использовать 'pages/pages.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 "/uslugi/%s/%s/" % (self.razdel.price_slug, self.slug)
	

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


	# картинка в админке
	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 = 'Картинка'




