fix(api): add nullable context to #96/#98 DTOs; regen OpenAPI + SPA types
ChannelResponseModel and BulkChannelRequests DTOs lacked file-scoped #nullable enable, so the OpenAPI generator emitted every string property as a ["null","string"] union (project Nullable default is disable), polluting SPA typegen with needless `| null` unions. ChannelStateResponseModel already complied with this convention (precedent: PlayoutResponseModel). All properties in both files are always populated (never null in practice), so no property needed to become explicitly optional/nullable - just adding #nullable enable was sufficient to clean up the generated schema. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
@@ -1,4 +1,5 @@
|
||||
using Newtonsoft.Json;
|
||||
#nullable enable
|
||||
using Newtonsoft.Json;
|
||||
|
||||
namespace ErsatzTV.Core.Api.Channels;
|
||||
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
#nullable enable
|
||||
using ErsatzTV.Application.Channels;
|
||||
|
||||
namespace ErsatzTV.Controllers.Api.Requests;
|
||||
|
||||
@@ -3916,10 +3916,7 @@
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"channelIds": {
|
||||
"type": [
|
||||
"null",
|
||||
"array"
|
||||
],
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "integer",
|
||||
"format": "int32"
|
||||
@@ -3935,20 +3932,14 @@
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"channelIds": {
|
||||
"type": [
|
||||
"null",
|
||||
"array"
|
||||
],
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "integer",
|
||||
"format": "int32"
|
||||
}
|
||||
},
|
||||
"group": {
|
||||
"type": [
|
||||
"null",
|
||||
"string"
|
||||
]
|
||||
"type": "string"
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -3964,10 +3955,7 @@
|
||||
"format": "int32"
|
||||
},
|
||||
"number": {
|
||||
"type": [
|
||||
"null",
|
||||
"string"
|
||||
]
|
||||
"type": "string"
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -3978,10 +3966,7 @@
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"channels": {
|
||||
"type": [
|
||||
"null",
|
||||
"array"
|
||||
],
|
||||
"type": "array",
|
||||
"items": {
|
||||
"$ref": "#/components/schemas/BulkRenumberChannelRequest"
|
||||
}
|
||||
@@ -4143,50 +4128,29 @@
|
||||
"format": "int32"
|
||||
},
|
||||
"number": {
|
||||
"type": [
|
||||
"null",
|
||||
"string"
|
||||
]
|
||||
"type": "string"
|
||||
},
|
||||
"sortNumber": {
|
||||
"type": "number",
|
||||
"format": "double"
|
||||
},
|
||||
"name": {
|
||||
"type": [
|
||||
"null",
|
||||
"string"
|
||||
]
|
||||
"type": "string"
|
||||
},
|
||||
"group": {
|
||||
"type": [
|
||||
"null",
|
||||
"string"
|
||||
]
|
||||
"type": "string"
|
||||
},
|
||||
"categories": {
|
||||
"type": [
|
||||
"null",
|
||||
"string"
|
||||
]
|
||||
"type": "string"
|
||||
},
|
||||
"fFmpegProfile": {
|
||||
"type": [
|
||||
"null",
|
||||
"string"
|
||||
]
|
||||
"type": "string"
|
||||
},
|
||||
"language": {
|
||||
"type": [
|
||||
"null",
|
||||
"string"
|
||||
]
|
||||
"type": "string"
|
||||
},
|
||||
"streamingMode": {
|
||||
"type": [
|
||||
"null",
|
||||
"string"
|
||||
]
|
||||
"type": "string"
|
||||
},
|
||||
"isEnabled": {
|
||||
"type": "boolean"
|
||||
|
||||
Vendored
+12
-12
@@ -27,18 +27,18 @@ export interface components {
|
||||
"contentType": string;
|
||||
};
|
||||
"BulkDeleteChannelsRequest": {
|
||||
"channelIds": null | Array<number>;
|
||||
"channelIds": Array<number>;
|
||||
};
|
||||
"BulkMoveChannelsToGroupRequest": {
|
||||
"channelIds": null | Array<number>;
|
||||
"group": null | string;
|
||||
"channelIds": Array<number>;
|
||||
"group": string;
|
||||
};
|
||||
"BulkRenumberChannelRequest": {
|
||||
"id": number;
|
||||
"number": null | string;
|
||||
"number": string;
|
||||
};
|
||||
"BulkRenumberChannelsRequest": {
|
||||
"channels": null | Array<components["schemas"]["BulkRenumberChannelRequest"]>;
|
||||
"channels": Array<components["schemas"]["BulkRenumberChannelRequest"]>;
|
||||
};
|
||||
"ChannelGuideChannelResponseModel": {
|
||||
"number": string;
|
||||
@@ -69,14 +69,14 @@ export interface components {
|
||||
"ChannelPlayoutSource": "Generated" | "Mirror";
|
||||
"ChannelResponseModel": {
|
||||
"id": number;
|
||||
"number": null | string;
|
||||
"number": string;
|
||||
"sortNumber": number;
|
||||
"name": null | string;
|
||||
"group": null | string;
|
||||
"categories": null | string;
|
||||
"fFmpegProfile": null | string;
|
||||
"language": null | string;
|
||||
"streamingMode": null | string;
|
||||
"name": string;
|
||||
"group": string;
|
||||
"categories": string;
|
||||
"fFmpegProfile": string;
|
||||
"language": string;
|
||||
"streamingMode": string;
|
||||
"isEnabled": boolean;
|
||||
"showInEpg": boolean;
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user