update
This commit is contained in:
70
backEnd/services/migrations/0001_initial.py
Normal file
70
backEnd/services/migrations/0001_initial.py
Normal file
@@ -0,0 +1,70 @@
|
||||
# Generated by Django 4.2.7 on 2025-09-25 07:54
|
||||
|
||||
import django.core.validators
|
||||
from django.db import migrations, models
|
||||
import django.db.models.deletion
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
initial = True
|
||||
|
||||
dependencies = [
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.CreateModel(
|
||||
name='Service',
|
||||
fields=[
|
||||
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||||
('title', models.CharField(help_text='Service title', max_length=200)),
|
||||
('description', models.TextField(help_text='Service description')),
|
||||
('slug', models.SlugField(help_text='URL-friendly version of the title', max_length=200, unique=True)),
|
||||
('icon', models.CharField(help_text="Icon name (e.g., 'code', 'api', 'cloud')", max_length=50)),
|
||||
('image', models.CharField(help_text='Path to service image', max_length=500)),
|
||||
('price', models.DecimalField(decimal_places=2, help_text='Service price', max_digits=10, validators=[django.core.validators.MinValueValidator(0)])),
|
||||
('featured', models.BooleanField(default=False, help_text='Whether this service is featured')),
|
||||
('display_order', models.PositiveIntegerField(default=0, help_text='Order for displaying services')),
|
||||
('is_active', models.BooleanField(default=True, help_text='Whether this service is active')),
|
||||
('created_at', models.DateTimeField(auto_now_add=True)),
|
||||
('updated_at', models.DateTimeField(auto_now=True)),
|
||||
],
|
||||
options={
|
||||
'verbose_name': 'Service',
|
||||
'verbose_name_plural': 'Services',
|
||||
'ordering': ['display_order', 'created_at'],
|
||||
},
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='ServiceCategory',
|
||||
fields=[
|
||||
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||||
('name', models.CharField(max_length=100, unique=True)),
|
||||
('slug', models.SlugField(max_length=100, unique=True)),
|
||||
('description', models.TextField(blank=True)),
|
||||
('display_order', models.PositiveIntegerField(default=0)),
|
||||
('is_active', models.BooleanField(default=True)),
|
||||
],
|
||||
options={
|
||||
'verbose_name': 'Service Category',
|
||||
'verbose_name_plural': 'Service Categories',
|
||||
'ordering': ['display_order', 'name'],
|
||||
},
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='ServiceFeature',
|
||||
fields=[
|
||||
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||||
('title', models.CharField(help_text='Feature title', max_length=200)),
|
||||
('description', models.TextField(blank=True, help_text='Feature description')),
|
||||
('icon', models.CharField(blank=True, help_text='Feature icon', max_length=50)),
|
||||
('display_order', models.PositiveIntegerField(default=0, help_text='Order for displaying features')),
|
||||
('service', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='features', to='services.service')),
|
||||
],
|
||||
options={
|
||||
'verbose_name': 'Service Feature',
|
||||
'verbose_name_plural': 'Service Features',
|
||||
'ordering': ['display_order', 'title'],
|
||||
},
|
||||
),
|
||||
]
|
||||
@@ -0,0 +1,24 @@
|
||||
# Generated by Django 4.2.7 on 2025-09-25 08:04
|
||||
|
||||
from django.db import migrations, models
|
||||
import services.models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('services', '0001_initial'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AddField(
|
||||
model_name='service',
|
||||
name='image_url',
|
||||
field=models.CharField(blank=True, help_text='External image URL (alternative to uploaded image)', max_length=500),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='service',
|
||||
name='image',
|
||||
field=models.ImageField(blank=True, help_text='Service image', null=True, upload_to=services.models.service_image_upload_path),
|
||||
),
|
||||
]
|
||||
@@ -0,0 +1,39 @@
|
||||
# Generated by Django 4.2.7 on 2025-09-25 08:24
|
||||
|
||||
from django.db import migrations, models
|
||||
import django.db.models.deletion
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('services', '0002_service_image_url_alter_service_image'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AddField(
|
||||
model_name='service',
|
||||
name='category',
|
||||
field=models.ForeignKey(blank=True, help_text='Service category', null=True, on_delete=django.db.models.deletion.SET_NULL, to='services.servicecategory'),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='service',
|
||||
name='deliverables',
|
||||
field=models.TextField(blank=True, help_text='What you get with this service'),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='service',
|
||||
name='duration',
|
||||
field=models.CharField(blank=True, help_text="Project duration (e.g., '2-4 weeks', '3-6 months')", max_length=100),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='service',
|
||||
name='short_description',
|
||||
field=models.CharField(blank=True, help_text='Short description for cards and previews', max_length=300),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='service',
|
||||
name='technologies',
|
||||
field=models.TextField(blank=True, help_text='Technologies and tools used'),
|
||||
),
|
||||
]
|
||||
18
backEnd/services/migrations/0004_service_process_steps.py
Normal file
18
backEnd/services/migrations/0004_service_process_steps.py
Normal file
@@ -0,0 +1,18 @@
|
||||
# Generated by Django 4.2.7 on 2025-09-25 08:30
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('services', '0003_service_category_service_deliverables_and_more'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AddField(
|
||||
model_name='service',
|
||||
name='process_steps',
|
||||
field=models.TextField(blank=True, help_text='Process steps in JSON format or comma-separated'),
|
||||
),
|
||||
]
|
||||
30
backEnd/services/migrations/0005_serviceexpertise.py
Normal file
30
backEnd/services/migrations/0005_serviceexpertise.py
Normal file
@@ -0,0 +1,30 @@
|
||||
# Generated by Django 4.2.7 on 2025-09-25 11:41
|
||||
|
||||
from django.db import migrations, models
|
||||
import django.db.models.deletion
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('services', '0004_service_process_steps'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.CreateModel(
|
||||
name='ServiceExpertise',
|
||||
fields=[
|
||||
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||||
('title', models.CharField(help_text='Expertise title', max_length=200)),
|
||||
('description', models.TextField(help_text='Expertise description')),
|
||||
('icon', models.CharField(blank=True, help_text='Expertise icon', max_length=50)),
|
||||
('display_order', models.PositiveIntegerField(default=0, help_text='Order for displaying expertise items')),
|
||||
('service', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='expertise_items', to='services.service')),
|
||||
],
|
||||
options={
|
||||
'verbose_name': 'Service Expertise',
|
||||
'verbose_name_plural': 'Service Expertise Items',
|
||||
'ordering': ['display_order', 'title'],
|
||||
},
|
||||
),
|
||||
]
|
||||
@@ -0,0 +1,38 @@
|
||||
# Generated by Django 4.2.7 on 2025-09-25 11:49
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('services', '0005_serviceexpertise'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AddField(
|
||||
model_name='service',
|
||||
name='deliverables_description',
|
||||
field=models.TextField(blank=True, help_text='Description for the What You Get section'),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='service',
|
||||
name='expertise_description',
|
||||
field=models.TextField(blank=True, help_text='Description for the Our Expertise section'),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='service',
|
||||
name='features_description',
|
||||
field=models.TextField(blank=True, help_text='Description for the Key Features section'),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='service',
|
||||
name='process_description',
|
||||
field=models.TextField(blank=True, help_text='Description for the Our Process section'),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='service',
|
||||
name='why_choose_description',
|
||||
field=models.TextField(blank=True, help_text='Description for the Why Choose Our Service section'),
|
||||
),
|
||||
]
|
||||
@@ -0,0 +1,23 @@
|
||||
# Generated by Django 4.2.7 on 2025-10-11 12:44
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('services', '0006_service_deliverables_description_and_more'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AddField(
|
||||
model_name='service',
|
||||
name='image2',
|
||||
field=models.ImageField(blank=True, help_text='Secondary service image', null=True, upload_to='services/images/'),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='service',
|
||||
name='image2_url',
|
||||
field=models.CharField(blank=True, help_text='External secondary image URL (alternative to uploaded image)', max_length=500),
|
||||
),
|
||||
]
|
||||
@@ -0,0 +1,21 @@
|
||||
# Generated by Django 4.2.7 on 2025-10-11 12:49
|
||||
|
||||
from django.db import migrations
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('services', '0007_service_image2_service_image2_url'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.RemoveField(
|
||||
model_name='service',
|
||||
name='image2',
|
||||
),
|
||||
migrations.RemoveField(
|
||||
model_name='service',
|
||||
name='image2_url',
|
||||
),
|
||||
]
|
||||
0
backEnd/services/migrations/__init__.py
Normal file
0
backEnd/services/migrations/__init__.py
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
backEnd/services/migrations/__pycache__/__init__.cpython-312.pyc
Normal file
BIN
backEnd/services/migrations/__pycache__/__init__.cpython-312.pyc
Normal file
Binary file not shown.
Reference in New Issue
Block a user