93 lines
5.0 KiB
Python
93 lines
5.0 KiB
Python
# Generated by Django 5.1.15 on 2026-08-23 11:25
|
|
|
|
import django.db.models.deletion
|
|
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='Appointment',
|
|
fields=[
|
|
('id', models.CharField(max_length=36, primary_key=True, serialize=False)),
|
|
('customer_name', models.CharField(max_length=150, verbose_name='نام مشتری')),
|
|
('customer_phone', models.CharField(blank=True, max_length=20, verbose_name='شماره مشتری')),
|
|
('title', models.CharField(max_length=150, verbose_name='عنوان/خدمت')),
|
|
('start_at', models.DateTimeField(verbose_name='زمان نوبت')),
|
|
('status', models.CharField(choices=[('scheduled', 'زمان\u200cبندی\u200cشده'), ('done', 'انجام\u200cشده'), ('cancelled', 'لغوشده')], default='scheduled', max_length=10)),
|
|
('notes', models.TextField(blank=True, verbose_name='یادداشت')),
|
|
('updated_at', models.DateTimeField(auto_now=True)),
|
|
('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='appointments', to=settings.AUTH_USER_MODEL)),
|
|
],
|
|
options={
|
|
'verbose_name': 'نوبت',
|
|
'verbose_name_plural': 'نوبت\u200cدهی',
|
|
'ordering': ['start_at'],
|
|
},
|
|
),
|
|
migrations.CreateModel(
|
|
name='Customer',
|
|
fields=[
|
|
('id', models.CharField(max_length=36, primary_key=True, serialize=False)),
|
|
('name', models.CharField(max_length=150, verbose_name='نام')),
|
|
('phone', models.CharField(blank=True, max_length=20, verbose_name='شماره تماس')),
|
|
('email', models.CharField(blank=True, max_length=150, verbose_name='ایمیل')),
|
|
('address', models.CharField(blank=True, max_length=255, verbose_name='آدرس')),
|
|
('notes', models.TextField(blank=True, verbose_name='یادداشت')),
|
|
('updated_at', models.DateTimeField(auto_now=True)),
|
|
('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='customers', to=settings.AUTH_USER_MODEL)),
|
|
],
|
|
options={
|
|
'verbose_name': 'مشتری',
|
|
'verbose_name_plural': 'مشتریان',
|
|
'ordering': ['name'],
|
|
},
|
|
),
|
|
migrations.CreateModel(
|
|
name='LedgerEntry',
|
|
fields=[
|
|
('id', models.CharField(max_length=36, primary_key=True, serialize=False)),
|
|
('entry_type', models.CharField(choices=[('income', 'درآمد'), ('expense', 'هزینه')], max_length=10, verbose_name='نوع')),
|
|
('title', models.CharField(max_length=150, verbose_name='عنوان')),
|
|
('amount', models.FloatField(verbose_name='مبلغ')),
|
|
('category', models.CharField(blank=True, max_length=100, verbose_name='دسته')),
|
|
('entry_date', models.DateField(verbose_name='تاریخ')),
|
|
('note', models.TextField(blank=True, verbose_name='یادداشت')),
|
|
('updated_at', models.DateTimeField(auto_now=True)),
|
|
('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='ledger_entries', to=settings.AUTH_USER_MODEL)),
|
|
],
|
|
options={
|
|
'verbose_name': 'ردیف دفتر درآمد/هزینه',
|
|
'verbose_name_plural': 'دفتر درآمد و هزینه',
|
|
'ordering': ['-entry_date'],
|
|
},
|
|
),
|
|
migrations.CreateModel(
|
|
name='Product',
|
|
fields=[
|
|
('id', models.CharField(max_length=36, primary_key=True, serialize=False)),
|
|
('name', models.CharField(max_length=150, verbose_name='نام کالا')),
|
|
('sku', models.CharField(blank=True, max_length=100, verbose_name='کد کالا')),
|
|
('quantity', models.FloatField(default=0, verbose_name='موجودی')),
|
|
('unit_price', models.FloatField(default=0, verbose_name='قیمت واحد')),
|
|
('low_stock_threshold', models.FloatField(default=0, verbose_name='آستانه\u200cی هشدار موجودی کم')),
|
|
('notes', models.TextField(blank=True, verbose_name='یادداشت')),
|
|
('updated_at', models.DateTimeField(auto_now=True)),
|
|
('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='products', to=settings.AUTH_USER_MODEL)),
|
|
],
|
|
options={
|
|
'verbose_name': 'کالا',
|
|
'verbose_name_plural': 'انبار',
|
|
'ordering': ['name'],
|
|
},
|
|
),
|
|
]
|