diff --git a/DB/etc/schema.sql b/DB/etc/schema.sql index 12c135f..90d3c32 100644 --- a/DB/etc/schema.sql +++ b/DB/etc/schema.sql @@ -102,3 +102,18 @@ CREATE TABLE build ( created_at timestamptz not null default current_timestamp ); +-- The domains that a user can host their blog under. +CREATE TABLE hosted_domain ( + id serial PRIMARY KEY, + name text not null, + letsencrypt_challenge text not null default 'http', -- http or dns + letsencrypt_dns_auth json not null default '{}', + created_at timestamptz not null default current_timestamp +); + +-- Servers that we will deploy the blogs to. +CREATE TABLE servers ( + id serial PRIMARY KEY, + hostname text not null, + created_at timestamptz not null default current_timestamp +); diff --git a/DB/lib/MJB/DB/Result/HostedDomain.pm b/DB/lib/MJB/DB/Result/HostedDomain.pm new file mode 100644 index 0000000..c8254df --- /dev/null +++ b/DB/lib/MJB/DB/Result/HostedDomain.pm @@ -0,0 +1,118 @@ +use utf8; +package MJB::DB::Result::HostedDomain; + +# Created by DBIx::Class::Schema::Loader +# DO NOT MODIFY THE FIRST PART OF THIS FILE + +=head1 NAME + +MJB::DB::Result::HostedDomain + +=cut + +use strict; +use warnings; + +use base 'DBIx::Class::Core'; + +=head1 COMPONENTS LOADED + +=over 4 + +=item * L + +=item * L + +=back + +=cut + +__PACKAGE__->load_components("InflateColumn::DateTime", "InflateColumn::Serializer"); + +=head1 TABLE: C + +=cut + +__PACKAGE__->table("hosted_domain"); + +=head1 ACCESSORS + +=head2 id + + data_type: 'integer' + is_auto_increment: 1 + is_nullable: 0 + sequence: 'hosted_domain_id_seq' + +=head2 name + + data_type: 'text' + is_nullable: 0 + +=head2 letsencrypt_challenge + + data_type: 'text' + default_value: 'http' + is_nullable: 0 + +=head2 letsencrypt_dns_auth + + data_type: 'json' + default_value: '{}' + is_nullable: 0 + serializer_class: 'JSON' + +=head2 created_at + + data_type: 'timestamp with time zone' + default_value: current_timestamp + is_nullable: 0 + +=cut + +__PACKAGE__->add_columns( + "id", + { + data_type => "integer", + is_auto_increment => 1, + is_nullable => 0, + sequence => "hosted_domain_id_seq", + }, + "name", + { data_type => "text", is_nullable => 0 }, + "letsencrypt_challenge", + { data_type => "text", default_value => "http", is_nullable => 0 }, + "letsencrypt_dns_auth", + { + data_type => "json", + default_value => "{}", + is_nullable => 0, + serializer_class => "JSON", + }, + "created_at", + { + data_type => "timestamp with time zone", + default_value => \"current_timestamp", + is_nullable => 0, + }, +); + +=head1 PRIMARY KEY + +=over 4 + +=item * L + +=back + +=cut + +__PACKAGE__->set_primary_key("id"); + + +# Created by DBIx::Class::Schema::Loader v0.07049 @ 2022-11-04 18:27:03 +# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:Jn80IGZYKR1o1cMoeUGPYQ + + +# You can replace this text with custom code or comments, and it will be preserved on regeneration +1; diff --git a/DB/lib/MJB/DB/Result/Server.pm b/DB/lib/MJB/DB/Result/Server.pm new file mode 100644 index 0000000..6d677d1 --- /dev/null +++ b/DB/lib/MJB/DB/Result/Server.pm @@ -0,0 +1,96 @@ +use utf8; +package MJB::DB::Result::Server; + +# Created by DBIx::Class::Schema::Loader +# DO NOT MODIFY THE FIRST PART OF THIS FILE + +=head1 NAME + +MJB::DB::Result::Server + +=cut + +use strict; +use warnings; + +use base 'DBIx::Class::Core'; + +=head1 COMPONENTS LOADED + +=over 4 + +=item * L + +=item * L + +=back + +=cut + +__PACKAGE__->load_components("InflateColumn::DateTime", "InflateColumn::Serializer"); + +=head1 TABLE: C + +=cut + +__PACKAGE__->table("servers"); + +=head1 ACCESSORS + +=head2 id + + data_type: 'integer' + is_auto_increment: 1 + is_nullable: 0 + sequence: 'servers_id_seq' + +=head2 hostname + + data_type: 'text' + is_nullable: 0 + +=head2 created_at + + data_type: 'timestamp with time zone' + default_value: current_timestamp + is_nullable: 0 + +=cut + +__PACKAGE__->add_columns( + "id", + { + data_type => "integer", + is_auto_increment => 1, + is_nullable => 0, + sequence => "servers_id_seq", + }, + "hostname", + { data_type => "text", is_nullable => 0 }, + "created_at", + { + data_type => "timestamp with time zone", + default_value => \"current_timestamp", + is_nullable => 0, + }, +); + +=head1 PRIMARY KEY + +=over 4 + +=item * L + +=back + +=cut + +__PACKAGE__->set_primary_key("id"); + + +# Created by DBIx::Class::Schema::Loader v0.07049 @ 2022-11-04 18:27:03 +# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:6RiN3g03SNXpBYy1y6rQbA + + +# You can replace this text with custom code or comments, and it will be preserved on regeneration +1;