initial commit
All checks were successful
Build and Publish / Build Yale Access Backend (push) Successful in 28s
Build and Publish / Build Yale Access Frontend (push) Successful in 47s
Build and Publish / Push Yale Access Backend Docker Image (push) Successful in 9s
Build and Publish / Push Yale Access Frontend Docker Image (push) Successful in 10s

This commit is contained in:
2025-01-10 08:37:18 +11:00
commit f577617b4d
80 changed files with 10113 additions and 0 deletions

View File

@@ -0,0 +1,29 @@
namespace YaleAccess.Models
{
public class ApiResponse
{
public bool Success { get; set; }
public string? Error { get; set; }
public object? Data { get; set; }
/// <summary>
/// If passing in data only then the resonse is successful
/// </summary>
/// <param name="data"></param>
public ApiResponse(object data)
{
Success = true;
Data = data;
}
/// <summary>
/// If passing in an error then the response is not successful
/// </summary>
/// <param name="error"></param>
public ApiResponse(string error)
{
Success = false;
Error = error;
}
}
}

View File

@@ -0,0 +1,9 @@
namespace YaleAccess.Models.Options
{
public class AuthenticationOptions
{
public const string Authentication = "Authentication";
public string Password { get; set; } = string.Empty;
}
}

View File

@@ -0,0 +1,11 @@
namespace YaleAccess.Models.Options
{
public class CodesOptions
{
public const string Codes = "Codes";
public int Home { get; set; }
public int GuestCodeRangeStart { get; set; }
public int GuestCodeRangeCount { get; set; }
}
}

View File

@@ -0,0 +1,9 @@
namespace YaleAccess.Models.Options
{
public class DevicesOptions
{
public const string Devices = "Devices";
public int YaleLockNodeId { get; set; }
}
}

View File

@@ -0,0 +1,12 @@
namespace YaleAccess.Models.Options
{
public class TwiloOptions
{
public const string Twilio = "Twilio";
public string AccountSid { get; set; } = string.Empty;
public string AuthToken { get; set; } = string.Empty;
public string FromNumber { get; set; } = string.Empty;
public string Message { get; set; } = string.Empty;
}
}

View File

@@ -0,0 +1,10 @@
namespace YaleAccess.Models.Options
{
public class ZWaveOptions
{
public const string ZWave = "ZWave";
public string Url { get; set; } = null!;
public int SchemaVersion { get; set; }
}
}

View File

@@ -0,0 +1,45 @@
namespace YaleAccess.Models
{
public class YaleUserCode
{
/// <summary>
/// The ID of the user code. When making requets to ZWave.JS API, this is the value to use.
/// </summary>
public int Id { get; set; }
/// <summary>
/// The code / pin number for the user code. This may be null if the user code is not set or is not in use.
/// Even though its a string, it is a number and appropriate validation is required.
/// </summary>
public string Code { get; set; } = string.Empty;
/// <summary>
/// The current status of the user code.
/// </summary>
public UserCodeStatus Status { get; set; }
/// <summary>
/// Is true is this is the 'home' or normal user code for daily use.
/// </summary>
public bool IsHome { get; set; }
}
public enum UserCodeStatus
{
/// <summary>
/// This means the code is not being used, and can be assigned
/// </summary>
AVAILABLE = 0,
/// <summary>
/// This means that the code is in used, and cannot be assigned
/// </summary>
ENABLED = 1,
/// <summary>
/// Not sure what this means yet, perhaps it is related to schedules?
/// </summary>
DISABLED = 2
}
}