48 lines
1.4 KiB
C#
48 lines
1.4 KiB
C#
using PetaPoco;
|
|
namespace LightPerms;
|
|
|
|
[TableName("groups")]
|
|
[PrimaryKey(nameof(Uid), AutoIncrement = true)]
|
|
public class Group
|
|
{
|
|
[Column]
|
|
public long Uid { get; set; }
|
|
[Column]
|
|
public string Name { get; set; } = "group";
|
|
|
|
internal const string CreateTableSql = "create table if not exists groups (uid INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT NOT NULL);";
|
|
}
|
|
|
|
[TableName("permissions")]
|
|
[PrimaryKey(nameof(Uid), AutoIncrement = true)]
|
|
public class Permission
|
|
{
|
|
[Column]
|
|
public long Uid { get; set; }
|
|
[Column]
|
|
public string Value { get; set; } = "*";
|
|
[Column]
|
|
public long GroupUid { get; set; }
|
|
|
|
internal const string CreateTableSql = "create table if not exists permissions (uid INTEGER PRIMARY KEY AUTOINCREMENT, value TEXT NOT NULL, group_uid INTEGER, FOREIGN KEY(group_uid) REFERENCES groups(uid));";
|
|
}
|
|
|
|
[TableName("group_members")]
|
|
[PrimaryKey(nameof(Uid), AutoIncrement = true)]
|
|
public class GroupMember
|
|
{
|
|
[Column]
|
|
public long Uid { get; set; }
|
|
|
|
[Column]
|
|
public string Name { get; set; } = "no name";
|
|
|
|
[Column]
|
|
public string ClientId { get; set; } = "0";
|
|
|
|
[Column]
|
|
public long GroupUid { get; set; }
|
|
|
|
internal const string CreateTableSql = "create table if not exists group_members (uid INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT NOT NULL, client_id INTEGER, group_uid INTEGER, FOREIGN KEY(group_uid) REFERENCES groups(uid));";
|
|
}
|