---- Добавление точек присоединения 
CREATE TABLE  PowerOutlets 
(
	PowerOutletID	int IDENTITY(1,1),
	ConsumerID	int NOT NULL,
	Name		nvarchar(50) NOT NULL,
	Inom		float,
        Unom		float,
	PRIMARY KEY (PowerOutletID ASC)
)
GO

ALTER TABLE PowerOutlets
	ADD FOREIGN KEY (ConsumerID)
        REFERENCES Потребитель (Код_потребителя)

GO
---- Добавление таблицы Физическое лицо
CREATE TABLE Individuals
(
	IndividualID	int IDENTITY(1,1),
	Name		nvarchar(200) NOT NULL,
	PassportNumber 	nvarchar(12),
	PassportIssuer  nvarchar(200),
	PassportDate	datetime,
	RegistrationAddress	nvarchar(200),
	Address		nvarchar(200),
	ContactInfo	nvarchar(200),
	INN		nvarchar(100),
	PRIMARY KEY (IndividualID ASC)	 
	
)
GO

---- Добавление полей в Потребителя -----
ALTER TABLE Потребитель ADD Является_физлицом bit -- Потребитель является физическим лицом
ALTER TABLE Потребитель ADD Код_физического_лица int  -- FK на Person
ALTER TABLE Потребитель ADD Категория int -- Заявленный уровень надёжности энергопринимающих устройств
ALTER TABLE Потребитель ADD Наименование_объекта nvarchar(200) -- Наименование энергопринимающих устройств
ALTER TABLE Потребитель ALTER COLUMN Unom float NULL -- поле Напряжение сделаем необязательным, ибо вообще может быть несколько точек присоединения с разным напряжением
ALTER TABLE Потребитель ADD Не_подключен bit
GO

ALTER TABLE Потребитель 
	ADD FOREIGN KEY (Код_физического_лица)
	REFERENCES Individuals (IndividualID) 
GO

---- Добавление полей в Организацию
ALTER TABLE Организация ADD Полное_наименование nvarchar(200)
ALTER TABLE Организация ADD ИНН nvarchar(100)
ALTER TABLE Организация ADD КПП nvarchar(100)
ALTER TABLE Организация ADD ОКПО nvarchar(100)
ALTER TABLE Организация ADD ОКВЭД nvarchar(100)
ALTER TABLE Организация ADD ОГРН nvarchar(200)
ALTER TABLE Организация ADD Юридический_адрес nvarchar(200)
ALTER TABLE Организация ADD БИК nvarchar(100)
ALTER TABLE Организация ADD Расчетный_счет nvarchar(100)
ALTER TABLE Организация ADD Корреспондентский_счет nvarchar(100)
ALTER TABLE Организация ADD Контактная_информация nvarchar(200)
ALTER TABLE Организация ALTER COLUMN Реквизиты nvarchar(200) NULL
ALTER TABLE Организация ALTER COLUMN Адрес nvarchar(200) NOT NULL
GO

-- копировать из Адрес в Юридический_адрес
UPDATE Организация SET Юридический_адрес = Адрес
-- Переименовать поле Адрес в Фактический_адрес
EXEC sp_rename 'Организация.Адрес', 'Фактический_адрес', 'COLUMN'
-- копировать из Наименования в Полное_наименование
UPDATE Организация SET Полное_наименование = Наименование
GO


---- Создание таблиц для модуля Технологическое Присоединение
CREATE TABLE TCApplicationCauses (
       TCApplicationCauseID int IDENTITY(1,1),
       Description          nvarchar(200) NOT NULL,
       PRIMARY KEY (TCApplicationCauseID ASC)
)
GO

