import 'package:servicestack/servicestack.dart';
// @DataContract
abstract class AuditBase
{
// @DataMember(Order=1)
DateTime? createdDate;
// @DataMember(Order=2)
// @required()
String? createdBy;
// @DataMember(Order=3)
DateTime? modifiedDate;
// @DataMember(Order=4)
// @required()
String? modifiedBy;
// @DataMember(Order=5)
DateTime? deletedDate;
// @DataMember(Order=6)
String? deletedBy;
AuditBase({this.createdDate,this.createdBy,this.modifiedDate,this.modifiedBy,this.deletedDate,this.deletedBy});
AuditBase.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
createdDate = JsonConverters.fromJson(json['createdDate'],'DateTime',context!);
createdBy = json['createdBy'];
modifiedDate = JsonConverters.fromJson(json['modifiedDate'],'DateTime',context!);
modifiedBy = json['modifiedBy'];
deletedDate = JsonConverters.fromJson(json['deletedDate'],'DateTime',context!);
deletedBy = json['deletedBy'];
return this;
}
Map<String, dynamic> toJson() => {
'createdDate': JsonConverters.toJson(createdDate,'DateTime',context!),
'createdBy': createdBy,
'modifiedDate': JsonConverters.toJson(modifiedDate,'DateTime',context!),
'modifiedBy': modifiedBy,
'deletedDate': JsonConverters.toJson(deletedDate,'DateTime',context!),
'deletedBy': deletedBy
};
getTypeName() => "AuditBase";
TypeContext? context = _ctx;
}
class Artist extends AuditBase implements IConvertible
{
int? id;
String? firstName;
String? lastName;
int? yearDied;
List<String>? type;
int? score;
int? rank;
Artist({this.id,this.firstName,this.lastName,this.yearDied,this.type,this.score,this.rank});
Artist.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
super.fromMap(json);
id = json['id'];
firstName = json['firstName'];
lastName = json['lastName'];
yearDied = json['yearDied'];
type = JsonConverters.fromJson(json['type'],'List<String>',context!);
score = json['score'];
rank = json['rank'];
return this;
}
Map<String, dynamic> toJson() => super.toJson()..addAll({
'id': id,
'firstName': firstName,
'lastName': lastName,
'yearDied': yearDied,
'type': JsonConverters.toJson(type,'List<String>',context!),
'score': score,
'rank': rank
});
getTypeName() => "Artist";
TypeContext? context = _ctx;
}
// @ValidateRequest(Validator="HasRole(`Moderator`)")
class CreativeArtist implements IConvertible
{
int? id;
// @References(typeof(Creative))
int? creativeId;
// @References(typeof(Artist))
int? artistId;
Artist? artist;
CreativeArtist({this.id,this.creativeId,this.artistId,this.artist});
CreativeArtist.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
id = json['id'];
creativeId = json['creativeId'];
artistId = json['artistId'];
artist = JsonConverters.fromJson(json['artist'],'Artist',context!);
return this;
}
Map<String, dynamic> toJson() => {
'id': id,
'creativeId': creativeId,
'artistId': artistId,
'artist': JsonConverters.toJson(artist,'Artist',context!)
};
getTypeName() => "CreativeArtist";
TypeContext? context = _ctx;
}
class Modifier extends AuditBase implements IConvertible
{
int? id;
String? name;
String? category;
String? description;
int? score;
int? rank;
Modifier({this.id,this.name,this.category,this.description,this.score,this.rank});
Modifier.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
super.fromMap(json);
id = json['id'];
name = json['name'];
category = json['category'];
description = json['description'];
score = json['score'];
rank = json['rank'];
return this;
}
Map<String, dynamic> toJson() => super.toJson()..addAll({
'id': id,
'name': name,
'category': category,
'description': description,
'score': score,
'rank': rank
});
getTypeName() => "Modifier";
TypeContext? context = _ctx;
}
class CreativeModifier implements IConvertible
{
int? id;
// @References(typeof(Creative))
int? creativeId;
// @References(typeof(Modifier))
int? modifierId;
Modifier? modifier;
CreativeModifier({this.id,this.creativeId,this.modifierId,this.modifier});
CreativeModifier.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
id = json['id'];
creativeId = json['creativeId'];
modifierId = json['modifierId'];
modifier = JsonConverters.fromJson(json['modifier'],'Modifier',context!);
return this;
}
Map<String, dynamic> toJson() => {
'id': id,
'creativeId': creativeId,
'modifierId': modifierId,
'modifier': JsonConverters.toJson(modifier,'Modifier',context!)
};
getTypeName() => "CreativeModifier";
TypeContext? context = _ctx;
}
class Artifact extends AuditBase implements IConvertible
{
int? id;
// @References(typeof(Creative))
int? creativeId;
String? fileName;
String? filePath;
String? contentType;
int? contentLength;
int? width;
int? height;
int? seed;
String? prompt;
bool? nsfw;
int? averageHash;
int? perceptualHash;
int? differenceHash;
String? background;
String? lqip;
int? quality;
int? likesCount;
int? albumsCount;
int? downloadsCount;
int? searchCount;
int? temporalScore;
int? score;
int? rank;
String? refId;
Map<String,String?>? versions = {};
Artifact({this.id,this.creativeId,this.fileName,this.filePath,this.contentType,this.contentLength,this.width,this.height,this.seed,this.prompt,this.nsfw,this.averageHash,this.perceptualHash,this.differenceHash,this.background,this.lqip,this.quality,this.likesCount,this.albumsCount,this.downloadsCount,this.searchCount,this.temporalScore,this.score,this.rank,this.refId,this.versions});
Artifact.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
super.fromMap(json);
id = json['id'];
creativeId = json['creativeId'];
fileName = json['fileName'];
filePath = json['filePath'];
contentType = json['contentType'];
contentLength = json['contentLength'];
width = json['width'];
height = json['height'];
seed = json['seed'];
prompt = json['prompt'];
nsfw = json['nsfw'];
averageHash = json['averageHash'];
perceptualHash = json['perceptualHash'];
differenceHash = json['differenceHash'];
background = json['background'];
lqip = json['lqip'];
quality = json['quality'];
likesCount = json['likesCount'];
albumsCount = json['albumsCount'];
downloadsCount = json['downloadsCount'];
searchCount = json['searchCount'];
temporalScore = json['temporalScore'];
score = json['score'];
rank = json['rank'];
refId = json['refId'];
versions = JsonConverters.toStringMap(json['versions']);
return this;
}
Map<String, dynamic> toJson() => super.toJson()..addAll({
'id': id,
'creativeId': creativeId,
'fileName': fileName,
'filePath': filePath,
'contentType': contentType,
'contentLength': contentLength,
'width': width,
'height': height,
'seed': seed,
'prompt': prompt,
'nsfw': nsfw,
'averageHash': averageHash,
'perceptualHash': perceptualHash,
'differenceHash': differenceHash,
'background': background,
'lqip': lqip,
'quality': quality,
'likesCount': likesCount,
'albumsCount': albumsCount,
'downloadsCount': downloadsCount,
'searchCount': searchCount,
'temporalScore': temporalScore,
'score': score,
'rank': rank,
'refId': refId,
'versions': versions
});
getTypeName() => "Artifact";
TypeContext? context = _ctx;
}
class Creative extends AuditBase implements IConvertible
{
int? id;
String? userPrompt;
String? prompt;
int? images;
int? width;
int? height;
int? steps;
int? curatedArtifactId;
int? primaryArtifactId;
List<String>? artistNames = [];
List<String>? modifierNames = [];
List<CreativeArtist>? artists = [];
List<CreativeModifier>? modifiers = [];
List<Artifact>? artifacts = [];
String? error;
int? ownerId;
String? ownerRef;
String? key;
bool? curated;
int? rating;
bool? private;
int? score;
int? rank;
String? refId;
String? requestId;
String? engineId;
Creative({this.id,this.userPrompt,this.prompt,this.images,this.width,this.height,this.steps,this.curatedArtifactId,this.primaryArtifactId,this.artistNames,this.modifierNames,this.artists,this.modifiers,this.artifacts,this.error,this.ownerId,this.ownerRef,this.key,this.curated,this.rating,this.private,this.score,this.rank,this.refId,this.requestId,this.engineId});
Creative.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
super.fromMap(json);
id = json['id'];
userPrompt = json['userPrompt'];
prompt = json['prompt'];
images = json['images'];
width = json['width'];
height = json['height'];
steps = json['steps'];
curatedArtifactId = json['curatedArtifactId'];
primaryArtifactId = json['primaryArtifactId'];
artistNames = JsonConverters.fromJson(json['artistNames'],'List<String>',context!);
modifierNames = JsonConverters.fromJson(json['modifierNames'],'List<String>',context!);
artists = JsonConverters.fromJson(json['artists'],'List<CreativeArtist>',context!);
modifiers = JsonConverters.fromJson(json['modifiers'],'List<CreativeModifier>',context!);
artifacts = JsonConverters.fromJson(json['artifacts'],'List<Artifact>',context!);
error = json['error'];
ownerId = json['ownerId'];
ownerRef = json['ownerRef'];
key = json['key'];
curated = json['curated'];
rating = json['rating'];
private = json['private'];
score = json['score'];
rank = json['rank'];
refId = json['refId'];
requestId = json['requestId'];
engineId = json['engineId'];
return this;
}
Map<String, dynamic> toJson() => super.toJson()..addAll({
'id': id,
'userPrompt': userPrompt,
'prompt': prompt,
'images': images,
'width': width,
'height': height,
'steps': steps,
'curatedArtifactId': curatedArtifactId,
'primaryArtifactId': primaryArtifactId,
'artistNames': JsonConverters.toJson(artistNames,'List<String>',context!),
'modifierNames': JsonConverters.toJson(modifierNames,'List<String>',context!),
'artists': JsonConverters.toJson(artists,'List<CreativeArtist>',context!),
'modifiers': JsonConverters.toJson(modifiers,'List<CreativeModifier>',context!),
'artifacts': JsonConverters.toJson(artifacts,'List<Artifact>',context!),
'error': error,
'ownerId': ownerId,
'ownerRef': ownerRef,
'key': key,
'curated': curated,
'rating': rating,
'private': private,
'score': score,
'rank': rank,
'refId': refId,
'requestId': requestId,
'engineId': engineId
});
getTypeName() => "Creative";
TypeContext? context = _ctx;
}
// @ValidateRequest(Validator="IsAuthenticated")
class UpdateCreative implements IPatchDb<Creative>, IConvertible
{
int? id;
int? primaryArtifactId;
bool? unpinPrimaryArtifact;
UpdateCreative({this.id,this.primaryArtifactId,this.unpinPrimaryArtifact});
UpdateCreative.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
id = json['id'];
primaryArtifactId = json['primaryArtifactId'];
unpinPrimaryArtifact = json['unpinPrimaryArtifact'];
return this;
}
Map<String, dynamic> toJson() => {
'id': id,
'primaryArtifactId': primaryArtifactId,
'unpinPrimaryArtifact': unpinPrimaryArtifact
};
getTypeName() => "UpdateCreative";
TypeContext? context = _ctx;
}
TypeContext _ctx = TypeContext(library: 'blazordiffusion.com', types: <String, TypeInfo> {
'Artist': TypeInfo(TypeOf.Class, create:() => Artist()),
'CreativeArtist': TypeInfo(TypeOf.Class, create:() => CreativeArtist()),
'Modifier': TypeInfo(TypeOf.Class, create:() => Modifier()),
'CreativeModifier': TypeInfo(TypeOf.Class, create:() => CreativeModifier()),
'Artifact': TypeInfo(TypeOf.Class, create:() => Artifact()),
'Creative': TypeInfo(TypeOf.Class, create:() => Creative()),
'List<CreativeArtist>': TypeInfo(TypeOf.Class, create:() => <CreativeArtist>[]),
'List<CreativeModifier>': TypeInfo(TypeOf.Class, create:() => <CreativeModifier>[]),
'List<Artifact>': TypeInfo(TypeOf.Class, create:() => <Artifact>[]),
'UpdateCreative': TypeInfo(TypeOf.Class, create:() => UpdateCreative()),
});
To override the Content-type in your clients, use the HTTP Accept Header, append the .csv suffix or ?format=csv
The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.
POST /csv/reply/UpdateCreative HTTP/1.1
Host: blazordiffusion.com
Accept: text/csv
Content-Type: text/csv
Content-Length: length
{"id":0,"primaryArtifactId":0,"unpinPrimaryArtifact":false}
HTTP/1.1 200 OK Content-Type: text/csv Content-Length: length {"id":0,"userPrompt":"String","prompt":"String","images":0,"width":0,"height":0,"steps":0,"curatedArtifactId":0,"primaryArtifactId":0,"artistNames":["String"],"modifierNames":["String"],"artists":[{"id":0,"creativeId":0,"artistId":0,"artist":{"id":0,"firstName":"String","lastName":"String","yearDied":0,"type":["String"],"score":0,"rank":0,"createdDate":"0001-01-01T00:00:00","createdBy":"String","modifiedDate":"0001-01-01T00:00:00","modifiedBy":"String","deletedDate":"0001-01-01T00:00:00","deletedBy":"String"}}],"modifiers":[{"id":0,"creativeId":0,"modifierId":0,"modifier":{"id":0,"name":"String","category":"String","description":"String","score":0,"rank":0,"createdDate":"0001-01-01T00:00:00","createdBy":"String","modifiedDate":"0001-01-01T00:00:00","modifiedBy":"String","deletedDate":"0001-01-01T00:00:00","deletedBy":"String"}}],"artifacts":[{"id":0,"creativeId":0,"fileName":"String","filePath":"String","contentType":"String","contentLength":0,"width":0,"height":0,"seed":0,"prompt":"String","nsfw":false,"averageHash":0,"perceptualHash":0,"differenceHash":0,"background":"String","lqip":"String","quality":0,"likesCount":0,"albumsCount":0,"downloadsCount":0,"searchCount":0,"temporalScore":0,"score":0,"rank":0,"refId":"String","versions":{"String":"String"},"createdDate":"0001-01-01T00:00:00","createdBy":"String","modifiedDate":"0001-01-01T00:00:00","modifiedBy":"String","deletedDate":"0001-01-01T00:00:00","deletedBy":"String"}],"error":"String","ownerId":0,"ownerRef":"String","key":"String","curated":false,"rating":0,"private":false,"score":0,"rank":0,"refId":"String","requestId":"String","engineId":"String","createdDate":"0001-01-01T00:00:00","createdBy":"String","modifiedDate":"0001-01-01T00:00:00","modifiedBy":"String","deletedDate":"0001-01-01T00:00:00","deletedBy":"String"}