22 lines
1.0 KiB
MySQL
22 lines
1.0 KiB
MySQL
|
|
-- История перемещений и событий по оборудованию (закупка, выдача, перемещения, ремонты, списание)
|
||
|
|
DO $$
|
||
|
|
BEGIN
|
||
|
|
IF NOT EXISTS (SELECT 1 FROM pg_type WHERE typname = 'office_equipment_history_type') THEN
|
||
|
|
CREATE TYPE office_equipment_history_type AS ENUM ('purchase', 'issue', 'transfer', 'repair', 'write_off');
|
||
|
|
END IF;
|
||
|
|
END$$;
|
||
|
|
|
||
|
|
CREATE TABLE IF NOT EXISTS office_equipment_history (
|
||
|
|
id BIGSERIAL PRIMARY KEY,
|
||
|
|
equipment_id BIGINT NOT NULL REFERENCES office_equipment(id) ON DELETE CASCADE,
|
||
|
|
event_type office_equipment_history_type NOT NULL,
|
||
|
|
event_date DATE NOT NULL,
|
||
|
|
assigned_to TEXT,
|
||
|
|
assigned_from TEXT,
|
||
|
|
reason TEXT,
|
||
|
|
created_at TIMESTAMPTZ NOT NULL DEFAULT NOW()
|
||
|
|
);
|
||
|
|
|
||
|
|
CREATE INDEX IF NOT EXISTS idx_equipment_history_equipment ON office_equipment_history(equipment_id);
|
||
|
|
CREATE INDEX IF NOT EXISTS idx_equipment_history_date ON office_equipment_history(event_date DESC);
|