SkiServiceModels
Contents
Core Models
RefreshResult
public class RefreshResult { public TokenData TokenData { get; set; } public User User { get; set; } }
EF Models
Service Model
User Model
public class UserBase : IGenericModel { [StringLength(50)] [BsonElement("username")] public required string Username { get; set; } [BsonElement("password_hash")] public byte[] PasswordHash { get; set; } [BsonElement("password_salt")] public byte[] PasswordSalt { get; set; } [BsonElement("locked")] public bool Locked { get; set; } = false; [BsonElement("role")] [BsonRepresentation(BsonType.String)] public RoleNames Role { get; set; } = RoleNames.User; [BsonElement("login_attempts")] public int LoginAttempts { get; set; } = 0; [BsonElement("refresh_token")] public string? RefreshToken { get; set; } = null;public string RefreshToken { get; set; } = null;[BsonElement("is_deleted")] public bool IsDeleted { get; set; } = false; }
public class User : UserBase, IGenericEFModel { [Key] public int Id { get; set; } }
public class ServiceBase : IGenericModel { [StringLength(50)] [BsonElement("name")] public required string Name { get; set; } [StringLength(1000)] [BsonElement("description")] public required string Description { get; set; } [BsonElement("price")] public int Price { get; set; } [BsonElement("is_deleted")] public bool IsDeleted { get; set; } = false; }
public class Service : ServiceBase, IGenericBSONModel { [BsonId] public ObjectId Id { get; set; }[BsonRepresentation(BsonType.ObjectId)]public string Id { get; set; }}
Priority Model
public class PriorityBase : IGenericModel { [StringLength(20)] [BsonElement("name")] public required string Name { get; set; } [BsonElement("days")] public int Days { get; set; } [BsonElement("is_deleted")] public bool IsDeleted { get; set; } = false; }
public class Priority : PriorityBase, IGenericBSONModel { [BsonId] public ObjectId Id { get; set; }[BsonRepresentation(BsonType.ObjectId)]public string Id { get; set; }}
State Model
public class StateBase : IGenericModel { [StringLength(20)] [BsonElement("name")] public required string Name { get; set; } [BsonElement("is_deleted")] public bool IsDeleted { get; set; } = false; }
public class State : StateBase, IGenericBSONModel { [BsonId] public ObjectId Id { get; set; }[BsonRepresentation(BsonType.ObjectId)]public string Id { get; set; }}
User Model
public class UserBase : IGenericModel { [StringLength(50)] [BsonElement("username")] public required string Username { get; set; } [BsonElement("password_hash")] public byte[] PasswordHash { get; set; } [BsonElement("password_salt")] public byte[] PasswordSalt { get; set; } [BsonElement("locked")] public bool Locked { get; set; } = false; [BsonElement("role")] [BsonRepresentation(BsonType.String)] public RoleNames Role { get; set; } = RoleNames.User; [BsonElement("login_attempts")] public int LoginAttempts { get; set; } = 0; [BsonElement("refresh_token")] public string? RefreshToken { get; set; } = null;public string RefreshToken { get; set; } = null;[BsonElement("is_deleted")] public bool IsDeleted { get; set; } = false; }
public class User : UserBase, IGenericBSONModel { [BsonId] public ObjectId Id { get; set; }[BsonRepresentation(BsonType.ObjectId)]public string Id { get; set; }}
Order Model
public class OrderBase : IGenericModel { [StringLength(50)] [BsonElement("name")] public required string Name { get; set; } [StringLength(100)] [BsonElement("email")] public required string Email { get; set; } [StringLength(20)] [BsonElement("phone")] public required string Phone { get; set; } [StringLength(1000)] [BsonElement("note")] public string? Note { get; set; } = null; [BsonElement("created")] public DateTime Created { get; set; } = DateTime.Now; [BsonElement("is_deleted")] public bool IsDeleted { get; set; } = false; }
public class Order : OrderBase, IGenericBSONModel { [BsonId] public ObjectId Id { get; set; }[BsonRepresentation(BsonType.ObjectId)]public string Id { get; set; }[BsonElement("priority_id")] public ObjectId PriorityId { get; set; }public string PriorityId { get; set; }[BsonElement("service_id")] public ObjectId ServiceId { get; set; }public string ServiceId { get; set; }[BsonElement("state_id")] public ObjectId StateId { get; set; }public string StateId { get; set; }[BsonElement("user_id")] public ObjectId? UserId { get; set; } = null;public string? UserId { get; set; } = null;[BsonElement("priority")][BsonIgnore]public virtual Priority Priority { get; set; } public bool ShouldSerializePriority() => false; [BsonElement("service")][BsonIgnore]public virtual Service Service { get; set; } public bool ShouldSerializeService() => false; [BsonElement("state")][BsonIgnore]public virtual State State { get; set; } public bool ShouldSerializeState() => false; [BsonElement("user")][BsonIgnore]public virtual User? User { get; set; } public bool ShouldSerializeUser() => false; }
DTOs
TokenData
This DTO is used for any token data sent by the API.
public interface IGenericBSONModel : IGenericModel { public ObjectId Id { get; set; }public string Id { get; set; }}
DTO Interface
Base Interface for all DTOs.