using Manager.DTOs;
using ManagerService.DTOs;
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using System.Linq;
namespace ManagerService.Data.SubSection
{
///
/// Section game
///
public class SectionGame : Section
{
[Required]
[Column(TypeName = "jsonb")]
public List GameMessageDebut { get; set; }
[Required]
[Column(TypeName = "jsonb")]
public List GameMessageFin { get; set; }
public string GamePuzzleImageId { get; set; } // But only image is possible
public Resource GamePuzzleImage { get; set; } // But only image is possible
[Required]
public int GamePuzzleRows { get; set; } = 3;
[Required]
public int GamePuzzleCols { get; set; } = 3;
public GameTypes GameType { get; set; } = GameTypes.Puzzle;
public GameDTO ToDTO()
{
return new GameDTO()
{
id = Id,
label = Label,
title = Title.ToList(),
description = Description.ToList(),
order = Order,
type = Type,
imageId = ImageId,
imageSource = ImageSource,
configurationId = ConfigurationId,
isSubSection = IsSubSection,
parentId = ParentId,
dateCreation = DateCreation,
instanceId = InstanceId,
isBeacon = IsBeacon,
beaconId = BeaconId,
latitude = Latitude,
longitude = Longitude,
meterZoneGPS = MeterZoneGPS,
messageDebut = GameMessageDebut,
messageFin = GameMessageFin,
puzzleImage = GamePuzzleImage.ToDTO(),
puzzleImageId = GamePuzzleImageId,
rows = GamePuzzleRows,
cols = GamePuzzleCols,
gameType = GameType
};
}
public enum GameTypes
{
Puzzle,
SlidingPuzzle,
Escape
}
}
}