1
Fork 0
mirror of https://gitlab.com/Kwoth/nadekobot.git synced 2024-10-02 20:13:13 +00:00

Brainstormed a bit and probably gonna cancel tickets as the best way to add them is to store a ton of information in the database that i don't want to store

This commit is contained in:
Kwoth 2024-07-12 16:24:26 +00:00
parent 8e2700c613
commit 6b63942733

View file

@ -59,28 +59,97 @@ public partial class Administration
}
}
[Group("template")]
public partial class TicketTemplate
{
[Cmd]
public async Task TicketTemplateList()
public async Task Template()
{
await Response()
.Confirm("Please select one of the options below")
.Interaction(CreateTemplateButtons())
.SendAsync();
}
private NadekoInteractionBase? CreateTemplateButtons()
{
return _inter.Create(ctx.User.Id,
ButtonBuilder.CreatePrimaryButton("Create", "ticket_template:create"),
(_) => { return Task.CompletedTask; });
}
// [Group("template")]
// public partial class TicketTemplateCommands
// {
// public TicketTemplateCommands(ITicketService service)
// {
// }
//
// [Cmd]
// public async Task TicketTemplateList()
// {
// }
//
// [Cmd]
// public async Task TicketTemplateCreate()
// {
// }
//
// [Cmd]
// public async Task TicketTemplateRemove()
// {
// }
//
// [Cmd]
// public async Task TicketTemplateEdit()
// {
// }
// }
}
}
public interface ITicketService
{
public Task<TicketTemplate> GetTemplateAsync();
public Task AddTemplateAsync(TicketTemplate template);
public Task RemoveTemplateAsync(int id);
public Task EditTemplateAsync(TicketTemplate template);
}
public sealed class TicketTemplate
{
public int Id { get; set; }
public string Name { get; set; }
public string Emoji { get; set; }
public string Description { get; set; }
public IReadOnlyCollection<ITicketTemplateField> Fields { get; set; } = [];
}
public interface ITicketTemplateField
{
public string Guid
=> "";
}
public sealed class InputTemplateField : ITicketTemplateField
{
}
[Cmd]
public async Task TicketTemplateAdd()
public sealed class SelectTemplateField : ITicketTemplateField
{
}
[Cmd]
public async Task TicketTemplateRemove()
public sealed class CheckboxTemplateField : ITicketTemplateField
{
}
[Cmd]
public async Task TicketTemplateEdit()
public sealed class LabelTemplateField : ITicketTemplateField
{
}
}
}
public sealed class TextTemplateField : ITicketTemplateField
{
}