mysimulation/server/FSO.Server.Database/DatabaseScripts/fso_lots.sql
Tony Bark 22191ce648 Removed NioTSO client and server
- NioTSO client isn't needed because we're using RayLib
- Added FreeSO's API server to handle most backend operations
2024-05-01 02:55:43 -04:00

73 lines
3.4 KiB
SQL
Executable file

CREATE TABLE IF NOT EXISTS `fso_lots` (
`lot_id` int(11) NOT NULL AUTO_INCREMENT,
`shard_id` int(11) NOT NULL,
`name` varchar(50) NOT NULL,
`description` varchar(500) NOT NULL,
`owner_id` int(10) unsigned NOT NULL,
`location` int(10) unsigned zerofill NOT NULL,
`neighborhood_id` int(11) DEFAULT NULL,
`created_date` int(10) unsigned NOT NULL,
`category_change_date` int(11) unsigned NOT NULL,
`category` enum('none','welcome','money','skills','services','entertainment','romance','shopping','games','offbeat','residence') NOT NULL,
`buildable_area` int(10) unsigned NOT NULL,
`ring_backup_num` tinyint(4) NOT NULL DEFAULT '-1',
`admit_mode` tinyint(3) unsigned NOT NULL DEFAULT '0',
`move_flags` tinyint(3) DEFAULT '1',
PRIMARY KEY (`lot_id`),
UNIQUE KEY `shard_id_name` (`shard_id`,`name`),
UNIQUE KEY `shard_id_location` (`shard_id`,`location`),
UNIQUE KEY `location_UNIQUE` (`location`),
CONSTRAINT `FK_fso_lots_fso_shards` FOREIGN KEY (`shard_id`) REFERENCES `fso_shards` (`shard_id`)
)
COLLATE='utf8_general_ci'
ENGINE=InnoDB;
CREATE TABLE IF NOT EXISTS `fso_roommates` (
`avatar_id` int(10) unsigned NOT NULL,
`lot_id` int(11) NOT NULL,
`permissions_level` tinyint(3) unsigned NOT NULL,
`is_pending` tinyint(3) unsigned NOT NULL,
PRIMARY KEY (`avatar_id`,`lot_id`),
KEY `FK_roommate_lots_idx` (`lot_id`),
CONSTRAINT `FK_roommate_avatars` FOREIGN KEY (`avatar_id`) REFERENCES `fso_avatars` (`avatar_id`) ON DELETE CASCADE ON UPDATE CASCADE,
CONSTRAINT `FK_roommate_lots` FOREIGN KEY (`lot_id`) REFERENCES `fso_lots` (`lot_id`) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
CREATE TABLE IF NOT EXISTS `fso_lot_claims` (
`claim_id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`shard_id` int(11) NOT NULL,
`lot_id` int(10) NOT NULL,
`owner` varchar(50) NOT NULL,
PRIMARY KEY (`claim_id`),
UNIQUE KEY `shard_id_lot_id` (`shard_id`,`lot_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='Represents a lot servers claim on a lot.';
CREATE TABLE IF NOT EXISTS `fso_lot_server_tickets` (
`ticket_id` varchar(36) NOT NULL,
`user_id` int(10) unsigned NOT NULL,
`date` int(10) unsigned NOT NULL,
`ip` varchar(50) NOT NULL,
`avatar_id` int(10) unsigned NOT NULL,
`lot_id` int(10) NOT NULL COMMENT 'Note: need not necessarily be a real lot! Tickets can be granted for runtime lots, such as job lots. These are marked with the bit flag 0x40000000.',
`avatar_claim_id` int(11) NOT NULL,
`avatar_claim_owner` varchar(50) NOT NULL,
`lot_owner` varchar(50) NOT NULL,
PRIMARY KEY (`ticket_id`),
KEY `FK_fso_lot_server_tickets_fso_avatar_claims` (`avatar_claim_id`),
CONSTRAINT `FK_fso_lot_server_tickets_fso_avatar_claims` FOREIGN KEY (`avatar_claim_id`) REFERENCES `fso_avatar_claims` (`avatar_claim_id`) ON DELETE CASCADE
)
COLLATE='utf8_general_ci'
ENGINE=InnoDB;
CREATE TABLE IF NOT EXISTS `fso_lot_admit` (
`lot_id` int(11) NOT NULL,
`avatar_id` int(10) unsigned NOT NULL,
`admit_type` tinyint(3) unsigned NOT NULL,
PRIMARY KEY (`avatar_id`,`lot_id`),
KEY `FK_lot_idx` (`lot_id`),
KEY `FK_avatar_idx` (`avatar_id`),
CONSTRAINT `FK_admit_avatar` FOREIGN KEY (`avatar_id`) REFERENCES `fso_avatars` (`avatar_id`) ON DELETE CASCADE ON UPDATE CASCADE,
CONSTRAINT `FK_admit_lot` FOREIGN KEY (`lot_id`) REFERENCES `fso_lots` (`lot_id`) ON DELETE CASCADE ON UPDATE CASCADE
)
COLLATE='utf8_general_ci'
ENGINE=InnoDB;