Files
ACORE/apps/it_manager/migrations/0005_consumable.py
T
lokses 131cb27d16 Initial commit — ACORE pharmacy network management system
Django project: employees, locations, visit_manager, it_manager,
mattermost_connector and stub connectors (ad, mail, portal).
2026-05-31 14:21:47 +03:00

42 lines
3.3 KiB
Python

# Generated by Django 6.0.3 on 2026-04-24 10:56
import django.db.models.deletion
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('it_manager', '0004_servicecall_worklog'),
('locations', '0002_remove_pharmacy_locations_p_last_sy_0dc5a0_idx_and_more'),
]
operations = [
migrations.CreateModel(
name='Consumable',
fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('consumable_type', models.CharField(choices=[('cartridge', 'Картридж'), ('toner', 'Тонер'), ('drum', 'Фотобарабан'), ('ink', 'Чернила'), ('other', 'Другое')], db_index=True, default='cartridge', max_length=20, verbose_name='Тип')),
('brand', models.CharField(blank=True, max_length=100, verbose_name='Производитель')),
('model_number', models.CharField(max_length=100, verbose_name='Модель / артикул')),
('color', models.CharField(choices=[('black', 'Чёрный'), ('cyan', 'Голубой (C)'), ('magenta', 'Пурпурный (M)'), ('yellow', 'Жёлтый (Y)'), ('color', 'Цветной (триколор)'), ('na', 'Не применимо')], default='black', max_length=10, verbose_name='Цвет')),
('status', models.CharField(choices=[('in_stock', 'На складе'), ('installed', 'Установлен'), ('empty', 'Закончился / на замену'), ('ordered', 'Заказан'), ('disposed', 'Утилизирован')], db_index=True, default='in_stock', max_length=20, verbose_name='Статус')),
('page_yield', models.PositiveIntegerField(blank=True, null=True, verbose_name='Ресурс (страниц)')),
('purchase_date', models.DateField(blank=True, null=True, verbose_name='Дата покупки')),
('installed_date', models.DateField(blank=True, null=True, verbose_name='Дата установки')),
('replaced_date', models.DateField(blank=True, null=True, verbose_name='Дата замены')),
('notes', models.TextField(blank=True, verbose_name='Примечания')),
('created_at', models.DateTimeField(auto_now_add=True)),
('updated_at', models.DateTimeField(auto_now=True)),
('equipment', models.ForeignKey(blank=True, limit_choices_to={'equipment_type': 'printer'}, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='consumables', to='it_manager.equipment', verbose_name='Устройство')),
('location', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='consumables', to='locations.location', verbose_name='Локация хранения')),
],
options={
'verbose_name': 'Расходник',
'verbose_name_plural': 'Расходники',
'ordering': ['equipment', 'consumable_type', 'color'],
'indexes': [models.Index(fields=['status'], name='it_manager__status_53998f_idx'), models.Index(fields=['equipment', 'status'], name='it_manager__equipme_8f7405_idx')],
},
),
]