# Generated by Django 5.2.4 on 2025-08-26 08:48

import django.db.models.deletion
import django.utils.timezone
from django.conf import settings
from django.db import migrations, models


class Migration(migrations.Migration):

    initial = True

    dependencies = [
        migrations.swappable_dependency(settings.AUTH_USER_MODEL),
    ]

    operations = [
        migrations.CreateModel(
            name='CompanyInfo',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('name', models.CharField(max_length=200, verbose_name='公司名称')),
                ('slogan', models.CharField(blank=True, max_length=500, verbose_name='公司口号')),
                ('description', models.TextField(verbose_name='公司简介')),
                ('address', models.CharField(max_length=500, verbose_name='公司地址')),
                ('phone', models.CharField(max_length=50, verbose_name='联系电话')),
                ('mobile', models.CharField(blank=True, max_length=50, verbose_name='手机号码')),
                ('email', models.EmailField(max_length=254, verbose_name='邮箱')),
                ('website', models.URLField(blank=True, verbose_name='网站')),
                ('wechat', models.CharField(blank=True, max_length=100, verbose_name='微信号')),
                ('qq', models.CharField(blank=True, max_length=20, verbose_name='QQ号')),
                ('logo', models.ImageField(blank=True, upload_to='company/', verbose_name='公司Logo')),
                ('qr_code', models.ImageField(blank=True, upload_to='company/', verbose_name='二维码')),
                ('business_license', models.CharField(blank=True, max_length=100, verbose_name='营业执照号')),
                ('bank_name', models.CharField(blank=True, max_length=200, verbose_name='开户银行')),
                ('bank_account', models.CharField(blank=True, max_length=100, verbose_name='银行账号')),
            ],
            options={
                'verbose_name': '公司信息',
                'verbose_name_plural': '公司信息',
            },
        ),
        migrations.CreateModel(
            name='ContactMessage',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('name', models.CharField(max_length=100, verbose_name='姓名')),
                ('phone', models.CharField(max_length=20, verbose_name='电话')),
                ('email', models.EmailField(blank=True, max_length=254, verbose_name='邮箱')),
                ('subject', models.CharField(max_length=200, verbose_name='主题')),
                ('message', models.TextField(verbose_name='留言内容')),
                ('is_read', models.BooleanField(default=False, verbose_name='是否已读')),
                ('is_replied', models.BooleanField(default=False, verbose_name='是否已回复')),
                ('created_at', models.DateTimeField(auto_now_add=True, verbose_name='创建时间')),
            ],
            options={
                'verbose_name': '联系留言',
                'verbose_name_plural': '联系留言',
                'ordering': ['-created_at'],
            },
        ),
        migrations.CreateModel(
            name='Customer',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('name', models.CharField(max_length=200, verbose_name='客户名称')),
                ('contact_person', models.CharField(max_length=100, verbose_name='联系人')),
                ('phone', models.CharField(max_length=20, verbose_name='联系电话')),
                ('email', models.EmailField(blank=True, max_length=254, verbose_name='邮箱')),
                ('address', models.TextField(blank=True, verbose_name='地址')),
                ('company_info', models.TextField(blank=True, verbose_name='公司信息')),
                ('created_at', models.DateTimeField(auto_now_add=True, verbose_name='创建时间')),
            ],
            options={
                'verbose_name': '客户',
                'verbose_name_plural': '客户',
                'ordering': ['-created_at'],
            },
        ),
        migrations.CreateModel(
            name='Product',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('name', models.CharField(max_length=200, verbose_name='产品名称')),
                ('model', models.CharField(blank=True, max_length=100, verbose_name='型号')),
                ('brand', models.CharField(blank=True, max_length=100, verbose_name='品牌')),
                ('specifications', models.TextField(blank=True, verbose_name='规格参数')),
                ('unit', models.CharField(default='个', max_length=20, verbose_name='单位')),
                ('image', models.ImageField(blank=True, null=True, upload_to='products/', verbose_name='产品图片')),
                ('is_active', models.BooleanField(default=True, verbose_name='是否启用')),
                ('created_at', models.DateTimeField(auto_now_add=True, verbose_name='创建时间')),
                ('updated_at', models.DateTimeField(auto_now=True, verbose_name='更新时间')),
            ],
            options={
                'verbose_name': '产品',
                'verbose_name_plural': '产品',
                'ordering': ['-created_at'],
            },
        ),
        migrations.CreateModel(
            name='Service',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('name', models.CharField(max_length=100, verbose_name='服务名称')),
                ('description', models.TextField(verbose_name='服务描述')),
                ('icon', models.CharField(blank=True, max_length=50, verbose_name='图标类名')),
                ('image', models.ImageField(blank=True, null=True, upload_to='services/', verbose_name='服务图片')),
                ('is_active', models.BooleanField(default=True, verbose_name='是否启用')),
                ('order', models.IntegerField(default=0, verbose_name='排序')),
                ('created_at', models.DateTimeField(auto_now_add=True, verbose_name='创建时间')),
            ],
            options={
                'verbose_name': '服务项目',
                'verbose_name_plural': '服务项目',
                'ordering': ['order', '-created_at'],
            },
        ),
        migrations.CreateModel(
            name='PriceRecord',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('platform', models.CharField(choices=[('jd', '京东'), ('taobao', '淘宝'), ('tmall', '天猫'), ('manual', '手动录入')], max_length=20, verbose_name='平台')),
                ('price', models.DecimalField(decimal_places=2, max_digits=10, verbose_name='价格')),
                ('url', models.URLField(blank=True, verbose_name='商品链接')),
                ('supplier', models.CharField(blank=True, max_length=200, verbose_name='供应商')),
                ('remark', models.TextField(blank=True, verbose_name='备注')),
                ('is_valid', models.BooleanField(default=True, verbose_name='是否有效')),
                ('fetched_at', models.DateTimeField(default=django.utils.timezone.now, verbose_name='获取时间')),
                ('created_by', models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, to=settings.AUTH_USER_MODEL, verbose_name='创建人')),
                ('product', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='price_records', to='portal.product', verbose_name='产品')),
            ],
            options={
                'verbose_name': '价格记录',
                'verbose_name_plural': '价格记录',
                'ordering': ['-fetched_at'],
            },
        ),
        migrations.CreateModel(
            name='ProductCategory',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('name', models.CharField(max_length=100, verbose_name='分类名称')),
                ('order', models.IntegerField(default=0, verbose_name='排序')),
                ('parent', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='children', to='portal.productcategory', verbose_name='父级分类')),
            ],
            options={
                'verbose_name': '产品分类',
                'verbose_name_plural': '产品分类',
                'ordering': ['order'],
            },
        ),
        migrations.AddField(
            model_name='product',
            name='category',
            field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='products', to='portal.productcategory', verbose_name='分类'),
        ),
        migrations.CreateModel(
            name='Quotation',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('quotation_no', models.CharField(max_length=50, unique=True, verbose_name='报价单号')),
                ('title', models.CharField(max_length=200, verbose_name='报价单标题')),
                ('status', models.CharField(choices=[('draft', '草稿'), ('pending', '待审核'), ('approved', '已审核'), ('sent', '已发送'), ('accepted', '已接受'), ('rejected', '已拒绝')], default='draft', max_length=20, verbose_name='状态')),
                ('valid_days', models.IntegerField(default=30, verbose_name='有效期(天)')),
                ('discount_rate', models.DecimalField(decimal_places=2, default=0, max_digits=5, verbose_name='折扣率(%)')),
                ('tax_rate', models.DecimalField(decimal_places=2, default=13, max_digits=5, verbose_name='税率(%)')),
                ('total_amount', models.DecimalField(decimal_places=2, default=0, max_digits=12, verbose_name='总金额')),
                ('remark', models.TextField(blank=True, verbose_name='备注')),
                ('created_at', models.DateTimeField(auto_now_add=True, verbose_name='创建时间')),
                ('updated_at', models.DateTimeField(auto_now=True, verbose_name='更新时间')),
                ('created_by', models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, to=settings.AUTH_USER_MODEL, verbose_name='创建人')),
                ('customer', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='quotations', to='portal.customer', verbose_name='客户')),
            ],
            options={
                'verbose_name': '报价单',
                'verbose_name_plural': '报价单',
                'ordering': ['-created_at'],
            },
        ),
        migrations.CreateModel(
            name='QuotationItem',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('quantity', models.IntegerField(default=1, verbose_name='数量')),
                ('unit_price', models.DecimalField(decimal_places=2, max_digits=10, verbose_name='单价')),
                ('discount_rate', models.DecimalField(decimal_places=2, default=0, max_digits=5, verbose_name='折扣率(%)')),
                ('subtotal', models.DecimalField(decimal_places=2, max_digits=10, verbose_name='小计')),
                ('remark', models.CharField(blank=True, max_length=500, verbose_name='备注')),
                ('product', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='portal.product', verbose_name='产品')),
                ('quotation', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='items', to='portal.quotation', verbose_name='报价单')),
            ],
            options={
                'verbose_name': '报价单明细',
                'verbose_name_plural': '报价单明细',
            },
        ),
    ]
