feat: initial datamodel + ef connection and migrations
Initial version of the data model Includes EF initialization and migrations EF migrations are applied on application start
This commit is contained in:
@@ -0,0 +1,19 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.ComponentModel.DataAnnotations.Schema;
|
||||
|
||||
namespace TournamentOrganizer.Models;
|
||||
|
||||
public class Event
|
||||
{
|
||||
[Key]
|
||||
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
|
||||
public int Id { get; set; }
|
||||
public string Name { get; set; } = "Example Tournament";
|
||||
public DateTime Start { get; set; }
|
||||
public DateTime End { get; set; }
|
||||
|
||||
public required List<Tournament> Tournaments { get; set; }
|
||||
|
||||
}
|
||||
@@ -0,0 +1,32 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.ComponentModel.DataAnnotations.Schema;
|
||||
|
||||
namespace TournamentOrganizer.Models;
|
||||
|
||||
public enum RuleSet
|
||||
{
|
||||
DoubleElimination,
|
||||
SingleElimination,
|
||||
RoundRobin,
|
||||
Swiss
|
||||
}
|
||||
|
||||
public class Game
|
||||
{
|
||||
[Key]
|
||||
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
|
||||
public int Id { get; set; }
|
||||
public string Name { get; set; } = "Example Game";
|
||||
public string Description { get; set; } = "Example Game Description";
|
||||
|
||||
public RuleSet S1RuleSet { get; set; }
|
||||
public int S1Groups;
|
||||
public int S1GroupAdvances;
|
||||
|
||||
public RuleSet? S2RuleSet { get; set; }
|
||||
|
||||
public required List<Tournament> Tournaments { get; set; }
|
||||
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.ComponentModel.DataAnnotations.Schema;
|
||||
|
||||
namespace TournamentOrganizer.Models;
|
||||
|
||||
public class Match
|
||||
{
|
||||
[Key]
|
||||
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
|
||||
public int Id { get; set; }
|
||||
public int TournamentId { get; set; }
|
||||
|
||||
public required List<TeamParticipant> Teams;
|
||||
public required List<Round> Rounds;
|
||||
public required Tournament Tournament { get; set; }
|
||||
|
||||
}
|
||||
@@ -0,0 +1,29 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.ComponentModel.DataAnnotations.Schema;
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
|
||||
namespace TournamentOrganizer.Models;
|
||||
|
||||
[PrimaryKey(nameof(RoundId), nameof(PlayerId))]
|
||||
public class PlayerParticipant
|
||||
{
|
||||
public int RoundId { get; set; }
|
||||
public int PlayerId { get; set; }
|
||||
|
||||
public required Player Player { get; set; }
|
||||
public required Round Round { get; set; }
|
||||
}
|
||||
|
||||
|
||||
public class TeamParticipant
|
||||
{
|
||||
public int MatchId { get; set; }
|
||||
public int TeamId { get; set; }
|
||||
public int Seed { get; set; }
|
||||
public int Score { get; set; }
|
||||
|
||||
public required Team Team { get; set; }
|
||||
public required Match Round { get; set; }
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.ComponentModel.DataAnnotations.Schema;
|
||||
|
||||
namespace TournamentOrganizer.Models;
|
||||
|
||||
public class Player
|
||||
{
|
||||
[Key]
|
||||
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
|
||||
public int Id { get; set; }
|
||||
public string Name { get; set; } = "Example Tournament";
|
||||
public string Contact { get; set; } = "discordname";
|
||||
public int TeamId { get; set; }
|
||||
|
||||
public required Team Team { get; set; }
|
||||
|
||||
}
|
||||
@@ -0,0 +1,26 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.ComponentModel.DataAnnotations.Schema;
|
||||
|
||||
namespace TournamentOrganizer.Models;
|
||||
|
||||
public enum RoundState
|
||||
{
|
||||
WAITING,
|
||||
STARTED,
|
||||
FINISHED
|
||||
}
|
||||
|
||||
public class Round
|
||||
{
|
||||
[Key]
|
||||
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
|
||||
public int Id { get; set; }
|
||||
public int MatchId { get; set; }
|
||||
public RoundState State { get; set; } = RoundState.WAITING;
|
||||
|
||||
public required List<PlayerParticipant> Players;
|
||||
public required Match Match { get; set; }
|
||||
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.ComponentModel.DataAnnotations.Schema;
|
||||
|
||||
namespace TournamentOrganizer.Models;
|
||||
|
||||
public class Team
|
||||
{
|
||||
[Key]
|
||||
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
|
||||
public int Id { get; set; }
|
||||
public string Name { get; set; } = "Example Team";
|
||||
|
||||
public required List<Player> Players { get; set; }
|
||||
public required List<TeamParticipant> Matches { get; set; }
|
||||
|
||||
}
|
||||
@@ -0,0 +1,27 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.ComponentModel.DataAnnotations.Schema;
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
|
||||
namespace TournamentOrganizer.Models;
|
||||
|
||||
public class Tournament
|
||||
{
|
||||
[Key]
|
||||
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
|
||||
public int Id { get; set; }
|
||||
public int GameId { get; set; }
|
||||
public int EventId { get; set; }
|
||||
public DateTime Start { get; set; }
|
||||
public DateTime End { get; set; }
|
||||
|
||||
public RuleSet S1RuleSet { get; set; }
|
||||
public int S1Groups;
|
||||
public int S1GroupAdvances;
|
||||
public RuleSet? S2RuleSet { get; set; }
|
||||
|
||||
public required Game Game { get; set; }
|
||||
public required Event Event { get; set; }
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user