Add group icon and privacy to the database schema
This commit is contained in:
parent
18cb6785e9
commit
9d5be07f0c
@ -1,11 +1,20 @@
|
|||||||
-- SCHEMA VERSION 9: 2020-xx-xx --
|
-- SCHEMA VERSION 9: 2020-xx-xx --
|
||||||
|
-- Adds support for member groups.
|
||||||
|
|
||||||
create table groups (
|
create table groups (
|
||||||
id int primary key generated always as identity,
|
id int primary key generated always as identity,
|
||||||
hid char(5) unique not null,
|
hid char(5) unique not null,
|
||||||
system int not null references systems(id) on delete cascade,
|
system int not null references systems(id) on delete cascade,
|
||||||
|
|
||||||
name text not null,
|
name text not null,
|
||||||
description text,
|
description text,
|
||||||
|
icon text,
|
||||||
|
|
||||||
|
-- Description columns follow the same pattern as usual: 1 = public, 2 = private
|
||||||
|
description_privacy integer check (description_privacy in (1, 2)) not null default 1,
|
||||||
|
icon_privacy integer check (icon_privacy in (1, 2)) not null default 1,
|
||||||
|
visibility integer check (visibility in (1, 2)) not null default 1,
|
||||||
|
|
||||||
created timestamp with time zone not null default (current_timestamp at time zone 'utc')
|
created timestamp with time zone not null default (current_timestamp at time zone 'utc')
|
||||||
);
|
);
|
||||||
|
|
||||||
|
@ -11,6 +11,11 @@ namespace PluralKit.Core
|
|||||||
|
|
||||||
public string Name { get; } = null!;
|
public string Name { get; } = null!;
|
||||||
public string? Description { get; }
|
public string? Description { get; }
|
||||||
|
public string? Icon { get; }
|
||||||
|
|
||||||
|
public PrivacyLevel DescriptionPrivacy { get; }
|
||||||
|
public PrivacyLevel IconPrivacy { get; }
|
||||||
|
public PrivacyLevel Visibility { get; }
|
||||||
|
|
||||||
public Instant Created { get; }
|
public Instant Created { get; }
|
||||||
}
|
}
|
||||||
|
@ -5,9 +5,18 @@ namespace PluralKit.Core
|
|||||||
{
|
{
|
||||||
public Partial<string> Name { get; set; }
|
public Partial<string> Name { get; set; }
|
||||||
public Partial<string?> Description { get; set; }
|
public Partial<string?> Description { get; set; }
|
||||||
|
public Partial<string?> Icon { get; set; }
|
||||||
|
|
||||||
|
public Partial<PrivacyLevel> DescriptionPrivacy { get; set; }
|
||||||
|
public Partial<PrivacyLevel> IconPrivacy { get; set; }
|
||||||
|
public Partial<PrivacyLevel> Visibility { get; set; }
|
||||||
|
|
||||||
public override UpdateQueryBuilder Apply(UpdateQueryBuilder b) => b
|
public override UpdateQueryBuilder Apply(UpdateQueryBuilder b) => b
|
||||||
.With("name", Name)
|
.With("name", Name)
|
||||||
.With("description", Description);
|
.With("description", Description)
|
||||||
|
.With("icon", Icon)
|
||||||
|
.With("description_privacy", DescriptionPrivacy)
|
||||||
|
.With("icon_privacy", IconPrivacy)
|
||||||
|
.With("visibility", Visibility);
|
||||||
}
|
}
|
||||||
}
|
}
|
Loading…
x
Reference in New Issue
Block a user