Created Woodpecker CI/CD deployment
All checks were successful
ci/woodpecker/tag/api_build Pipeline was successful
ci/woodpecker/tag/api_uploadimage Pipeline was successful
ci/woodpecker/tag/web_uploadimage Pipeline was successful

- Created Dockerfile for packing up API and Web projects as Docker image
This commit is contained in:
2023-03-27 21:48:25 -05:00
parent baf38aa3cd
commit 9bbd12e4c3
145 changed files with 30955 additions and 18248 deletions

View File

@ -0,0 +1,28 @@
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using YABA.Common.Interfaces;
using YABA.Models.Interfaces;
namespace YABA.Models
{
public class Bookmark : IIdentifiable, IDateCreatedTrackable, IDateModifiedTrackable, IBookmark
{
public int Id { get; set; }
public DateTimeOffset CreatedOn { get; set; }
public DateTimeOffset LastModified { get; set; }
public string Title { get; set; }
public string? Description { get; set; }
public string? Note { get; set; }
public bool IsHidden { get; set; }
public string Url { get; set; }
[Required]
[ForeignKey(nameof(User))]
public int UserId { get; set; }
public virtual User User { get; set; }
public ICollection<BookmarkTag> BookmarkTags { get; set; }
}
}

View File

@ -0,0 +1,18 @@
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
namespace YABA.Models
{
public class BookmarkTag
{
[Required]
[ForeignKey(nameof(Bookmark))]
public int BookmarkId { get; set; }
public virtual Bookmark Bookmark { get; set; }
[Required]
[ForeignKey(nameof(Tag))]
public int TagId { get; set; }
public virtual Tag Tag { get; set; }
}
}

View File

@ -0,0 +1,9 @@
using System;
namespace YABA.Models.Interfaces
{
public interface IDateCreatedTrackable
{
public DateTimeOffset CreatedOn { get; set; }
}
}

View File

@ -0,0 +1,9 @@
using System;
namespace YABA.Models.Interfaces
{
public interface IDateModifiedTrackable
{
public DateTimeOffset LastModified { get; set; }
}
}

View File

@ -0,0 +1,8 @@

namespace YABA.Models.Interfaces
{
public interface IIdentifiable
{
public int Id { get; set; }
}
}

View File

@ -0,0 +1,8 @@

namespace YABA.Models.Interfaces
{
public interface ISoftDeletable
{
public bool IsDeleted { get; set; }
}
}

21
API/YABA.Models/Tag.cs Normal file
View File

@ -0,0 +1,21 @@
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using YABA.Models.Interfaces;
namespace YABA.Models
{
public class Tag : IIdentifiable
{
public int Id { get; set; }
public string Name { get; set; }
public bool IsHidden { get; set; }
[Required]
[ForeignKey(nameof(User))]
public int UserId { get; set; }
public virtual User User { get; set; }
public virtual ICollection<BookmarkTag> TagBookmarks { get; set; }
}
}

17
API/YABA.Models/User.cs Normal file
View File

@ -0,0 +1,17 @@
using System;
using System.ComponentModel.DataAnnotations;
using YABA.Models.Interfaces;
namespace YABA.Models
{
public class User : IIdentifiable, ISoftDeletable, IDateCreatedTrackable, IDateModifiedTrackable
{
public int Id { get; set; }
public bool IsDeleted { get; set; }
public DateTimeOffset CreatedOn { get; set; }
public DateTimeOffset LastModified { get; set; }
[Required]
public string Auth0Id { get; set; }
}
}

View File

@ -0,0 +1,16 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net6.0</TargetFramework>
<Nullable>enable</Nullable>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="System.ComponentModel.Annotations" Version="5.0.0" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\YABA.Common\YABA.Common.csproj" />
</ItemGroup>
</Project>