CREATE TABLE TCApplications 
(
	TCApplicationID		int IDENTITY(1,1),
	ConsumerID		int NOT NULL,
	FilingDate		datetime NOT NULL,
	TCApplicationCauseID	int NOT NULL,
	TCApplicationNumber	nvarchar(50) NOT NULL,
	ProjectBeginDate	datetime,
	ProjectEndDate		datetime,
	ApplicantPosition	nvarchar(100),
	ApplicantName		nvarchar(100),
	ApplicantAgentPosition	nvarchar(100),
	ApplicantAgentName	nvarchar(100),
	ApplicantAgentContactInfo	nvarchar(100),
	ExecutorPosition	nvarchar(100),
	ExecutorName		nvarchar(100),
	ExecutorContactInfo	nvarchar(100),
	PerformanceDate		datetime,
	TCApplicationTemlateID	int,
	PRIMARY KEY (TCApplicationID ASC)
)

GO

ALTER TABLE TCApplications
	ADD FOREIGN KEY (TCApplicationCauseID)
	REFERENCES TCApplicationCauses  (TCApplicationCauseID)
GO

INSERT INTO TCApplicationCauses (Description) VALUES ('Реконструкция ранее присоединенного объекта, с увеличением мощности')
INSERT INTO TCApplicationCauses (Description) VALUES ('Присоединение впервые вводимого в эксплуатацию объекта')
INSERT INTO TCApplicationCauses (Description) VALUES ('Изменение точки присоединения ранее присоединенного объекта, с изменением схемы внешнего электроснабжения')
INSERT INTO TCApplicationCauses (Description) VALUES ('Изменение мощности')
INSERT INTO TCApplicationCauses (Description) VALUES ('Изменение класса напряжения')
INSERT INTO TCApplicationCauses (Description) VALUES ('Смена собственника')
INSERT INTO TCApplicationCauses (Description) VALUES ('Изменение вида производственной деятельности ранее присоединенного объекта, с изменением схемы внешнего электроснабжения')
INSERT INTO TCApplicationCauses (Description) VALUES ('Перевод из жилого помещения в нежилое помещение')
INSERT INTO TCApplicationCauses (Description) VALUES ('Подтверждение существующей нагрузки')
INSERT INTO TCApplicationCauses (Description) VALUES ('Окончание срока действия технических условий на технологическое присоединение')
INSERT INTO TCApplicationCauses (Description) VALUES ('Изменение категории надёжности электроснабжения ранее присоединенного объекта, с изменением схемы внешнего электроснабжения')
INSERT INTO TCApplicationCauses (Description) VALUES ('Электроснабжение строительной площадки')
INSERT INTO TCApplicationCauses (Description) VALUES ('Разделение существующей мощности')

GO


CREATE TABLE TCApplicationInstallations
(
	TCApplicationInstallationID	int IDENTITY(1,1),
	TCApplicationID			int NOT NULL,
	Name				nvarchar(50) NOT NULL,
	InstallationDate		datetime,
	InstallationPower		float,
	InstallationCategory		int,
	PRIMARY KEY (TCApplicationInstallationID)
 
)

GO

ALTER TABLE TCApplicationInstallations
	ADD FOREIGN KEY (TCApplicationID)
	REFERENCES TCApplications (TCApplicationID)
	ON DELETE CASCADE
GO

CREATE TABLE TCApplicationAttachmentTypes
(
	TCApplicationAttachmentTypeID	int IDENTITY(1,1),
	TCApplicationTemplateID	int NOT NULL,
	AttachmentTypeName	nvarchar(200),
	IsMandatory		bit NOT NULL default 0,
	PRIMARY KEY (TCApplicationAttachmentTypeID)
)
GO

CREATE TABLE TCApplicationAttachments
(
	TCApplicationAttachmentID	int IDENTITY(1,1),
	TCApplicationID		int NOT NULL,
	AttachmentName		nvarchar(200),
	AttachmentScan		image,
	AttachmentTypeID	int,
	PRIMARY KEY (TCApplicationAttachmentID)	
)
GO

ALTER TABLE TCApplicationAttachments
	ADD FOREIGN KEY (TCApplicationID) 
	REFERENCES TCApplications (TCApplicationID)
	ON DELETE CASCADE

ALTER TABLE TCApplicationAttachments
	ADD FOREIGN KEY (AttachmentTypeID)
	REFERENCES TCApplicationAttachmentTypes (TCApplicationAttachmentTypeID)
