Changeset 891 for trunk/Modules/Subject/Subject.php
- Timestamp:
- Dec 30, 2020, 11:52:07 PM (4 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Modules/Subject/Subject.php
r887 r891 133 133 function DoInstall(): void 134 134 { 135 $this->Database->query("CREATE TABLE IF NOT EXISTS `Subject` ( 136 `Id` int(11) NOT NULL AUTO_INCREMENT, 137 `Name` varchar(64) NOT NULL DEFAULT '', 138 `AddressStreet` varchar(64) NOT NULL DEFAULT '', 139 `AddressTown` varchar(64) NOT NULL DEFAULT '', 140 `AddressPSC` int(11) NOT NULL DEFAULT '0', 141 `AddressCountry` int(11) NOT NULL, 142 `IC` varchar(32) NOT NULL, 143 `DIC` varchar(32) NOT NULL DEFAULT '', 144 `PayVAT` int(11) NOT NULL, 145 `MapPosition` int(11) DEFAULT NULL, 146 `WWW` varchar(255) NOT NULL, 147 `Note` varchar(255) NOT NULL, 148 PRIMARY KEY (`Id`) 149 ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;"); 150 $this->Database->query("CREATE TABLE IF NOT EXISTS `Contact` ( 151 `Id` int(11) NOT NULL AUTO_INCREMENT, 152 `Category` int(11) NOT NULL, 153 `Value` varchar(255) NOT NULL, 154 `Subject` int(11) DEFAULT NULL, 155 `User` int(11) DEFAULT NULL, 156 `Description` varchar(255) NOT NULL, 157 `Receive` tinyint(1) NOT NULL, 158 PRIMARY KEY (`Id`) 159 ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;"); 160 $this->System->Database->query("CREATE TABLE IF NOT EXISTS `ContactCategory` ( 161 `Id` int(11) NOT NULL AUTO_INCREMENT, 162 `Name` varchar(255) NOT NULL, 163 PRIMARY KEY (`Id`) 164 ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;"); 165 166 $this->Database->query("ALTER TABLE `Subject` 167 ADD CONSTRAINT `Subject_ibfk_1` FOREIGN KEY (`AddressCountry`) REFERENCES `Country` (`Id`), 168 ADD CONSTRAINT `Subject_ibfk_2` FOREIGN KEY (`MapPosition`) REFERENCES `MapPosition` (`Id`);"); 169 $this->Database->query("ALTER TABLE `Contact` 170 ADD CONSTRAINT `Contact_ibfk_1` FOREIGN KEY (`Category`) REFERENCES `ContactCategory` (`Id`), 171 ADD CONSTRAINT `Contact_ibfk_2` FOREIGN KEY (`Subject`) REFERENCES `Subject` (`Id`), 172 ADD CONSTRAINT `Contact_ibfk_3` FOREIGN KEY (`User`) REFERENCES `User` (`Id`);"); 135 $this->InstallModel(Country::GetDesc()); 136 $this->InstallModel(Subject::GetDesc()); 137 $this->InstallModel(ContactCategory::GetDesc()); 138 $this->InstallModel(Contact::GetDesc()); 173 139 } 174 140 175 141 function DoUninstall(): void 176 142 { 177 $this->Database->query('DROP TABLE `Contact`'); 178 $this->Database->query('DROP TABLE `ContactCategory`'); 179 $this->Database->query('DROP TABLE `Subject`'); 143 $this->UninstallModel(Contact::GetDesc()); 144 $this->UninstallModel(ContactCategory::GetDesc()); 145 $this->UninstallModel(Subject::GetDesc()); 146 $this->UninstallModel(Country::GetDesc()); 180 147 } 181 148 … … 188 155 } 189 156 } 157 158 class Subject extends Model 159 { 160 static function GetDesc(): ModelDesc 161 { 162 $Desc = new ModelDesc('Subject'); 163 $Desc->AddString('Name'); 164 $Desc->AddString('AddressStreet'); 165 $Desc->AddString('AddressTown'); 166 $Desc->AddString('AddressPSC'); 167 $Desc->AddReference('AddressCountry', 'Country', true); 168 $Desc->AddString('IC'); 169 $Desc->AddString('DIC'); 170 $Desc->AddBoolean('PayVAT'); 171 $Desc->AddReference('MapPosition', 'MapPosition', true); 172 $Desc->AddString('WWW'); 173 $Desc->AddString('Note'); 174 return $Desc; 175 } 176 } 177 178 class Country extends Model 179 { 180 static function GetDesc(): ModelDesc 181 { 182 $Desc = new ModelDesc('Country'); 183 $Desc->AddString('Name'); 184 return $Desc; 185 } 186 } 187 188 class Contact extends Model 189 { 190 static function GetDesc(): ModelDesc 191 { 192 $Desc = new ModelDesc('Contact'); 193 $Desc->AddReference('Category', 'ContactCategory', true); 194 $Desc->AddString('Value'); 195 $Desc->AddReference('Subject', 'Subject', true); 196 $Desc->AddReference('User', 'User', true); 197 $Desc->AddString('Description'); 198 $Desc->AddBoolean('Receive'); 199 return $Desc; 200 } 201 } 202 203 class ContactCategory extends Model 204 { 205 static function GetDesc(): ModelDesc 206 { 207 $Desc = new ModelDesc('ContactCategory'); 208 $Desc->AddString('Name'); 209 return $Desc; 210 } 211 }
Note:
See TracChangeset
for help on using the changeset viewer.